Home | History | Annotate | Download | only in gc
      1 // run
      2 // Code generated by gen/constFoldGen.go. DO NOT EDIT.
      3 
      4 package gc
      5 
      6 import "testing"
      7 
      8 func TestConstFolduint64add(t *testing.T) {
      9 	var x, y, r uint64
     10 	x = 0
     11 	y = 0
     12 	r = x + y
     13 	if r != 0 {
     14 		t.Errorf("0 %s 0 = %d, want 0", "+", r)
     15 	}
     16 	y = 1
     17 	r = x + y
     18 	if r != 1 {
     19 		t.Errorf("0 %s 1 = %d, want 1", "+", r)
     20 	}
     21 	y = 4294967296
     22 	r = x + y
     23 	if r != 4294967296 {
     24 		t.Errorf("0 %s 4294967296 = %d, want 4294967296", "+", r)
     25 	}
     26 	y = 18446744073709551615
     27 	r = x + y
     28 	if r != 18446744073709551615 {
     29 		t.Errorf("0 %s 18446744073709551615 = %d, want 18446744073709551615", "+", r)
     30 	}
     31 	x = 1
     32 	y = 0
     33 	r = x + y
     34 	if r != 1 {
     35 		t.Errorf("1 %s 0 = %d, want 1", "+", r)
     36 	}
     37 	y = 1
     38 	r = x + y
     39 	if r != 2 {
     40 		t.Errorf("1 %s 1 = %d, want 2", "+", r)
     41 	}
     42 	y = 4294967296
     43 	r = x + y
     44 	if r != 4294967297 {
     45 		t.Errorf("1 %s 4294967296 = %d, want 4294967297", "+", r)
     46 	}
     47 	y = 18446744073709551615
     48 	r = x + y
     49 	if r != 0 {
     50 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "+", r)
     51 	}
     52 	x = 4294967296
     53 	y = 0
     54 	r = x + y
     55 	if r != 4294967296 {
     56 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "+", r)
     57 	}
     58 	y = 1
     59 	r = x + y
     60 	if r != 4294967297 {
     61 		t.Errorf("4294967296 %s 1 = %d, want 4294967297", "+", r)
     62 	}
     63 	y = 4294967296
     64 	r = x + y
     65 	if r != 8589934592 {
     66 		t.Errorf("4294967296 %s 4294967296 = %d, want 8589934592", "+", r)
     67 	}
     68 	y = 18446744073709551615
     69 	r = x + y
     70 	if r != 4294967295 {
     71 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 4294967295", "+", r)
     72 	}
     73 	x = 18446744073709551615
     74 	y = 0
     75 	r = x + y
     76 	if r != 18446744073709551615 {
     77 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "+", r)
     78 	}
     79 	y = 1
     80 	r = x + y
     81 	if r != 0 {
     82 		t.Errorf("18446744073709551615 %s 1 = %d, want 0", "+", r)
     83 	}
     84 	y = 4294967296
     85 	r = x + y
     86 	if r != 4294967295 {
     87 		t.Errorf("18446744073709551615 %s 4294967296 = %d, want 4294967295", "+", r)
     88 	}
     89 	y = 18446744073709551615
     90 	r = x + y
     91 	if r != 18446744073709551614 {
     92 		t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 18446744073709551614", "+", r)
     93 	}
     94 }
     95 func TestConstFolduint64sub(t *testing.T) {
     96 	var x, y, r uint64
     97 	x = 0
     98 	y = 0
     99 	r = x - y
    100 	if r != 0 {
    101 		t.Errorf("0 %s 0 = %d, want 0", "-", r)
    102 	}
    103 	y = 1
    104 	r = x - y
    105 	if r != 18446744073709551615 {
    106 		t.Errorf("0 %s 1 = %d, want 18446744073709551615", "-", r)
    107 	}
    108 	y = 4294967296
    109 	r = x - y
    110 	if r != 18446744069414584320 {
    111 		t.Errorf("0 %s 4294967296 = %d, want 18446744069414584320", "-", r)
    112 	}
    113 	y = 18446744073709551615
    114 	r = x - y
    115 	if r != 1 {
    116 		t.Errorf("0 %s 18446744073709551615 = %d, want 1", "-", r)
    117 	}
    118 	x = 1
    119 	y = 0
    120 	r = x - y
    121 	if r != 1 {
    122 		t.Errorf("1 %s 0 = %d, want 1", "-", r)
    123 	}
    124 	y = 1
    125 	r = x - y
    126 	if r != 0 {
    127 		t.Errorf("1 %s 1 = %d, want 0", "-", r)
    128 	}
    129 	y = 4294967296
    130 	r = x - y
    131 	if r != 18446744069414584321 {
    132 		t.Errorf("1 %s 4294967296 = %d, want 18446744069414584321", "-", r)
    133 	}
    134 	y = 18446744073709551615
    135 	r = x - y
    136 	if r != 2 {
    137 		t.Errorf("1 %s 18446744073709551615 = %d, want 2", "-", r)
    138 	}
    139 	x = 4294967296
    140 	y = 0
    141 	r = x - y
    142 	if r != 4294967296 {
    143 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "-", r)
    144 	}
    145 	y = 1
    146 	r = x - y
    147 	if r != 4294967295 {
    148 		t.Errorf("4294967296 %s 1 = %d, want 4294967295", "-", r)
    149 	}
    150 	y = 4294967296
    151 	r = x - y
    152 	if r != 0 {
    153 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", "-", r)
    154 	}
    155 	y = 18446744073709551615
    156 	r = x - y
    157 	if r != 4294967297 {
    158 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 4294967297", "-", r)
    159 	}
    160 	x = 18446744073709551615
    161 	y = 0
    162 	r = x - y
    163 	if r != 18446744073709551615 {
    164 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "-", r)
    165 	}
    166 	y = 1
    167 	r = x - y
    168 	if r != 18446744073709551614 {
    169 		t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551614", "-", r)
    170 	}
    171 	y = 4294967296
    172 	r = x - y
    173 	if r != 18446744069414584319 {
    174 		t.Errorf("18446744073709551615 %s 4294967296 = %d, want 18446744069414584319", "-", r)
    175 	}
    176 	y = 18446744073709551615
    177 	r = x - y
    178 	if r != 0 {
    179 		t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 0", "-", r)
    180 	}
    181 }
    182 func TestConstFolduint64div(t *testing.T) {
    183 	var x, y, r uint64
    184 	x = 0
    185 	y = 1
    186 	r = x / y
    187 	if r != 0 {
    188 		t.Errorf("0 %s 1 = %d, want 0", "/", r)
    189 	}
    190 	y = 4294967296
    191 	r = x / y
    192 	if r != 0 {
    193 		t.Errorf("0 %s 4294967296 = %d, want 0", "/", r)
    194 	}
    195 	y = 18446744073709551615
    196 	r = x / y
    197 	if r != 0 {
    198 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "/", r)
    199 	}
    200 	x = 1
    201 	y = 1
    202 	r = x / y
    203 	if r != 1 {
    204 		t.Errorf("1 %s 1 = %d, want 1", "/", r)
    205 	}
    206 	y = 4294967296
    207 	r = x / y
    208 	if r != 0 {
    209 		t.Errorf("1 %s 4294967296 = %d, want 0", "/", r)
    210 	}
    211 	y = 18446744073709551615
    212 	r = x / y
    213 	if r != 0 {
    214 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "/", r)
    215 	}
    216 	x = 4294967296
    217 	y = 1
    218 	r = x / y
    219 	if r != 4294967296 {
    220 		t.Errorf("4294967296 %s 1 = %d, want 4294967296", "/", r)
    221 	}
    222 	y = 4294967296
    223 	r = x / y
    224 	if r != 1 {
    225 		t.Errorf("4294967296 %s 4294967296 = %d, want 1", "/", r)
    226 	}
    227 	y = 18446744073709551615
    228 	r = x / y
    229 	if r != 0 {
    230 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 0", "/", r)
    231 	}
    232 	x = 18446744073709551615
    233 	y = 1
    234 	r = x / y
    235 	if r != 18446744073709551615 {
    236 		t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551615", "/", r)
    237 	}
    238 	y = 4294967296
    239 	r = x / y
    240 	if r != 4294967295 {
    241 		t.Errorf("18446744073709551615 %s 4294967296 = %d, want 4294967295", "/", r)
    242 	}
    243 	y = 18446744073709551615
    244 	r = x / y
    245 	if r != 1 {
    246 		t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 1", "/", r)
    247 	}
    248 }
    249 func TestConstFolduint64mul(t *testing.T) {
    250 	var x, y, r uint64
    251 	x = 0
    252 	y = 0
    253 	r = x * y
    254 	if r != 0 {
    255 		t.Errorf("0 %s 0 = %d, want 0", "*", r)
    256 	}
    257 	y = 1
    258 	r = x * y
    259 	if r != 0 {
    260 		t.Errorf("0 %s 1 = %d, want 0", "*", r)
    261 	}
    262 	y = 4294967296
    263 	r = x * y
    264 	if r != 0 {
    265 		t.Errorf("0 %s 4294967296 = %d, want 0", "*", r)
    266 	}
    267 	y = 18446744073709551615
    268 	r = x * y
    269 	if r != 0 {
    270 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "*", r)
    271 	}
    272 	x = 1
    273 	y = 0
    274 	r = x * y
    275 	if r != 0 {
    276 		t.Errorf("1 %s 0 = %d, want 0", "*", r)
    277 	}
    278 	y = 1
    279 	r = x * y
    280 	if r != 1 {
    281 		t.Errorf("1 %s 1 = %d, want 1", "*", r)
    282 	}
    283 	y = 4294967296
    284 	r = x * y
    285 	if r != 4294967296 {
    286 		t.Errorf("1 %s 4294967296 = %d, want 4294967296", "*", r)
    287 	}
    288 	y = 18446744073709551615
    289 	r = x * y
    290 	if r != 18446744073709551615 {
    291 		t.Errorf("1 %s 18446744073709551615 = %d, want 18446744073709551615", "*", r)
    292 	}
    293 	x = 4294967296
    294 	y = 0
    295 	r = x * y
    296 	if r != 0 {
    297 		t.Errorf("4294967296 %s 0 = %d, want 0", "*", r)
    298 	}
    299 	y = 1
    300 	r = x * y
    301 	if r != 4294967296 {
    302 		t.Errorf("4294967296 %s 1 = %d, want 4294967296", "*", r)
    303 	}
    304 	y = 4294967296
    305 	r = x * y
    306 	if r != 0 {
    307 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", "*", r)
    308 	}
    309 	y = 18446744073709551615
    310 	r = x * y
    311 	if r != 18446744069414584320 {
    312 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 18446744069414584320", "*", r)
    313 	}
    314 	x = 18446744073709551615
    315 	y = 0
    316 	r = x * y
    317 	if r != 0 {
    318 		t.Errorf("18446744073709551615 %s 0 = %d, want 0", "*", r)
    319 	}
    320 	y = 1
    321 	r = x * y
    322 	if r != 18446744073709551615 {
    323 		t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551615", "*", r)
    324 	}
    325 	y = 4294967296
    326 	r = x * y
    327 	if r != 18446744069414584320 {
    328 		t.Errorf("18446744073709551615 %s 4294967296 = %d, want 18446744069414584320", "*", r)
    329 	}
    330 	y = 18446744073709551615
    331 	r = x * y
    332 	if r != 1 {
    333 		t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 1", "*", r)
    334 	}
    335 }
    336 func TestConstFolduint64mod(t *testing.T) {
    337 	var x, y, r uint64
    338 	x = 0
    339 	y = 1
    340 	r = x % y
    341 	if r != 0 {
    342 		t.Errorf("0 %s 1 = %d, want 0", "%", r)
    343 	}
    344 	y = 4294967296
    345 	r = x % y
    346 	if r != 0 {
    347 		t.Errorf("0 %s 4294967296 = %d, want 0", "%", r)
    348 	}
    349 	y = 18446744073709551615
    350 	r = x % y
    351 	if r != 0 {
    352 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "%", r)
    353 	}
    354 	x = 1
    355 	y = 1
    356 	r = x % y
    357 	if r != 0 {
    358 		t.Errorf("1 %s 1 = %d, want 0", "%", r)
    359 	}
    360 	y = 4294967296
    361 	r = x % y
    362 	if r != 1 {
    363 		t.Errorf("1 %s 4294967296 = %d, want 1", "%", r)
    364 	}
    365 	y = 18446744073709551615
    366 	r = x % y
    367 	if r != 1 {
    368 		t.Errorf("1 %s 18446744073709551615 = %d, want 1", "%", r)
    369 	}
    370 	x = 4294967296
    371 	y = 1
    372 	r = x % y
    373 	if r != 0 {
    374 		t.Errorf("4294967296 %s 1 = %d, want 0", "%", r)
    375 	}
    376 	y = 4294967296
    377 	r = x % y
    378 	if r != 0 {
    379 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", "%", r)
    380 	}
    381 	y = 18446744073709551615
    382 	r = x % y
    383 	if r != 4294967296 {
    384 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 4294967296", "%", r)
    385 	}
    386 	x = 18446744073709551615
    387 	y = 1
    388 	r = x % y
    389 	if r != 0 {
    390 		t.Errorf("18446744073709551615 %s 1 = %d, want 0", "%", r)
    391 	}
    392 	y = 4294967296
    393 	r = x % y
    394 	if r != 4294967295 {
    395 		t.Errorf("18446744073709551615 %s 4294967296 = %d, want 4294967295", "%", r)
    396 	}
    397 	y = 18446744073709551615
    398 	r = x % y
    399 	if r != 0 {
    400 		t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 0", "%", r)
    401 	}
    402 }
    403 func TestConstFoldint64add(t *testing.T) {
    404 	var x, y, r int64
    405 	x = -9223372036854775808
    406 	y = -9223372036854775808
    407 	r = x + y
    408 	if r != 0 {
    409 		t.Errorf("-9223372036854775808 %s -9223372036854775808 = %d, want 0", "+", r)
    410 	}
    411 	y = -9223372036854775807
    412 	r = x + y
    413 	if r != 1 {
    414 		t.Errorf("-9223372036854775808 %s -9223372036854775807 = %d, want 1", "+", r)
    415 	}
    416 	y = -4294967296
    417 	r = x + y
    418 	if r != 9223372032559808512 {
    419 		t.Errorf("-9223372036854775808 %s -4294967296 = %d, want 9223372032559808512", "+", r)
    420 	}
    421 	y = -1
    422 	r = x + y
    423 	if r != 9223372036854775807 {
    424 		t.Errorf("-9223372036854775808 %s -1 = %d, want 9223372036854775807", "+", r)
    425 	}
    426 	y = 0
    427 	r = x + y
    428 	if r != -9223372036854775808 {
    429 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "+", r)
    430 	}
    431 	y = 1
    432 	r = x + y
    433 	if r != -9223372036854775807 {
    434 		t.Errorf("-9223372036854775808 %s 1 = %d, want -9223372036854775807", "+", r)
    435 	}
    436 	y = 4294967296
    437 	r = x + y
    438 	if r != -9223372032559808512 {
    439 		t.Errorf("-9223372036854775808 %s 4294967296 = %d, want -9223372032559808512", "+", r)
    440 	}
    441 	y = 9223372036854775806
    442 	r = x + y
    443 	if r != -2 {
    444 		t.Errorf("-9223372036854775808 %s 9223372036854775806 = %d, want -2", "+", r)
    445 	}
    446 	y = 9223372036854775807
    447 	r = x + y
    448 	if r != -1 {
    449 		t.Errorf("-9223372036854775808 %s 9223372036854775807 = %d, want -1", "+", r)
    450 	}
    451 	x = -9223372036854775807
    452 	y = -9223372036854775808
    453 	r = x + y
    454 	if r != 1 {
    455 		t.Errorf("-9223372036854775807 %s -9223372036854775808 = %d, want 1", "+", r)
    456 	}
    457 	y = -9223372036854775807
    458 	r = x + y
    459 	if r != 2 {
    460 		t.Errorf("-9223372036854775807 %s -9223372036854775807 = %d, want 2", "+", r)
    461 	}
    462 	y = -4294967296
    463 	r = x + y
    464 	if r != 9223372032559808513 {
    465 		t.Errorf("-9223372036854775807 %s -4294967296 = %d, want 9223372032559808513", "+", r)
    466 	}
    467 	y = -1
    468 	r = x + y
    469 	if r != -9223372036854775808 {
    470 		t.Errorf("-9223372036854775807 %s -1 = %d, want -9223372036854775808", "+", r)
    471 	}
    472 	y = 0
    473 	r = x + y
    474 	if r != -9223372036854775807 {
    475 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "+", r)
    476 	}
    477 	y = 1
    478 	r = x + y
    479 	if r != -9223372036854775806 {
    480 		t.Errorf("-9223372036854775807 %s 1 = %d, want -9223372036854775806", "+", r)
    481 	}
    482 	y = 4294967296
    483 	r = x + y
    484 	if r != -9223372032559808511 {
    485 		t.Errorf("-9223372036854775807 %s 4294967296 = %d, want -9223372032559808511", "+", r)
    486 	}
    487 	y = 9223372036854775806
    488 	r = x + y
    489 	if r != -1 {
    490 		t.Errorf("-9223372036854775807 %s 9223372036854775806 = %d, want -1", "+", r)
    491 	}
    492 	y = 9223372036854775807
    493 	r = x + y
    494 	if r != 0 {
    495 		t.Errorf("-9223372036854775807 %s 9223372036854775807 = %d, want 0", "+", r)
    496 	}
    497 	x = -4294967296
    498 	y = -9223372036854775808
    499 	r = x + y
    500 	if r != 9223372032559808512 {
    501 		t.Errorf("-4294967296 %s -9223372036854775808 = %d, want 9223372032559808512", "+", r)
    502 	}
    503 	y = -9223372036854775807
    504 	r = x + y
    505 	if r != 9223372032559808513 {
    506 		t.Errorf("-4294967296 %s -9223372036854775807 = %d, want 9223372032559808513", "+", r)
    507 	}
    508 	y = -4294967296
    509 	r = x + y
    510 	if r != -8589934592 {
    511 		t.Errorf("-4294967296 %s -4294967296 = %d, want -8589934592", "+", r)
    512 	}
    513 	y = -1
    514 	r = x + y
    515 	if r != -4294967297 {
    516 		t.Errorf("-4294967296 %s -1 = %d, want -4294967297", "+", r)
    517 	}
    518 	y = 0
    519 	r = x + y
    520 	if r != -4294967296 {
    521 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "+", r)
    522 	}
    523 	y = 1
    524 	r = x + y
    525 	if r != -4294967295 {
    526 		t.Errorf("-4294967296 %s 1 = %d, want -4294967295", "+", r)
    527 	}
    528 	y = 4294967296
    529 	r = x + y
    530 	if r != 0 {
    531 		t.Errorf("-4294967296 %s 4294967296 = %d, want 0", "+", r)
    532 	}
    533 	y = 9223372036854775806
    534 	r = x + y
    535 	if r != 9223372032559808510 {
    536 		t.Errorf("-4294967296 %s 9223372036854775806 = %d, want 9223372032559808510", "+", r)
    537 	}
    538 	y = 9223372036854775807
    539 	r = x + y
    540 	if r != 9223372032559808511 {
    541 		t.Errorf("-4294967296 %s 9223372036854775807 = %d, want 9223372032559808511", "+", r)
    542 	}
    543 	x = -1
    544 	y = -9223372036854775808
    545 	r = x + y
    546 	if r != 9223372036854775807 {
    547 		t.Errorf("-1 %s -9223372036854775808 = %d, want 9223372036854775807", "+", r)
    548 	}
    549 	y = -9223372036854775807
    550 	r = x + y
    551 	if r != -9223372036854775808 {
    552 		t.Errorf("-1 %s -9223372036854775807 = %d, want -9223372036854775808", "+", r)
    553 	}
    554 	y = -4294967296
    555 	r = x + y
    556 	if r != -4294967297 {
    557 		t.Errorf("-1 %s -4294967296 = %d, want -4294967297", "+", r)
    558 	}
    559 	y = -1
    560 	r = x + y
    561 	if r != -2 {
    562 		t.Errorf("-1 %s -1 = %d, want -2", "+", r)
    563 	}
    564 	y = 0
    565 	r = x + y
    566 	if r != -1 {
    567 		t.Errorf("-1 %s 0 = %d, want -1", "+", r)
    568 	}
    569 	y = 1
    570 	r = x + y
    571 	if r != 0 {
    572 		t.Errorf("-1 %s 1 = %d, want 0", "+", r)
    573 	}
    574 	y = 4294967296
    575 	r = x + y
    576 	if r != 4294967295 {
    577 		t.Errorf("-1 %s 4294967296 = %d, want 4294967295", "+", r)
    578 	}
    579 	y = 9223372036854775806
    580 	r = x + y
    581 	if r != 9223372036854775805 {
    582 		t.Errorf("-1 %s 9223372036854775806 = %d, want 9223372036854775805", "+", r)
    583 	}
    584 	y = 9223372036854775807
    585 	r = x + y
    586 	if r != 9223372036854775806 {
    587 		t.Errorf("-1 %s 9223372036854775807 = %d, want 9223372036854775806", "+", r)
    588 	}
    589 	x = 0
    590 	y = -9223372036854775808
    591 	r = x + y
    592 	if r != -9223372036854775808 {
    593 		t.Errorf("0 %s -9223372036854775808 = %d, want -9223372036854775808", "+", r)
    594 	}
    595 	y = -9223372036854775807
    596 	r = x + y
    597 	if r != -9223372036854775807 {
    598 		t.Errorf("0 %s -9223372036854775807 = %d, want -9223372036854775807", "+", r)
    599 	}
    600 	y = -4294967296
    601 	r = x + y
    602 	if r != -4294967296 {
    603 		t.Errorf("0 %s -4294967296 = %d, want -4294967296", "+", r)
    604 	}
    605 	y = -1
    606 	r = x + y
    607 	if r != -1 {
    608 		t.Errorf("0 %s -1 = %d, want -1", "+", r)
    609 	}
    610 	y = 0
    611 	r = x + y
    612 	if r != 0 {
    613 		t.Errorf("0 %s 0 = %d, want 0", "+", r)
    614 	}
    615 	y = 1
    616 	r = x + y
    617 	if r != 1 {
    618 		t.Errorf("0 %s 1 = %d, want 1", "+", r)
    619 	}
    620 	y = 4294967296
    621 	r = x + y
    622 	if r != 4294967296 {
    623 		t.Errorf("0 %s 4294967296 = %d, want 4294967296", "+", r)
    624 	}
    625 	y = 9223372036854775806
    626 	r = x + y
    627 	if r != 9223372036854775806 {
    628 		t.Errorf("0 %s 9223372036854775806 = %d, want 9223372036854775806", "+", r)
    629 	}
    630 	y = 9223372036854775807
    631 	r = x + y
    632 	if r != 9223372036854775807 {
    633 		t.Errorf("0 %s 9223372036854775807 = %d, want 9223372036854775807", "+", r)
    634 	}
    635 	x = 1
    636 	y = -9223372036854775808
    637 	r = x + y
    638 	if r != -9223372036854775807 {
    639 		t.Errorf("1 %s -9223372036854775808 = %d, want -9223372036854775807", "+", r)
    640 	}
    641 	y = -9223372036854775807
    642 	r = x + y
    643 	if r != -9223372036854775806 {
    644 		t.Errorf("1 %s -9223372036854775807 = %d, want -9223372036854775806", "+", r)
    645 	}
    646 	y = -4294967296
    647 	r = x + y
    648 	if r != -4294967295 {
    649 		t.Errorf("1 %s -4294967296 = %d, want -4294967295", "+", r)
    650 	}
    651 	y = -1
    652 	r = x + y
    653 	if r != 0 {
    654 		t.Errorf("1 %s -1 = %d, want 0", "+", r)
    655 	}
    656 	y = 0
    657 	r = x + y
    658 	if r != 1 {
    659 		t.Errorf("1 %s 0 = %d, want 1", "+", r)
    660 	}
    661 	y = 1
    662 	r = x + y
    663 	if r != 2 {
    664 		t.Errorf("1 %s 1 = %d, want 2", "+", r)
    665 	}
    666 	y = 4294967296
    667 	r = x + y
    668 	if r != 4294967297 {
    669 		t.Errorf("1 %s 4294967296 = %d, want 4294967297", "+", r)
    670 	}
    671 	y = 9223372036854775806
    672 	r = x + y
    673 	if r != 9223372036854775807 {
    674 		t.Errorf("1 %s 9223372036854775806 = %d, want 9223372036854775807", "+", r)
    675 	}
    676 	y = 9223372036854775807
    677 	r = x + y
    678 	if r != -9223372036854775808 {
    679 		t.Errorf("1 %s 9223372036854775807 = %d, want -9223372036854775808", "+", r)
    680 	}
    681 	x = 4294967296
    682 	y = -9223372036854775808
    683 	r = x + y
    684 	if r != -9223372032559808512 {
    685 		t.Errorf("4294967296 %s -9223372036854775808 = %d, want -9223372032559808512", "+", r)
    686 	}
    687 	y = -9223372036854775807
    688 	r = x + y
    689 	if r != -9223372032559808511 {
    690 		t.Errorf("4294967296 %s -9223372036854775807 = %d, want -9223372032559808511", "+", r)
    691 	}
    692 	y = -4294967296
    693 	r = x + y
    694 	if r != 0 {
    695 		t.Errorf("4294967296 %s -4294967296 = %d, want 0", "+", r)
    696 	}
    697 	y = -1
    698 	r = x + y
    699 	if r != 4294967295 {
    700 		t.Errorf("4294967296 %s -1 = %d, want 4294967295", "+", r)
    701 	}
    702 	y = 0
    703 	r = x + y
    704 	if r != 4294967296 {
    705 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "+", r)
    706 	}
    707 	y = 1
    708 	r = x + y
    709 	if r != 4294967297 {
    710 		t.Errorf("4294967296 %s 1 = %d, want 4294967297", "+", r)
    711 	}
    712 	y = 4294967296
    713 	r = x + y
    714 	if r != 8589934592 {
    715 		t.Errorf("4294967296 %s 4294967296 = %d, want 8589934592", "+", r)
    716 	}
    717 	y = 9223372036854775806
    718 	r = x + y
    719 	if r != -9223372032559808514 {
    720 		t.Errorf("4294967296 %s 9223372036854775806 = %d, want -9223372032559808514", "+", r)
    721 	}
    722 	y = 9223372036854775807
    723 	r = x + y
    724 	if r != -9223372032559808513 {
    725 		t.Errorf("4294967296 %s 9223372036854775807 = %d, want -9223372032559808513", "+", r)
    726 	}
    727 	x = 9223372036854775806
    728 	y = -9223372036854775808
    729 	r = x + y
    730 	if r != -2 {
    731 		t.Errorf("9223372036854775806 %s -9223372036854775808 = %d, want -2", "+", r)
    732 	}
    733 	y = -9223372036854775807
    734 	r = x + y
    735 	if r != -1 {
    736 		t.Errorf("9223372036854775806 %s -9223372036854775807 = %d, want -1", "+", r)
    737 	}
    738 	y = -4294967296
    739 	r = x + y
    740 	if r != 9223372032559808510 {
    741 		t.Errorf("9223372036854775806 %s -4294967296 = %d, want 9223372032559808510", "+", r)
    742 	}
    743 	y = -1
    744 	r = x + y
    745 	if r != 9223372036854775805 {
    746 		t.Errorf("9223372036854775806 %s -1 = %d, want 9223372036854775805", "+", r)
    747 	}
    748 	y = 0
    749 	r = x + y
    750 	if r != 9223372036854775806 {
    751 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "+", r)
    752 	}
    753 	y = 1
    754 	r = x + y
    755 	if r != 9223372036854775807 {
    756 		t.Errorf("9223372036854775806 %s 1 = %d, want 9223372036854775807", "+", r)
    757 	}
    758 	y = 4294967296
    759 	r = x + y
    760 	if r != -9223372032559808514 {
    761 		t.Errorf("9223372036854775806 %s 4294967296 = %d, want -9223372032559808514", "+", r)
    762 	}
    763 	y = 9223372036854775806
    764 	r = x + y
    765 	if r != -4 {
    766 		t.Errorf("9223372036854775806 %s 9223372036854775806 = %d, want -4", "+", r)
    767 	}
    768 	y = 9223372036854775807
    769 	r = x + y
    770 	if r != -3 {
    771 		t.Errorf("9223372036854775806 %s 9223372036854775807 = %d, want -3", "+", r)
    772 	}
    773 	x = 9223372036854775807
    774 	y = -9223372036854775808
    775 	r = x + y
    776 	if r != -1 {
    777 		t.Errorf("9223372036854775807 %s -9223372036854775808 = %d, want -1", "+", r)
    778 	}
    779 	y = -9223372036854775807
    780 	r = x + y
    781 	if r != 0 {
    782 		t.Errorf("9223372036854775807 %s -9223372036854775807 = %d, want 0", "+", r)
    783 	}
    784 	y = -4294967296
    785 	r = x + y
    786 	if r != 9223372032559808511 {
    787 		t.Errorf("9223372036854775807 %s -4294967296 = %d, want 9223372032559808511", "+", r)
    788 	}
    789 	y = -1
    790 	r = x + y
    791 	if r != 9223372036854775806 {
    792 		t.Errorf("9223372036854775807 %s -1 = %d, want 9223372036854775806", "+", r)
    793 	}
    794 	y = 0
    795 	r = x + y
    796 	if r != 9223372036854775807 {
    797 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "+", r)
    798 	}
    799 	y = 1
    800 	r = x + y
    801 	if r != -9223372036854775808 {
    802 		t.Errorf("9223372036854775807 %s 1 = %d, want -9223372036854775808", "+", r)
    803 	}
    804 	y = 4294967296
    805 	r = x + y
    806 	if r != -9223372032559808513 {
    807 		t.Errorf("9223372036854775807 %s 4294967296 = %d, want -9223372032559808513", "+", r)
    808 	}
    809 	y = 9223372036854775806
    810 	r = x + y
    811 	if r != -3 {
    812 		t.Errorf("9223372036854775807 %s 9223372036854775806 = %d, want -3", "+", r)
    813 	}
    814 	y = 9223372036854775807
    815 	r = x + y
    816 	if r != -2 {
    817 		t.Errorf("9223372036854775807 %s 9223372036854775807 = %d, want -2", "+", r)
    818 	}
    819 }
    820 func TestConstFoldint64sub(t *testing.T) {
    821 	var x, y, r int64
    822 	x = -9223372036854775808
    823 	y = -9223372036854775808
    824 	r = x - y
    825 	if r != 0 {
    826 		t.Errorf("-9223372036854775808 %s -9223372036854775808 = %d, want 0", "-", r)
    827 	}
    828 	y = -9223372036854775807
    829 	r = x - y
    830 	if r != -1 {
    831 		t.Errorf("-9223372036854775808 %s -9223372036854775807 = %d, want -1", "-", r)
    832 	}
    833 	y = -4294967296
    834 	r = x - y
    835 	if r != -9223372032559808512 {
    836 		t.Errorf("-9223372036854775808 %s -4294967296 = %d, want -9223372032559808512", "-", r)
    837 	}
    838 	y = -1
    839 	r = x - y
    840 	if r != -9223372036854775807 {
    841 		t.Errorf("-9223372036854775808 %s -1 = %d, want -9223372036854775807", "-", r)
    842 	}
    843 	y = 0
    844 	r = x - y
    845 	if r != -9223372036854775808 {
    846 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "-", r)
    847 	}
    848 	y = 1
    849 	r = x - y
    850 	if r != 9223372036854775807 {
    851 		t.Errorf("-9223372036854775808 %s 1 = %d, want 9223372036854775807", "-", r)
    852 	}
    853 	y = 4294967296
    854 	r = x - y
    855 	if r != 9223372032559808512 {
    856 		t.Errorf("-9223372036854775808 %s 4294967296 = %d, want 9223372032559808512", "-", r)
    857 	}
    858 	y = 9223372036854775806
    859 	r = x - y
    860 	if r != 2 {
    861 		t.Errorf("-9223372036854775808 %s 9223372036854775806 = %d, want 2", "-", r)
    862 	}
    863 	y = 9223372036854775807
    864 	r = x - y
    865 	if r != 1 {
    866 		t.Errorf("-9223372036854775808 %s 9223372036854775807 = %d, want 1", "-", r)
    867 	}
    868 	x = -9223372036854775807
    869 	y = -9223372036854775808
    870 	r = x - y
    871 	if r != 1 {
    872 		t.Errorf("-9223372036854775807 %s -9223372036854775808 = %d, want 1", "-", r)
    873 	}
    874 	y = -9223372036854775807
    875 	r = x - y
    876 	if r != 0 {
    877 		t.Errorf("-9223372036854775807 %s -9223372036854775807 = %d, want 0", "-", r)
    878 	}
    879 	y = -4294967296
    880 	r = x - y
    881 	if r != -9223372032559808511 {
    882 		t.Errorf("-9223372036854775807 %s -4294967296 = %d, want -9223372032559808511", "-", r)
    883 	}
    884 	y = -1
    885 	r = x - y
    886 	if r != -9223372036854775806 {
    887 		t.Errorf("-9223372036854775807 %s -1 = %d, want -9223372036854775806", "-", r)
    888 	}
    889 	y = 0
    890 	r = x - y
    891 	if r != -9223372036854775807 {
    892 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "-", r)
    893 	}
    894 	y = 1
    895 	r = x - y
    896 	if r != -9223372036854775808 {
    897 		t.Errorf("-9223372036854775807 %s 1 = %d, want -9223372036854775808", "-", r)
    898 	}
    899 	y = 4294967296
    900 	r = x - y
    901 	if r != 9223372032559808513 {
    902 		t.Errorf("-9223372036854775807 %s 4294967296 = %d, want 9223372032559808513", "-", r)
    903 	}
    904 	y = 9223372036854775806
    905 	r = x - y
    906 	if r != 3 {
    907 		t.Errorf("-9223372036854775807 %s 9223372036854775806 = %d, want 3", "-", r)
    908 	}
    909 	y = 9223372036854775807
    910 	r = x - y
    911 	if r != 2 {
    912 		t.Errorf("-9223372036854775807 %s 9223372036854775807 = %d, want 2", "-", r)
    913 	}
    914 	x = -4294967296
    915 	y = -9223372036854775808
    916 	r = x - y
    917 	if r != 9223372032559808512 {
    918 		t.Errorf("-4294967296 %s -9223372036854775808 = %d, want 9223372032559808512", "-", r)
    919 	}
    920 	y = -9223372036854775807
    921 	r = x - y
    922 	if r != 9223372032559808511 {
    923 		t.Errorf("-4294967296 %s -9223372036854775807 = %d, want 9223372032559808511", "-", r)
    924 	}
    925 	y = -4294967296
    926 	r = x - y
    927 	if r != 0 {
    928 		t.Errorf("-4294967296 %s -4294967296 = %d, want 0", "-", r)
    929 	}
    930 	y = -1
    931 	r = x - y
    932 	if r != -4294967295 {
    933 		t.Errorf("-4294967296 %s -1 = %d, want -4294967295", "-", r)
    934 	}
    935 	y = 0
    936 	r = x - y
    937 	if r != -4294967296 {
    938 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "-", r)
    939 	}
    940 	y = 1
    941 	r = x - y
    942 	if r != -4294967297 {
    943 		t.Errorf("-4294967296 %s 1 = %d, want -4294967297", "-", r)
    944 	}
    945 	y = 4294967296
    946 	r = x - y
    947 	if r != -8589934592 {
    948 		t.Errorf("-4294967296 %s 4294967296 = %d, want -8589934592", "-", r)
    949 	}
    950 	y = 9223372036854775806
    951 	r = x - y
    952 	if r != 9223372032559808514 {
    953 		t.Errorf("-4294967296 %s 9223372036854775806 = %d, want 9223372032559808514", "-", r)
    954 	}
    955 	y = 9223372036854775807
    956 	r = x - y
    957 	if r != 9223372032559808513 {
    958 		t.Errorf("-4294967296 %s 9223372036854775807 = %d, want 9223372032559808513", "-", r)
    959 	}
    960 	x = -1
    961 	y = -9223372036854775808
    962 	r = x - y
    963 	if r != 9223372036854775807 {
    964 		t.Errorf("-1 %s -9223372036854775808 = %d, want 9223372036854775807", "-", r)
    965 	}
    966 	y = -9223372036854775807
    967 	r = x - y
    968 	if r != 9223372036854775806 {
    969 		t.Errorf("-1 %s -9223372036854775807 = %d, want 9223372036854775806", "-", r)
    970 	}
    971 	y = -4294967296
    972 	r = x - y
    973 	if r != 4294967295 {
    974 		t.Errorf("-1 %s -4294967296 = %d, want 4294967295", "-", r)
    975 	}
    976 	y = -1
    977 	r = x - y
    978 	if r != 0 {
    979 		t.Errorf("-1 %s -1 = %d, want 0", "-", r)
    980 	}
    981 	y = 0
    982 	r = x - y
    983 	if r != -1 {
    984 		t.Errorf("-1 %s 0 = %d, want -1", "-", r)
    985 	}
    986 	y = 1
    987 	r = x - y
    988 	if r != -2 {
    989 		t.Errorf("-1 %s 1 = %d, want -2", "-", r)
    990 	}
    991 	y = 4294967296
    992 	r = x - y
    993 	if r != -4294967297 {
    994 		t.Errorf("-1 %s 4294967296 = %d, want -4294967297", "-", r)
    995 	}
    996 	y = 9223372036854775806
    997 	r = x - y
    998 	if r != -9223372036854775807 {
    999 		t.Errorf("-1 %s 9223372036854775806 = %d, want -9223372036854775807", "-", r)
   1000 	}
   1001 	y = 9223372036854775807
   1002 	r = x - y
   1003 	if r != -9223372036854775808 {
   1004 		t.Errorf("-1 %s 9223372036854775807 = %d, want -9223372036854775808", "-", r)
   1005 	}
   1006 	x = 0
   1007 	y = -9223372036854775808
   1008 	r = x - y
   1009 	if r != -9223372036854775808 {
   1010 		t.Errorf("0 %s -9223372036854775808 = %d, want -9223372036854775808", "-", r)
   1011 	}
   1012 	y = -9223372036854775807
   1013 	r = x - y
   1014 	if r != 9223372036854775807 {
   1015 		t.Errorf("0 %s -9223372036854775807 = %d, want 9223372036854775807", "-", r)
   1016 	}
   1017 	y = -4294967296
   1018 	r = x - y
   1019 	if r != 4294967296 {
   1020 		t.Errorf("0 %s -4294967296 = %d, want 4294967296", "-", r)
   1021 	}
   1022 	y = -1
   1023 	r = x - y
   1024 	if r != 1 {
   1025 		t.Errorf("0 %s -1 = %d, want 1", "-", r)
   1026 	}
   1027 	y = 0
   1028 	r = x - y
   1029 	if r != 0 {
   1030 		t.Errorf("0 %s 0 = %d, want 0", "-", r)
   1031 	}
   1032 	y = 1
   1033 	r = x - y
   1034 	if r != -1 {
   1035 		t.Errorf("0 %s 1 = %d, want -1", "-", r)
   1036 	}
   1037 	y = 4294967296
   1038 	r = x - y
   1039 	if r != -4294967296 {
   1040 		t.Errorf("0 %s 4294967296 = %d, want -4294967296", "-", r)
   1041 	}
   1042 	y = 9223372036854775806
   1043 	r = x - y
   1044 	if r != -9223372036854775806 {
   1045 		t.Errorf("0 %s 9223372036854775806 = %d, want -9223372036854775806", "-", r)
   1046 	}
   1047 	y = 9223372036854775807
   1048 	r = x - y
   1049 	if r != -9223372036854775807 {
   1050 		t.Errorf("0 %s 9223372036854775807 = %d, want -9223372036854775807", "-", r)
   1051 	}
   1052 	x = 1
   1053 	y = -9223372036854775808
   1054 	r = x - y
   1055 	if r != -9223372036854775807 {
   1056 		t.Errorf("1 %s -9223372036854775808 = %d, want -9223372036854775807", "-", r)
   1057 	}
   1058 	y = -9223372036854775807
   1059 	r = x - y
   1060 	if r != -9223372036854775808 {
   1061 		t.Errorf("1 %s -9223372036854775807 = %d, want -9223372036854775808", "-", r)
   1062 	}
   1063 	y = -4294967296
   1064 	r = x - y
   1065 	if r != 4294967297 {
   1066 		t.Errorf("1 %s -4294967296 = %d, want 4294967297", "-", r)
   1067 	}
   1068 	y = -1
   1069 	r = x - y
   1070 	if r != 2 {
   1071 		t.Errorf("1 %s -1 = %d, want 2", "-", r)
   1072 	}
   1073 	y = 0
   1074 	r = x - y
   1075 	if r != 1 {
   1076 		t.Errorf("1 %s 0 = %d, want 1", "-", r)
   1077 	}
   1078 	y = 1
   1079 	r = x - y
   1080 	if r != 0 {
   1081 		t.Errorf("1 %s 1 = %d, want 0", "-", r)
   1082 	}
   1083 	y = 4294967296
   1084 	r = x - y
   1085 	if r != -4294967295 {
   1086 		t.Errorf("1 %s 4294967296 = %d, want -4294967295", "-", r)
   1087 	}
   1088 	y = 9223372036854775806
   1089 	r = x - y
   1090 	if r != -9223372036854775805 {
   1091 		t.Errorf("1 %s 9223372036854775806 = %d, want -9223372036854775805", "-", r)
   1092 	}
   1093 	y = 9223372036854775807
   1094 	r = x - y
   1095 	if r != -9223372036854775806 {
   1096 		t.Errorf("1 %s 9223372036854775807 = %d, want -9223372036854775806", "-", r)
   1097 	}
   1098 	x = 4294967296
   1099 	y = -9223372036854775808
   1100 	r = x - y
   1101 	if r != -9223372032559808512 {
   1102 		t.Errorf("4294967296 %s -9223372036854775808 = %d, want -9223372032559808512", "-", r)
   1103 	}
   1104 	y = -9223372036854775807
   1105 	r = x - y
   1106 	if r != -9223372032559808513 {
   1107 		t.Errorf("4294967296 %s -9223372036854775807 = %d, want -9223372032559808513", "-", r)
   1108 	}
   1109 	y = -4294967296
   1110 	r = x - y
   1111 	if r != 8589934592 {
   1112 		t.Errorf("4294967296 %s -4294967296 = %d, want 8589934592", "-", r)
   1113 	}
   1114 	y = -1
   1115 	r = x - y
   1116 	if r != 4294967297 {
   1117 		t.Errorf("4294967296 %s -1 = %d, want 4294967297", "-", r)
   1118 	}
   1119 	y = 0
   1120 	r = x - y
   1121 	if r != 4294967296 {
   1122 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "-", r)
   1123 	}
   1124 	y = 1
   1125 	r = x - y
   1126 	if r != 4294967295 {
   1127 		t.Errorf("4294967296 %s 1 = %d, want 4294967295", "-", r)
   1128 	}
   1129 	y = 4294967296
   1130 	r = x - y
   1131 	if r != 0 {
   1132 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", "-", r)
   1133 	}
   1134 	y = 9223372036854775806
   1135 	r = x - y
   1136 	if r != -9223372032559808510 {
   1137 		t.Errorf("4294967296 %s 9223372036854775806 = %d, want -9223372032559808510", "-", r)
   1138 	}
   1139 	y = 9223372036854775807
   1140 	r = x - y
   1141 	if r != -9223372032559808511 {
   1142 		t.Errorf("4294967296 %s 9223372036854775807 = %d, want -9223372032559808511", "-", r)
   1143 	}
   1144 	x = 9223372036854775806
   1145 	y = -9223372036854775808
   1146 	r = x - y
   1147 	if r != -2 {
   1148 		t.Errorf("9223372036854775806 %s -9223372036854775808 = %d, want -2", "-", r)
   1149 	}
   1150 	y = -9223372036854775807
   1151 	r = x - y
   1152 	if r != -3 {
   1153 		t.Errorf("9223372036854775806 %s -9223372036854775807 = %d, want -3", "-", r)
   1154 	}
   1155 	y = -4294967296
   1156 	r = x - y
   1157 	if r != -9223372032559808514 {
   1158 		t.Errorf("9223372036854775806 %s -4294967296 = %d, want -9223372032559808514", "-", r)
   1159 	}
   1160 	y = -1
   1161 	r = x - y
   1162 	if r != 9223372036854775807 {
   1163 		t.Errorf("9223372036854775806 %s -1 = %d, want 9223372036854775807", "-", r)
   1164 	}
   1165 	y = 0
   1166 	r = x - y
   1167 	if r != 9223372036854775806 {
   1168 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "-", r)
   1169 	}
   1170 	y = 1
   1171 	r = x - y
   1172 	if r != 9223372036854775805 {
   1173 		t.Errorf("9223372036854775806 %s 1 = %d, want 9223372036854775805", "-", r)
   1174 	}
   1175 	y = 4294967296
   1176 	r = x - y
   1177 	if r != 9223372032559808510 {
   1178 		t.Errorf("9223372036854775806 %s 4294967296 = %d, want 9223372032559808510", "-", r)
   1179 	}
   1180 	y = 9223372036854775806
   1181 	r = x - y
   1182 	if r != 0 {
   1183 		t.Errorf("9223372036854775806 %s 9223372036854775806 = %d, want 0", "-", r)
   1184 	}
   1185 	y = 9223372036854775807
   1186 	r = x - y
   1187 	if r != -1 {
   1188 		t.Errorf("9223372036854775806 %s 9223372036854775807 = %d, want -1", "-", r)
   1189 	}
   1190 	x = 9223372036854775807
   1191 	y = -9223372036854775808
   1192 	r = x - y
   1193 	if r != -1 {
   1194 		t.Errorf("9223372036854775807 %s -9223372036854775808 = %d, want -1", "-", r)
   1195 	}
   1196 	y = -9223372036854775807
   1197 	r = x - y
   1198 	if r != -2 {
   1199 		t.Errorf("9223372036854775807 %s -9223372036854775807 = %d, want -2", "-", r)
   1200 	}
   1201 	y = -4294967296
   1202 	r = x - y
   1203 	if r != -9223372032559808513 {
   1204 		t.Errorf("9223372036854775807 %s -4294967296 = %d, want -9223372032559808513", "-", r)
   1205 	}
   1206 	y = -1
   1207 	r = x - y
   1208 	if r != -9223372036854775808 {
   1209 		t.Errorf("9223372036854775807 %s -1 = %d, want -9223372036854775808", "-", r)
   1210 	}
   1211 	y = 0
   1212 	r = x - y
   1213 	if r != 9223372036854775807 {
   1214 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "-", r)
   1215 	}
   1216 	y = 1
   1217 	r = x - y
   1218 	if r != 9223372036854775806 {
   1219 		t.Errorf("9223372036854775807 %s 1 = %d, want 9223372036854775806", "-", r)
   1220 	}
   1221 	y = 4294967296
   1222 	r = x - y
   1223 	if r != 9223372032559808511 {
   1224 		t.Errorf("9223372036854775807 %s 4294967296 = %d, want 9223372032559808511", "-", r)
   1225 	}
   1226 	y = 9223372036854775806
   1227 	r = x - y
   1228 	if r != 1 {
   1229 		t.Errorf("9223372036854775807 %s 9223372036854775806 = %d, want 1", "-", r)
   1230 	}
   1231 	y = 9223372036854775807
   1232 	r = x - y
   1233 	if r != 0 {
   1234 		t.Errorf("9223372036854775807 %s 9223372036854775807 = %d, want 0", "-", r)
   1235 	}
   1236 }
   1237 func TestConstFoldint64div(t *testing.T) {
   1238 	var x, y, r int64
   1239 	x = -9223372036854775808
   1240 	y = -9223372036854775808
   1241 	r = x / y
   1242 	if r != 1 {
   1243 		t.Errorf("-9223372036854775808 %s -9223372036854775808 = %d, want 1", "/", r)
   1244 	}
   1245 	y = -9223372036854775807
   1246 	r = x / y
   1247 	if r != 1 {
   1248 		t.Errorf("-9223372036854775808 %s -9223372036854775807 = %d, want 1", "/", r)
   1249 	}
   1250 	y = -4294967296
   1251 	r = x / y
   1252 	if r != 2147483648 {
   1253 		t.Errorf("-9223372036854775808 %s -4294967296 = %d, want 2147483648", "/", r)
   1254 	}
   1255 	y = -1
   1256 	r = x / y
   1257 	if r != -9223372036854775808 {
   1258 		t.Errorf("-9223372036854775808 %s -1 = %d, want -9223372036854775808", "/", r)
   1259 	}
   1260 	y = 1
   1261 	r = x / y
   1262 	if r != -9223372036854775808 {
   1263 		t.Errorf("-9223372036854775808 %s 1 = %d, want -9223372036854775808", "/", r)
   1264 	}
   1265 	y = 4294967296
   1266 	r = x / y
   1267 	if r != -2147483648 {
   1268 		t.Errorf("-9223372036854775808 %s 4294967296 = %d, want -2147483648", "/", r)
   1269 	}
   1270 	y = 9223372036854775806
   1271 	r = x / y
   1272 	if r != -1 {
   1273 		t.Errorf("-9223372036854775808 %s 9223372036854775806 = %d, want -1", "/", r)
   1274 	}
   1275 	y = 9223372036854775807
   1276 	r = x / y
   1277 	if r != -1 {
   1278 		t.Errorf("-9223372036854775808 %s 9223372036854775807 = %d, want -1", "/", r)
   1279 	}
   1280 	x = -9223372036854775807
   1281 	y = -9223372036854775808
   1282 	r = x / y
   1283 	if r != 0 {
   1284 		t.Errorf("-9223372036854775807 %s -9223372036854775808 = %d, want 0", "/", r)
   1285 	}
   1286 	y = -9223372036854775807
   1287 	r = x / y
   1288 	if r != 1 {
   1289 		t.Errorf("-9223372036854775807 %s -9223372036854775807 = %d, want 1", "/", r)
   1290 	}
   1291 	y = -4294967296
   1292 	r = x / y
   1293 	if r != 2147483647 {
   1294 		t.Errorf("-9223372036854775807 %s -4294967296 = %d, want 2147483647", "/", r)
   1295 	}
   1296 	y = -1
   1297 	r = x / y
   1298 	if r != 9223372036854775807 {
   1299 		t.Errorf("-9223372036854775807 %s -1 = %d, want 9223372036854775807", "/", r)
   1300 	}
   1301 	y = 1
   1302 	r = x / y
   1303 	if r != -9223372036854775807 {
   1304 		t.Errorf("-9223372036854775807 %s 1 = %d, want -9223372036854775807", "/", r)
   1305 	}
   1306 	y = 4294967296
   1307 	r = x / y
   1308 	if r != -2147483647 {
   1309 		t.Errorf("-9223372036854775807 %s 4294967296 = %d, want -2147483647", "/", r)
   1310 	}
   1311 	y = 9223372036854775806
   1312 	r = x / y
   1313 	if r != -1 {
   1314 		t.Errorf("-9223372036854775807 %s 9223372036854775806 = %d, want -1", "/", r)
   1315 	}
   1316 	y = 9223372036854775807
   1317 	r = x / y
   1318 	if r != -1 {
   1319 		t.Errorf("-9223372036854775807 %s 9223372036854775807 = %d, want -1", "/", r)
   1320 	}
   1321 	x = -4294967296
   1322 	y = -9223372036854775808
   1323 	r = x / y
   1324 	if r != 0 {
   1325 		t.Errorf("-4294967296 %s -9223372036854775808 = %d, want 0", "/", r)
   1326 	}
   1327 	y = -9223372036854775807
   1328 	r = x / y
   1329 	if r != 0 {
   1330 		t.Errorf("-4294967296 %s -9223372036854775807 = %d, want 0", "/", r)
   1331 	}
   1332 	y = -4294967296
   1333 	r = x / y
   1334 	if r != 1 {
   1335 		t.Errorf("-4294967296 %s -4294967296 = %d, want 1", "/", r)
   1336 	}
   1337 	y = -1
   1338 	r = x / y
   1339 	if r != 4294967296 {
   1340 		t.Errorf("-4294967296 %s -1 = %d, want 4294967296", "/", r)
   1341 	}
   1342 	y = 1
   1343 	r = x / y
   1344 	if r != -4294967296 {
   1345 		t.Errorf("-4294967296 %s 1 = %d, want -4294967296", "/", r)
   1346 	}
   1347 	y = 4294967296
   1348 	r = x / y
   1349 	if r != -1 {
   1350 		t.Errorf("-4294967296 %s 4294967296 = %d, want -1", "/", r)
   1351 	}
   1352 	y = 9223372036854775806
   1353 	r = x / y
   1354 	if r != 0 {
   1355 		t.Errorf("-4294967296 %s 9223372036854775806 = %d, want 0", "/", r)
   1356 	}
   1357 	y = 9223372036854775807
   1358 	r = x / y
   1359 	if r != 0 {
   1360 		t.Errorf("-4294967296 %s 9223372036854775807 = %d, want 0", "/", r)
   1361 	}
   1362 	x = -1
   1363 	y = -9223372036854775808
   1364 	r = x / y
   1365 	if r != 0 {
   1366 		t.Errorf("-1 %s -9223372036854775808 = %d, want 0", "/", r)
   1367 	}
   1368 	y = -9223372036854775807
   1369 	r = x / y
   1370 	if r != 0 {
   1371 		t.Errorf("-1 %s -9223372036854775807 = %d, want 0", "/", r)
   1372 	}
   1373 	y = -4294967296
   1374 	r = x / y
   1375 	if r != 0 {
   1376 		t.Errorf("-1 %s -4294967296 = %d, want 0", "/", r)
   1377 	}
   1378 	y = -1
   1379 	r = x / y
   1380 	if r != 1 {
   1381 		t.Errorf("-1 %s -1 = %d, want 1", "/", r)
   1382 	}
   1383 	y = 1
   1384 	r = x / y
   1385 	if r != -1 {
   1386 		t.Errorf("-1 %s 1 = %d, want -1", "/", r)
   1387 	}
   1388 	y = 4294967296
   1389 	r = x / y
   1390 	if r != 0 {
   1391 		t.Errorf("-1 %s 4294967296 = %d, want 0", "/", r)
   1392 	}
   1393 	y = 9223372036854775806
   1394 	r = x / y
   1395 	if r != 0 {
   1396 		t.Errorf("-1 %s 9223372036854775806 = %d, want 0", "/", r)
   1397 	}
   1398 	y = 9223372036854775807
   1399 	r = x / y
   1400 	if r != 0 {
   1401 		t.Errorf("-1 %s 9223372036854775807 = %d, want 0", "/", r)
   1402 	}
   1403 	x = 0
   1404 	y = -9223372036854775808
   1405 	r = x / y
   1406 	if r != 0 {
   1407 		t.Errorf("0 %s -9223372036854775808 = %d, want 0", "/", r)
   1408 	}
   1409 	y = -9223372036854775807
   1410 	r = x / y
   1411 	if r != 0 {
   1412 		t.Errorf("0 %s -9223372036854775807 = %d, want 0", "/", r)
   1413 	}
   1414 	y = -4294967296
   1415 	r = x / y
   1416 	if r != 0 {
   1417 		t.Errorf("0 %s -4294967296 = %d, want 0", "/", r)
   1418 	}
   1419 	y = -1
   1420 	r = x / y
   1421 	if r != 0 {
   1422 		t.Errorf("0 %s -1 = %d, want 0", "/", r)
   1423 	}
   1424 	y = 1
   1425 	r = x / y
   1426 	if r != 0 {
   1427 		t.Errorf("0 %s 1 = %d, want 0", "/", r)
   1428 	}
   1429 	y = 4294967296
   1430 	r = x / y
   1431 	if r != 0 {
   1432 		t.Errorf("0 %s 4294967296 = %d, want 0", "/", r)
   1433 	}
   1434 	y = 9223372036854775806
   1435 	r = x / y
   1436 	if r != 0 {
   1437 		t.Errorf("0 %s 9223372036854775806 = %d, want 0", "/", r)
   1438 	}
   1439 	y = 9223372036854775807
   1440 	r = x / y
   1441 	if r != 0 {
   1442 		t.Errorf("0 %s 9223372036854775807 = %d, want 0", "/", r)
   1443 	}
   1444 	x = 1
   1445 	y = -9223372036854775808
   1446 	r = x / y
   1447 	if r != 0 {
   1448 		t.Errorf("1 %s -9223372036854775808 = %d, want 0", "/", r)
   1449 	}
   1450 	y = -9223372036854775807
   1451 	r = x / y
   1452 	if r != 0 {
   1453 		t.Errorf("1 %s -9223372036854775807 = %d, want 0", "/", r)
   1454 	}
   1455 	y = -4294967296
   1456 	r = x / y
   1457 	if r != 0 {
   1458 		t.Errorf("1 %s -4294967296 = %d, want 0", "/", r)
   1459 	}
   1460 	y = -1
   1461 	r = x / y
   1462 	if r != -1 {
   1463 		t.Errorf("1 %s -1 = %d, want -1", "/", r)
   1464 	}
   1465 	y = 1
   1466 	r = x / y
   1467 	if r != 1 {
   1468 		t.Errorf("1 %s 1 = %d, want 1", "/", r)
   1469 	}
   1470 	y = 4294967296
   1471 	r = x / y
   1472 	if r != 0 {
   1473 		t.Errorf("1 %s 4294967296 = %d, want 0", "/", r)
   1474 	}
   1475 	y = 9223372036854775806
   1476 	r = x / y
   1477 	if r != 0 {
   1478 		t.Errorf("1 %s 9223372036854775806 = %d, want 0", "/", r)
   1479 	}
   1480 	y = 9223372036854775807
   1481 	r = x / y
   1482 	if r != 0 {
   1483 		t.Errorf("1 %s 9223372036854775807 = %d, want 0", "/", r)
   1484 	}
   1485 	x = 4294967296
   1486 	y = -9223372036854775808
   1487 	r = x / y
   1488 	if r != 0 {
   1489 		t.Errorf("4294967296 %s -9223372036854775808 = %d, want 0", "/", r)
   1490 	}
   1491 	y = -9223372036854775807
   1492 	r = x / y
   1493 	if r != 0 {
   1494 		t.Errorf("4294967296 %s -9223372036854775807 = %d, want 0", "/", r)
   1495 	}
   1496 	y = -4294967296
   1497 	r = x / y
   1498 	if r != -1 {
   1499 		t.Errorf("4294967296 %s -4294967296 = %d, want -1", "/", r)
   1500 	}
   1501 	y = -1
   1502 	r = x / y
   1503 	if r != -4294967296 {
   1504 		t.Errorf("4294967296 %s -1 = %d, want -4294967296", "/", r)
   1505 	}
   1506 	y = 1
   1507 	r = x / y
   1508 	if r != 4294967296 {
   1509 		t.Errorf("4294967296 %s 1 = %d, want 4294967296", "/", r)
   1510 	}
   1511 	y = 4294967296
   1512 	r = x / y
   1513 	if r != 1 {
   1514 		t.Errorf("4294967296 %s 4294967296 = %d, want 1", "/", r)
   1515 	}
   1516 	y = 9223372036854775806
   1517 	r = x / y
   1518 	if r != 0 {
   1519 		t.Errorf("4294967296 %s 9223372036854775806 = %d, want 0", "/", r)
   1520 	}
   1521 	y = 9223372036854775807
   1522 	r = x / y
   1523 	if r != 0 {
   1524 		t.Errorf("4294967296 %s 9223372036854775807 = %d, want 0", "/", r)
   1525 	}
   1526 	x = 9223372036854775806
   1527 	y = -9223372036854775808
   1528 	r = x / y
   1529 	if r != 0 {
   1530 		t.Errorf("9223372036854775806 %s -9223372036854775808 = %d, want 0", "/", r)
   1531 	}
   1532 	y = -9223372036854775807
   1533 	r = x / y
   1534 	if r != 0 {
   1535 		t.Errorf("9223372036854775806 %s -9223372036854775807 = %d, want 0", "/", r)
   1536 	}
   1537 	y = -4294967296
   1538 	r = x / y
   1539 	if r != -2147483647 {
   1540 		t.Errorf("9223372036854775806 %s -4294967296 = %d, want -2147483647", "/", r)
   1541 	}
   1542 	y = -1
   1543 	r = x / y
   1544 	if r != -9223372036854775806 {
   1545 		t.Errorf("9223372036854775806 %s -1 = %d, want -9223372036854775806", "/", r)
   1546 	}
   1547 	y = 1
   1548 	r = x / y
   1549 	if r != 9223372036854775806 {
   1550 		t.Errorf("9223372036854775806 %s 1 = %d, want 9223372036854775806", "/", r)
   1551 	}
   1552 	y = 4294967296
   1553 	r = x / y
   1554 	if r != 2147483647 {
   1555 		t.Errorf("9223372036854775806 %s 4294967296 = %d, want 2147483647", "/", r)
   1556 	}
   1557 	y = 9223372036854775806
   1558 	r = x / y
   1559 	if r != 1 {
   1560 		t.Errorf("9223372036854775806 %s 9223372036854775806 = %d, want 1", "/", r)
   1561 	}
   1562 	y = 9223372036854775807
   1563 	r = x / y
   1564 	if r != 0 {
   1565 		t.Errorf("9223372036854775806 %s 9223372036854775807 = %d, want 0", "/", r)
   1566 	}
   1567 	x = 9223372036854775807
   1568 	y = -9223372036854775808
   1569 	r = x / y
   1570 	if r != 0 {
   1571 		t.Errorf("9223372036854775807 %s -9223372036854775808 = %d, want 0", "/", r)
   1572 	}
   1573 	y = -9223372036854775807
   1574 	r = x / y
   1575 	if r != -1 {
   1576 		t.Errorf("9223372036854775807 %s -9223372036854775807 = %d, want -1", "/", r)
   1577 	}
   1578 	y = -4294967296
   1579 	r = x / y
   1580 	if r != -2147483647 {
   1581 		t.Errorf("9223372036854775807 %s -4294967296 = %d, want -2147483647", "/", r)
   1582 	}
   1583 	y = -1
   1584 	r = x / y
   1585 	if r != -9223372036854775807 {
   1586 		t.Errorf("9223372036854775807 %s -1 = %d, want -9223372036854775807", "/", r)
   1587 	}
   1588 	y = 1
   1589 	r = x / y
   1590 	if r != 9223372036854775807 {
   1591 		t.Errorf("9223372036854775807 %s 1 = %d, want 9223372036854775807", "/", r)
   1592 	}
   1593 	y = 4294967296
   1594 	r = x / y
   1595 	if r != 2147483647 {
   1596 		t.Errorf("9223372036854775807 %s 4294967296 = %d, want 2147483647", "/", r)
   1597 	}
   1598 	y = 9223372036854775806
   1599 	r = x / y
   1600 	if r != 1 {
   1601 		t.Errorf("9223372036854775807 %s 9223372036854775806 = %d, want 1", "/", r)
   1602 	}
   1603 	y = 9223372036854775807
   1604 	r = x / y
   1605 	if r != 1 {
   1606 		t.Errorf("9223372036854775807 %s 9223372036854775807 = %d, want 1", "/", r)
   1607 	}
   1608 }
   1609 func TestConstFoldint64mul(t *testing.T) {
   1610 	var x, y, r int64
   1611 	x = -9223372036854775808
   1612 	y = -9223372036854775808
   1613 	r = x * y
   1614 	if r != 0 {
   1615 		t.Errorf("-9223372036854775808 %s -9223372036854775808 = %d, want 0", "*", r)
   1616 	}
   1617 	y = -9223372036854775807
   1618 	r = x * y
   1619 	if r != -9223372036854775808 {
   1620 		t.Errorf("-9223372036854775808 %s -9223372036854775807 = %d, want -9223372036854775808", "*", r)
   1621 	}
   1622 	y = -4294967296
   1623 	r = x * y
   1624 	if r != 0 {
   1625 		t.Errorf("-9223372036854775808 %s -4294967296 = %d, want 0", "*", r)
   1626 	}
   1627 	y = -1
   1628 	r = x * y
   1629 	if r != -9223372036854775808 {
   1630 		t.Errorf("-9223372036854775808 %s -1 = %d, want -9223372036854775808", "*", r)
   1631 	}
   1632 	y = 0
   1633 	r = x * y
   1634 	if r != 0 {
   1635 		t.Errorf("-9223372036854775808 %s 0 = %d, want 0", "*", r)
   1636 	}
   1637 	y = 1
   1638 	r = x * y
   1639 	if r != -9223372036854775808 {
   1640 		t.Errorf("-9223372036854775808 %s 1 = %d, want -9223372036854775808", "*", r)
   1641 	}
   1642 	y = 4294967296
   1643 	r = x * y
   1644 	if r != 0 {
   1645 		t.Errorf("-9223372036854775808 %s 4294967296 = %d, want 0", "*", r)
   1646 	}
   1647 	y = 9223372036854775806
   1648 	r = x * y
   1649 	if r != 0 {
   1650 		t.Errorf("-9223372036854775808 %s 9223372036854775806 = %d, want 0", "*", r)
   1651 	}
   1652 	y = 9223372036854775807
   1653 	r = x * y
   1654 	if r != -9223372036854775808 {
   1655 		t.Errorf("-9223372036854775808 %s 9223372036854775807 = %d, want -9223372036854775808", "*", r)
   1656 	}
   1657 	x = -9223372036854775807
   1658 	y = -9223372036854775808
   1659 	r = x * y
   1660 	if r != -9223372036854775808 {
   1661 		t.Errorf("-9223372036854775807 %s -9223372036854775808 = %d, want -9223372036854775808", "*", r)
   1662 	}
   1663 	y = -9223372036854775807
   1664 	r = x * y
   1665 	if r != 1 {
   1666 		t.Errorf("-9223372036854775807 %s -9223372036854775807 = %d, want 1", "*", r)
   1667 	}
   1668 	y = -4294967296
   1669 	r = x * y
   1670 	if r != -4294967296 {
   1671 		t.Errorf("-9223372036854775807 %s -4294967296 = %d, want -4294967296", "*", r)
   1672 	}
   1673 	y = -1
   1674 	r = x * y
   1675 	if r != 9223372036854775807 {
   1676 		t.Errorf("-9223372036854775807 %s -1 = %d, want 9223372036854775807", "*", r)
   1677 	}
   1678 	y = 0
   1679 	r = x * y
   1680 	if r != 0 {
   1681 		t.Errorf("-9223372036854775807 %s 0 = %d, want 0", "*", r)
   1682 	}
   1683 	y = 1
   1684 	r = x * y
   1685 	if r != -9223372036854775807 {
   1686 		t.Errorf("-9223372036854775807 %s 1 = %d, want -9223372036854775807", "*", r)
   1687 	}
   1688 	y = 4294967296
   1689 	r = x * y
   1690 	if r != 4294967296 {
   1691 		t.Errorf("-9223372036854775807 %s 4294967296 = %d, want 4294967296", "*", r)
   1692 	}
   1693 	y = 9223372036854775806
   1694 	r = x * y
   1695 	if r != 9223372036854775806 {
   1696 		t.Errorf("-9223372036854775807 %s 9223372036854775806 = %d, want 9223372036854775806", "*", r)
   1697 	}
   1698 	y = 9223372036854775807
   1699 	r = x * y
   1700 	if r != -1 {
   1701 		t.Errorf("-9223372036854775807 %s 9223372036854775807 = %d, want -1", "*", r)
   1702 	}
   1703 	x = -4294967296
   1704 	y = -9223372036854775808
   1705 	r = x * y
   1706 	if r != 0 {
   1707 		t.Errorf("-4294967296 %s -9223372036854775808 = %d, want 0", "*", r)
   1708 	}
   1709 	y = -9223372036854775807
   1710 	r = x * y
   1711 	if r != -4294967296 {
   1712 		t.Errorf("-4294967296 %s -9223372036854775807 = %d, want -4294967296", "*", r)
   1713 	}
   1714 	y = -4294967296
   1715 	r = x * y
   1716 	if r != 0 {
   1717 		t.Errorf("-4294967296 %s -4294967296 = %d, want 0", "*", r)
   1718 	}
   1719 	y = -1
   1720 	r = x * y
   1721 	if r != 4294967296 {
   1722 		t.Errorf("-4294967296 %s -1 = %d, want 4294967296", "*", r)
   1723 	}
   1724 	y = 0
   1725 	r = x * y
   1726 	if r != 0 {
   1727 		t.Errorf("-4294967296 %s 0 = %d, want 0", "*", r)
   1728 	}
   1729 	y = 1
   1730 	r = x * y
   1731 	if r != -4294967296 {
   1732 		t.Errorf("-4294967296 %s 1 = %d, want -4294967296", "*", r)
   1733 	}
   1734 	y = 4294967296
   1735 	r = x * y
   1736 	if r != 0 {
   1737 		t.Errorf("-4294967296 %s 4294967296 = %d, want 0", "*", r)
   1738 	}
   1739 	y = 9223372036854775806
   1740 	r = x * y
   1741 	if r != 8589934592 {
   1742 		t.Errorf("-4294967296 %s 9223372036854775806 = %d, want 8589934592", "*", r)
   1743 	}
   1744 	y = 9223372036854775807
   1745 	r = x * y
   1746 	if r != 4294967296 {
   1747 		t.Errorf("-4294967296 %s 9223372036854775807 = %d, want 4294967296", "*", r)
   1748 	}
   1749 	x = -1
   1750 	y = -9223372036854775808
   1751 	r = x * y
   1752 	if r != -9223372036854775808 {
   1753 		t.Errorf("-1 %s -9223372036854775808 = %d, want -9223372036854775808", "*", r)
   1754 	}
   1755 	y = -9223372036854775807
   1756 	r = x * y
   1757 	if r != 9223372036854775807 {
   1758 		t.Errorf("-1 %s -9223372036854775807 = %d, want 9223372036854775807", "*", r)
   1759 	}
   1760 	y = -4294967296
   1761 	r = x * y
   1762 	if r != 4294967296 {
   1763 		t.Errorf("-1 %s -4294967296 = %d, want 4294967296", "*", r)
   1764 	}
   1765 	y = -1
   1766 	r = x * y
   1767 	if r != 1 {
   1768 		t.Errorf("-1 %s -1 = %d, want 1", "*", r)
   1769 	}
   1770 	y = 0
   1771 	r = x * y
   1772 	if r != 0 {
   1773 		t.Errorf("-1 %s 0 = %d, want 0", "*", r)
   1774 	}
   1775 	y = 1
   1776 	r = x * y
   1777 	if r != -1 {
   1778 		t.Errorf("-1 %s 1 = %d, want -1", "*", r)
   1779 	}
   1780 	y = 4294967296
   1781 	r = x * y
   1782 	if r != -4294967296 {
   1783 		t.Errorf("-1 %s 4294967296 = %d, want -4294967296", "*", r)
   1784 	}
   1785 	y = 9223372036854775806
   1786 	r = x * y
   1787 	if r != -9223372036854775806 {
   1788 		t.Errorf("-1 %s 9223372036854775806 = %d, want -9223372036854775806", "*", r)
   1789 	}
   1790 	y = 9223372036854775807
   1791 	r = x * y
   1792 	if r != -9223372036854775807 {
   1793 		t.Errorf("-1 %s 9223372036854775807 = %d, want -9223372036854775807", "*", r)
   1794 	}
   1795 	x = 0
   1796 	y = -9223372036854775808
   1797 	r = x * y
   1798 	if r != 0 {
   1799 		t.Errorf("0 %s -9223372036854775808 = %d, want 0", "*", r)
   1800 	}
   1801 	y = -9223372036854775807
   1802 	r = x * y
   1803 	if r != 0 {
   1804 		t.Errorf("0 %s -9223372036854775807 = %d, want 0", "*", r)
   1805 	}
   1806 	y = -4294967296
   1807 	r = x * y
   1808 	if r != 0 {
   1809 		t.Errorf("0 %s -4294967296 = %d, want 0", "*", r)
   1810 	}
   1811 	y = -1
   1812 	r = x * y
   1813 	if r != 0 {
   1814 		t.Errorf("0 %s -1 = %d, want 0", "*", r)
   1815 	}
   1816 	y = 0
   1817 	r = x * y
   1818 	if r != 0 {
   1819 		t.Errorf("0 %s 0 = %d, want 0", "*", r)
   1820 	}
   1821 	y = 1
   1822 	r = x * y
   1823 	if r != 0 {
   1824 		t.Errorf("0 %s 1 = %d, want 0", "*", r)
   1825 	}
   1826 	y = 4294967296
   1827 	r = x * y
   1828 	if r != 0 {
   1829 		t.Errorf("0 %s 4294967296 = %d, want 0", "*", r)
   1830 	}
   1831 	y = 9223372036854775806
   1832 	r = x * y
   1833 	if r != 0 {
   1834 		t.Errorf("0 %s 9223372036854775806 = %d, want 0", "*", r)
   1835 	}
   1836 	y = 9223372036854775807
   1837 	r = x * y
   1838 	if r != 0 {
   1839 		t.Errorf("0 %s 9223372036854775807 = %d, want 0", "*", r)
   1840 	}
   1841 	x = 1
   1842 	y = -9223372036854775808
   1843 	r = x * y
   1844 	if r != -9223372036854775808 {
   1845 		t.Errorf("1 %s -9223372036854775808 = %d, want -9223372036854775808", "*", r)
   1846 	}
   1847 	y = -9223372036854775807
   1848 	r = x * y
   1849 	if r != -9223372036854775807 {
   1850 		t.Errorf("1 %s -9223372036854775807 = %d, want -9223372036854775807", "*", r)
   1851 	}
   1852 	y = -4294967296
   1853 	r = x * y
   1854 	if r != -4294967296 {
   1855 		t.Errorf("1 %s -4294967296 = %d, want -4294967296", "*", r)
   1856 	}
   1857 	y = -1
   1858 	r = x * y
   1859 	if r != -1 {
   1860 		t.Errorf("1 %s -1 = %d, want -1", "*", r)
   1861 	}
   1862 	y = 0
   1863 	r = x * y
   1864 	if r != 0 {
   1865 		t.Errorf("1 %s 0 = %d, want 0", "*", r)
   1866 	}
   1867 	y = 1
   1868 	r = x * y
   1869 	if r != 1 {
   1870 		t.Errorf("1 %s 1 = %d, want 1", "*", r)
   1871 	}
   1872 	y = 4294967296
   1873 	r = x * y
   1874 	if r != 4294967296 {
   1875 		t.Errorf("1 %s 4294967296 = %d, want 4294967296", "*", r)
   1876 	}
   1877 	y = 9223372036854775806
   1878 	r = x * y
   1879 	if r != 9223372036854775806 {
   1880 		t.Errorf("1 %s 9223372036854775806 = %d, want 9223372036854775806", "*", r)
   1881 	}
   1882 	y = 9223372036854775807
   1883 	r = x * y
   1884 	if r != 9223372036854775807 {
   1885 		t.Errorf("1 %s 9223372036854775807 = %d, want 9223372036854775807", "*", r)
   1886 	}
   1887 	x = 4294967296
   1888 	y = -9223372036854775808
   1889 	r = x * y
   1890 	if r != 0 {
   1891 		t.Errorf("4294967296 %s -9223372036854775808 = %d, want 0", "*", r)
   1892 	}
   1893 	y = -9223372036854775807
   1894 	r = x * y
   1895 	if r != 4294967296 {
   1896 		t.Errorf("4294967296 %s -9223372036854775807 = %d, want 4294967296", "*", r)
   1897 	}
   1898 	y = -4294967296
   1899 	r = x * y
   1900 	if r != 0 {
   1901 		t.Errorf("4294967296 %s -4294967296 = %d, want 0", "*", r)
   1902 	}
   1903 	y = -1
   1904 	r = x * y
   1905 	if r != -4294967296 {
   1906 		t.Errorf("4294967296 %s -1 = %d, want -4294967296", "*", r)
   1907 	}
   1908 	y = 0
   1909 	r = x * y
   1910 	if r != 0 {
   1911 		t.Errorf("4294967296 %s 0 = %d, want 0", "*", r)
   1912 	}
   1913 	y = 1
   1914 	r = x * y
   1915 	if r != 4294967296 {
   1916 		t.Errorf("4294967296 %s 1 = %d, want 4294967296", "*", r)
   1917 	}
   1918 	y = 4294967296
   1919 	r = x * y
   1920 	if r != 0 {
   1921 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", "*", r)
   1922 	}
   1923 	y = 9223372036854775806
   1924 	r = x * y
   1925 	if r != -8589934592 {
   1926 		t.Errorf("4294967296 %s 9223372036854775806 = %d, want -8589934592", "*", r)
   1927 	}
   1928 	y = 9223372036854775807
   1929 	r = x * y
   1930 	if r != -4294967296 {
   1931 		t.Errorf("4294967296 %s 9223372036854775807 = %d, want -4294967296", "*", r)
   1932 	}
   1933 	x = 9223372036854775806
   1934 	y = -9223372036854775808
   1935 	r = x * y
   1936 	if r != 0 {
   1937 		t.Errorf("9223372036854775806 %s -9223372036854775808 = %d, want 0", "*", r)
   1938 	}
   1939 	y = -9223372036854775807
   1940 	r = x * y
   1941 	if r != 9223372036854775806 {
   1942 		t.Errorf("9223372036854775806 %s -9223372036854775807 = %d, want 9223372036854775806", "*", r)
   1943 	}
   1944 	y = -4294967296
   1945 	r = x * y
   1946 	if r != 8589934592 {
   1947 		t.Errorf("9223372036854775806 %s -4294967296 = %d, want 8589934592", "*", r)
   1948 	}
   1949 	y = -1
   1950 	r = x * y
   1951 	if r != -9223372036854775806 {
   1952 		t.Errorf("9223372036854775806 %s -1 = %d, want -9223372036854775806", "*", r)
   1953 	}
   1954 	y = 0
   1955 	r = x * y
   1956 	if r != 0 {
   1957 		t.Errorf("9223372036854775806 %s 0 = %d, want 0", "*", r)
   1958 	}
   1959 	y = 1
   1960 	r = x * y
   1961 	if r != 9223372036854775806 {
   1962 		t.Errorf("9223372036854775806 %s 1 = %d, want 9223372036854775806", "*", r)
   1963 	}
   1964 	y = 4294967296
   1965 	r = x * y
   1966 	if r != -8589934592 {
   1967 		t.Errorf("9223372036854775806 %s 4294967296 = %d, want -8589934592", "*", r)
   1968 	}
   1969 	y = 9223372036854775806
   1970 	r = x * y
   1971 	if r != 4 {
   1972 		t.Errorf("9223372036854775806 %s 9223372036854775806 = %d, want 4", "*", r)
   1973 	}
   1974 	y = 9223372036854775807
   1975 	r = x * y
   1976 	if r != -9223372036854775806 {
   1977 		t.Errorf("9223372036854775806 %s 9223372036854775807 = %d, want -9223372036854775806", "*", r)
   1978 	}
   1979 	x = 9223372036854775807
   1980 	y = -9223372036854775808
   1981 	r = x * y
   1982 	if r != -9223372036854775808 {
   1983 		t.Errorf("9223372036854775807 %s -9223372036854775808 = %d, want -9223372036854775808", "*", r)
   1984 	}
   1985 	y = -9223372036854775807
   1986 	r = x * y
   1987 	if r != -1 {
   1988 		t.Errorf("9223372036854775807 %s -9223372036854775807 = %d, want -1", "*", r)
   1989 	}
   1990 	y = -4294967296
   1991 	r = x * y
   1992 	if r != 4294967296 {
   1993 		t.Errorf("9223372036854775807 %s -4294967296 = %d, want 4294967296", "*", r)
   1994 	}
   1995 	y = -1
   1996 	r = x * y
   1997 	if r != -9223372036854775807 {
   1998 		t.Errorf("9223372036854775807 %s -1 = %d, want -9223372036854775807", "*", r)
   1999 	}
   2000 	y = 0
   2001 	r = x * y
   2002 	if r != 0 {
   2003 		t.Errorf("9223372036854775807 %s 0 = %d, want 0", "*", r)
   2004 	}
   2005 	y = 1
   2006 	r = x * y
   2007 	if r != 9223372036854775807 {
   2008 		t.Errorf("9223372036854775807 %s 1 = %d, want 9223372036854775807", "*", r)
   2009 	}
   2010 	y = 4294967296
   2011 	r = x * y
   2012 	if r != -4294967296 {
   2013 		t.Errorf("9223372036854775807 %s 4294967296 = %d, want -4294967296", "*", r)
   2014 	}
   2015 	y = 9223372036854775806
   2016 	r = x * y
   2017 	if r != -9223372036854775806 {
   2018 		t.Errorf("9223372036854775807 %s 9223372036854775806 = %d, want -9223372036854775806", "*", r)
   2019 	}
   2020 	y = 9223372036854775807
   2021 	r = x * y
   2022 	if r != 1 {
   2023 		t.Errorf("9223372036854775807 %s 9223372036854775807 = %d, want 1", "*", r)
   2024 	}
   2025 }
   2026 func TestConstFoldint64mod(t *testing.T) {
   2027 	var x, y, r int64
   2028 	x = -9223372036854775808
   2029 	y = -9223372036854775808
   2030 	r = x % y
   2031 	if r != 0 {
   2032 		t.Errorf("-9223372036854775808 %s -9223372036854775808 = %d, want 0", "%", r)
   2033 	}
   2034 	y = -9223372036854775807
   2035 	r = x % y
   2036 	if r != -1 {
   2037 		t.Errorf("-9223372036854775808 %s -9223372036854775807 = %d, want -1", "%", r)
   2038 	}
   2039 	y = -4294967296
   2040 	r = x % y
   2041 	if r != 0 {
   2042 		t.Errorf("-9223372036854775808 %s -4294967296 = %d, want 0", "%", r)
   2043 	}
   2044 	y = -1
   2045 	r = x % y
   2046 	if r != 0 {
   2047 		t.Errorf("-9223372036854775808 %s -1 = %d, want 0", "%", r)
   2048 	}
   2049 	y = 1
   2050 	r = x % y
   2051 	if r != 0 {
   2052 		t.Errorf("-9223372036854775808 %s 1 = %d, want 0", "%", r)
   2053 	}
   2054 	y = 4294967296
   2055 	r = x % y
   2056 	if r != 0 {
   2057 		t.Errorf("-9223372036854775808 %s 4294967296 = %d, want 0", "%", r)
   2058 	}
   2059 	y = 9223372036854775806
   2060 	r = x % y
   2061 	if r != -2 {
   2062 		t.Errorf("-9223372036854775808 %s 9223372036854775806 = %d, want -2", "%", r)
   2063 	}
   2064 	y = 9223372036854775807
   2065 	r = x % y
   2066 	if r != -1 {
   2067 		t.Errorf("-9223372036854775808 %s 9223372036854775807 = %d, want -1", "%", r)
   2068 	}
   2069 	x = -9223372036854775807
   2070 	y = -9223372036854775808
   2071 	r = x % y
   2072 	if r != -9223372036854775807 {
   2073 		t.Errorf("-9223372036854775807 %s -9223372036854775808 = %d, want -9223372036854775807", "%", r)
   2074 	}
   2075 	y = -9223372036854775807
   2076 	r = x % y
   2077 	if r != 0 {
   2078 		t.Errorf("-9223372036854775807 %s -9223372036854775807 = %d, want 0", "%", r)
   2079 	}
   2080 	y = -4294967296
   2081 	r = x % y
   2082 	if r != -4294967295 {
   2083 		t.Errorf("-9223372036854775807 %s -4294967296 = %d, want -4294967295", "%", r)
   2084 	}
   2085 	y = -1
   2086 	r = x % y
   2087 	if r != 0 {
   2088 		t.Errorf("-9223372036854775807 %s -1 = %d, want 0", "%", r)
   2089 	}
   2090 	y = 1
   2091 	r = x % y
   2092 	if r != 0 {
   2093 		t.Errorf("-9223372036854775807 %s 1 = %d, want 0", "%", r)
   2094 	}
   2095 	y = 4294967296
   2096 	r = x % y
   2097 	if r != -4294967295 {
   2098 		t.Errorf("-9223372036854775807 %s 4294967296 = %d, want -4294967295", "%", r)
   2099 	}
   2100 	y = 9223372036854775806
   2101 	r = x % y
   2102 	if r != -1 {
   2103 		t.Errorf("-9223372036854775807 %s 9223372036854775806 = %d, want -1", "%", r)
   2104 	}
   2105 	y = 9223372036854775807
   2106 	r = x % y
   2107 	if r != 0 {
   2108 		t.Errorf("-9223372036854775807 %s 9223372036854775807 = %d, want 0", "%", r)
   2109 	}
   2110 	x = -4294967296
   2111 	y = -9223372036854775808
   2112 	r = x % y
   2113 	if r != -4294967296 {
   2114 		t.Errorf("-4294967296 %s -9223372036854775808 = %d, want -4294967296", "%", r)
   2115 	}
   2116 	y = -9223372036854775807
   2117 	r = x % y
   2118 	if r != -4294967296 {
   2119 		t.Errorf("-4294967296 %s -9223372036854775807 = %d, want -4294967296", "%", r)
   2120 	}
   2121 	y = -4294967296
   2122 	r = x % y
   2123 	if r != 0 {
   2124 		t.Errorf("-4294967296 %s -4294967296 = %d, want 0", "%", r)
   2125 	}
   2126 	y = -1
   2127 	r = x % y
   2128 	if r != 0 {
   2129 		t.Errorf("-4294967296 %s -1 = %d, want 0", "%", r)
   2130 	}
   2131 	y = 1
   2132 	r = x % y
   2133 	if r != 0 {
   2134 		t.Errorf("-4294967296 %s 1 = %d, want 0", "%", r)
   2135 	}
   2136 	y = 4294967296
   2137 	r = x % y
   2138 	if r != 0 {
   2139 		t.Errorf("-4294967296 %s 4294967296 = %d, want 0", "%", r)
   2140 	}
   2141 	y = 9223372036854775806
   2142 	r = x % y
   2143 	if r != -4294967296 {
   2144 		t.Errorf("-4294967296 %s 9223372036854775806 = %d, want -4294967296", "%", r)
   2145 	}
   2146 	y = 9223372036854775807
   2147 	r = x % y
   2148 	if r != -4294967296 {
   2149 		t.Errorf("-4294967296 %s 9223372036854775807 = %d, want -4294967296", "%", r)
   2150 	}
   2151 	x = -1
   2152 	y = -9223372036854775808
   2153 	r = x % y
   2154 	if r != -1 {
   2155 		t.Errorf("-1 %s -9223372036854775808 = %d, want -1", "%", r)
   2156 	}
   2157 	y = -9223372036854775807
   2158 	r = x % y
   2159 	if r != -1 {
   2160 		t.Errorf("-1 %s -9223372036854775807 = %d, want -1", "%", r)
   2161 	}
   2162 	y = -4294967296
   2163 	r = x % y
   2164 	if r != -1 {
   2165 		t.Errorf("-1 %s -4294967296 = %d, want -1", "%", r)
   2166 	}
   2167 	y = -1
   2168 	r = x % y
   2169 	if r != 0 {
   2170 		t.Errorf("-1 %s -1 = %d, want 0", "%", r)
   2171 	}
   2172 	y = 1
   2173 	r = x % y
   2174 	if r != 0 {
   2175 		t.Errorf("-1 %s 1 = %d, want 0", "%", r)
   2176 	}
   2177 	y = 4294967296
   2178 	r = x % y
   2179 	if r != -1 {
   2180 		t.Errorf("-1 %s 4294967296 = %d, want -1", "%", r)
   2181 	}
   2182 	y = 9223372036854775806
   2183 	r = x % y
   2184 	if r != -1 {
   2185 		t.Errorf("-1 %s 9223372036854775806 = %d, want -1", "%", r)
   2186 	}
   2187 	y = 9223372036854775807
   2188 	r = x % y
   2189 	if r != -1 {
   2190 		t.Errorf("-1 %s 9223372036854775807 = %d, want -1", "%", r)
   2191 	}
   2192 	x = 0
   2193 	y = -9223372036854775808
   2194 	r = x % y
   2195 	if r != 0 {
   2196 		t.Errorf("0 %s -9223372036854775808 = %d, want 0", "%", r)
   2197 	}
   2198 	y = -9223372036854775807
   2199 	r = x % y
   2200 	if r != 0 {
   2201 		t.Errorf("0 %s -9223372036854775807 = %d, want 0", "%", r)
   2202 	}
   2203 	y = -4294967296
   2204 	r = x % y
   2205 	if r != 0 {
   2206 		t.Errorf("0 %s -4294967296 = %d, want 0", "%", r)
   2207 	}
   2208 	y = -1
   2209 	r = x % y
   2210 	if r != 0 {
   2211 		t.Errorf("0 %s -1 = %d, want 0", "%", r)
   2212 	}
   2213 	y = 1
   2214 	r = x % y
   2215 	if r != 0 {
   2216 		t.Errorf("0 %s 1 = %d, want 0", "%", r)
   2217 	}
   2218 	y = 4294967296
   2219 	r = x % y
   2220 	if r != 0 {
   2221 		t.Errorf("0 %s 4294967296 = %d, want 0", "%", r)
   2222 	}
   2223 	y = 9223372036854775806
   2224 	r = x % y
   2225 	if r != 0 {
   2226 		t.Errorf("0 %s 9223372036854775806 = %d, want 0", "%", r)
   2227 	}
   2228 	y = 9223372036854775807
   2229 	r = x % y
   2230 	if r != 0 {
   2231 		t.Errorf("0 %s 9223372036854775807 = %d, want 0", "%", r)
   2232 	}
   2233 	x = 1
   2234 	y = -9223372036854775808
   2235 	r = x % y
   2236 	if r != 1 {
   2237 		t.Errorf("1 %s -9223372036854775808 = %d, want 1", "%", r)
   2238 	}
   2239 	y = -9223372036854775807
   2240 	r = x % y
   2241 	if r != 1 {
   2242 		t.Errorf("1 %s -9223372036854775807 = %d, want 1", "%", r)
   2243 	}
   2244 	y = -4294967296
   2245 	r = x % y
   2246 	if r != 1 {
   2247 		t.Errorf("1 %s -4294967296 = %d, want 1", "%", r)
   2248 	}
   2249 	y = -1
   2250 	r = x % y
   2251 	if r != 0 {
   2252 		t.Errorf("1 %s -1 = %d, want 0", "%", r)
   2253 	}
   2254 	y = 1
   2255 	r = x % y
   2256 	if r != 0 {
   2257 		t.Errorf("1 %s 1 = %d, want 0", "%", r)
   2258 	}
   2259 	y = 4294967296
   2260 	r = x % y
   2261 	if r != 1 {
   2262 		t.Errorf("1 %s 4294967296 = %d, want 1", "%", r)
   2263 	}
   2264 	y = 9223372036854775806
   2265 	r = x % y
   2266 	if r != 1 {
   2267 		t.Errorf("1 %s 9223372036854775806 = %d, want 1", "%", r)
   2268 	}
   2269 	y = 9223372036854775807
   2270 	r = x % y
   2271 	if r != 1 {
   2272 		t.Errorf("1 %s 9223372036854775807 = %d, want 1", "%", r)
   2273 	}
   2274 	x = 4294967296
   2275 	y = -9223372036854775808
   2276 	r = x % y
   2277 	if r != 4294967296 {
   2278 		t.Errorf("4294967296 %s -9223372036854775808 = %d, want 4294967296", "%", r)
   2279 	}
   2280 	y = -9223372036854775807
   2281 	r = x % y
   2282 	if r != 4294967296 {
   2283 		t.Errorf("4294967296 %s -9223372036854775807 = %d, want 4294967296", "%", r)
   2284 	}
   2285 	y = -4294967296
   2286 	r = x % y
   2287 	if r != 0 {
   2288 		t.Errorf("4294967296 %s -4294967296 = %d, want 0", "%", r)
   2289 	}
   2290 	y = -1
   2291 	r = x % y
   2292 	if r != 0 {
   2293 		t.Errorf("4294967296 %s -1 = %d, want 0", "%", r)
   2294 	}
   2295 	y = 1
   2296 	r = x % y
   2297 	if r != 0 {
   2298 		t.Errorf("4294967296 %s 1 = %d, want 0", "%", r)
   2299 	}
   2300 	y = 4294967296
   2301 	r = x % y
   2302 	if r != 0 {
   2303 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", "%", r)
   2304 	}
   2305 	y = 9223372036854775806
   2306 	r = x % y
   2307 	if r != 4294967296 {
   2308 		t.Errorf("4294967296 %s 9223372036854775806 = %d, want 4294967296", "%", r)
   2309 	}
   2310 	y = 9223372036854775807
   2311 	r = x % y
   2312 	if r != 4294967296 {
   2313 		t.Errorf("4294967296 %s 9223372036854775807 = %d, want 4294967296", "%", r)
   2314 	}
   2315 	x = 9223372036854775806
   2316 	y = -9223372036854775808
   2317 	r = x % y
   2318 	if r != 9223372036854775806 {
   2319 		t.Errorf("9223372036854775806 %s -9223372036854775808 = %d, want 9223372036854775806", "%", r)
   2320 	}
   2321 	y = -9223372036854775807
   2322 	r = x % y
   2323 	if r != 9223372036854775806 {
   2324 		t.Errorf("9223372036854775806 %s -9223372036854775807 = %d, want 9223372036854775806", "%", r)
   2325 	}
   2326 	y = -4294967296
   2327 	r = x % y
   2328 	if r != 4294967294 {
   2329 		t.Errorf("9223372036854775806 %s -4294967296 = %d, want 4294967294", "%", r)
   2330 	}
   2331 	y = -1
   2332 	r = x % y
   2333 	if r != 0 {
   2334 		t.Errorf("9223372036854775806 %s -1 = %d, want 0", "%", r)
   2335 	}
   2336 	y = 1
   2337 	r = x % y
   2338 	if r != 0 {
   2339 		t.Errorf("9223372036854775806 %s 1 = %d, want 0", "%", r)
   2340 	}
   2341 	y = 4294967296
   2342 	r = x % y
   2343 	if r != 4294967294 {
   2344 		t.Errorf("9223372036854775806 %s 4294967296 = %d, want 4294967294", "%", r)
   2345 	}
   2346 	y = 9223372036854775806
   2347 	r = x % y
   2348 	if r != 0 {
   2349 		t.Errorf("9223372036854775806 %s 9223372036854775806 = %d, want 0", "%", r)
   2350 	}
   2351 	y = 9223372036854775807
   2352 	r = x % y
   2353 	if r != 9223372036854775806 {
   2354 		t.Errorf("9223372036854775806 %s 9223372036854775807 = %d, want 9223372036854775806", "%", r)
   2355 	}
   2356 	x = 9223372036854775807
   2357 	y = -9223372036854775808
   2358 	r = x % y
   2359 	if r != 9223372036854775807 {
   2360 		t.Errorf("9223372036854775807 %s -9223372036854775808 = %d, want 9223372036854775807", "%", r)
   2361 	}
   2362 	y = -9223372036854775807
   2363 	r = x % y
   2364 	if r != 0 {
   2365 		t.Errorf("9223372036854775807 %s -9223372036854775807 = %d, want 0", "%", r)
   2366 	}
   2367 	y = -4294967296
   2368 	r = x % y
   2369 	if r != 4294967295 {
   2370 		t.Errorf("9223372036854775807 %s -4294967296 = %d, want 4294967295", "%", r)
   2371 	}
   2372 	y = -1
   2373 	r = x % y
   2374 	if r != 0 {
   2375 		t.Errorf("9223372036854775807 %s -1 = %d, want 0", "%", r)
   2376 	}
   2377 	y = 1
   2378 	r = x % y
   2379 	if r != 0 {
   2380 		t.Errorf("9223372036854775807 %s 1 = %d, want 0", "%", r)
   2381 	}
   2382 	y = 4294967296
   2383 	r = x % y
   2384 	if r != 4294967295 {
   2385 		t.Errorf("9223372036854775807 %s 4294967296 = %d, want 4294967295", "%", r)
   2386 	}
   2387 	y = 9223372036854775806
   2388 	r = x % y
   2389 	if r != 1 {
   2390 		t.Errorf("9223372036854775807 %s 9223372036854775806 = %d, want 1", "%", r)
   2391 	}
   2392 	y = 9223372036854775807
   2393 	r = x % y
   2394 	if r != 0 {
   2395 		t.Errorf("9223372036854775807 %s 9223372036854775807 = %d, want 0", "%", r)
   2396 	}
   2397 }
   2398 func TestConstFolduint32add(t *testing.T) {
   2399 	var x, y, r uint32
   2400 	x = 0
   2401 	y = 0
   2402 	r = x + y
   2403 	if r != 0 {
   2404 		t.Errorf("0 %s 0 = %d, want 0", "+", r)
   2405 	}
   2406 	y = 1
   2407 	r = x + y
   2408 	if r != 1 {
   2409 		t.Errorf("0 %s 1 = %d, want 1", "+", r)
   2410 	}
   2411 	y = 4294967295
   2412 	r = x + y
   2413 	if r != 4294967295 {
   2414 		t.Errorf("0 %s 4294967295 = %d, want 4294967295", "+", r)
   2415 	}
   2416 	x = 1
   2417 	y = 0
   2418 	r = x + y
   2419 	if r != 1 {
   2420 		t.Errorf("1 %s 0 = %d, want 1", "+", r)
   2421 	}
   2422 	y = 1
   2423 	r = x + y
   2424 	if r != 2 {
   2425 		t.Errorf("1 %s 1 = %d, want 2", "+", r)
   2426 	}
   2427 	y = 4294967295
   2428 	r = x + y
   2429 	if r != 0 {
   2430 		t.Errorf("1 %s 4294967295 = %d, want 0", "+", r)
   2431 	}
   2432 	x = 4294967295
   2433 	y = 0
   2434 	r = x + y
   2435 	if r != 4294967295 {
   2436 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", "+", r)
   2437 	}
   2438 	y = 1
   2439 	r = x + y
   2440 	if r != 0 {
   2441 		t.Errorf("4294967295 %s 1 = %d, want 0", "+", r)
   2442 	}
   2443 	y = 4294967295
   2444 	r = x + y
   2445 	if r != 4294967294 {
   2446 		t.Errorf("4294967295 %s 4294967295 = %d, want 4294967294", "+", r)
   2447 	}
   2448 }
   2449 func TestConstFolduint32sub(t *testing.T) {
   2450 	var x, y, r uint32
   2451 	x = 0
   2452 	y = 0
   2453 	r = x - y
   2454 	if r != 0 {
   2455 		t.Errorf("0 %s 0 = %d, want 0", "-", r)
   2456 	}
   2457 	y = 1
   2458 	r = x - y
   2459 	if r != 4294967295 {
   2460 		t.Errorf("0 %s 1 = %d, want 4294967295", "-", r)
   2461 	}
   2462 	y = 4294967295
   2463 	r = x - y
   2464 	if r != 1 {
   2465 		t.Errorf("0 %s 4294967295 = %d, want 1", "-", r)
   2466 	}
   2467 	x = 1
   2468 	y = 0
   2469 	r = x - y
   2470 	if r != 1 {
   2471 		t.Errorf("1 %s 0 = %d, want 1", "-", r)
   2472 	}
   2473 	y = 1
   2474 	r = x - y
   2475 	if r != 0 {
   2476 		t.Errorf("1 %s 1 = %d, want 0", "-", r)
   2477 	}
   2478 	y = 4294967295
   2479 	r = x - y
   2480 	if r != 2 {
   2481 		t.Errorf("1 %s 4294967295 = %d, want 2", "-", r)
   2482 	}
   2483 	x = 4294967295
   2484 	y = 0
   2485 	r = x - y
   2486 	if r != 4294967295 {
   2487 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", "-", r)
   2488 	}
   2489 	y = 1
   2490 	r = x - y
   2491 	if r != 4294967294 {
   2492 		t.Errorf("4294967295 %s 1 = %d, want 4294967294", "-", r)
   2493 	}
   2494 	y = 4294967295
   2495 	r = x - y
   2496 	if r != 0 {
   2497 		t.Errorf("4294967295 %s 4294967295 = %d, want 0", "-", r)
   2498 	}
   2499 }
   2500 func TestConstFolduint32div(t *testing.T) {
   2501 	var x, y, r uint32
   2502 	x = 0
   2503 	y = 1
   2504 	r = x / y
   2505 	if r != 0 {
   2506 		t.Errorf("0 %s 1 = %d, want 0", "/", r)
   2507 	}
   2508 	y = 4294967295
   2509 	r = x / y
   2510 	if r != 0 {
   2511 		t.Errorf("0 %s 4294967295 = %d, want 0", "/", r)
   2512 	}
   2513 	x = 1
   2514 	y = 1
   2515 	r = x / y
   2516 	if r != 1 {
   2517 		t.Errorf("1 %s 1 = %d, want 1", "/", r)
   2518 	}
   2519 	y = 4294967295
   2520 	r = x / y
   2521 	if r != 0 {
   2522 		t.Errorf("1 %s 4294967295 = %d, want 0", "/", r)
   2523 	}
   2524 	x = 4294967295
   2525 	y = 1
   2526 	r = x / y
   2527 	if r != 4294967295 {
   2528 		t.Errorf("4294967295 %s 1 = %d, want 4294967295", "/", r)
   2529 	}
   2530 	y = 4294967295
   2531 	r = x / y
   2532 	if r != 1 {
   2533 		t.Errorf("4294967295 %s 4294967295 = %d, want 1", "/", r)
   2534 	}
   2535 }
   2536 func TestConstFolduint32mul(t *testing.T) {
   2537 	var x, y, r uint32
   2538 	x = 0
   2539 	y = 0
   2540 	r = x * y
   2541 	if r != 0 {
   2542 		t.Errorf("0 %s 0 = %d, want 0", "*", r)
   2543 	}
   2544 	y = 1
   2545 	r = x * y
   2546 	if r != 0 {
   2547 		t.Errorf("0 %s 1 = %d, want 0", "*", r)
   2548 	}
   2549 	y = 4294967295
   2550 	r = x * y
   2551 	if r != 0 {
   2552 		t.Errorf("0 %s 4294967295 = %d, want 0", "*", r)
   2553 	}
   2554 	x = 1
   2555 	y = 0
   2556 	r = x * y
   2557 	if r != 0 {
   2558 		t.Errorf("1 %s 0 = %d, want 0", "*", r)
   2559 	}
   2560 	y = 1
   2561 	r = x * y
   2562 	if r != 1 {
   2563 		t.Errorf("1 %s 1 = %d, want 1", "*", r)
   2564 	}
   2565 	y = 4294967295
   2566 	r = x * y
   2567 	if r != 4294967295 {
   2568 		t.Errorf("1 %s 4294967295 = %d, want 4294967295", "*", r)
   2569 	}
   2570 	x = 4294967295
   2571 	y = 0
   2572 	r = x * y
   2573 	if r != 0 {
   2574 		t.Errorf("4294967295 %s 0 = %d, want 0", "*", r)
   2575 	}
   2576 	y = 1
   2577 	r = x * y
   2578 	if r != 4294967295 {
   2579 		t.Errorf("4294967295 %s 1 = %d, want 4294967295", "*", r)
   2580 	}
   2581 	y = 4294967295
   2582 	r = x * y
   2583 	if r != 1 {
   2584 		t.Errorf("4294967295 %s 4294967295 = %d, want 1", "*", r)
   2585 	}
   2586 }
   2587 func TestConstFolduint32mod(t *testing.T) {
   2588 	var x, y, r uint32
   2589 	x = 0
   2590 	y = 1
   2591 	r = x % y
   2592 	if r != 0 {
   2593 		t.Errorf("0 %s 1 = %d, want 0", "%", r)
   2594 	}
   2595 	y = 4294967295
   2596 	r = x % y
   2597 	if r != 0 {
   2598 		t.Errorf("0 %s 4294967295 = %d, want 0", "%", r)
   2599 	}
   2600 	x = 1
   2601 	y = 1
   2602 	r = x % y
   2603 	if r != 0 {
   2604 		t.Errorf("1 %s 1 = %d, want 0", "%", r)
   2605 	}
   2606 	y = 4294967295
   2607 	r = x % y
   2608 	if r != 1 {
   2609 		t.Errorf("1 %s 4294967295 = %d, want 1", "%", r)
   2610 	}
   2611 	x = 4294967295
   2612 	y = 1
   2613 	r = x % y
   2614 	if r != 0 {
   2615 		t.Errorf("4294967295 %s 1 = %d, want 0", "%", r)
   2616 	}
   2617 	y = 4294967295
   2618 	r = x % y
   2619 	if r != 0 {
   2620 		t.Errorf("4294967295 %s 4294967295 = %d, want 0", "%", r)
   2621 	}
   2622 }
   2623 func TestConstFoldint32add(t *testing.T) {
   2624 	var x, y, r int32
   2625 	x = -2147483648
   2626 	y = -2147483648
   2627 	r = x + y
   2628 	if r != 0 {
   2629 		t.Errorf("-2147483648 %s -2147483648 = %d, want 0", "+", r)
   2630 	}
   2631 	y = -2147483647
   2632 	r = x + y
   2633 	if r != 1 {
   2634 		t.Errorf("-2147483648 %s -2147483647 = %d, want 1", "+", r)
   2635 	}
   2636 	y = -1
   2637 	r = x + y
   2638 	if r != 2147483647 {
   2639 		t.Errorf("-2147483648 %s -1 = %d, want 2147483647", "+", r)
   2640 	}
   2641 	y = 0
   2642 	r = x + y
   2643 	if r != -2147483648 {
   2644 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "+", r)
   2645 	}
   2646 	y = 1
   2647 	r = x + y
   2648 	if r != -2147483647 {
   2649 		t.Errorf("-2147483648 %s 1 = %d, want -2147483647", "+", r)
   2650 	}
   2651 	y = 2147483647
   2652 	r = x + y
   2653 	if r != -1 {
   2654 		t.Errorf("-2147483648 %s 2147483647 = %d, want -1", "+", r)
   2655 	}
   2656 	x = -2147483647
   2657 	y = -2147483648
   2658 	r = x + y
   2659 	if r != 1 {
   2660 		t.Errorf("-2147483647 %s -2147483648 = %d, want 1", "+", r)
   2661 	}
   2662 	y = -2147483647
   2663 	r = x + y
   2664 	if r != 2 {
   2665 		t.Errorf("-2147483647 %s -2147483647 = %d, want 2", "+", r)
   2666 	}
   2667 	y = -1
   2668 	r = x + y
   2669 	if r != -2147483648 {
   2670 		t.Errorf("-2147483647 %s -1 = %d, want -2147483648", "+", r)
   2671 	}
   2672 	y = 0
   2673 	r = x + y
   2674 	if r != -2147483647 {
   2675 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "+", r)
   2676 	}
   2677 	y = 1
   2678 	r = x + y
   2679 	if r != -2147483646 {
   2680 		t.Errorf("-2147483647 %s 1 = %d, want -2147483646", "+", r)
   2681 	}
   2682 	y = 2147483647
   2683 	r = x + y
   2684 	if r != 0 {
   2685 		t.Errorf("-2147483647 %s 2147483647 = %d, want 0", "+", r)
   2686 	}
   2687 	x = -1
   2688 	y = -2147483648
   2689 	r = x + y
   2690 	if r != 2147483647 {
   2691 		t.Errorf("-1 %s -2147483648 = %d, want 2147483647", "+", r)
   2692 	}
   2693 	y = -2147483647
   2694 	r = x + y
   2695 	if r != -2147483648 {
   2696 		t.Errorf("-1 %s -2147483647 = %d, want -2147483648", "+", r)
   2697 	}
   2698 	y = -1
   2699 	r = x + y
   2700 	if r != -2 {
   2701 		t.Errorf("-1 %s -1 = %d, want -2", "+", r)
   2702 	}
   2703 	y = 0
   2704 	r = x + y
   2705 	if r != -1 {
   2706 		t.Errorf("-1 %s 0 = %d, want -1", "+", r)
   2707 	}
   2708 	y = 1
   2709 	r = x + y
   2710 	if r != 0 {
   2711 		t.Errorf("-1 %s 1 = %d, want 0", "+", r)
   2712 	}
   2713 	y = 2147483647
   2714 	r = x + y
   2715 	if r != 2147483646 {
   2716 		t.Errorf("-1 %s 2147483647 = %d, want 2147483646", "+", r)
   2717 	}
   2718 	x = 0
   2719 	y = -2147483648
   2720 	r = x + y
   2721 	if r != -2147483648 {
   2722 		t.Errorf("0 %s -2147483648 = %d, want -2147483648", "+", r)
   2723 	}
   2724 	y = -2147483647
   2725 	r = x + y
   2726 	if r != -2147483647 {
   2727 		t.Errorf("0 %s -2147483647 = %d, want -2147483647", "+", r)
   2728 	}
   2729 	y = -1
   2730 	r = x + y
   2731 	if r != -1 {
   2732 		t.Errorf("0 %s -1 = %d, want -1", "+", r)
   2733 	}
   2734 	y = 0
   2735 	r = x + y
   2736 	if r != 0 {
   2737 		t.Errorf("0 %s 0 = %d, want 0", "+", r)
   2738 	}
   2739 	y = 1
   2740 	r = x + y
   2741 	if r != 1 {
   2742 		t.Errorf("0 %s 1 = %d, want 1", "+", r)
   2743 	}
   2744 	y = 2147483647
   2745 	r = x + y
   2746 	if r != 2147483647 {
   2747 		t.Errorf("0 %s 2147483647 = %d, want 2147483647", "+", r)
   2748 	}
   2749 	x = 1
   2750 	y = -2147483648
   2751 	r = x + y
   2752 	if r != -2147483647 {
   2753 		t.Errorf("1 %s -2147483648 = %d, want -2147483647", "+", r)
   2754 	}
   2755 	y = -2147483647
   2756 	r = x + y
   2757 	if r != -2147483646 {
   2758 		t.Errorf("1 %s -2147483647 = %d, want -2147483646", "+", r)
   2759 	}
   2760 	y = -1
   2761 	r = x + y
   2762 	if r != 0 {
   2763 		t.Errorf("1 %s -1 = %d, want 0", "+", r)
   2764 	}
   2765 	y = 0
   2766 	r = x + y
   2767 	if r != 1 {
   2768 		t.Errorf("1 %s 0 = %d, want 1", "+", r)
   2769 	}
   2770 	y = 1
   2771 	r = x + y
   2772 	if r != 2 {
   2773 		t.Errorf("1 %s 1 = %d, want 2", "+", r)
   2774 	}
   2775 	y = 2147483647
   2776 	r = x + y
   2777 	if r != -2147483648 {
   2778 		t.Errorf("1 %s 2147483647 = %d, want -2147483648", "+", r)
   2779 	}
   2780 	x = 2147483647
   2781 	y = -2147483648
   2782 	r = x + y
   2783 	if r != -1 {
   2784 		t.Errorf("2147483647 %s -2147483648 = %d, want -1", "+", r)
   2785 	}
   2786 	y = -2147483647
   2787 	r = x + y
   2788 	if r != 0 {
   2789 		t.Errorf("2147483647 %s -2147483647 = %d, want 0", "+", r)
   2790 	}
   2791 	y = -1
   2792 	r = x + y
   2793 	if r != 2147483646 {
   2794 		t.Errorf("2147483647 %s -1 = %d, want 2147483646", "+", r)
   2795 	}
   2796 	y = 0
   2797 	r = x + y
   2798 	if r != 2147483647 {
   2799 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", "+", r)
   2800 	}
   2801 	y = 1
   2802 	r = x + y
   2803 	if r != -2147483648 {
   2804 		t.Errorf("2147483647 %s 1 = %d, want -2147483648", "+", r)
   2805 	}
   2806 	y = 2147483647
   2807 	r = x + y
   2808 	if r != -2 {
   2809 		t.Errorf("2147483647 %s 2147483647 = %d, want -2", "+", r)
   2810 	}
   2811 }
   2812 func TestConstFoldint32sub(t *testing.T) {
   2813 	var x, y, r int32
   2814 	x = -2147483648
   2815 	y = -2147483648
   2816 	r = x - y
   2817 	if r != 0 {
   2818 		t.Errorf("-2147483648 %s -2147483648 = %d, want 0", "-", r)
   2819 	}
   2820 	y = -2147483647
   2821 	r = x - y
   2822 	if r != -1 {
   2823 		t.Errorf("-2147483648 %s -2147483647 = %d, want -1", "-", r)
   2824 	}
   2825 	y = -1
   2826 	r = x - y
   2827 	if r != -2147483647 {
   2828 		t.Errorf("-2147483648 %s -1 = %d, want -2147483647", "-", r)
   2829 	}
   2830 	y = 0
   2831 	r = x - y
   2832 	if r != -2147483648 {
   2833 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "-", r)
   2834 	}
   2835 	y = 1
   2836 	r = x - y
   2837 	if r != 2147483647 {
   2838 		t.Errorf("-2147483648 %s 1 = %d, want 2147483647", "-", r)
   2839 	}
   2840 	y = 2147483647
   2841 	r = x - y
   2842 	if r != 1 {
   2843 		t.Errorf("-2147483648 %s 2147483647 = %d, want 1", "-", r)
   2844 	}
   2845 	x = -2147483647
   2846 	y = -2147483648
   2847 	r = x - y
   2848 	if r != 1 {
   2849 		t.Errorf("-2147483647 %s -2147483648 = %d, want 1", "-", r)
   2850 	}
   2851 	y = -2147483647
   2852 	r = x - y
   2853 	if r != 0 {
   2854 		t.Errorf("-2147483647 %s -2147483647 = %d, want 0", "-", r)
   2855 	}
   2856 	y = -1
   2857 	r = x - y
   2858 	if r != -2147483646 {
   2859 		t.Errorf("-2147483647 %s -1 = %d, want -2147483646", "-", r)
   2860 	}
   2861 	y = 0
   2862 	r = x - y
   2863 	if r != -2147483647 {
   2864 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "-", r)
   2865 	}
   2866 	y = 1
   2867 	r = x - y
   2868 	if r != -2147483648 {
   2869 		t.Errorf("-2147483647 %s 1 = %d, want -2147483648", "-", r)
   2870 	}
   2871 	y = 2147483647
   2872 	r = x - y
   2873 	if r != 2 {
   2874 		t.Errorf("-2147483647 %s 2147483647 = %d, want 2", "-", r)
   2875 	}
   2876 	x = -1
   2877 	y = -2147483648
   2878 	r = x - y
   2879 	if r != 2147483647 {
   2880 		t.Errorf("-1 %s -2147483648 = %d, want 2147483647", "-", r)
   2881 	}
   2882 	y = -2147483647
   2883 	r = x - y
   2884 	if r != 2147483646 {
   2885 		t.Errorf("-1 %s -2147483647 = %d, want 2147483646", "-", r)
   2886 	}
   2887 	y = -1
   2888 	r = x - y
   2889 	if r != 0 {
   2890 		t.Errorf("-1 %s -1 = %d, want 0", "-", r)
   2891 	}
   2892 	y = 0
   2893 	r = x - y
   2894 	if r != -1 {
   2895 		t.Errorf("-1 %s 0 = %d, want -1", "-", r)
   2896 	}
   2897 	y = 1
   2898 	r = x - y
   2899 	if r != -2 {
   2900 		t.Errorf("-1 %s 1 = %d, want -2", "-", r)
   2901 	}
   2902 	y = 2147483647
   2903 	r = x - y
   2904 	if r != -2147483648 {
   2905 		t.Errorf("-1 %s 2147483647 = %d, want -2147483648", "-", r)
   2906 	}
   2907 	x = 0
   2908 	y = -2147483648
   2909 	r = x - y
   2910 	if r != -2147483648 {
   2911 		t.Errorf("0 %s -2147483648 = %d, want -2147483648", "-", r)
   2912 	}
   2913 	y = -2147483647
   2914 	r = x - y
   2915 	if r != 2147483647 {
   2916 		t.Errorf("0 %s -2147483647 = %d, want 2147483647", "-", r)
   2917 	}
   2918 	y = -1
   2919 	r = x - y
   2920 	if r != 1 {
   2921 		t.Errorf("0 %s -1 = %d, want 1", "-", r)
   2922 	}
   2923 	y = 0
   2924 	r = x - y
   2925 	if r != 0 {
   2926 		t.Errorf("0 %s 0 = %d, want 0", "-", r)
   2927 	}
   2928 	y = 1
   2929 	r = x - y
   2930 	if r != -1 {
   2931 		t.Errorf("0 %s 1 = %d, want -1", "-", r)
   2932 	}
   2933 	y = 2147483647
   2934 	r = x - y
   2935 	if r != -2147483647 {
   2936 		t.Errorf("0 %s 2147483647 = %d, want -2147483647", "-", r)
   2937 	}
   2938 	x = 1
   2939 	y = -2147483648
   2940 	r = x - y
   2941 	if r != -2147483647 {
   2942 		t.Errorf("1 %s -2147483648 = %d, want -2147483647", "-", r)
   2943 	}
   2944 	y = -2147483647
   2945 	r = x - y
   2946 	if r != -2147483648 {
   2947 		t.Errorf("1 %s -2147483647 = %d, want -2147483648", "-", r)
   2948 	}
   2949 	y = -1
   2950 	r = x - y
   2951 	if r != 2 {
   2952 		t.Errorf("1 %s -1 = %d, want 2", "-", r)
   2953 	}
   2954 	y = 0
   2955 	r = x - y
   2956 	if r != 1 {
   2957 		t.Errorf("1 %s 0 = %d, want 1", "-", r)
   2958 	}
   2959 	y = 1
   2960 	r = x - y
   2961 	if r != 0 {
   2962 		t.Errorf("1 %s 1 = %d, want 0", "-", r)
   2963 	}
   2964 	y = 2147483647
   2965 	r = x - y
   2966 	if r != -2147483646 {
   2967 		t.Errorf("1 %s 2147483647 = %d, want -2147483646", "-", r)
   2968 	}
   2969 	x = 2147483647
   2970 	y = -2147483648
   2971 	r = x - y
   2972 	if r != -1 {
   2973 		t.Errorf("2147483647 %s -2147483648 = %d, want -1", "-", r)
   2974 	}
   2975 	y = -2147483647
   2976 	r = x - y
   2977 	if r != -2 {
   2978 		t.Errorf("2147483647 %s -2147483647 = %d, want -2", "-", r)
   2979 	}
   2980 	y = -1
   2981 	r = x - y
   2982 	if r != -2147483648 {
   2983 		t.Errorf("2147483647 %s -1 = %d, want -2147483648", "-", r)
   2984 	}
   2985 	y = 0
   2986 	r = x - y
   2987 	if r != 2147483647 {
   2988 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", "-", r)
   2989 	}
   2990 	y = 1
   2991 	r = x - y
   2992 	if r != 2147483646 {
   2993 		t.Errorf("2147483647 %s 1 = %d, want 2147483646", "-", r)
   2994 	}
   2995 	y = 2147483647
   2996 	r = x - y
   2997 	if r != 0 {
   2998 		t.Errorf("2147483647 %s 2147483647 = %d, want 0", "-", r)
   2999 	}
   3000 }
   3001 func TestConstFoldint32div(t *testing.T) {
   3002 	var x, y, r int32
   3003 	x = -2147483648
   3004 	y = -2147483648
   3005 	r = x / y
   3006 	if r != 1 {
   3007 		t.Errorf("-2147483648 %s -2147483648 = %d, want 1", "/", r)
   3008 	}
   3009 	y = -2147483647
   3010 	r = x / y
   3011 	if r != 1 {
   3012 		t.Errorf("-2147483648 %s -2147483647 = %d, want 1", "/", r)
   3013 	}
   3014 	y = -1
   3015 	r = x / y
   3016 	if r != -2147483648 {
   3017 		t.Errorf("-2147483648 %s -1 = %d, want -2147483648", "/", r)
   3018 	}
   3019 	y = 1
   3020 	r = x / y
   3021 	if r != -2147483648 {
   3022 		t.Errorf("-2147483648 %s 1 = %d, want -2147483648", "/", r)
   3023 	}
   3024 	y = 2147483647
   3025 	r = x / y
   3026 	if r != -1 {
   3027 		t.Errorf("-2147483648 %s 2147483647 = %d, want -1", "/", r)
   3028 	}
   3029 	x = -2147483647
   3030 	y = -2147483648
   3031 	r = x / y
   3032 	if r != 0 {
   3033 		t.Errorf("-2147483647 %s -2147483648 = %d, want 0", "/", r)
   3034 	}
   3035 	y = -2147483647
   3036 	r = x / y
   3037 	if r != 1 {
   3038 		t.Errorf("-2147483647 %s -2147483647 = %d, want 1", "/", r)
   3039 	}
   3040 	y = -1
   3041 	r = x / y
   3042 	if r != 2147483647 {
   3043 		t.Errorf("-2147483647 %s -1 = %d, want 2147483647", "/", r)
   3044 	}
   3045 	y = 1
   3046 	r = x / y
   3047 	if r != -2147483647 {
   3048 		t.Errorf("-2147483647 %s 1 = %d, want -2147483647", "/", r)
   3049 	}
   3050 	y = 2147483647
   3051 	r = x / y
   3052 	if r != -1 {
   3053 		t.Errorf("-2147483647 %s 2147483647 = %d, want -1", "/", r)
   3054 	}
   3055 	x = -1
   3056 	y = -2147483648
   3057 	r = x / y
   3058 	if r != 0 {
   3059 		t.Errorf("-1 %s -2147483648 = %d, want 0", "/", r)
   3060 	}
   3061 	y = -2147483647
   3062 	r = x / y
   3063 	if r != 0 {
   3064 		t.Errorf("-1 %s -2147483647 = %d, want 0", "/", r)
   3065 	}
   3066 	y = -1
   3067 	r = x / y
   3068 	if r != 1 {
   3069 		t.Errorf("-1 %s -1 = %d, want 1", "/", r)
   3070 	}
   3071 	y = 1
   3072 	r = x / y
   3073 	if r != -1 {
   3074 		t.Errorf("-1 %s 1 = %d, want -1", "/", r)
   3075 	}
   3076 	y = 2147483647
   3077 	r = x / y
   3078 	if r != 0 {
   3079 		t.Errorf("-1 %s 2147483647 = %d, want 0", "/", r)
   3080 	}
   3081 	x = 0
   3082 	y = -2147483648
   3083 	r = x / y
   3084 	if r != 0 {
   3085 		t.Errorf("0 %s -2147483648 = %d, want 0", "/", r)
   3086 	}
   3087 	y = -2147483647
   3088 	r = x / y
   3089 	if r != 0 {
   3090 		t.Errorf("0 %s -2147483647 = %d, want 0", "/", r)
   3091 	}
   3092 	y = -1
   3093 	r = x / y
   3094 	if r != 0 {
   3095 		t.Errorf("0 %s -1 = %d, want 0", "/", r)
   3096 	}
   3097 	y = 1
   3098 	r = x / y
   3099 	if r != 0 {
   3100 		t.Errorf("0 %s 1 = %d, want 0", "/", r)
   3101 	}
   3102 	y = 2147483647
   3103 	r = x / y
   3104 	if r != 0 {
   3105 		t.Errorf("0 %s 2147483647 = %d, want 0", "/", r)
   3106 	}
   3107 	x = 1
   3108 	y = -2147483648
   3109 	r = x / y
   3110 	if r != 0 {
   3111 		t.Errorf("1 %s -2147483648 = %d, want 0", "/", r)
   3112 	}
   3113 	y = -2147483647
   3114 	r = x / y
   3115 	if r != 0 {
   3116 		t.Errorf("1 %s -2147483647 = %d, want 0", "/", r)
   3117 	}
   3118 	y = -1
   3119 	r = x / y
   3120 	if r != -1 {
   3121 		t.Errorf("1 %s -1 = %d, want -1", "/", r)
   3122 	}
   3123 	y = 1
   3124 	r = x / y
   3125 	if r != 1 {
   3126 		t.Errorf("1 %s 1 = %d, want 1", "/", r)
   3127 	}
   3128 	y = 2147483647
   3129 	r = x / y
   3130 	if r != 0 {
   3131 		t.Errorf("1 %s 2147483647 = %d, want 0", "/", r)
   3132 	}
   3133 	x = 2147483647
   3134 	y = -2147483648
   3135 	r = x / y
   3136 	if r != 0 {
   3137 		t.Errorf("2147483647 %s -2147483648 = %d, want 0", "/", r)
   3138 	}
   3139 	y = -2147483647
   3140 	r = x / y
   3141 	if r != -1 {
   3142 		t.Errorf("2147483647 %s -2147483647 = %d, want -1", "/", r)
   3143 	}
   3144 	y = -1
   3145 	r = x / y
   3146 	if r != -2147483647 {
   3147 		t.Errorf("2147483647 %s -1 = %d, want -2147483647", "/", r)
   3148 	}
   3149 	y = 1
   3150 	r = x / y
   3151 	if r != 2147483647 {
   3152 		t.Errorf("2147483647 %s 1 = %d, want 2147483647", "/", r)
   3153 	}
   3154 	y = 2147483647
   3155 	r = x / y
   3156 	if r != 1 {
   3157 		t.Errorf("2147483647 %s 2147483647 = %d, want 1", "/", r)
   3158 	}
   3159 }
   3160 func TestConstFoldint32mul(t *testing.T) {
   3161 	var x, y, r int32
   3162 	x = -2147483648
   3163 	y = -2147483648
   3164 	r = x * y
   3165 	if r != 0 {
   3166 		t.Errorf("-2147483648 %s -2147483648 = %d, want 0", "*", r)
   3167 	}
   3168 	y = -2147483647
   3169 	r = x * y
   3170 	if r != -2147483648 {
   3171 		t.Errorf("-2147483648 %s -2147483647 = %d, want -2147483648", "*", r)
   3172 	}
   3173 	y = -1
   3174 	r = x * y
   3175 	if r != -2147483648 {
   3176 		t.Errorf("-2147483648 %s -1 = %d, want -2147483648", "*", r)
   3177 	}
   3178 	y = 0
   3179 	r = x * y
   3180 	if r != 0 {
   3181 		t.Errorf("-2147483648 %s 0 = %d, want 0", "*", r)
   3182 	}
   3183 	y = 1
   3184 	r = x * y
   3185 	if r != -2147483648 {
   3186 		t.Errorf("-2147483648 %s 1 = %d, want -2147483648", "*", r)
   3187 	}
   3188 	y = 2147483647
   3189 	r = x * y
   3190 	if r != -2147483648 {
   3191 		t.Errorf("-2147483648 %s 2147483647 = %d, want -2147483648", "*", r)
   3192 	}
   3193 	x = -2147483647
   3194 	y = -2147483648
   3195 	r = x * y
   3196 	if r != -2147483648 {
   3197 		t.Errorf("-2147483647 %s -2147483648 = %d, want -2147483648", "*", r)
   3198 	}
   3199 	y = -2147483647
   3200 	r = x * y
   3201 	if r != 1 {
   3202 		t.Errorf("-2147483647 %s -2147483647 = %d, want 1", "*", r)
   3203 	}
   3204 	y = -1
   3205 	r = x * y
   3206 	if r != 2147483647 {
   3207 		t.Errorf("-2147483647 %s -1 = %d, want 2147483647", "*", r)
   3208 	}
   3209 	y = 0
   3210 	r = x * y
   3211 	if r != 0 {
   3212 		t.Errorf("-2147483647 %s 0 = %d, want 0", "*", r)
   3213 	}
   3214 	y = 1
   3215 	r = x * y
   3216 	if r != -2147483647 {
   3217 		t.Errorf("-2147483647 %s 1 = %d, want -2147483647", "*", r)
   3218 	}
   3219 	y = 2147483647
   3220 	r = x * y
   3221 	if r != -1 {
   3222 		t.Errorf("-2147483647 %s 2147483647 = %d, want -1", "*", r)
   3223 	}
   3224 	x = -1
   3225 	y = -2147483648
   3226 	r = x * y
   3227 	if r != -2147483648 {
   3228 		t.Errorf("-1 %s -2147483648 = %d, want -2147483648", "*", r)
   3229 	}
   3230 	y = -2147483647
   3231 	r = x * y
   3232 	if r != 2147483647 {
   3233 		t.Errorf("-1 %s -2147483647 = %d, want 2147483647", "*", r)
   3234 	}
   3235 	y = -1
   3236 	r = x * y
   3237 	if r != 1 {
   3238 		t.Errorf("-1 %s -1 = %d, want 1", "*", r)
   3239 	}
   3240 	y = 0
   3241 	r = x * y
   3242 	if r != 0 {
   3243 		t.Errorf("-1 %s 0 = %d, want 0", "*", r)
   3244 	}
   3245 	y = 1
   3246 	r = x * y
   3247 	if r != -1 {
   3248 		t.Errorf("-1 %s 1 = %d, want -1", "*", r)
   3249 	}
   3250 	y = 2147483647
   3251 	r = x * y
   3252 	if r != -2147483647 {
   3253 		t.Errorf("-1 %s 2147483647 = %d, want -2147483647", "*", r)
   3254 	}
   3255 	x = 0
   3256 	y = -2147483648
   3257 	r = x * y
   3258 	if r != 0 {
   3259 		t.Errorf("0 %s -2147483648 = %d, want 0", "*", r)
   3260 	}
   3261 	y = -2147483647
   3262 	r = x * y
   3263 	if r != 0 {
   3264 		t.Errorf("0 %s -2147483647 = %d, want 0", "*", r)
   3265 	}
   3266 	y = -1
   3267 	r = x * y
   3268 	if r != 0 {
   3269 		t.Errorf("0 %s -1 = %d, want 0", "*", r)
   3270 	}
   3271 	y = 0
   3272 	r = x * y
   3273 	if r != 0 {
   3274 		t.Errorf("0 %s 0 = %d, want 0", "*", r)
   3275 	}
   3276 	y = 1
   3277 	r = x * y
   3278 	if r != 0 {
   3279 		t.Errorf("0 %s 1 = %d, want 0", "*", r)
   3280 	}
   3281 	y = 2147483647
   3282 	r = x * y
   3283 	if r != 0 {
   3284 		t.Errorf("0 %s 2147483647 = %d, want 0", "*", r)
   3285 	}
   3286 	x = 1
   3287 	y = -2147483648
   3288 	r = x * y
   3289 	if r != -2147483648 {
   3290 		t.Errorf("1 %s -2147483648 = %d, want -2147483648", "*", r)
   3291 	}
   3292 	y = -2147483647
   3293 	r = x * y
   3294 	if r != -2147483647 {
   3295 		t.Errorf("1 %s -2147483647 = %d, want -2147483647", "*", r)
   3296 	}
   3297 	y = -1
   3298 	r = x * y
   3299 	if r != -1 {
   3300 		t.Errorf("1 %s -1 = %d, want -1", "*", r)
   3301 	}
   3302 	y = 0
   3303 	r = x * y
   3304 	if r != 0 {
   3305 		t.Errorf("1 %s 0 = %d, want 0", "*", r)
   3306 	}
   3307 	y = 1
   3308 	r = x * y
   3309 	if r != 1 {
   3310 		t.Errorf("1 %s 1 = %d, want 1", "*", r)
   3311 	}
   3312 	y = 2147483647
   3313 	r = x * y
   3314 	if r != 2147483647 {
   3315 		t.Errorf("1 %s 2147483647 = %d, want 2147483647", "*", r)
   3316 	}
   3317 	x = 2147483647
   3318 	y = -2147483648
   3319 	r = x * y
   3320 	if r != -2147483648 {
   3321 		t.Errorf("2147483647 %s -2147483648 = %d, want -2147483648", "*", r)
   3322 	}
   3323 	y = -2147483647
   3324 	r = x * y
   3325 	if r != -1 {
   3326 		t.Errorf("2147483647 %s -2147483647 = %d, want -1", "*", r)
   3327 	}
   3328 	y = -1
   3329 	r = x * y
   3330 	if r != -2147483647 {
   3331 		t.Errorf("2147483647 %s -1 = %d, want -2147483647", "*", r)
   3332 	}
   3333 	y = 0
   3334 	r = x * y
   3335 	if r != 0 {
   3336 		t.Errorf("2147483647 %s 0 = %d, want 0", "*", r)
   3337 	}
   3338 	y = 1
   3339 	r = x * y
   3340 	if r != 2147483647 {
   3341 		t.Errorf("2147483647 %s 1 = %d, want 2147483647", "*", r)
   3342 	}
   3343 	y = 2147483647
   3344 	r = x * y
   3345 	if r != 1 {
   3346 		t.Errorf("2147483647 %s 2147483647 = %d, want 1", "*", r)
   3347 	}
   3348 }
   3349 func TestConstFoldint32mod(t *testing.T) {
   3350 	var x, y, r int32
   3351 	x = -2147483648
   3352 	y = -2147483648
   3353 	r = x % y
   3354 	if r != 0 {
   3355 		t.Errorf("-2147483648 %s -2147483648 = %d, want 0", "%", r)
   3356 	}
   3357 	y = -2147483647
   3358 	r = x % y
   3359 	if r != -1 {
   3360 		t.Errorf("-2147483648 %s -2147483647 = %d, want -1", "%", r)
   3361 	}
   3362 	y = -1
   3363 	r = x % y
   3364 	if r != 0 {
   3365 		t.Errorf("-2147483648 %s -1 = %d, want 0", "%", r)
   3366 	}
   3367 	y = 1
   3368 	r = x % y
   3369 	if r != 0 {
   3370 		t.Errorf("-2147483648 %s 1 = %d, want 0", "%", r)
   3371 	}
   3372 	y = 2147483647
   3373 	r = x % y
   3374 	if r != -1 {
   3375 		t.Errorf("-2147483648 %s 2147483647 = %d, want -1", "%", r)
   3376 	}
   3377 	x = -2147483647
   3378 	y = -2147483648
   3379 	r = x % y
   3380 	if r != -2147483647 {
   3381 		t.Errorf("-2147483647 %s -2147483648 = %d, want -2147483647", "%", r)
   3382 	}
   3383 	y = -2147483647
   3384 	r = x % y
   3385 	if r != 0 {
   3386 		t.Errorf("-2147483647 %s -2147483647 = %d, want 0", "%", r)
   3387 	}
   3388 	y = -1
   3389 	r = x % y
   3390 	if r != 0 {
   3391 		t.Errorf("-2147483647 %s -1 = %d, want 0", "%", r)
   3392 	}
   3393 	y = 1
   3394 	r = x % y
   3395 	if r != 0 {
   3396 		t.Errorf("-2147483647 %s 1 = %d, want 0", "%", r)
   3397 	}
   3398 	y = 2147483647
   3399 	r = x % y
   3400 	if r != 0 {
   3401 		t.Errorf("-2147483647 %s 2147483647 = %d, want 0", "%", r)
   3402 	}
   3403 	x = -1
   3404 	y = -2147483648
   3405 	r = x % y
   3406 	if r != -1 {
   3407 		t.Errorf("-1 %s -2147483648 = %d, want -1", "%", r)
   3408 	}
   3409 	y = -2147483647
   3410 	r = x % y
   3411 	if r != -1 {
   3412 		t.Errorf("-1 %s -2147483647 = %d, want -1", "%", r)
   3413 	}
   3414 	y = -1
   3415 	r = x % y
   3416 	if r != 0 {
   3417 		t.Errorf("-1 %s -1 = %d, want 0", "%", r)
   3418 	}
   3419 	y = 1
   3420 	r = x % y
   3421 	if r != 0 {
   3422 		t.Errorf("-1 %s 1 = %d, want 0", "%", r)
   3423 	}
   3424 	y = 2147483647
   3425 	r = x % y
   3426 	if r != -1 {
   3427 		t.Errorf("-1 %s 2147483647 = %d, want -1", "%", r)
   3428 	}
   3429 	x = 0
   3430 	y = -2147483648
   3431 	r = x % y
   3432 	if r != 0 {
   3433 		t.Errorf("0 %s -2147483648 = %d, want 0", "%", r)
   3434 	}
   3435 	y = -2147483647
   3436 	r = x % y
   3437 	if r != 0 {
   3438 		t.Errorf("0 %s -2147483647 = %d, want 0", "%", r)
   3439 	}
   3440 	y = -1
   3441 	r = x % y
   3442 	if r != 0 {
   3443 		t.Errorf("0 %s -1 = %d, want 0", "%", r)
   3444 	}
   3445 	y = 1
   3446 	r = x % y
   3447 	if r != 0 {
   3448 		t.Errorf("0 %s 1 = %d, want 0", "%", r)
   3449 	}
   3450 	y = 2147483647
   3451 	r = x % y
   3452 	if r != 0 {
   3453 		t.Errorf("0 %s 2147483647 = %d, want 0", "%", r)
   3454 	}
   3455 	x = 1
   3456 	y = -2147483648
   3457 	r = x % y
   3458 	if r != 1 {
   3459 		t.Errorf("1 %s -2147483648 = %d, want 1", "%", r)
   3460 	}
   3461 	y = -2147483647
   3462 	r = x % y
   3463 	if r != 1 {
   3464 		t.Errorf("1 %s -2147483647 = %d, want 1", "%", r)
   3465 	}
   3466 	y = -1
   3467 	r = x % y
   3468 	if r != 0 {
   3469 		t.Errorf("1 %s -1 = %d, want 0", "%", r)
   3470 	}
   3471 	y = 1
   3472 	r = x % y
   3473 	if r != 0 {
   3474 		t.Errorf("1 %s 1 = %d, want 0", "%", r)
   3475 	}
   3476 	y = 2147483647
   3477 	r = x % y
   3478 	if r != 1 {
   3479 		t.Errorf("1 %s 2147483647 = %d, want 1", "%", r)
   3480 	}
   3481 	x = 2147483647
   3482 	y = -2147483648
   3483 	r = x % y
   3484 	if r != 2147483647 {
   3485 		t.Errorf("2147483647 %s -2147483648 = %d, want 2147483647", "%", r)
   3486 	}
   3487 	y = -2147483647
   3488 	r = x % y
   3489 	if r != 0 {
   3490 		t.Errorf("2147483647 %s -2147483647 = %d, want 0", "%", r)
   3491 	}
   3492 	y = -1
   3493 	r = x % y
   3494 	if r != 0 {
   3495 		t.Errorf("2147483647 %s -1 = %d, want 0", "%", r)
   3496 	}
   3497 	y = 1
   3498 	r = x % y
   3499 	if r != 0 {
   3500 		t.Errorf("2147483647 %s 1 = %d, want 0", "%", r)
   3501 	}
   3502 	y = 2147483647
   3503 	r = x % y
   3504 	if r != 0 {
   3505 		t.Errorf("2147483647 %s 2147483647 = %d, want 0", "%", r)
   3506 	}
   3507 }
   3508 func TestConstFolduint16add(t *testing.T) {
   3509 	var x, y, r uint16
   3510 	x = 0
   3511 	y = 0
   3512 	r = x + y
   3513 	if r != 0 {
   3514 		t.Errorf("0 %s 0 = %d, want 0", "+", r)
   3515 	}
   3516 	y = 1
   3517 	r = x + y
   3518 	if r != 1 {
   3519 		t.Errorf("0 %s 1 = %d, want 1", "+", r)
   3520 	}
   3521 	y = 65535
   3522 	r = x + y
   3523 	if r != 65535 {
   3524 		t.Errorf("0 %s 65535 = %d, want 65535", "+", r)
   3525 	}
   3526 	x = 1
   3527 	y = 0
   3528 	r = x + y
   3529 	if r != 1 {
   3530 		t.Errorf("1 %s 0 = %d, want 1", "+", r)
   3531 	}
   3532 	y = 1
   3533 	r = x + y
   3534 	if r != 2 {
   3535 		t.Errorf("1 %s 1 = %d, want 2", "+", r)
   3536 	}
   3537 	y = 65535
   3538 	r = x + y
   3539 	if r != 0 {
   3540 		t.Errorf("1 %s 65535 = %d, want 0", "+", r)
   3541 	}
   3542 	x = 65535
   3543 	y = 0
   3544 	r = x + y
   3545 	if r != 65535 {
   3546 		t.Errorf("65535 %s 0 = %d, want 65535", "+", r)
   3547 	}
   3548 	y = 1
   3549 	r = x + y
   3550 	if r != 0 {
   3551 		t.Errorf("65535 %s 1 = %d, want 0", "+", r)
   3552 	}
   3553 	y = 65535
   3554 	r = x + y
   3555 	if r != 65534 {
   3556 		t.Errorf("65535 %s 65535 = %d, want 65534", "+", r)
   3557 	}
   3558 }
   3559 func TestConstFolduint16sub(t *testing.T) {
   3560 	var x, y, r uint16
   3561 	x = 0
   3562 	y = 0
   3563 	r = x - y
   3564 	if r != 0 {
   3565 		t.Errorf("0 %s 0 = %d, want 0", "-", r)
   3566 	}
   3567 	y = 1
   3568 	r = x - y
   3569 	if r != 65535 {
   3570 		t.Errorf("0 %s 1 = %d, want 65535", "-", r)
   3571 	}
   3572 	y = 65535
   3573 	r = x - y
   3574 	if r != 1 {
   3575 		t.Errorf("0 %s 65535 = %d, want 1", "-", r)
   3576 	}
   3577 	x = 1
   3578 	y = 0
   3579 	r = x - y
   3580 	if r != 1 {
   3581 		t.Errorf("1 %s 0 = %d, want 1", "-", r)
   3582 	}
   3583 	y = 1
   3584 	r = x - y
   3585 	if r != 0 {
   3586 		t.Errorf("1 %s 1 = %d, want 0", "-", r)
   3587 	}
   3588 	y = 65535
   3589 	r = x - y
   3590 	if r != 2 {
   3591 		t.Errorf("1 %s 65535 = %d, want 2", "-", r)
   3592 	}
   3593 	x = 65535
   3594 	y = 0
   3595 	r = x - y
   3596 	if r != 65535 {
   3597 		t.Errorf("65535 %s 0 = %d, want 65535", "-", r)
   3598 	}
   3599 	y = 1
   3600 	r = x - y
   3601 	if r != 65534 {
   3602 		t.Errorf("65535 %s 1 = %d, want 65534", "-", r)
   3603 	}
   3604 	y = 65535
   3605 	r = x - y
   3606 	if r != 0 {
   3607 		t.Errorf("65535 %s 65535 = %d, want 0", "-", r)
   3608 	}
   3609 }
   3610 func TestConstFolduint16div(t *testing.T) {
   3611 	var x, y, r uint16
   3612 	x = 0
   3613 	y = 1
   3614 	r = x / y
   3615 	if r != 0 {
   3616 		t.Errorf("0 %s 1 = %d, want 0", "/", r)
   3617 	}
   3618 	y = 65535
   3619 	r = x / y
   3620 	if r != 0 {
   3621 		t.Errorf("0 %s 65535 = %d, want 0", "/", r)
   3622 	}
   3623 	x = 1
   3624 	y = 1
   3625 	r = x / y
   3626 	if r != 1 {
   3627 		t.Errorf("1 %s 1 = %d, want 1", "/", r)
   3628 	}
   3629 	y = 65535
   3630 	r = x / y
   3631 	if r != 0 {
   3632 		t.Errorf("1 %s 65535 = %d, want 0", "/", r)
   3633 	}
   3634 	x = 65535
   3635 	y = 1
   3636 	r = x / y
   3637 	if r != 65535 {
   3638 		t.Errorf("65535 %s 1 = %d, want 65535", "/", r)
   3639 	}
   3640 	y = 65535
   3641 	r = x / y
   3642 	if r != 1 {
   3643 		t.Errorf("65535 %s 65535 = %d, want 1", "/", r)
   3644 	}
   3645 }
   3646 func TestConstFolduint16mul(t *testing.T) {
   3647 	var x, y, r uint16
   3648 	x = 0
   3649 	y = 0
   3650 	r = x * y
   3651 	if r != 0 {
   3652 		t.Errorf("0 %s 0 = %d, want 0", "*", r)
   3653 	}
   3654 	y = 1
   3655 	r = x * y
   3656 	if r != 0 {
   3657 		t.Errorf("0 %s 1 = %d, want 0", "*", r)
   3658 	}
   3659 	y = 65535
   3660 	r = x * y
   3661 	if r != 0 {
   3662 		t.Errorf("0 %s 65535 = %d, want 0", "*", r)
   3663 	}
   3664 	x = 1
   3665 	y = 0
   3666 	r = x * y
   3667 	if r != 0 {
   3668 		t.Errorf("1 %s 0 = %d, want 0", "*", r)
   3669 	}
   3670 	y = 1
   3671 	r = x * y
   3672 	if r != 1 {
   3673 		t.Errorf("1 %s 1 = %d, want 1", "*", r)
   3674 	}
   3675 	y = 65535
   3676 	r = x * y
   3677 	if r != 65535 {
   3678 		t.Errorf("1 %s 65535 = %d, want 65535", "*", r)
   3679 	}
   3680 	x = 65535
   3681 	y = 0
   3682 	r = x * y
   3683 	if r != 0 {
   3684 		t.Errorf("65535 %s 0 = %d, want 0", "*", r)
   3685 	}
   3686 	y = 1
   3687 	r = x * y
   3688 	if r != 65535 {
   3689 		t.Errorf("65535 %s 1 = %d, want 65535", "*", r)
   3690 	}
   3691 	y = 65535
   3692 	r = x * y
   3693 	if r != 1 {
   3694 		t.Errorf("65535 %s 65535 = %d, want 1", "*", r)
   3695 	}
   3696 }
   3697 func TestConstFolduint16mod(t *testing.T) {
   3698 	var x, y, r uint16
   3699 	x = 0
   3700 	y = 1
   3701 	r = x % y
   3702 	if r != 0 {
   3703 		t.Errorf("0 %s 1 = %d, want 0", "%", r)
   3704 	}
   3705 	y = 65535
   3706 	r = x % y
   3707 	if r != 0 {
   3708 		t.Errorf("0 %s 65535 = %d, want 0", "%", r)
   3709 	}
   3710 	x = 1
   3711 	y = 1
   3712 	r = x % y
   3713 	if r != 0 {
   3714 		t.Errorf("1 %s 1 = %d, want 0", "%", r)
   3715 	}
   3716 	y = 65535
   3717 	r = x % y
   3718 	if r != 1 {
   3719 		t.Errorf("1 %s 65535 = %d, want 1", "%", r)
   3720 	}
   3721 	x = 65535
   3722 	y = 1
   3723 	r = x % y
   3724 	if r != 0 {
   3725 		t.Errorf("65535 %s 1 = %d, want 0", "%", r)
   3726 	}
   3727 	y = 65535
   3728 	r = x % y
   3729 	if r != 0 {
   3730 		t.Errorf("65535 %s 65535 = %d, want 0", "%", r)
   3731 	}
   3732 }
   3733 func TestConstFoldint16add(t *testing.T) {
   3734 	var x, y, r int16
   3735 	x = -32768
   3736 	y = -32768
   3737 	r = x + y
   3738 	if r != 0 {
   3739 		t.Errorf("-32768 %s -32768 = %d, want 0", "+", r)
   3740 	}
   3741 	y = -32767
   3742 	r = x + y
   3743 	if r != 1 {
   3744 		t.Errorf("-32768 %s -32767 = %d, want 1", "+", r)
   3745 	}
   3746 	y = -1
   3747 	r = x + y
   3748 	if r != 32767 {
   3749 		t.Errorf("-32768 %s -1 = %d, want 32767", "+", r)
   3750 	}
   3751 	y = 0
   3752 	r = x + y
   3753 	if r != -32768 {
   3754 		t.Errorf("-32768 %s 0 = %d, want -32768", "+", r)
   3755 	}
   3756 	y = 1
   3757 	r = x + y
   3758 	if r != -32767 {
   3759 		t.Errorf("-32768 %s 1 = %d, want -32767", "+", r)
   3760 	}
   3761 	y = 32766
   3762 	r = x + y
   3763 	if r != -2 {
   3764 		t.Errorf("-32768 %s 32766 = %d, want -2", "+", r)
   3765 	}
   3766 	y = 32767
   3767 	r = x + y
   3768 	if r != -1 {
   3769 		t.Errorf("-32768 %s 32767 = %d, want -1", "+", r)
   3770 	}
   3771 	x = -32767
   3772 	y = -32768
   3773 	r = x + y
   3774 	if r != 1 {
   3775 		t.Errorf("-32767 %s -32768 = %d, want 1", "+", r)
   3776 	}
   3777 	y = -32767
   3778 	r = x + y
   3779 	if r != 2 {
   3780 		t.Errorf("-32767 %s -32767 = %d, want 2", "+", r)
   3781 	}
   3782 	y = -1
   3783 	r = x + y
   3784 	if r != -32768 {
   3785 		t.Errorf("-32767 %s -1 = %d, want -32768", "+", r)
   3786 	}
   3787 	y = 0
   3788 	r = x + y
   3789 	if r != -32767 {
   3790 		t.Errorf("-32767 %s 0 = %d, want -32767", "+", r)
   3791 	}
   3792 	y = 1
   3793 	r = x + y
   3794 	if r != -32766 {
   3795 		t.Errorf("-32767 %s 1 = %d, want -32766", "+", r)
   3796 	}
   3797 	y = 32766
   3798 	r = x + y
   3799 	if r != -1 {
   3800 		t.Errorf("-32767 %s 32766 = %d, want -1", "+", r)
   3801 	}
   3802 	y = 32767
   3803 	r = x + y
   3804 	if r != 0 {
   3805 		t.Errorf("-32767 %s 32767 = %d, want 0", "+", r)
   3806 	}
   3807 	x = -1
   3808 	y = -32768
   3809 	r = x + y
   3810 	if r != 32767 {
   3811 		t.Errorf("-1 %s -32768 = %d, want 32767", "+", r)
   3812 	}
   3813 	y = -32767
   3814 	r = x + y
   3815 	if r != -32768 {
   3816 		t.Errorf("-1 %s -32767 = %d, want -32768", "+", r)
   3817 	}
   3818 	y = -1
   3819 	r = x + y
   3820 	if r != -2 {
   3821 		t.Errorf("-1 %s -1 = %d, want -2", "+", r)
   3822 	}
   3823 	y = 0
   3824 	r = x + y
   3825 	if r != -1 {
   3826 		t.Errorf("-1 %s 0 = %d, want -1", "+", r)
   3827 	}
   3828 	y = 1
   3829 	r = x + y
   3830 	if r != 0 {
   3831 		t.Errorf("-1 %s 1 = %d, want 0", "+", r)
   3832 	}
   3833 	y = 32766
   3834 	r = x + y
   3835 	if r != 32765 {
   3836 		t.Errorf("-1 %s 32766 = %d, want 32765", "+", r)
   3837 	}
   3838 	y = 32767
   3839 	r = x + y
   3840 	if r != 32766 {
   3841 		t.Errorf("-1 %s 32767 = %d, want 32766", "+", r)
   3842 	}
   3843 	x = 0
   3844 	y = -32768
   3845 	r = x + y
   3846 	if r != -32768 {
   3847 		t.Errorf("0 %s -32768 = %d, want -32768", "+", r)
   3848 	}
   3849 	y = -32767
   3850 	r = x + y
   3851 	if r != -32767 {
   3852 		t.Errorf("0 %s -32767 = %d, want -32767", "+", r)
   3853 	}
   3854 	y = -1
   3855 	r = x + y
   3856 	if r != -1 {
   3857 		t.Errorf("0 %s -1 = %d, want -1", "+", r)
   3858 	}
   3859 	y = 0
   3860 	r = x + y
   3861 	if r != 0 {
   3862 		t.Errorf("0 %s 0 = %d, want 0", "+", r)
   3863 	}
   3864 	y = 1
   3865 	r = x + y
   3866 	if r != 1 {
   3867 		t.Errorf("0 %s 1 = %d, want 1", "+", r)
   3868 	}
   3869 	y = 32766
   3870 	r = x + y
   3871 	if r != 32766 {
   3872 		t.Errorf("0 %s 32766 = %d, want 32766", "+", r)
   3873 	}
   3874 	y = 32767
   3875 	r = x + y
   3876 	if r != 32767 {
   3877 		t.Errorf("0 %s 32767 = %d, want 32767", "+", r)
   3878 	}
   3879 	x = 1
   3880 	y = -32768
   3881 	r = x + y
   3882 	if r != -32767 {
   3883 		t.Errorf("1 %s -32768 = %d, want -32767", "+", r)
   3884 	}
   3885 	y = -32767
   3886 	r = x + y
   3887 	if r != -32766 {
   3888 		t.Errorf("1 %s -32767 = %d, want -32766", "+", r)
   3889 	}
   3890 	y = -1
   3891 	r = x + y
   3892 	if r != 0 {
   3893 		t.Errorf("1 %s -1 = %d, want 0", "+", r)
   3894 	}
   3895 	y = 0
   3896 	r = x + y
   3897 	if r != 1 {
   3898 		t.Errorf("1 %s 0 = %d, want 1", "+", r)
   3899 	}
   3900 	y = 1
   3901 	r = x + y
   3902 	if r != 2 {
   3903 		t.Errorf("1 %s 1 = %d, want 2", "+", r)
   3904 	}
   3905 	y = 32766
   3906 	r = x + y
   3907 	if r != 32767 {
   3908 		t.Errorf("1 %s 32766 = %d, want 32767", "+", r)
   3909 	}
   3910 	y = 32767
   3911 	r = x + y
   3912 	if r != -32768 {
   3913 		t.Errorf("1 %s 32767 = %d, want -32768", "+", r)
   3914 	}
   3915 	x = 32766
   3916 	y = -32768
   3917 	r = x + y
   3918 	if r != -2 {
   3919 		t.Errorf("32766 %s -32768 = %d, want -2", "+", r)
   3920 	}
   3921 	y = -32767
   3922 	r = x + y
   3923 	if r != -1 {
   3924 		t.Errorf("32766 %s -32767 = %d, want -1", "+", r)
   3925 	}
   3926 	y = -1
   3927 	r = x + y
   3928 	if r != 32765 {
   3929 		t.Errorf("32766 %s -1 = %d, want 32765", "+", r)
   3930 	}
   3931 	y = 0
   3932 	r = x + y
   3933 	if r != 32766 {
   3934 		t.Errorf("32766 %s 0 = %d, want 32766", "+", r)
   3935 	}
   3936 	y = 1
   3937 	r = x + y
   3938 	if r != 32767 {
   3939 		t.Errorf("32766 %s 1 = %d, want 32767", "+", r)
   3940 	}
   3941 	y = 32766
   3942 	r = x + y
   3943 	if r != -4 {
   3944 		t.Errorf("32766 %s 32766 = %d, want -4", "+", r)
   3945 	}
   3946 	y = 32767
   3947 	r = x + y
   3948 	if r != -3 {
   3949 		t.Errorf("32766 %s 32767 = %d, want -3", "+", r)
   3950 	}
   3951 	x = 32767
   3952 	y = -32768
   3953 	r = x + y
   3954 	if r != -1 {
   3955 		t.Errorf("32767 %s -32768 = %d, want -1", "+", r)
   3956 	}
   3957 	y = -32767
   3958 	r = x + y
   3959 	if r != 0 {
   3960 		t.Errorf("32767 %s -32767 = %d, want 0", "+", r)
   3961 	}
   3962 	y = -1
   3963 	r = x + y
   3964 	if r != 32766 {
   3965 		t.Errorf("32767 %s -1 = %d, want 32766", "+", r)
   3966 	}
   3967 	y = 0
   3968 	r = x + y
   3969 	if r != 32767 {
   3970 		t.Errorf("32767 %s 0 = %d, want 32767", "+", r)
   3971 	}
   3972 	y = 1
   3973 	r = x + y
   3974 	if r != -32768 {
   3975 		t.Errorf("32767 %s 1 = %d, want -32768", "+", r)
   3976 	}
   3977 	y = 32766
   3978 	r = x + y
   3979 	if r != -3 {
   3980 		t.Errorf("32767 %s 32766 = %d, want -3", "+", r)
   3981 	}
   3982 	y = 32767
   3983 	r = x + y
   3984 	if r != -2 {
   3985 		t.Errorf("32767 %s 32767 = %d, want -2", "+", r)
   3986 	}
   3987 }
   3988 func TestConstFoldint16sub(t *testing.T) {
   3989 	var x, y, r int16
   3990 	x = -32768
   3991 	y = -32768
   3992 	r = x - y
   3993 	if r != 0 {
   3994 		t.Errorf("-32768 %s -32768 = %d, want 0", "-", r)
   3995 	}
   3996 	y = -32767
   3997 	r = x - y
   3998 	if r != -1 {
   3999 		t.Errorf("-32768 %s -32767 = %d, want -1", "-", r)
   4000 	}
   4001 	y = -1
   4002 	r = x - y
   4003 	if r != -32767 {
   4004 		t.Errorf("-32768 %s -1 = %d, want -32767", "-", r)
   4005 	}
   4006 	y = 0
   4007 	r = x - y
   4008 	if r != -32768 {
   4009 		t.Errorf("-32768 %s 0 = %d, want -32768", "-", r)
   4010 	}
   4011 	y = 1
   4012 	r = x - y
   4013 	if r != 32767 {
   4014 		t.Errorf("-32768 %s 1 = %d, want 32767", "-", r)
   4015 	}
   4016 	y = 32766
   4017 	r = x - y
   4018 	if r != 2 {
   4019 		t.Errorf("-32768 %s 32766 = %d, want 2", "-", r)
   4020 	}
   4021 	y = 32767
   4022 	r = x - y
   4023 	if r != 1 {
   4024 		t.Errorf("-32768 %s 32767 = %d, want 1", "-", r)
   4025 	}
   4026 	x = -32767
   4027 	y = -32768
   4028 	r = x - y
   4029 	if r != 1 {
   4030 		t.Errorf("-32767 %s -32768 = %d, want 1", "-", r)
   4031 	}
   4032 	y = -32767
   4033 	r = x - y
   4034 	if r != 0 {
   4035 		t.Errorf("-32767 %s -32767 = %d, want 0", "-", r)
   4036 	}
   4037 	y = -1
   4038 	r = x - y
   4039 	if r != -32766 {
   4040 		t.Errorf("-32767 %s -1 = %d, want -32766", "-", r)
   4041 	}
   4042 	y = 0
   4043 	r = x - y
   4044 	if r != -32767 {
   4045 		t.Errorf("-32767 %s 0 = %d, want -32767", "-", r)
   4046 	}
   4047 	y = 1
   4048 	r = x - y
   4049 	if r != -32768 {
   4050 		t.Errorf("-32767 %s 1 = %d, want -32768", "-", r)
   4051 	}
   4052 	y = 32766
   4053 	r = x - y
   4054 	if r != 3 {
   4055 		t.Errorf("-32767 %s 32766 = %d, want 3", "-", r)
   4056 	}
   4057 	y = 32767
   4058 	r = x - y
   4059 	if r != 2 {
   4060 		t.Errorf("-32767 %s 32767 = %d, want 2", "-", r)
   4061 	}
   4062 	x = -1
   4063 	y = -32768
   4064 	r = x - y
   4065 	if r != 32767 {
   4066 		t.Errorf("-1 %s -32768 = %d, want 32767", "-", r)
   4067 	}
   4068 	y = -32767
   4069 	r = x - y
   4070 	if r != 32766 {
   4071 		t.Errorf("-1 %s -32767 = %d, want 32766", "-", r)
   4072 	}
   4073 	y = -1
   4074 	r = x - y
   4075 	if r != 0 {
   4076 		t.Errorf("-1 %s -1 = %d, want 0", "-", r)
   4077 	}
   4078 	y = 0
   4079 	r = x - y
   4080 	if r != -1 {
   4081 		t.Errorf("-1 %s 0 = %d, want -1", "-", r)
   4082 	}
   4083 	y = 1
   4084 	r = x - y
   4085 	if r != -2 {
   4086 		t.Errorf("-1 %s 1 = %d, want -2", "-", r)
   4087 	}
   4088 	y = 32766
   4089 	r = x - y
   4090 	if r != -32767 {
   4091 		t.Errorf("-1 %s 32766 = %d, want -32767", "-", r)
   4092 	}
   4093 	y = 32767
   4094 	r = x - y
   4095 	if r != -32768 {
   4096 		t.Errorf("-1 %s 32767 = %d, want -32768", "-", r)
   4097 	}
   4098 	x = 0
   4099 	y = -32768
   4100 	r = x - y
   4101 	if r != -32768 {
   4102 		t.Errorf("0 %s -32768 = %d, want -32768", "-", r)
   4103 	}
   4104 	y = -32767
   4105 	r = x - y
   4106 	if r != 32767 {
   4107 		t.Errorf("0 %s -32767 = %d, want 32767", "-", r)
   4108 	}
   4109 	y = -1
   4110 	r = x - y
   4111 	if r != 1 {
   4112 		t.Errorf("0 %s -1 = %d, want 1", "-", r)
   4113 	}
   4114 	y = 0
   4115 	r = x - y
   4116 	if r != 0 {
   4117 		t.Errorf("0 %s 0 = %d, want 0", "-", r)
   4118 	}
   4119 	y = 1
   4120 	r = x - y
   4121 	if r != -1 {
   4122 		t.Errorf("0 %s 1 = %d, want -1", "-", r)
   4123 	}
   4124 	y = 32766
   4125 	r = x - y
   4126 	if r != -32766 {
   4127 		t.Errorf("0 %s 32766 = %d, want -32766", "-", r)
   4128 	}
   4129 	y = 32767
   4130 	r = x - y
   4131 	if r != -32767 {
   4132 		t.Errorf("0 %s 32767 = %d, want -32767", "-", r)
   4133 	}
   4134 	x = 1
   4135 	y = -32768
   4136 	r = x - y
   4137 	if r != -32767 {
   4138 		t.Errorf("1 %s -32768 = %d, want -32767", "-", r)
   4139 	}
   4140 	y = -32767
   4141 	r = x - y
   4142 	if r != -32768 {
   4143 		t.Errorf("1 %s -32767 = %d, want -32768", "-", r)
   4144 	}
   4145 	y = -1
   4146 	r = x - y
   4147 	if r != 2 {
   4148 		t.Errorf("1 %s -1 = %d, want 2", "-", r)
   4149 	}
   4150 	y = 0
   4151 	r = x - y
   4152 	if r != 1 {
   4153 		t.Errorf("1 %s 0 = %d, want 1", "-", r)
   4154 	}
   4155 	y = 1
   4156 	r = x - y
   4157 	if r != 0 {
   4158 		t.Errorf("1 %s 1 = %d, want 0", "-", r)
   4159 	}
   4160 	y = 32766
   4161 	r = x - y
   4162 	if r != -32765 {
   4163 		t.Errorf("1 %s 32766 = %d, want -32765", "-", r)
   4164 	}
   4165 	y = 32767
   4166 	r = x - y
   4167 	if r != -32766 {
   4168 		t.Errorf("1 %s 32767 = %d, want -32766", "-", r)
   4169 	}
   4170 	x = 32766
   4171 	y = -32768
   4172 	r = x - y
   4173 	if r != -2 {
   4174 		t.Errorf("32766 %s -32768 = %d, want -2", "-", r)
   4175 	}
   4176 	y = -32767
   4177 	r = x - y
   4178 	if r != -3 {
   4179 		t.Errorf("32766 %s -32767 = %d, want -3", "-", r)
   4180 	}
   4181 	y = -1
   4182 	r = x - y
   4183 	if r != 32767 {
   4184 		t.Errorf("32766 %s -1 = %d, want 32767", "-", r)
   4185 	}
   4186 	y = 0
   4187 	r = x - y
   4188 	if r != 32766 {
   4189 		t.Errorf("32766 %s 0 = %d, want 32766", "-", r)
   4190 	}
   4191 	y = 1
   4192 	r = x - y
   4193 	if r != 32765 {
   4194 		t.Errorf("32766 %s 1 = %d, want 32765", "-", r)
   4195 	}
   4196 	y = 32766
   4197 	r = x - y
   4198 	if r != 0 {
   4199 		t.Errorf("32766 %s 32766 = %d, want 0", "-", r)
   4200 	}
   4201 	y = 32767
   4202 	r = x - y
   4203 	if r != -1 {
   4204 		t.Errorf("32766 %s 32767 = %d, want -1", "-", r)
   4205 	}
   4206 	x = 32767
   4207 	y = -32768
   4208 	r = x - y
   4209 	if r != -1 {
   4210 		t.Errorf("32767 %s -32768 = %d, want -1", "-", r)
   4211 	}
   4212 	y = -32767
   4213 	r = x - y
   4214 	if r != -2 {
   4215 		t.Errorf("32767 %s -32767 = %d, want -2", "-", r)
   4216 	}
   4217 	y = -1
   4218 	r = x - y
   4219 	if r != -32768 {
   4220 		t.Errorf("32767 %s -1 = %d, want -32768", "-", r)
   4221 	}
   4222 	y = 0
   4223 	r = x - y
   4224 	if r != 32767 {
   4225 		t.Errorf("32767 %s 0 = %d, want 32767", "-", r)
   4226 	}
   4227 	y = 1
   4228 	r = x - y
   4229 	if r != 32766 {
   4230 		t.Errorf("32767 %s 1 = %d, want 32766", "-", r)
   4231 	}
   4232 	y = 32766
   4233 	r = x - y
   4234 	if r != 1 {
   4235 		t.Errorf("32767 %s 32766 = %d, want 1", "-", r)
   4236 	}
   4237 	y = 32767
   4238 	r = x - y
   4239 	if r != 0 {
   4240 		t.Errorf("32767 %s 32767 = %d, want 0", "-", r)
   4241 	}
   4242 }
   4243 func TestConstFoldint16div(t *testing.T) {
   4244 	var x, y, r int16
   4245 	x = -32768
   4246 	y = -32768
   4247 	r = x / y
   4248 	if r != 1 {
   4249 		t.Errorf("-32768 %s -32768 = %d, want 1", "/", r)
   4250 	}
   4251 	y = -32767
   4252 	r = x / y
   4253 	if r != 1 {
   4254 		t.Errorf("-32768 %s -32767 = %d, want 1", "/", r)
   4255 	}
   4256 	y = -1
   4257 	r = x / y
   4258 	if r != -32768 {
   4259 		t.Errorf("-32768 %s -1 = %d, want -32768", "/", r)
   4260 	}
   4261 	y = 1
   4262 	r = x / y
   4263 	if r != -32768 {
   4264 		t.Errorf("-32768 %s 1 = %d, want -32768", "/", r)
   4265 	}
   4266 	y = 32766
   4267 	r = x / y
   4268 	if r != -1 {
   4269 		t.Errorf("-32768 %s 32766 = %d, want -1", "/", r)
   4270 	}
   4271 	y = 32767
   4272 	r = x / y
   4273 	if r != -1 {
   4274 		t.Errorf("-32768 %s 32767 = %d, want -1", "/", r)
   4275 	}
   4276 	x = -32767
   4277 	y = -32768
   4278 	r = x / y
   4279 	if r != 0 {
   4280 		t.Errorf("-32767 %s -32768 = %d, want 0", "/", r)
   4281 	}
   4282 	y = -32767
   4283 	r = x / y
   4284 	if r != 1 {
   4285 		t.Errorf("-32767 %s -32767 = %d, want 1", "/", r)
   4286 	}
   4287 	y = -1
   4288 	r = x / y
   4289 	if r != 32767 {
   4290 		t.Errorf("-32767 %s -1 = %d, want 32767", "/", r)
   4291 	}
   4292 	y = 1
   4293 	r = x / y
   4294 	if r != -32767 {
   4295 		t.Errorf("-32767 %s 1 = %d, want -32767", "/", r)
   4296 	}
   4297 	y = 32766
   4298 	r = x / y
   4299 	if r != -1 {
   4300 		t.Errorf("-32767 %s 32766 = %d, want -1", "/", r)
   4301 	}
   4302 	y = 32767
   4303 	r = x / y
   4304 	if r != -1 {
   4305 		t.Errorf("-32767 %s 32767 = %d, want -1", "/", r)
   4306 	}
   4307 	x = -1
   4308 	y = -32768
   4309 	r = x / y
   4310 	if r != 0 {
   4311 		t.Errorf("-1 %s -32768 = %d, want 0", "/", r)
   4312 	}
   4313 	y = -32767
   4314 	r = x / y
   4315 	if r != 0 {
   4316 		t.Errorf("-1 %s -32767 = %d, want 0", "/", r)
   4317 	}
   4318 	y = -1
   4319 	r = x / y
   4320 	if r != 1 {
   4321 		t.Errorf("-1 %s -1 = %d, want 1", "/", r)
   4322 	}
   4323 	y = 1
   4324 	r = x / y
   4325 	if r != -1 {
   4326 		t.Errorf("-1 %s 1 = %d, want -1", "/", r)
   4327 	}
   4328 	y = 32766
   4329 	r = x / y
   4330 	if r != 0 {
   4331 		t.Errorf("-1 %s 32766 = %d, want 0", "/", r)
   4332 	}
   4333 	y = 32767
   4334 	r = x / y
   4335 	if r != 0 {
   4336 		t.Errorf("-1 %s 32767 = %d, want 0", "/", r)
   4337 	}
   4338 	x = 0
   4339 	y = -32768
   4340 	r = x / y
   4341 	if r != 0 {
   4342 		t.Errorf("0 %s -32768 = %d, want 0", "/", r)
   4343 	}
   4344 	y = -32767
   4345 	r = x / y
   4346 	if r != 0 {
   4347 		t.Errorf("0 %s -32767 = %d, want 0", "/", r)
   4348 	}
   4349 	y = -1
   4350 	r = x / y
   4351 	if r != 0 {
   4352 		t.Errorf("0 %s -1 = %d, want 0", "/", r)
   4353 	}
   4354 	y = 1
   4355 	r = x / y
   4356 	if r != 0 {
   4357 		t.Errorf("0 %s 1 = %d, want 0", "/", r)
   4358 	}
   4359 	y = 32766
   4360 	r = x / y
   4361 	if r != 0 {
   4362 		t.Errorf("0 %s 32766 = %d, want 0", "/", r)
   4363 	}
   4364 	y = 32767
   4365 	r = x / y
   4366 	if r != 0 {
   4367 		t.Errorf("0 %s 32767 = %d, want 0", "/", r)
   4368 	}
   4369 	x = 1
   4370 	y = -32768
   4371 	r = x / y
   4372 	if r != 0 {
   4373 		t.Errorf("1 %s -32768 = %d, want 0", "/", r)
   4374 	}
   4375 	y = -32767
   4376 	r = x / y
   4377 	if r != 0 {
   4378 		t.Errorf("1 %s -32767 = %d, want 0", "/", r)
   4379 	}
   4380 	y = -1
   4381 	r = x / y
   4382 	if r != -1 {
   4383 		t.Errorf("1 %s -1 = %d, want -1", "/", r)
   4384 	}
   4385 	y = 1
   4386 	r = x / y
   4387 	if r != 1 {
   4388 		t.Errorf("1 %s 1 = %d, want 1", "/", r)
   4389 	}
   4390 	y = 32766
   4391 	r = x / y
   4392 	if r != 0 {
   4393 		t.Errorf("1 %s 32766 = %d, want 0", "/", r)
   4394 	}
   4395 	y = 32767
   4396 	r = x / y
   4397 	if r != 0 {
   4398 		t.Errorf("1 %s 32767 = %d, want 0", "/", r)
   4399 	}
   4400 	x = 32766
   4401 	y = -32768
   4402 	r = x / y
   4403 	if r != 0 {
   4404 		t.Errorf("32766 %s -32768 = %d, want 0", "/", r)
   4405 	}
   4406 	y = -32767
   4407 	r = x / y
   4408 	if r != 0 {
   4409 		t.Errorf("32766 %s -32767 = %d, want 0", "/", r)
   4410 	}
   4411 	y = -1
   4412 	r = x / y
   4413 	if r != -32766 {
   4414 		t.Errorf("32766 %s -1 = %d, want -32766", "/", r)
   4415 	}
   4416 	y = 1
   4417 	r = x / y
   4418 	if r != 32766 {
   4419 		t.Errorf("32766 %s 1 = %d, want 32766", "/", r)
   4420 	}
   4421 	y = 32766
   4422 	r = x / y
   4423 	if r != 1 {
   4424 		t.Errorf("32766 %s 32766 = %d, want 1", "/", r)
   4425 	}
   4426 	y = 32767
   4427 	r = x / y
   4428 	if r != 0 {
   4429 		t.Errorf("32766 %s 32767 = %d, want 0", "/", r)
   4430 	}
   4431 	x = 32767
   4432 	y = -32768
   4433 	r = x / y
   4434 	if r != 0 {
   4435 		t.Errorf("32767 %s -32768 = %d, want 0", "/", r)
   4436 	}
   4437 	y = -32767
   4438 	r = x / y
   4439 	if r != -1 {
   4440 		t.Errorf("32767 %s -32767 = %d, want -1", "/", r)
   4441 	}
   4442 	y = -1
   4443 	r = x / y
   4444 	if r != -32767 {
   4445 		t.Errorf("32767 %s -1 = %d, want -32767", "/", r)
   4446 	}
   4447 	y = 1
   4448 	r = x / y
   4449 	if r != 32767 {
   4450 		t.Errorf("32767 %s 1 = %d, want 32767", "/", r)
   4451 	}
   4452 	y = 32766
   4453 	r = x / y
   4454 	if r != 1 {
   4455 		t.Errorf("32767 %s 32766 = %d, want 1", "/", r)
   4456 	}
   4457 	y = 32767
   4458 	r = x / y
   4459 	if r != 1 {
   4460 		t.Errorf("32767 %s 32767 = %d, want 1", "/", r)
   4461 	}
   4462 }
   4463 func TestConstFoldint16mul(t *testing.T) {
   4464 	var x, y, r int16
   4465 	x = -32768
   4466 	y = -32768
   4467 	r = x * y
   4468 	if r != 0 {
   4469 		t.Errorf("-32768 %s -32768 = %d, want 0", "*", r)
   4470 	}
   4471 	y = -32767
   4472 	r = x * y
   4473 	if r != -32768 {
   4474 		t.Errorf("-32768 %s -32767 = %d, want -32768", "*", r)
   4475 	}
   4476 	y = -1
   4477 	r = x * y
   4478 	if r != -32768 {
   4479 		t.Errorf("-32768 %s -1 = %d, want -32768", "*", r)
   4480 	}
   4481 	y = 0
   4482 	r = x * y
   4483 	if r != 0 {
   4484 		t.Errorf("-32768 %s 0 = %d, want 0", "*", r)
   4485 	}
   4486 	y = 1
   4487 	r = x * y
   4488 	if r != -32768 {
   4489 		t.Errorf("-32768 %s 1 = %d, want -32768", "*", r)
   4490 	}
   4491 	y = 32766
   4492 	r = x * y
   4493 	if r != 0 {
   4494 		t.Errorf("-32768 %s 32766 = %d, want 0", "*", r)
   4495 	}
   4496 	y = 32767
   4497 	r = x * y
   4498 	if r != -32768 {
   4499 		t.Errorf("-32768 %s 32767 = %d, want -32768", "*", r)
   4500 	}
   4501 	x = -32767
   4502 	y = -32768
   4503 	r = x * y
   4504 	if r != -32768 {
   4505 		t.Errorf("-32767 %s -32768 = %d, want -32768", "*", r)
   4506 	}
   4507 	y = -32767
   4508 	r = x * y
   4509 	if r != 1 {
   4510 		t.Errorf("-32767 %s -32767 = %d, want 1", "*", r)
   4511 	}
   4512 	y = -1
   4513 	r = x * y
   4514 	if r != 32767 {
   4515 		t.Errorf("-32767 %s -1 = %d, want 32767", "*", r)
   4516 	}
   4517 	y = 0
   4518 	r = x * y
   4519 	if r != 0 {
   4520 		t.Errorf("-32767 %s 0 = %d, want 0", "*", r)
   4521 	}
   4522 	y = 1
   4523 	r = x * y
   4524 	if r != -32767 {
   4525 		t.Errorf("-32767 %s 1 = %d, want -32767", "*", r)
   4526 	}
   4527 	y = 32766
   4528 	r = x * y
   4529 	if r != 32766 {
   4530 		t.Errorf("-32767 %s 32766 = %d, want 32766", "*", r)
   4531 	}
   4532 	y = 32767
   4533 	r = x * y
   4534 	if r != -1 {
   4535 		t.Errorf("-32767 %s 32767 = %d, want -1", "*", r)
   4536 	}
   4537 	x = -1
   4538 	y = -32768
   4539 	r = x * y
   4540 	if r != -32768 {
   4541 		t.Errorf("-1 %s -32768 = %d, want -32768", "*", r)
   4542 	}
   4543 	y = -32767
   4544 	r = x * y
   4545 	if r != 32767 {
   4546 		t.Errorf("-1 %s -32767 = %d, want 32767", "*", r)
   4547 	}
   4548 	y = -1
   4549 	r = x * y
   4550 	if r != 1 {
   4551 		t.Errorf("-1 %s -1 = %d, want 1", "*", r)
   4552 	}
   4553 	y = 0
   4554 	r = x * y
   4555 	if r != 0 {
   4556 		t.Errorf("-1 %s 0 = %d, want 0", "*", r)
   4557 	}
   4558 	y = 1
   4559 	r = x * y
   4560 	if r != -1 {
   4561 		t.Errorf("-1 %s 1 = %d, want -1", "*", r)
   4562 	}
   4563 	y = 32766
   4564 	r = x * y
   4565 	if r != -32766 {
   4566 		t.Errorf("-1 %s 32766 = %d, want -32766", "*", r)
   4567 	}
   4568 	y = 32767
   4569 	r = x * y
   4570 	if r != -32767 {
   4571 		t.Errorf("-1 %s 32767 = %d, want -32767", "*", r)
   4572 	}
   4573 	x = 0
   4574 	y = -32768
   4575 	r = x * y
   4576 	if r != 0 {
   4577 		t.Errorf("0 %s -32768 = %d, want 0", "*", r)
   4578 	}
   4579 	y = -32767
   4580 	r = x * y
   4581 	if r != 0 {
   4582 		t.Errorf("0 %s -32767 = %d, want 0", "*", r)
   4583 	}
   4584 	y = -1
   4585 	r = x * y
   4586 	if r != 0 {
   4587 		t.Errorf("0 %s -1 = %d, want 0", "*", r)
   4588 	}
   4589 	y = 0
   4590 	r = x * y
   4591 	if r != 0 {
   4592 		t.Errorf("0 %s 0 = %d, want 0", "*", r)
   4593 	}
   4594 	y = 1
   4595 	r = x * y
   4596 	if r != 0 {
   4597 		t.Errorf("0 %s 1 = %d, want 0", "*", r)
   4598 	}
   4599 	y = 32766
   4600 	r = x * y
   4601 	if r != 0 {
   4602 		t.Errorf("0 %s 32766 = %d, want 0", "*", r)
   4603 	}
   4604 	y = 32767
   4605 	r = x * y
   4606 	if r != 0 {
   4607 		t.Errorf("0 %s 32767 = %d, want 0", "*", r)
   4608 	}
   4609 	x = 1
   4610 	y = -32768
   4611 	r = x * y
   4612 	if r != -32768 {
   4613 		t.Errorf("1 %s -32768 = %d, want -32768", "*", r)
   4614 	}
   4615 	y = -32767
   4616 	r = x * y
   4617 	if r != -32767 {
   4618 		t.Errorf("1 %s -32767 = %d, want -32767", "*", r)
   4619 	}
   4620 	y = -1
   4621 	r = x * y
   4622 	if r != -1 {
   4623 		t.Errorf("1 %s -1 = %d, want -1", "*", r)
   4624 	}
   4625 	y = 0
   4626 	r = x * y
   4627 	if r != 0 {
   4628 		t.Errorf("1 %s 0 = %d, want 0", "*", r)
   4629 	}
   4630 	y = 1
   4631 	r = x * y
   4632 	if r != 1 {
   4633 		t.Errorf("1 %s 1 = %d, want 1", "*", r)
   4634 	}
   4635 	y = 32766
   4636 	r = x * y
   4637 	if r != 32766 {
   4638 		t.Errorf("1 %s 32766 = %d, want 32766", "*", r)
   4639 	}
   4640 	y = 32767
   4641 	r = x * y
   4642 	if r != 32767 {
   4643 		t.Errorf("1 %s 32767 = %d, want 32767", "*", r)
   4644 	}
   4645 	x = 32766
   4646 	y = -32768
   4647 	r = x * y
   4648 	if r != 0 {
   4649 		t.Errorf("32766 %s -32768 = %d, want 0", "*", r)
   4650 	}
   4651 	y = -32767
   4652 	r = x * y
   4653 	if r != 32766 {
   4654 		t.Errorf("32766 %s -32767 = %d, want 32766", "*", r)
   4655 	}
   4656 	y = -1
   4657 	r = x * y
   4658 	if r != -32766 {
   4659 		t.Errorf("32766 %s -1 = %d, want -32766", "*", r)
   4660 	}
   4661 	y = 0
   4662 	r = x * y
   4663 	if r != 0 {
   4664 		t.Errorf("32766 %s 0 = %d, want 0", "*", r)
   4665 	}
   4666 	y = 1
   4667 	r = x * y
   4668 	if r != 32766 {
   4669 		t.Errorf("32766 %s 1 = %d, want 32766", "*", r)
   4670 	}
   4671 	y = 32766
   4672 	r = x * y
   4673 	if r != 4 {
   4674 		t.Errorf("32766 %s 32766 = %d, want 4", "*", r)
   4675 	}
   4676 	y = 32767
   4677 	r = x * y
   4678 	if r != -32766 {
   4679 		t.Errorf("32766 %s 32767 = %d, want -32766", "*", r)
   4680 	}
   4681 	x = 32767
   4682 	y = -32768
   4683 	r = x * y
   4684 	if r != -32768 {
   4685 		t.Errorf("32767 %s -32768 = %d, want -32768", "*", r)
   4686 	}
   4687 	y = -32767
   4688 	r = x * y
   4689 	if r != -1 {
   4690 		t.Errorf("32767 %s -32767 = %d, want -1", "*", r)
   4691 	}
   4692 	y = -1
   4693 	r = x * y
   4694 	if r != -32767 {
   4695 		t.Errorf("32767 %s -1 = %d, want -32767", "*", r)
   4696 	}
   4697 	y = 0
   4698 	r = x * y
   4699 	if r != 0 {
   4700 		t.Errorf("32767 %s 0 = %d, want 0", "*", r)
   4701 	}
   4702 	y = 1
   4703 	r = x * y
   4704 	if r != 32767 {
   4705 		t.Errorf("32767 %s 1 = %d, want 32767", "*", r)
   4706 	}
   4707 	y = 32766
   4708 	r = x * y
   4709 	if r != -32766 {
   4710 		t.Errorf("32767 %s 32766 = %d, want -32766", "*", r)
   4711 	}
   4712 	y = 32767
   4713 	r = x * y
   4714 	if r != 1 {
   4715 		t.Errorf("32767 %s 32767 = %d, want 1", "*", r)
   4716 	}
   4717 }
   4718 func TestConstFoldint16mod(t *testing.T) {
   4719 	var x, y, r int16
   4720 	x = -32768
   4721 	y = -32768
   4722 	r = x % y
   4723 	if r != 0 {
   4724 		t.Errorf("-32768 %s -32768 = %d, want 0", "%", r)
   4725 	}
   4726 	y = -32767
   4727 	r = x % y
   4728 	if r != -1 {
   4729 		t.Errorf("-32768 %s -32767 = %d, want -1", "%", r)
   4730 	}
   4731 	y = -1
   4732 	r = x % y
   4733 	if r != 0 {
   4734 		t.Errorf("-32768 %s -1 = %d, want 0", "%", r)
   4735 	}
   4736 	y = 1
   4737 	r = x % y
   4738 	if r != 0 {
   4739 		t.Errorf("-32768 %s 1 = %d, want 0", "%", r)
   4740 	}
   4741 	y = 32766
   4742 	r = x % y
   4743 	if r != -2 {
   4744 		t.Errorf("-32768 %s 32766 = %d, want -2", "%", r)
   4745 	}
   4746 	y = 32767
   4747 	r = x % y
   4748 	if r != -1 {
   4749 		t.Errorf("-32768 %s 32767 = %d, want -1", "%", r)
   4750 	}
   4751 	x = -32767
   4752 	y = -32768
   4753 	r = x % y
   4754 	if r != -32767 {
   4755 		t.Errorf("-32767 %s -32768 = %d, want -32767", "%", r)
   4756 	}
   4757 	y = -32767
   4758 	r = x % y
   4759 	if r != 0 {
   4760 		t.Errorf("-32767 %s -32767 = %d, want 0", "%", r)
   4761 	}
   4762 	y = -1
   4763 	r = x % y
   4764 	if r != 0 {
   4765 		t.Errorf("-32767 %s -1 = %d, want 0", "%", r)
   4766 	}
   4767 	y = 1
   4768 	r = x % y
   4769 	if r != 0 {
   4770 		t.Errorf("-32767 %s 1 = %d, want 0", "%", r)
   4771 	}
   4772 	y = 32766
   4773 	r = x % y
   4774 	if r != -1 {
   4775 		t.Errorf("-32767 %s 32766 = %d, want -1", "%", r)
   4776 	}
   4777 	y = 32767
   4778 	r = x % y
   4779 	if r != 0 {
   4780 		t.Errorf("-32767 %s 32767 = %d, want 0", "%", r)
   4781 	}
   4782 	x = -1
   4783 	y = -32768
   4784 	r = x % y
   4785 	if r != -1 {
   4786 		t.Errorf("-1 %s -32768 = %d, want -1", "%", r)
   4787 	}
   4788 	y = -32767
   4789 	r = x % y
   4790 	if r != -1 {
   4791 		t.Errorf("-1 %s -32767 = %d, want -1", "%", r)
   4792 	}
   4793 	y = -1
   4794 	r = x % y
   4795 	if r != 0 {
   4796 		t.Errorf("-1 %s -1 = %d, want 0", "%", r)
   4797 	}
   4798 	y = 1
   4799 	r = x % y
   4800 	if r != 0 {
   4801 		t.Errorf("-1 %s 1 = %d, want 0", "%", r)
   4802 	}
   4803 	y = 32766
   4804 	r = x % y
   4805 	if r != -1 {
   4806 		t.Errorf("-1 %s 32766 = %d, want -1", "%", r)
   4807 	}
   4808 	y = 32767
   4809 	r = x % y
   4810 	if r != -1 {
   4811 		t.Errorf("-1 %s 32767 = %d, want -1", "%", r)
   4812 	}
   4813 	x = 0
   4814 	y = -32768
   4815 	r = x % y
   4816 	if r != 0 {
   4817 		t.Errorf("0 %s -32768 = %d, want 0", "%", r)
   4818 	}
   4819 	y = -32767
   4820 	r = x % y
   4821 	if r != 0 {
   4822 		t.Errorf("0 %s -32767 = %d, want 0", "%", r)
   4823 	}
   4824 	y = -1
   4825 	r = x % y
   4826 	if r != 0 {
   4827 		t.Errorf("0 %s -1 = %d, want 0", "%", r)
   4828 	}
   4829 	y = 1
   4830 	r = x % y
   4831 	if r != 0 {
   4832 		t.Errorf("0 %s 1 = %d, want 0", "%", r)
   4833 	}
   4834 	y = 32766
   4835 	r = x % y
   4836 	if r != 0 {
   4837 		t.Errorf("0 %s 32766 = %d, want 0", "%", r)
   4838 	}
   4839 	y = 32767
   4840 	r = x % y
   4841 	if r != 0 {
   4842 		t.Errorf("0 %s 32767 = %d, want 0", "%", r)
   4843 	}
   4844 	x = 1
   4845 	y = -32768
   4846 	r = x % y
   4847 	if r != 1 {
   4848 		t.Errorf("1 %s -32768 = %d, want 1", "%", r)
   4849 	}
   4850 	y = -32767
   4851 	r = x % y
   4852 	if r != 1 {
   4853 		t.Errorf("1 %s -32767 = %d, want 1", "%", r)
   4854 	}
   4855 	y = -1
   4856 	r = x % y
   4857 	if r != 0 {
   4858 		t.Errorf("1 %s -1 = %d, want 0", "%", r)
   4859 	}
   4860 	y = 1
   4861 	r = x % y
   4862 	if r != 0 {
   4863 		t.Errorf("1 %s 1 = %d, want 0", "%", r)
   4864 	}
   4865 	y = 32766
   4866 	r = x % y
   4867 	if r != 1 {
   4868 		t.Errorf("1 %s 32766 = %d, want 1", "%", r)
   4869 	}
   4870 	y = 32767
   4871 	r = x % y
   4872 	if r != 1 {
   4873 		t.Errorf("1 %s 32767 = %d, want 1", "%", r)
   4874 	}
   4875 	x = 32766
   4876 	y = -32768
   4877 	r = x % y
   4878 	if r != 32766 {
   4879 		t.Errorf("32766 %s -32768 = %d, want 32766", "%", r)
   4880 	}
   4881 	y = -32767
   4882 	r = x % y
   4883 	if r != 32766 {
   4884 		t.Errorf("32766 %s -32767 = %d, want 32766", "%", r)
   4885 	}
   4886 	y = -1
   4887 	r = x % y
   4888 	if r != 0 {
   4889 		t.Errorf("32766 %s -1 = %d, want 0", "%", r)
   4890 	}
   4891 	y = 1
   4892 	r = x % y
   4893 	if r != 0 {
   4894 		t.Errorf("32766 %s 1 = %d, want 0", "%", r)
   4895 	}
   4896 	y = 32766
   4897 	r = x % y
   4898 	if r != 0 {
   4899 		t.Errorf("32766 %s 32766 = %d, want 0", "%", r)
   4900 	}
   4901 	y = 32767
   4902 	r = x % y
   4903 	if r != 32766 {
   4904 		t.Errorf("32766 %s 32767 = %d, want 32766", "%", r)
   4905 	}
   4906 	x = 32767
   4907 	y = -32768
   4908 	r = x % y
   4909 	if r != 32767 {
   4910 		t.Errorf("32767 %s -32768 = %d, want 32767", "%", r)
   4911 	}
   4912 	y = -32767
   4913 	r = x % y
   4914 	if r != 0 {
   4915 		t.Errorf("32767 %s -32767 = %d, want 0", "%", r)
   4916 	}
   4917 	y = -1
   4918 	r = x % y
   4919 	if r != 0 {
   4920 		t.Errorf("32767 %s -1 = %d, want 0", "%", r)
   4921 	}
   4922 	y = 1
   4923 	r = x % y
   4924 	if r != 0 {
   4925 		t.Errorf("32767 %s 1 = %d, want 0", "%", r)
   4926 	}
   4927 	y = 32766
   4928 	r = x % y
   4929 	if r != 1 {
   4930 		t.Errorf("32767 %s 32766 = %d, want 1", "%", r)
   4931 	}
   4932 	y = 32767
   4933 	r = x % y
   4934 	if r != 0 {
   4935 		t.Errorf("32767 %s 32767 = %d, want 0", "%", r)
   4936 	}
   4937 }
   4938 func TestConstFolduint8add(t *testing.T) {
   4939 	var x, y, r uint8
   4940 	x = 0
   4941 	y = 0
   4942 	r = x + y
   4943 	if r != 0 {
   4944 		t.Errorf("0 %s 0 = %d, want 0", "+", r)
   4945 	}
   4946 	y = 1
   4947 	r = x + y
   4948 	if r != 1 {
   4949 		t.Errorf("0 %s 1 = %d, want 1", "+", r)
   4950 	}
   4951 	y = 255
   4952 	r = x + y
   4953 	if r != 255 {
   4954 		t.Errorf("0 %s 255 = %d, want 255", "+", r)
   4955 	}
   4956 	x = 1
   4957 	y = 0
   4958 	r = x + y
   4959 	if r != 1 {
   4960 		t.Errorf("1 %s 0 = %d, want 1", "+", r)
   4961 	}
   4962 	y = 1
   4963 	r = x + y
   4964 	if r != 2 {
   4965 		t.Errorf("1 %s 1 = %d, want 2", "+", r)
   4966 	}
   4967 	y = 255
   4968 	r = x + y
   4969 	if r != 0 {
   4970 		t.Errorf("1 %s 255 = %d, want 0", "+", r)
   4971 	}
   4972 	x = 255
   4973 	y = 0
   4974 	r = x + y
   4975 	if r != 255 {
   4976 		t.Errorf("255 %s 0 = %d, want 255", "+", r)
   4977 	}
   4978 	y = 1
   4979 	r = x + y
   4980 	if r != 0 {
   4981 		t.Errorf("255 %s 1 = %d, want 0", "+", r)
   4982 	}
   4983 	y = 255
   4984 	r = x + y
   4985 	if r != 254 {
   4986 		t.Errorf("255 %s 255 = %d, want 254", "+", r)
   4987 	}
   4988 }
   4989 func TestConstFolduint8sub(t *testing.T) {
   4990 	var x, y, r uint8
   4991 	x = 0
   4992 	y = 0
   4993 	r = x - y
   4994 	if r != 0 {
   4995 		t.Errorf("0 %s 0 = %d, want 0", "-", r)
   4996 	}
   4997 	y = 1
   4998 	r = x - y
   4999 	if r != 255 {
   5000 		t.Errorf("0 %s 1 = %d, want 255", "-", r)
   5001 	}
   5002 	y = 255
   5003 	r = x - y
   5004 	if r != 1 {
   5005 		t.Errorf("0 %s 255 = %d, want 1", "-", r)
   5006 	}
   5007 	x = 1
   5008 	y = 0
   5009 	r = x - y
   5010 	if r != 1 {
   5011 		t.Errorf("1 %s 0 = %d, want 1", "-", r)
   5012 	}
   5013 	y = 1
   5014 	r = x - y
   5015 	if r != 0 {
   5016 		t.Errorf("1 %s 1 = %d, want 0", "-", r)
   5017 	}
   5018 	y = 255
   5019 	r = x - y
   5020 	if r != 2 {
   5021 		t.Errorf("1 %s 255 = %d, want 2", "-", r)
   5022 	}
   5023 	x = 255
   5024 	y = 0
   5025 	r = x - y
   5026 	if r != 255 {
   5027 		t.Errorf("255 %s 0 = %d, want 255", "-", r)
   5028 	}
   5029 	y = 1
   5030 	r = x - y
   5031 	if r != 254 {
   5032 		t.Errorf("255 %s 1 = %d, want 254", "-", r)
   5033 	}
   5034 	y = 255
   5035 	r = x - y
   5036 	if r != 0 {
   5037 		t.Errorf("255 %s 255 = %d, want 0", "-", r)
   5038 	}
   5039 }
   5040 func TestConstFolduint8div(t *testing.T) {
   5041 	var x, y, r uint8
   5042 	x = 0
   5043 	y = 1
   5044 	r = x / y
   5045 	if r != 0 {
   5046 		t.Errorf("0 %s 1 = %d, want 0", "/", r)
   5047 	}
   5048 	y = 255
   5049 	r = x / y
   5050 	if r != 0 {
   5051 		t.Errorf("0 %s 255 = %d, want 0", "/", r)
   5052 	}
   5053 	x = 1
   5054 	y = 1
   5055 	r = x / y
   5056 	if r != 1 {
   5057 		t.Errorf("1 %s 1 = %d, want 1", "/", r)
   5058 	}
   5059 	y = 255
   5060 	r = x / y
   5061 	if r != 0 {
   5062 		t.Errorf("1 %s 255 = %d, want 0", "/", r)
   5063 	}
   5064 	x = 255
   5065 	y = 1
   5066 	r = x / y
   5067 	if r != 255 {
   5068 		t.Errorf("255 %s 1 = %d, want 255", "/", r)
   5069 	}
   5070 	y = 255
   5071 	r = x / y
   5072 	if r != 1 {
   5073 		t.Errorf("255 %s 255 = %d, want 1", "/", r)
   5074 	}
   5075 }
   5076 func TestConstFolduint8mul(t *testing.T) {
   5077 	var x, y, r uint8
   5078 	x = 0
   5079 	y = 0
   5080 	r = x * y
   5081 	if r != 0 {
   5082 		t.Errorf("0 %s 0 = %d, want 0", "*", r)
   5083 	}
   5084 	y = 1
   5085 	r = x * y
   5086 	if r != 0 {
   5087 		t.Errorf("0 %s 1 = %d, want 0", "*", r)
   5088 	}
   5089 	y = 255
   5090 	r = x * y
   5091 	if r != 0 {
   5092 		t.Errorf("0 %s 255 = %d, want 0", "*", r)
   5093 	}
   5094 	x = 1
   5095 	y = 0
   5096 	r = x * y
   5097 	if r != 0 {
   5098 		t.Errorf("1 %s 0 = %d, want 0", "*", r)
   5099 	}
   5100 	y = 1
   5101 	r = x * y
   5102 	if r != 1 {
   5103 		t.Errorf("1 %s 1 = %d, want 1", "*", r)
   5104 	}
   5105 	y = 255
   5106 	r = x * y
   5107 	if r != 255 {
   5108 		t.Errorf("1 %s 255 = %d, want 255", "*", r)
   5109 	}
   5110 	x = 255
   5111 	y = 0
   5112 	r = x * y
   5113 	if r != 0 {
   5114 		t.Errorf("255 %s 0 = %d, want 0", "*", r)
   5115 	}
   5116 	y = 1
   5117 	r = x * y
   5118 	if r != 255 {
   5119 		t.Errorf("255 %s 1 = %d, want 255", "*", r)
   5120 	}
   5121 	y = 255
   5122 	r = x * y
   5123 	if r != 1 {
   5124 		t.Errorf("255 %s 255 = %d, want 1", "*", r)
   5125 	}
   5126 }
   5127 func TestConstFolduint8mod(t *testing.T) {
   5128 	var x, y, r uint8
   5129 	x = 0
   5130 	y = 1
   5131 	r = x % y
   5132 	if r != 0 {
   5133 		t.Errorf("0 %s 1 = %d, want 0", "%", r)
   5134 	}
   5135 	y = 255
   5136 	r = x % y
   5137 	if r != 0 {
   5138 		t.Errorf("0 %s 255 = %d, want 0", "%", r)
   5139 	}
   5140 	x = 1
   5141 	y = 1
   5142 	r = x % y
   5143 	if r != 0 {
   5144 		t.Errorf("1 %s 1 = %d, want 0", "%", r)
   5145 	}
   5146 	y = 255
   5147 	r = x % y
   5148 	if r != 1 {
   5149 		t.Errorf("1 %s 255 = %d, want 1", "%", r)
   5150 	}
   5151 	x = 255
   5152 	y = 1
   5153 	r = x % y
   5154 	if r != 0 {
   5155 		t.Errorf("255 %s 1 = %d, want 0", "%", r)
   5156 	}
   5157 	y = 255
   5158 	r = x % y
   5159 	if r != 0 {
   5160 		t.Errorf("255 %s 255 = %d, want 0", "%", r)
   5161 	}
   5162 }
   5163 func TestConstFoldint8add(t *testing.T) {
   5164 	var x, y, r int8
   5165 	x = -128
   5166 	y = -128
   5167 	r = x + y
   5168 	if r != 0 {
   5169 		t.Errorf("-128 %s -128 = %d, want 0", "+", r)
   5170 	}
   5171 	y = -127
   5172 	r = x + y
   5173 	if r != 1 {
   5174 		t.Errorf("-128 %s -127 = %d, want 1", "+", r)
   5175 	}
   5176 	y = -1
   5177 	r = x + y
   5178 	if r != 127 {
   5179 		t.Errorf("-128 %s -1 = %d, want 127", "+", r)
   5180 	}
   5181 	y = 0
   5182 	r = x + y
   5183 	if r != -128 {
   5184 		t.Errorf("-128 %s 0 = %d, want -128", "+", r)
   5185 	}
   5186 	y = 1
   5187 	r = x + y
   5188 	if r != -127 {
   5189 		t.Errorf("-128 %s 1 = %d, want -127", "+", r)
   5190 	}
   5191 	y = 126
   5192 	r = x + y
   5193 	if r != -2 {
   5194 		t.Errorf("-128 %s 126 = %d, want -2", "+", r)
   5195 	}
   5196 	y = 127
   5197 	r = x + y
   5198 	if r != -1 {
   5199 		t.Errorf("-128 %s 127 = %d, want -1", "+", r)
   5200 	}
   5201 	x = -127
   5202 	y = -128
   5203 	r = x + y
   5204 	if r != 1 {
   5205 		t.Errorf("-127 %s -128 = %d, want 1", "+", r)
   5206 	}
   5207 	y = -127
   5208 	r = x + y
   5209 	if r != 2 {
   5210 		t.Errorf("-127 %s -127 = %d, want 2", "+", r)
   5211 	}
   5212 	y = -1
   5213 	r = x + y
   5214 	if r != -128 {
   5215 		t.Errorf("-127 %s -1 = %d, want -128", "+", r)
   5216 	}
   5217 	y = 0
   5218 	r = x + y
   5219 	if r != -127 {
   5220 		t.Errorf("-127 %s 0 = %d, want -127", "+", r)
   5221 	}
   5222 	y = 1
   5223 	r = x + y
   5224 	if r != -126 {
   5225 		t.Errorf("-127 %s 1 = %d, want -126", "+", r)
   5226 	}
   5227 	y = 126
   5228 	r = x + y
   5229 	if r != -1 {
   5230 		t.Errorf("-127 %s 126 = %d, want -1", "+", r)
   5231 	}
   5232 	y = 127
   5233 	r = x + y
   5234 	if r != 0 {
   5235 		t.Errorf("-127 %s 127 = %d, want 0", "+", r)
   5236 	}
   5237 	x = -1
   5238 	y = -128
   5239 	r = x + y
   5240 	if r != 127 {
   5241 		t.Errorf("-1 %s -128 = %d, want 127", "+", r)
   5242 	}
   5243 	y = -127
   5244 	r = x + y
   5245 	if r != -128 {
   5246 		t.Errorf("-1 %s -127 = %d, want -128", "+", r)
   5247 	}
   5248 	y = -1
   5249 	r = x + y
   5250 	if r != -2 {
   5251 		t.Errorf("-1 %s -1 = %d, want -2", "+", r)
   5252 	}
   5253 	y = 0
   5254 	r = x + y
   5255 	if r != -1 {
   5256 		t.Errorf("-1 %s 0 = %d, want -1", "+", r)
   5257 	}
   5258 	y = 1
   5259 	r = x + y
   5260 	if r != 0 {
   5261 		t.Errorf("-1 %s 1 = %d, want 0", "+", r)
   5262 	}
   5263 	y = 126
   5264 	r = x + y
   5265 	if r != 125 {
   5266 		t.Errorf("-1 %s 126 = %d, want 125", "+", r)
   5267 	}
   5268 	y = 127
   5269 	r = x + y
   5270 	if r != 126 {
   5271 		t.Errorf("-1 %s 127 = %d, want 126", "+", r)
   5272 	}
   5273 	x = 0
   5274 	y = -128
   5275 	r = x + y
   5276 	if r != -128 {
   5277 		t.Errorf("0 %s -128 = %d, want -128", "+", r)
   5278 	}
   5279 	y = -127
   5280 	r = x + y
   5281 	if r != -127 {
   5282 		t.Errorf("0 %s -127 = %d, want -127", "+", r)
   5283 	}
   5284 	y = -1
   5285 	r = x + y
   5286 	if r != -1 {
   5287 		t.Errorf("0 %s -1 = %d, want -1", "+", r)
   5288 	}
   5289 	y = 0
   5290 	r = x + y
   5291 	if r != 0 {
   5292 		t.Errorf("0 %s 0 = %d, want 0", "+", r)
   5293 	}
   5294 	y = 1
   5295 	r = x + y
   5296 	if r != 1 {
   5297 		t.Errorf("0 %s 1 = %d, want 1", "+", r)
   5298 	}
   5299 	y = 126
   5300 	r = x + y
   5301 	if r != 126 {
   5302 		t.Errorf("0 %s 126 = %d, want 126", "+", r)
   5303 	}
   5304 	y = 127
   5305 	r = x + y
   5306 	if r != 127 {
   5307 		t.Errorf("0 %s 127 = %d, want 127", "+", r)
   5308 	}
   5309 	x = 1
   5310 	y = -128
   5311 	r = x + y
   5312 	if r != -127 {
   5313 		t.Errorf("1 %s -128 = %d, want -127", "+", r)
   5314 	}
   5315 	y = -127
   5316 	r = x + y
   5317 	if r != -126 {
   5318 		t.Errorf("1 %s -127 = %d, want -126", "+", r)
   5319 	}
   5320 	y = -1
   5321 	r = x + y
   5322 	if r != 0 {
   5323 		t.Errorf("1 %s -1 = %d, want 0", "+", r)
   5324 	}
   5325 	y = 0
   5326 	r = x + y
   5327 	if r != 1 {
   5328 		t.Errorf("1 %s 0 = %d, want 1", "+", r)
   5329 	}
   5330 	y = 1
   5331 	r = x + y
   5332 	if r != 2 {
   5333 		t.Errorf("1 %s 1 = %d, want 2", "+", r)
   5334 	}
   5335 	y = 126
   5336 	r = x + y
   5337 	if r != 127 {
   5338 		t.Errorf("1 %s 126 = %d, want 127", "+", r)
   5339 	}
   5340 	y = 127
   5341 	r = x + y
   5342 	if r != -128 {
   5343 		t.Errorf("1 %s 127 = %d, want -128", "+", r)
   5344 	}
   5345 	x = 126
   5346 	y = -128
   5347 	r = x + y
   5348 	if r != -2 {
   5349 		t.Errorf("126 %s -128 = %d, want -2", "+", r)
   5350 	}
   5351 	y = -127
   5352 	r = x + y
   5353 	if r != -1 {
   5354 		t.Errorf("126 %s -127 = %d, want -1", "+", r)
   5355 	}
   5356 	y = -1
   5357 	r = x + y
   5358 	if r != 125 {
   5359 		t.Errorf("126 %s -1 = %d, want 125", "+", r)
   5360 	}
   5361 	y = 0
   5362 	r = x + y
   5363 	if r != 126 {
   5364 		t.Errorf("126 %s 0 = %d, want 126", "+", r)
   5365 	}
   5366 	y = 1
   5367 	r = x + y
   5368 	if r != 127 {
   5369 		t.Errorf("126 %s 1 = %d, want 127", "+", r)
   5370 	}
   5371 	y = 126
   5372 	r = x + y
   5373 	if r != -4 {
   5374 		t.Errorf("126 %s 126 = %d, want -4", "+", r)
   5375 	}
   5376 	y = 127
   5377 	r = x + y
   5378 	if r != -3 {
   5379 		t.Errorf("126 %s 127 = %d, want -3", "+", r)
   5380 	}
   5381 	x = 127
   5382 	y = -128
   5383 	r = x + y
   5384 	if r != -1 {
   5385 		t.Errorf("127 %s -128 = %d, want -1", "+", r)
   5386 	}
   5387 	y = -127
   5388 	r = x + y
   5389 	if r != 0 {
   5390 		t.Errorf("127 %s -127 = %d, want 0", "+", r)
   5391 	}
   5392 	y = -1
   5393 	r = x + y
   5394 	if r != 126 {
   5395 		t.Errorf("127 %s -1 = %d, want 126", "+", r)
   5396 	}
   5397 	y = 0
   5398 	r = x + y
   5399 	if r != 127 {
   5400 		t.Errorf("127 %s 0 = %d, want 127", "+", r)
   5401 	}
   5402 	y = 1
   5403 	r = x + y
   5404 	if r != -128 {
   5405 		t.Errorf("127 %s 1 = %d, want -128", "+", r)
   5406 	}
   5407 	y = 126
   5408 	r = x + y
   5409 	if r != -3 {
   5410 		t.Errorf("127 %s 126 = %d, want -3", "+", r)
   5411 	}
   5412 	y = 127
   5413 	r = x + y
   5414 	if r != -2 {
   5415 		t.Errorf("127 %s 127 = %d, want -2", "+", r)
   5416 	}
   5417 }
   5418 func TestConstFoldint8sub(t *testing.T) {
   5419 	var x, y, r int8
   5420 	x = -128
   5421 	y = -128
   5422 	r = x - y
   5423 	if r != 0 {
   5424 		t.Errorf("-128 %s -128 = %d, want 0", "-", r)
   5425 	}
   5426 	y = -127
   5427 	r = x - y
   5428 	if r != -1 {
   5429 		t.Errorf("-128 %s -127 = %d, want -1", "-", r)
   5430 	}
   5431 	y = -1
   5432 	r = x - y
   5433 	if r != -127 {
   5434 		t.Errorf("-128 %s -1 = %d, want -127", "-", r)
   5435 	}
   5436 	y = 0
   5437 	r = x - y
   5438 	if r != -128 {
   5439 		t.Errorf("-128 %s 0 = %d, want -128", "-", r)
   5440 	}
   5441 	y = 1
   5442 	r = x - y
   5443 	if r != 127 {
   5444 		t.Errorf("-128 %s 1 = %d, want 127", "-", r)
   5445 	}
   5446 	y = 126
   5447 	r = x - y
   5448 	if r != 2 {
   5449 		t.Errorf("-128 %s 126 = %d, want 2", "-", r)
   5450 	}
   5451 	y = 127
   5452 	r = x - y
   5453 	if r != 1 {
   5454 		t.Errorf("-128 %s 127 = %d, want 1", "-", r)
   5455 	}
   5456 	x = -127
   5457 	y = -128
   5458 	r = x - y
   5459 	if r != 1 {
   5460 		t.Errorf("-127 %s -128 = %d, want 1", "-", r)
   5461 	}
   5462 	y = -127
   5463 	r = x - y
   5464 	if r != 0 {
   5465 		t.Errorf("-127 %s -127 = %d, want 0", "-", r)
   5466 	}
   5467 	y = -1
   5468 	r = x - y
   5469 	if r != -126 {
   5470 		t.Errorf("-127 %s -1 = %d, want -126", "-", r)
   5471 	}
   5472 	y = 0
   5473 	r = x - y
   5474 	if r != -127 {
   5475 		t.Errorf("-127 %s 0 = %d, want -127", "-", r)
   5476 	}
   5477 	y = 1
   5478 	r = x - y
   5479 	if r != -128 {
   5480 		t.Errorf("-127 %s 1 = %d, want -128", "-", r)
   5481 	}
   5482 	y = 126
   5483 	r = x - y
   5484 	if r != 3 {
   5485 		t.Errorf("-127 %s 126 = %d, want 3", "-", r)
   5486 	}
   5487 	y = 127
   5488 	r = x - y
   5489 	if r != 2 {
   5490 		t.Errorf("-127 %s 127 = %d, want 2", "-", r)
   5491 	}
   5492 	x = -1
   5493 	y = -128
   5494 	r = x - y
   5495 	if r != 127 {
   5496 		t.Errorf("-1 %s -128 = %d, want 127", "-", r)
   5497 	}
   5498 	y = -127
   5499 	r = x - y
   5500 	if r != 126 {
   5501 		t.Errorf("-1 %s -127 = %d, want 126", "-", r)
   5502 	}
   5503 	y = -1
   5504 	r = x - y
   5505 	if r != 0 {
   5506 		t.Errorf("-1 %s -1 = %d, want 0", "-", r)
   5507 	}
   5508 	y = 0
   5509 	r = x - y
   5510 	if r != -1 {
   5511 		t.Errorf("-1 %s 0 = %d, want -1", "-", r)
   5512 	}
   5513 	y = 1
   5514 	r = x - y
   5515 	if r != -2 {
   5516 		t.Errorf("-1 %s 1 = %d, want -2", "-", r)
   5517 	}
   5518 	y = 126
   5519 	r = x - y
   5520 	if r != -127 {
   5521 		t.Errorf("-1 %s 126 = %d, want -127", "-", r)
   5522 	}
   5523 	y = 127
   5524 	r = x - y
   5525 	if r != -128 {
   5526 		t.Errorf("-1 %s 127 = %d, want -128", "-", r)
   5527 	}
   5528 	x = 0
   5529 	y = -128
   5530 	r = x - y
   5531 	if r != -128 {
   5532 		t.Errorf("0 %s -128 = %d, want -128", "-", r)
   5533 	}
   5534 	y = -127
   5535 	r = x - y
   5536 	if r != 127 {
   5537 		t.Errorf("0 %s -127 = %d, want 127", "-", r)
   5538 	}
   5539 	y = -1
   5540 	r = x - y
   5541 	if r != 1 {
   5542 		t.Errorf("0 %s -1 = %d, want 1", "-", r)
   5543 	}
   5544 	y = 0
   5545 	r = x - y
   5546 	if r != 0 {
   5547 		t.Errorf("0 %s 0 = %d, want 0", "-", r)
   5548 	}
   5549 	y = 1
   5550 	r = x - y
   5551 	if r != -1 {
   5552 		t.Errorf("0 %s 1 = %d, want -1", "-", r)
   5553 	}
   5554 	y = 126
   5555 	r = x - y
   5556 	if r != -126 {
   5557 		t.Errorf("0 %s 126 = %d, want -126", "-", r)
   5558 	}
   5559 	y = 127
   5560 	r = x - y
   5561 	if r != -127 {
   5562 		t.Errorf("0 %s 127 = %d, want -127", "-", r)
   5563 	}
   5564 	x = 1
   5565 	y = -128
   5566 	r = x - y
   5567 	if r != -127 {
   5568 		t.Errorf("1 %s -128 = %d, want -127", "-", r)
   5569 	}
   5570 	y = -127
   5571 	r = x - y
   5572 	if r != -128 {
   5573 		t.Errorf("1 %s -127 = %d, want -128", "-", r)
   5574 	}
   5575 	y = -1
   5576 	r = x - y
   5577 	if r != 2 {
   5578 		t.Errorf("1 %s -1 = %d, want 2", "-", r)
   5579 	}
   5580 	y = 0
   5581 	r = x - y
   5582 	if r != 1 {
   5583 		t.Errorf("1 %s 0 = %d, want 1", "-", r)
   5584 	}
   5585 	y = 1
   5586 	r = x - y
   5587 	if r != 0 {
   5588 		t.Errorf("1 %s 1 = %d, want 0", "-", r)
   5589 	}
   5590 	y = 126
   5591 	r = x - y
   5592 	if r != -125 {
   5593 		t.Errorf("1 %s 126 = %d, want -125", "-", r)
   5594 	}
   5595 	y = 127
   5596 	r = x - y
   5597 	if r != -126 {
   5598 		t.Errorf("1 %s 127 = %d, want -126", "-", r)
   5599 	}
   5600 	x = 126
   5601 	y = -128
   5602 	r = x - y
   5603 	if r != -2 {
   5604 		t.Errorf("126 %s -128 = %d, want -2", "-", r)
   5605 	}
   5606 	y = -127
   5607 	r = x - y
   5608 	if r != -3 {
   5609 		t.Errorf("126 %s -127 = %d, want -3", "-", r)
   5610 	}
   5611 	y = -1
   5612 	r = x - y
   5613 	if r != 127 {
   5614 		t.Errorf("126 %s -1 = %d, want 127", "-", r)
   5615 	}
   5616 	y = 0
   5617 	r = x - y
   5618 	if r != 126 {
   5619 		t.Errorf("126 %s 0 = %d, want 126", "-", r)
   5620 	}
   5621 	y = 1
   5622 	r = x - y
   5623 	if r != 125 {
   5624 		t.Errorf("126 %s 1 = %d, want 125", "-", r)
   5625 	}
   5626 	y = 126
   5627 	r = x - y
   5628 	if r != 0 {
   5629 		t.Errorf("126 %s 126 = %d, want 0", "-", r)
   5630 	}
   5631 	y = 127
   5632 	r = x - y
   5633 	if r != -1 {
   5634 		t.Errorf("126 %s 127 = %d, want -1", "-", r)
   5635 	}
   5636 	x = 127
   5637 	y = -128
   5638 	r = x - y
   5639 	if r != -1 {
   5640 		t.Errorf("127 %s -128 = %d, want -1", "-", r)
   5641 	}
   5642 	y = -127
   5643 	r = x - y
   5644 	if r != -2 {
   5645 		t.Errorf("127 %s -127 = %d, want -2", "-", r)
   5646 	}
   5647 	y = -1
   5648 	r = x - y
   5649 	if r != -128 {
   5650 		t.Errorf("127 %s -1 = %d, want -128", "-", r)
   5651 	}
   5652 	y = 0
   5653 	r = x - y
   5654 	if r != 127 {
   5655 		t.Errorf("127 %s 0 = %d, want 127", "-", r)
   5656 	}
   5657 	y = 1
   5658 	r = x - y
   5659 	if r != 126 {
   5660 		t.Errorf("127 %s 1 = %d, want 126", "-", r)
   5661 	}
   5662 	y = 126
   5663 	r = x - y
   5664 	if r != 1 {
   5665 		t.Errorf("127 %s 126 = %d, want 1", "-", r)
   5666 	}
   5667 	y = 127
   5668 	r = x - y
   5669 	if r != 0 {
   5670 		t.Errorf("127 %s 127 = %d, want 0", "-", r)
   5671 	}
   5672 }
   5673 func TestConstFoldint8div(t *testing.T) {
   5674 	var x, y, r int8
   5675 	x = -128
   5676 	y = -128
   5677 	r = x / y
   5678 	if r != 1 {
   5679 		t.Errorf("-128 %s -128 = %d, want 1", "/", r)
   5680 	}
   5681 	y = -127
   5682 	r = x / y
   5683 	if r != 1 {
   5684 		t.Errorf("-128 %s -127 = %d, want 1", "/", r)
   5685 	}
   5686 	y = -1
   5687 	r = x / y
   5688 	if r != -128 {
   5689 		t.Errorf("-128 %s -1 = %d, want -128", "/", r)
   5690 	}
   5691 	y = 1
   5692 	r = x / y
   5693 	if r != -128 {
   5694 		t.Errorf("-128 %s 1 = %d, want -128", "/", r)
   5695 	}
   5696 	y = 126
   5697 	r = x / y
   5698 	if r != -1 {
   5699 		t.Errorf("-128 %s 126 = %d, want -1", "/", r)
   5700 	}
   5701 	y = 127
   5702 	r = x / y
   5703 	if r != -1 {
   5704 		t.Errorf("-128 %s 127 = %d, want -1", "/", r)
   5705 	}
   5706 	x = -127
   5707 	y = -128
   5708 	r = x / y
   5709 	if r != 0 {
   5710 		t.Errorf("-127 %s -128 = %d, want 0", "/", r)
   5711 	}
   5712 	y = -127
   5713 	r = x / y
   5714 	if r != 1 {
   5715 		t.Errorf("-127 %s -127 = %d, want 1", "/", r)
   5716 	}
   5717 	y = -1
   5718 	r = x / y
   5719 	if r != 127 {
   5720 		t.Errorf("-127 %s -1 = %d, want 127", "/", r)
   5721 	}
   5722 	y = 1
   5723 	r = x / y
   5724 	if r != -127 {
   5725 		t.Errorf("-127 %s 1 = %d, want -127", "/", r)
   5726 	}
   5727 	y = 126
   5728 	r = x / y
   5729 	if r != -1 {
   5730 		t.Errorf("-127 %s 126 = %d, want -1", "/", r)
   5731 	}
   5732 	y = 127
   5733 	r = x / y
   5734 	if r != -1 {
   5735 		t.Errorf("-127 %s 127 = %d, want -1", "/", r)
   5736 	}
   5737 	x = -1
   5738 	y = -128
   5739 	r = x / y
   5740 	if r != 0 {
   5741 		t.Errorf("-1 %s -128 = %d, want 0", "/", r)
   5742 	}
   5743 	y = -127
   5744 	r = x / y
   5745 	if r != 0 {
   5746 		t.Errorf("-1 %s -127 = %d, want 0", "/", r)
   5747 	}
   5748 	y = -1
   5749 	r = x / y
   5750 	if r != 1 {
   5751 		t.Errorf("-1 %s -1 = %d, want 1", "/", r)
   5752 	}
   5753 	y = 1
   5754 	r = x / y
   5755 	if r != -1 {
   5756 		t.Errorf("-1 %s 1 = %d, want -1", "/", r)
   5757 	}
   5758 	y = 126
   5759 	r = x / y
   5760 	if r != 0 {
   5761 		t.Errorf("-1 %s 126 = %d, want 0", "/", r)
   5762 	}
   5763 	y = 127
   5764 	r = x / y
   5765 	if r != 0 {
   5766 		t.Errorf("-1 %s 127 = %d, want 0", "/", r)
   5767 	}
   5768 	x = 0
   5769 	y = -128
   5770 	r = x / y
   5771 	if r != 0 {
   5772 		t.Errorf("0 %s -128 = %d, want 0", "/", r)
   5773 	}
   5774 	y = -127
   5775 	r = x / y
   5776 	if r != 0 {
   5777 		t.Errorf("0 %s -127 = %d, want 0", "/", r)
   5778 	}
   5779 	y = -1
   5780 	r = x / y
   5781 	if r != 0 {
   5782 		t.Errorf("0 %s -1 = %d, want 0", "/", r)
   5783 	}
   5784 	y = 1
   5785 	r = x / y
   5786 	if r != 0 {
   5787 		t.Errorf("0 %s 1 = %d, want 0", "/", r)
   5788 	}
   5789 	y = 126
   5790 	r = x / y
   5791 	if r != 0 {
   5792 		t.Errorf("0 %s 126 = %d, want 0", "/", r)
   5793 	}
   5794 	y = 127
   5795 	r = x / y
   5796 	if r != 0 {
   5797 		t.Errorf("0 %s 127 = %d, want 0", "/", r)
   5798 	}
   5799 	x = 1
   5800 	y = -128
   5801 	r = x / y
   5802 	if r != 0 {
   5803 		t.Errorf("1 %s -128 = %d, want 0", "/", r)
   5804 	}
   5805 	y = -127
   5806 	r = x / y
   5807 	if r != 0 {
   5808 		t.Errorf("1 %s -127 = %d, want 0", "/", r)
   5809 	}
   5810 	y = -1
   5811 	r = x / y
   5812 	if r != -1 {
   5813 		t.Errorf("1 %s -1 = %d, want -1", "/", r)
   5814 	}
   5815 	y = 1
   5816 	r = x / y
   5817 	if r != 1 {
   5818 		t.Errorf("1 %s 1 = %d, want 1", "/", r)
   5819 	}
   5820 	y = 126
   5821 	r = x / y
   5822 	if r != 0 {
   5823 		t.Errorf("1 %s 126 = %d, want 0", "/", r)
   5824 	}
   5825 	y = 127
   5826 	r = x / y
   5827 	if r != 0 {
   5828 		t.Errorf("1 %s 127 = %d, want 0", "/", r)
   5829 	}
   5830 	x = 126
   5831 	y = -128
   5832 	r = x / y
   5833 	if r != 0 {
   5834 		t.Errorf("126 %s -128 = %d, want 0", "/", r)
   5835 	}
   5836 	y = -127
   5837 	r = x / y
   5838 	if r != 0 {
   5839 		t.Errorf("126 %s -127 = %d, want 0", "/", r)
   5840 	}
   5841 	y = -1
   5842 	r = x / y
   5843 	if r != -126 {
   5844 		t.Errorf("126 %s -1 = %d, want -126", "/", r)
   5845 	}
   5846 	y = 1
   5847 	r = x / y
   5848 	if r != 126 {
   5849 		t.Errorf("126 %s 1 = %d, want 126", "/", r)
   5850 	}
   5851 	y = 126
   5852 	r = x / y
   5853 	if r != 1 {
   5854 		t.Errorf("126 %s 126 = %d, want 1", "/", r)
   5855 	}
   5856 	y = 127
   5857 	r = x / y
   5858 	if r != 0 {
   5859 		t.Errorf("126 %s 127 = %d, want 0", "/", r)
   5860 	}
   5861 	x = 127
   5862 	y = -128
   5863 	r = x / y
   5864 	if r != 0 {
   5865 		t.Errorf("127 %s -128 = %d, want 0", "/", r)
   5866 	}
   5867 	y = -127
   5868 	r = x / y
   5869 	if r != -1 {
   5870 		t.Errorf("127 %s -127 = %d, want -1", "/", r)
   5871 	}
   5872 	y = -1
   5873 	r = x / y
   5874 	if r != -127 {
   5875 		t.Errorf("127 %s -1 = %d, want -127", "/", r)
   5876 	}
   5877 	y = 1
   5878 	r = x / y
   5879 	if r != 127 {
   5880 		t.Errorf("127 %s 1 = %d, want 127", "/", r)
   5881 	}
   5882 	y = 126
   5883 	r = x / y
   5884 	if r != 1 {
   5885 		t.Errorf("127 %s 126 = %d, want 1", "/", r)
   5886 	}
   5887 	y = 127
   5888 	r = x / y
   5889 	if r != 1 {
   5890 		t.Errorf("127 %s 127 = %d, want 1", "/", r)
   5891 	}
   5892 }
   5893 func TestConstFoldint8mul(t *testing.T) {
   5894 	var x, y, r int8
   5895 	x = -128
   5896 	y = -128
   5897 	r = x * y
   5898 	if r != 0 {
   5899 		t.Errorf("-128 %s -128 = %d, want 0", "*", r)
   5900 	}
   5901 	y = -127
   5902 	r = x * y
   5903 	if r != -128 {
   5904 		t.Errorf("-128 %s -127 = %d, want -128", "*", r)
   5905 	}
   5906 	y = -1
   5907 	r = x * y
   5908 	if r != -128 {
   5909 		t.Errorf("-128 %s -1 = %d, want -128", "*", r)
   5910 	}
   5911 	y = 0
   5912 	r = x * y
   5913 	if r != 0 {
   5914 		t.Errorf("-128 %s 0 = %d, want 0", "*", r)
   5915 	}
   5916 	y = 1
   5917 	r = x * y
   5918 	if r != -128 {
   5919 		t.Errorf("-128 %s 1 = %d, want -128", "*", r)
   5920 	}
   5921 	y = 126
   5922 	r = x * y
   5923 	if r != 0 {
   5924 		t.Errorf("-128 %s 126 = %d, want 0", "*", r)
   5925 	}
   5926 	y = 127
   5927 	r = x * y
   5928 	if r != -128 {
   5929 		t.Errorf("-128 %s 127 = %d, want -128", "*", r)
   5930 	}
   5931 	x = -127
   5932 	y = -128
   5933 	r = x * y
   5934 	if r != -128 {
   5935 		t.Errorf("-127 %s -128 = %d, want -128", "*", r)
   5936 	}
   5937 	y = -127
   5938 	r = x * y
   5939 	if r != 1 {
   5940 		t.Errorf("-127 %s -127 = %d, want 1", "*", r)
   5941 	}
   5942 	y = -1
   5943 	r = x * y
   5944 	if r != 127 {
   5945 		t.Errorf("-127 %s -1 = %d, want 127", "*", r)
   5946 	}
   5947 	y = 0
   5948 	r = x * y
   5949 	if r != 0 {
   5950 		t.Errorf("-127 %s 0 = %d, want 0", "*", r)
   5951 	}
   5952 	y = 1
   5953 	r = x * y
   5954 	if r != -127 {
   5955 		t.Errorf("-127 %s 1 = %d, want -127", "*", r)
   5956 	}
   5957 	y = 126
   5958 	r = x * y
   5959 	if r != 126 {
   5960 		t.Errorf("-127 %s 126 = %d, want 126", "*", r)
   5961 	}
   5962 	y = 127
   5963 	r = x * y
   5964 	if r != -1 {
   5965 		t.Errorf("-127 %s 127 = %d, want -1", "*", r)
   5966 	}
   5967 	x = -1
   5968 	y = -128
   5969 	r = x * y
   5970 	if r != -128 {
   5971 		t.Errorf("-1 %s -128 = %d, want -128", "*", r)
   5972 	}
   5973 	y = -127
   5974 	r = x * y
   5975 	if r != 127 {
   5976 		t.Errorf("-1 %s -127 = %d, want 127", "*", r)
   5977 	}
   5978 	y = -1
   5979 	r = x * y
   5980 	if r != 1 {
   5981 		t.Errorf("-1 %s -1 = %d, want 1", "*", r)
   5982 	}
   5983 	y = 0
   5984 	r = x * y
   5985 	if r != 0 {
   5986 		t.Errorf("-1 %s 0 = %d, want 0", "*", r)
   5987 	}
   5988 	y = 1
   5989 	r = x * y
   5990 	if r != -1 {
   5991 		t.Errorf("-1 %s 1 = %d, want -1", "*", r)
   5992 	}
   5993 	y = 126
   5994 	r = x * y
   5995 	if r != -126 {
   5996 		t.Errorf("-1 %s 126 = %d, want -126", "*", r)
   5997 	}
   5998 	y = 127
   5999 	r = x * y
   6000 	if r != -127 {
   6001 		t.Errorf("-1 %s 127 = %d, want -127", "*", r)
   6002 	}
   6003 	x = 0
   6004 	y = -128
   6005 	r = x * y
   6006 	if r != 0 {
   6007 		t.Errorf("0 %s -128 = %d, want 0", "*", r)
   6008 	}
   6009 	y = -127
   6010 	r = x * y
   6011 	if r != 0 {
   6012 		t.Errorf("0 %s -127 = %d, want 0", "*", r)
   6013 	}
   6014 	y = -1
   6015 	r = x * y
   6016 	if r != 0 {
   6017 		t.Errorf("0 %s -1 = %d, want 0", "*", r)
   6018 	}
   6019 	y = 0
   6020 	r = x * y
   6021 	if r != 0 {
   6022 		t.Errorf("0 %s 0 = %d, want 0", "*", r)
   6023 	}
   6024 	y = 1
   6025 	r = x * y
   6026 	if r != 0 {
   6027 		t.Errorf("0 %s 1 = %d, want 0", "*", r)
   6028 	}
   6029 	y = 126
   6030 	r = x * y
   6031 	if r != 0 {
   6032 		t.Errorf("0 %s 126 = %d, want 0", "*", r)
   6033 	}
   6034 	y = 127
   6035 	r = x * y
   6036 	if r != 0 {
   6037 		t.Errorf("0 %s 127 = %d, want 0", "*", r)
   6038 	}
   6039 	x = 1
   6040 	y = -128
   6041 	r = x * y
   6042 	if r != -128 {
   6043 		t.Errorf("1 %s -128 = %d, want -128", "*", r)
   6044 	}
   6045 	y = -127
   6046 	r = x * y
   6047 	if r != -127 {
   6048 		t.Errorf("1 %s -127 = %d, want -127", "*", r)
   6049 	}
   6050 	y = -1
   6051 	r = x * y
   6052 	if r != -1 {
   6053 		t.Errorf("1 %s -1 = %d, want -1", "*", r)
   6054 	}
   6055 	y = 0
   6056 	r = x * y
   6057 	if r != 0 {
   6058 		t.Errorf("1 %s 0 = %d, want 0", "*", r)
   6059 	}
   6060 	y = 1
   6061 	r = x * y
   6062 	if r != 1 {
   6063 		t.Errorf("1 %s 1 = %d, want 1", "*", r)
   6064 	}
   6065 	y = 126
   6066 	r = x * y
   6067 	if r != 126 {
   6068 		t.Errorf("1 %s 126 = %d, want 126", "*", r)
   6069 	}
   6070 	y = 127
   6071 	r = x * y
   6072 	if r != 127 {
   6073 		t.Errorf("1 %s 127 = %d, want 127", "*", r)
   6074 	}
   6075 	x = 126
   6076 	y = -128
   6077 	r = x * y
   6078 	if r != 0 {
   6079 		t.Errorf("126 %s -128 = %d, want 0", "*", r)
   6080 	}
   6081 	y = -127
   6082 	r = x * y
   6083 	if r != 126 {
   6084 		t.Errorf("126 %s -127 = %d, want 126", "*", r)
   6085 	}
   6086 	y = -1
   6087 	r = x * y
   6088 	if r != -126 {
   6089 		t.Errorf("126 %s -1 = %d, want -126", "*", r)
   6090 	}
   6091 	y = 0
   6092 	r = x * y
   6093 	if r != 0 {
   6094 		t.Errorf("126 %s 0 = %d, want 0", "*", r)
   6095 	}
   6096 	y = 1
   6097 	r = x * y
   6098 	if r != 126 {
   6099 		t.Errorf("126 %s 1 = %d, want 126", "*", r)
   6100 	}
   6101 	y = 126
   6102 	r = x * y
   6103 	if r != 4 {
   6104 		t.Errorf("126 %s 126 = %d, want 4", "*", r)
   6105 	}
   6106 	y = 127
   6107 	r = x * y
   6108 	if r != -126 {
   6109 		t.Errorf("126 %s 127 = %d, want -126", "*", r)
   6110 	}
   6111 	x = 127
   6112 	y = -128
   6113 	r = x * y
   6114 	if r != -128 {
   6115 		t.Errorf("127 %s -128 = %d, want -128", "*", r)
   6116 	}
   6117 	y = -127
   6118 	r = x * y
   6119 	if r != -1 {
   6120 		t.Errorf("127 %s -127 = %d, want -1", "*", r)
   6121 	}
   6122 	y = -1
   6123 	r = x * y
   6124 	if r != -127 {
   6125 		t.Errorf("127 %s -1 = %d, want -127", "*", r)
   6126 	}
   6127 	y = 0
   6128 	r = x * y
   6129 	if r != 0 {
   6130 		t.Errorf("127 %s 0 = %d, want 0", "*", r)
   6131 	}
   6132 	y = 1
   6133 	r = x * y
   6134 	if r != 127 {
   6135 		t.Errorf("127 %s 1 = %d, want 127", "*", r)
   6136 	}
   6137 	y = 126
   6138 	r = x * y
   6139 	if r != -126 {
   6140 		t.Errorf("127 %s 126 = %d, want -126", "*", r)
   6141 	}
   6142 	y = 127
   6143 	r = x * y
   6144 	if r != 1 {
   6145 		t.Errorf("127 %s 127 = %d, want 1", "*", r)
   6146 	}
   6147 }
   6148 func TestConstFoldint8mod(t *testing.T) {
   6149 	var x, y, r int8
   6150 	x = -128
   6151 	y = -128
   6152 	r = x % y
   6153 	if r != 0 {
   6154 		t.Errorf("-128 %s -128 = %d, want 0", "%", r)
   6155 	}
   6156 	y = -127
   6157 	r = x % y
   6158 	if r != -1 {
   6159 		t.Errorf("-128 %s -127 = %d, want -1", "%", r)
   6160 	}
   6161 	y = -1
   6162 	r = x % y
   6163 	if r != 0 {
   6164 		t.Errorf("-128 %s -1 = %d, want 0", "%", r)
   6165 	}
   6166 	y = 1
   6167 	r = x % y
   6168 	if r != 0 {
   6169 		t.Errorf("-128 %s 1 = %d, want 0", "%", r)
   6170 	}
   6171 	y = 126
   6172 	r = x % y
   6173 	if r != -2 {
   6174 		t.Errorf("-128 %s 126 = %d, want -2", "%", r)
   6175 	}
   6176 	y = 127
   6177 	r = x % y
   6178 	if r != -1 {
   6179 		t.Errorf("-128 %s 127 = %d, want -1", "%", r)
   6180 	}
   6181 	x = -127
   6182 	y = -128
   6183 	r = x % y
   6184 	if r != -127 {
   6185 		t.Errorf("-127 %s -128 = %d, want -127", "%", r)
   6186 	}
   6187 	y = -127
   6188 	r = x % y
   6189 	if r != 0 {
   6190 		t.Errorf("-127 %s -127 = %d, want 0", "%", r)
   6191 	}
   6192 	y = -1
   6193 	r = x % y
   6194 	if r != 0 {
   6195 		t.Errorf("-127 %s -1 = %d, want 0", "%", r)
   6196 	}
   6197 	y = 1
   6198 	r = x % y
   6199 	if r != 0 {
   6200 		t.Errorf("-127 %s 1 = %d, want 0", "%", r)
   6201 	}
   6202 	y = 126
   6203 	r = x % y
   6204 	if r != -1 {
   6205 		t.Errorf("-127 %s 126 = %d, want -1", "%", r)
   6206 	}
   6207 	y = 127
   6208 	r = x % y
   6209 	if r != 0 {
   6210 		t.Errorf("-127 %s 127 = %d, want 0", "%", r)
   6211 	}
   6212 	x = -1
   6213 	y = -128
   6214 	r = x % y
   6215 	if r != -1 {
   6216 		t.Errorf("-1 %s -128 = %d, want -1", "%", r)
   6217 	}
   6218 	y = -127
   6219 	r = x % y
   6220 	if r != -1 {
   6221 		t.Errorf("-1 %s -127 = %d, want -1", "%", r)
   6222 	}
   6223 	y = -1
   6224 	r = x % y
   6225 	if r != 0 {
   6226 		t.Errorf("-1 %s -1 = %d, want 0", "%", r)
   6227 	}
   6228 	y = 1
   6229 	r = x % y
   6230 	if r != 0 {
   6231 		t.Errorf("-1 %s 1 = %d, want 0", "%", r)
   6232 	}
   6233 	y = 126
   6234 	r = x % y
   6235 	if r != -1 {
   6236 		t.Errorf("-1 %s 126 = %d, want -1", "%", r)
   6237 	}
   6238 	y = 127
   6239 	r = x % y
   6240 	if r != -1 {
   6241 		t.Errorf("-1 %s 127 = %d, want -1", "%", r)
   6242 	}
   6243 	x = 0
   6244 	y = -128
   6245 	r = x % y
   6246 	if r != 0 {
   6247 		t.Errorf("0 %s -128 = %d, want 0", "%", r)
   6248 	}
   6249 	y = -127
   6250 	r = x % y
   6251 	if r != 0 {
   6252 		t.Errorf("0 %s -127 = %d, want 0", "%", r)
   6253 	}
   6254 	y = -1
   6255 	r = x % y
   6256 	if r != 0 {
   6257 		t.Errorf("0 %s -1 = %d, want 0", "%", r)
   6258 	}
   6259 	y = 1
   6260 	r = x % y
   6261 	if r != 0 {
   6262 		t.Errorf("0 %s 1 = %d, want 0", "%", r)
   6263 	}
   6264 	y = 126
   6265 	r = x % y
   6266 	if r != 0 {
   6267 		t.Errorf("0 %s 126 = %d, want 0", "%", r)
   6268 	}
   6269 	y = 127
   6270 	r = x % y
   6271 	if r != 0 {
   6272 		t.Errorf("0 %s 127 = %d, want 0", "%", r)
   6273 	}
   6274 	x = 1
   6275 	y = -128
   6276 	r = x % y
   6277 	if r != 1 {
   6278 		t.Errorf("1 %s -128 = %d, want 1", "%", r)
   6279 	}
   6280 	y = -127
   6281 	r = x % y
   6282 	if r != 1 {
   6283 		t.Errorf("1 %s -127 = %d, want 1", "%", r)
   6284 	}
   6285 	y = -1
   6286 	r = x % y
   6287 	if r != 0 {
   6288 		t.Errorf("1 %s -1 = %d, want 0", "%", r)
   6289 	}
   6290 	y = 1
   6291 	r = x % y
   6292 	if r != 0 {
   6293 		t.Errorf("1 %s 1 = %d, want 0", "%", r)
   6294 	}
   6295 	y = 126
   6296 	r = x % y
   6297 	if r != 1 {
   6298 		t.Errorf("1 %s 126 = %d, want 1", "%", r)
   6299 	}
   6300 	y = 127
   6301 	r = x % y
   6302 	if r != 1 {
   6303 		t.Errorf("1 %s 127 = %d, want 1", "%", r)
   6304 	}
   6305 	x = 126
   6306 	y = -128
   6307 	r = x % y
   6308 	if r != 126 {
   6309 		t.Errorf("126 %s -128 = %d, want 126", "%", r)
   6310 	}
   6311 	y = -127
   6312 	r = x % y
   6313 	if r != 126 {
   6314 		t.Errorf("126 %s -127 = %d, want 126", "%", r)
   6315 	}
   6316 	y = -1
   6317 	r = x % y
   6318 	if r != 0 {
   6319 		t.Errorf("126 %s -1 = %d, want 0", "%", r)
   6320 	}
   6321 	y = 1
   6322 	r = x % y
   6323 	if r != 0 {
   6324 		t.Errorf("126 %s 1 = %d, want 0", "%", r)
   6325 	}
   6326 	y = 126
   6327 	r = x % y
   6328 	if r != 0 {
   6329 		t.Errorf("126 %s 126 = %d, want 0", "%", r)
   6330 	}
   6331 	y = 127
   6332 	r = x % y
   6333 	if r != 126 {
   6334 		t.Errorf("126 %s 127 = %d, want 126", "%", r)
   6335 	}
   6336 	x = 127
   6337 	y = -128
   6338 	r = x % y
   6339 	if r != 127 {
   6340 		t.Errorf("127 %s -128 = %d, want 127", "%", r)
   6341 	}
   6342 	y = -127
   6343 	r = x % y
   6344 	if r != 0 {
   6345 		t.Errorf("127 %s -127 = %d, want 0", "%", r)
   6346 	}
   6347 	y = -1
   6348 	r = x % y
   6349 	if r != 0 {
   6350 		t.Errorf("127 %s -1 = %d, want 0", "%", r)
   6351 	}
   6352 	y = 1
   6353 	r = x % y
   6354 	if r != 0 {
   6355 		t.Errorf("127 %s 1 = %d, want 0", "%", r)
   6356 	}
   6357 	y = 126
   6358 	r = x % y
   6359 	if r != 1 {
   6360 		t.Errorf("127 %s 126 = %d, want 1", "%", r)
   6361 	}
   6362 	y = 127
   6363 	r = x % y
   6364 	if r != 0 {
   6365 		t.Errorf("127 %s 127 = %d, want 0", "%", r)
   6366 	}
   6367 }
   6368 func TestConstFolduint64uint64lsh(t *testing.T) {
   6369 	var x, r uint64
   6370 	var y uint64
   6371 	x = 0
   6372 	y = 0
   6373 	r = x << y
   6374 	if r != 0 {
   6375 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   6376 	}
   6377 	y = 1
   6378 	r = x << y
   6379 	if r != 0 {
   6380 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   6381 	}
   6382 	y = 4294967296
   6383 	r = x << y
   6384 	if r != 0 {
   6385 		t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r)
   6386 	}
   6387 	y = 18446744073709551615
   6388 	r = x << y
   6389 	if r != 0 {
   6390 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r)
   6391 	}
   6392 	x = 1
   6393 	y = 0
   6394 	r = x << y
   6395 	if r != 1 {
   6396 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   6397 	}
   6398 	y = 1
   6399 	r = x << y
   6400 	if r != 2 {
   6401 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   6402 	}
   6403 	y = 4294967296
   6404 	r = x << y
   6405 	if r != 0 {
   6406 		t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r)
   6407 	}
   6408 	y = 18446744073709551615
   6409 	r = x << y
   6410 	if r != 0 {
   6411 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r)
   6412 	}
   6413 	x = 4294967296
   6414 	y = 0
   6415 	r = x << y
   6416 	if r != 4294967296 {
   6417 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r)
   6418 	}
   6419 	y = 1
   6420 	r = x << y
   6421 	if r != 8589934592 {
   6422 		t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r)
   6423 	}
   6424 	y = 4294967296
   6425 	r = x << y
   6426 	if r != 0 {
   6427 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", "<<", r)
   6428 	}
   6429 	y = 18446744073709551615
   6430 	r = x << y
   6431 	if r != 0 {
   6432 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 0", "<<", r)
   6433 	}
   6434 	x = 18446744073709551615
   6435 	y = 0
   6436 	r = x << y
   6437 	if r != 18446744073709551615 {
   6438 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "<<", r)
   6439 	}
   6440 	y = 1
   6441 	r = x << y
   6442 	if r != 18446744073709551614 {
   6443 		t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551614", "<<", r)
   6444 	}
   6445 	y = 4294967296
   6446 	r = x << y
   6447 	if r != 0 {
   6448 		t.Errorf("18446744073709551615 %s 4294967296 = %d, want 0", "<<", r)
   6449 	}
   6450 	y = 18446744073709551615
   6451 	r = x << y
   6452 	if r != 0 {
   6453 		t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 0", "<<", r)
   6454 	}
   6455 }
   6456 func TestConstFolduint64uint64rsh(t *testing.T) {
   6457 	var x, r uint64
   6458 	var y uint64
   6459 	x = 0
   6460 	y = 0
   6461 	r = x >> y
   6462 	if r != 0 {
   6463 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   6464 	}
   6465 	y = 1
   6466 	r = x >> y
   6467 	if r != 0 {
   6468 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   6469 	}
   6470 	y = 4294967296
   6471 	r = x >> y
   6472 	if r != 0 {
   6473 		t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r)
   6474 	}
   6475 	y = 18446744073709551615
   6476 	r = x >> y
   6477 	if r != 0 {
   6478 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r)
   6479 	}
   6480 	x = 1
   6481 	y = 0
   6482 	r = x >> y
   6483 	if r != 1 {
   6484 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   6485 	}
   6486 	y = 1
   6487 	r = x >> y
   6488 	if r != 0 {
   6489 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   6490 	}
   6491 	y = 4294967296
   6492 	r = x >> y
   6493 	if r != 0 {
   6494 		t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r)
   6495 	}
   6496 	y = 18446744073709551615
   6497 	r = x >> y
   6498 	if r != 0 {
   6499 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r)
   6500 	}
   6501 	x = 4294967296
   6502 	y = 0
   6503 	r = x >> y
   6504 	if r != 4294967296 {
   6505 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r)
   6506 	}
   6507 	y = 1
   6508 	r = x >> y
   6509 	if r != 2147483648 {
   6510 		t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r)
   6511 	}
   6512 	y = 4294967296
   6513 	r = x >> y
   6514 	if r != 0 {
   6515 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", ">>", r)
   6516 	}
   6517 	y = 18446744073709551615
   6518 	r = x >> y
   6519 	if r != 0 {
   6520 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 0", ">>", r)
   6521 	}
   6522 	x = 18446744073709551615
   6523 	y = 0
   6524 	r = x >> y
   6525 	if r != 18446744073709551615 {
   6526 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", ">>", r)
   6527 	}
   6528 	y = 1
   6529 	r = x >> y
   6530 	if r != 9223372036854775807 {
   6531 		t.Errorf("18446744073709551615 %s 1 = %d, want 9223372036854775807", ">>", r)
   6532 	}
   6533 	y = 4294967296
   6534 	r = x >> y
   6535 	if r != 0 {
   6536 		t.Errorf("18446744073709551615 %s 4294967296 = %d, want 0", ">>", r)
   6537 	}
   6538 	y = 18446744073709551615
   6539 	r = x >> y
   6540 	if r != 0 {
   6541 		t.Errorf("18446744073709551615 %s 18446744073709551615 = %d, want 0", ">>", r)
   6542 	}
   6543 }
   6544 func TestConstFolduint64uint32lsh(t *testing.T) {
   6545 	var x, r uint64
   6546 	var y uint32
   6547 	x = 0
   6548 	y = 0
   6549 	r = x << y
   6550 	if r != 0 {
   6551 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   6552 	}
   6553 	y = 1
   6554 	r = x << y
   6555 	if r != 0 {
   6556 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   6557 	}
   6558 	y = 4294967295
   6559 	r = x << y
   6560 	if r != 0 {
   6561 		t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r)
   6562 	}
   6563 	x = 1
   6564 	y = 0
   6565 	r = x << y
   6566 	if r != 1 {
   6567 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   6568 	}
   6569 	y = 1
   6570 	r = x << y
   6571 	if r != 2 {
   6572 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   6573 	}
   6574 	y = 4294967295
   6575 	r = x << y
   6576 	if r != 0 {
   6577 		t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r)
   6578 	}
   6579 	x = 4294967296
   6580 	y = 0
   6581 	r = x << y
   6582 	if r != 4294967296 {
   6583 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r)
   6584 	}
   6585 	y = 1
   6586 	r = x << y
   6587 	if r != 8589934592 {
   6588 		t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r)
   6589 	}
   6590 	y = 4294967295
   6591 	r = x << y
   6592 	if r != 0 {
   6593 		t.Errorf("4294967296 %s 4294967295 = %d, want 0", "<<", r)
   6594 	}
   6595 	x = 18446744073709551615
   6596 	y = 0
   6597 	r = x << y
   6598 	if r != 18446744073709551615 {
   6599 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "<<", r)
   6600 	}
   6601 	y = 1
   6602 	r = x << y
   6603 	if r != 18446744073709551614 {
   6604 		t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551614", "<<", r)
   6605 	}
   6606 	y = 4294967295
   6607 	r = x << y
   6608 	if r != 0 {
   6609 		t.Errorf("18446744073709551615 %s 4294967295 = %d, want 0", "<<", r)
   6610 	}
   6611 }
   6612 func TestConstFolduint64uint32rsh(t *testing.T) {
   6613 	var x, r uint64
   6614 	var y uint32
   6615 	x = 0
   6616 	y = 0
   6617 	r = x >> y
   6618 	if r != 0 {
   6619 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   6620 	}
   6621 	y = 1
   6622 	r = x >> y
   6623 	if r != 0 {
   6624 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   6625 	}
   6626 	y = 4294967295
   6627 	r = x >> y
   6628 	if r != 0 {
   6629 		t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r)
   6630 	}
   6631 	x = 1
   6632 	y = 0
   6633 	r = x >> y
   6634 	if r != 1 {
   6635 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   6636 	}
   6637 	y = 1
   6638 	r = x >> y
   6639 	if r != 0 {
   6640 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   6641 	}
   6642 	y = 4294967295
   6643 	r = x >> y
   6644 	if r != 0 {
   6645 		t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r)
   6646 	}
   6647 	x = 4294967296
   6648 	y = 0
   6649 	r = x >> y
   6650 	if r != 4294967296 {
   6651 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r)
   6652 	}
   6653 	y = 1
   6654 	r = x >> y
   6655 	if r != 2147483648 {
   6656 		t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r)
   6657 	}
   6658 	y = 4294967295
   6659 	r = x >> y
   6660 	if r != 0 {
   6661 		t.Errorf("4294967296 %s 4294967295 = %d, want 0", ">>", r)
   6662 	}
   6663 	x = 18446744073709551615
   6664 	y = 0
   6665 	r = x >> y
   6666 	if r != 18446744073709551615 {
   6667 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", ">>", r)
   6668 	}
   6669 	y = 1
   6670 	r = x >> y
   6671 	if r != 9223372036854775807 {
   6672 		t.Errorf("18446744073709551615 %s 1 = %d, want 9223372036854775807", ">>", r)
   6673 	}
   6674 	y = 4294967295
   6675 	r = x >> y
   6676 	if r != 0 {
   6677 		t.Errorf("18446744073709551615 %s 4294967295 = %d, want 0", ">>", r)
   6678 	}
   6679 }
   6680 func TestConstFolduint64uint16lsh(t *testing.T) {
   6681 	var x, r uint64
   6682 	var y uint16
   6683 	x = 0
   6684 	y = 0
   6685 	r = x << y
   6686 	if r != 0 {
   6687 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   6688 	}
   6689 	y = 1
   6690 	r = x << y
   6691 	if r != 0 {
   6692 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   6693 	}
   6694 	y = 65535
   6695 	r = x << y
   6696 	if r != 0 {
   6697 		t.Errorf("0 %s 65535 = %d, want 0", "<<", r)
   6698 	}
   6699 	x = 1
   6700 	y = 0
   6701 	r = x << y
   6702 	if r != 1 {
   6703 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   6704 	}
   6705 	y = 1
   6706 	r = x << y
   6707 	if r != 2 {
   6708 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   6709 	}
   6710 	y = 65535
   6711 	r = x << y
   6712 	if r != 0 {
   6713 		t.Errorf("1 %s 65535 = %d, want 0", "<<", r)
   6714 	}
   6715 	x = 4294967296
   6716 	y = 0
   6717 	r = x << y
   6718 	if r != 4294967296 {
   6719 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r)
   6720 	}
   6721 	y = 1
   6722 	r = x << y
   6723 	if r != 8589934592 {
   6724 		t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r)
   6725 	}
   6726 	y = 65535
   6727 	r = x << y
   6728 	if r != 0 {
   6729 		t.Errorf("4294967296 %s 65535 = %d, want 0", "<<", r)
   6730 	}
   6731 	x = 18446744073709551615
   6732 	y = 0
   6733 	r = x << y
   6734 	if r != 18446744073709551615 {
   6735 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "<<", r)
   6736 	}
   6737 	y = 1
   6738 	r = x << y
   6739 	if r != 18446744073709551614 {
   6740 		t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551614", "<<", r)
   6741 	}
   6742 	y = 65535
   6743 	r = x << y
   6744 	if r != 0 {
   6745 		t.Errorf("18446744073709551615 %s 65535 = %d, want 0", "<<", r)
   6746 	}
   6747 }
   6748 func TestConstFolduint64uint16rsh(t *testing.T) {
   6749 	var x, r uint64
   6750 	var y uint16
   6751 	x = 0
   6752 	y = 0
   6753 	r = x >> y
   6754 	if r != 0 {
   6755 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   6756 	}
   6757 	y = 1
   6758 	r = x >> y
   6759 	if r != 0 {
   6760 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   6761 	}
   6762 	y = 65535
   6763 	r = x >> y
   6764 	if r != 0 {
   6765 		t.Errorf("0 %s 65535 = %d, want 0", ">>", r)
   6766 	}
   6767 	x = 1
   6768 	y = 0
   6769 	r = x >> y
   6770 	if r != 1 {
   6771 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   6772 	}
   6773 	y = 1
   6774 	r = x >> y
   6775 	if r != 0 {
   6776 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   6777 	}
   6778 	y = 65535
   6779 	r = x >> y
   6780 	if r != 0 {
   6781 		t.Errorf("1 %s 65535 = %d, want 0", ">>", r)
   6782 	}
   6783 	x = 4294967296
   6784 	y = 0
   6785 	r = x >> y
   6786 	if r != 4294967296 {
   6787 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r)
   6788 	}
   6789 	y = 1
   6790 	r = x >> y
   6791 	if r != 2147483648 {
   6792 		t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r)
   6793 	}
   6794 	y = 65535
   6795 	r = x >> y
   6796 	if r != 0 {
   6797 		t.Errorf("4294967296 %s 65535 = %d, want 0", ">>", r)
   6798 	}
   6799 	x = 18446744073709551615
   6800 	y = 0
   6801 	r = x >> y
   6802 	if r != 18446744073709551615 {
   6803 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", ">>", r)
   6804 	}
   6805 	y = 1
   6806 	r = x >> y
   6807 	if r != 9223372036854775807 {
   6808 		t.Errorf("18446744073709551615 %s 1 = %d, want 9223372036854775807", ">>", r)
   6809 	}
   6810 	y = 65535
   6811 	r = x >> y
   6812 	if r != 0 {
   6813 		t.Errorf("18446744073709551615 %s 65535 = %d, want 0", ">>", r)
   6814 	}
   6815 }
   6816 func TestConstFolduint64uint8lsh(t *testing.T) {
   6817 	var x, r uint64
   6818 	var y uint8
   6819 	x = 0
   6820 	y = 0
   6821 	r = x << y
   6822 	if r != 0 {
   6823 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   6824 	}
   6825 	y = 1
   6826 	r = x << y
   6827 	if r != 0 {
   6828 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   6829 	}
   6830 	y = 255
   6831 	r = x << y
   6832 	if r != 0 {
   6833 		t.Errorf("0 %s 255 = %d, want 0", "<<", r)
   6834 	}
   6835 	x = 1
   6836 	y = 0
   6837 	r = x << y
   6838 	if r != 1 {
   6839 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   6840 	}
   6841 	y = 1
   6842 	r = x << y
   6843 	if r != 2 {
   6844 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   6845 	}
   6846 	y = 255
   6847 	r = x << y
   6848 	if r != 0 {
   6849 		t.Errorf("1 %s 255 = %d, want 0", "<<", r)
   6850 	}
   6851 	x = 4294967296
   6852 	y = 0
   6853 	r = x << y
   6854 	if r != 4294967296 {
   6855 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r)
   6856 	}
   6857 	y = 1
   6858 	r = x << y
   6859 	if r != 8589934592 {
   6860 		t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r)
   6861 	}
   6862 	y = 255
   6863 	r = x << y
   6864 	if r != 0 {
   6865 		t.Errorf("4294967296 %s 255 = %d, want 0", "<<", r)
   6866 	}
   6867 	x = 18446744073709551615
   6868 	y = 0
   6869 	r = x << y
   6870 	if r != 18446744073709551615 {
   6871 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", "<<", r)
   6872 	}
   6873 	y = 1
   6874 	r = x << y
   6875 	if r != 18446744073709551614 {
   6876 		t.Errorf("18446744073709551615 %s 1 = %d, want 18446744073709551614", "<<", r)
   6877 	}
   6878 	y = 255
   6879 	r = x << y
   6880 	if r != 0 {
   6881 		t.Errorf("18446744073709551615 %s 255 = %d, want 0", "<<", r)
   6882 	}
   6883 }
   6884 func TestConstFolduint64uint8rsh(t *testing.T) {
   6885 	var x, r uint64
   6886 	var y uint8
   6887 	x = 0
   6888 	y = 0
   6889 	r = x >> y
   6890 	if r != 0 {
   6891 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   6892 	}
   6893 	y = 1
   6894 	r = x >> y
   6895 	if r != 0 {
   6896 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   6897 	}
   6898 	y = 255
   6899 	r = x >> y
   6900 	if r != 0 {
   6901 		t.Errorf("0 %s 255 = %d, want 0", ">>", r)
   6902 	}
   6903 	x = 1
   6904 	y = 0
   6905 	r = x >> y
   6906 	if r != 1 {
   6907 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   6908 	}
   6909 	y = 1
   6910 	r = x >> y
   6911 	if r != 0 {
   6912 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   6913 	}
   6914 	y = 255
   6915 	r = x >> y
   6916 	if r != 0 {
   6917 		t.Errorf("1 %s 255 = %d, want 0", ">>", r)
   6918 	}
   6919 	x = 4294967296
   6920 	y = 0
   6921 	r = x >> y
   6922 	if r != 4294967296 {
   6923 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r)
   6924 	}
   6925 	y = 1
   6926 	r = x >> y
   6927 	if r != 2147483648 {
   6928 		t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r)
   6929 	}
   6930 	y = 255
   6931 	r = x >> y
   6932 	if r != 0 {
   6933 		t.Errorf("4294967296 %s 255 = %d, want 0", ">>", r)
   6934 	}
   6935 	x = 18446744073709551615
   6936 	y = 0
   6937 	r = x >> y
   6938 	if r != 18446744073709551615 {
   6939 		t.Errorf("18446744073709551615 %s 0 = %d, want 18446744073709551615", ">>", r)
   6940 	}
   6941 	y = 1
   6942 	r = x >> y
   6943 	if r != 9223372036854775807 {
   6944 		t.Errorf("18446744073709551615 %s 1 = %d, want 9223372036854775807", ">>", r)
   6945 	}
   6946 	y = 255
   6947 	r = x >> y
   6948 	if r != 0 {
   6949 		t.Errorf("18446744073709551615 %s 255 = %d, want 0", ">>", r)
   6950 	}
   6951 }
   6952 func TestConstFoldint64uint64lsh(t *testing.T) {
   6953 	var x, r int64
   6954 	var y uint64
   6955 	x = -9223372036854775808
   6956 	y = 0
   6957 	r = x << y
   6958 	if r != -9223372036854775808 {
   6959 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "<<", r)
   6960 	}
   6961 	y = 1
   6962 	r = x << y
   6963 	if r != 0 {
   6964 		t.Errorf("-9223372036854775808 %s 1 = %d, want 0", "<<", r)
   6965 	}
   6966 	y = 4294967296
   6967 	r = x << y
   6968 	if r != 0 {
   6969 		t.Errorf("-9223372036854775808 %s 4294967296 = %d, want 0", "<<", r)
   6970 	}
   6971 	y = 18446744073709551615
   6972 	r = x << y
   6973 	if r != 0 {
   6974 		t.Errorf("-9223372036854775808 %s 18446744073709551615 = %d, want 0", "<<", r)
   6975 	}
   6976 	x = -9223372036854775807
   6977 	y = 0
   6978 	r = x << y
   6979 	if r != -9223372036854775807 {
   6980 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "<<", r)
   6981 	}
   6982 	y = 1
   6983 	r = x << y
   6984 	if r != 2 {
   6985 		t.Errorf("-9223372036854775807 %s 1 = %d, want 2", "<<", r)
   6986 	}
   6987 	y = 4294967296
   6988 	r = x << y
   6989 	if r != 0 {
   6990 		t.Errorf("-9223372036854775807 %s 4294967296 = %d, want 0", "<<", r)
   6991 	}
   6992 	y = 18446744073709551615
   6993 	r = x << y
   6994 	if r != 0 {
   6995 		t.Errorf("-9223372036854775807 %s 18446744073709551615 = %d, want 0", "<<", r)
   6996 	}
   6997 	x = -4294967296
   6998 	y = 0
   6999 	r = x << y
   7000 	if r != -4294967296 {
   7001 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "<<", r)
   7002 	}
   7003 	y = 1
   7004 	r = x << y
   7005 	if r != -8589934592 {
   7006 		t.Errorf("-4294967296 %s 1 = %d, want -8589934592", "<<", r)
   7007 	}
   7008 	y = 4294967296
   7009 	r = x << y
   7010 	if r != 0 {
   7011 		t.Errorf("-4294967296 %s 4294967296 = %d, want 0", "<<", r)
   7012 	}
   7013 	y = 18446744073709551615
   7014 	r = x << y
   7015 	if r != 0 {
   7016 		t.Errorf("-4294967296 %s 18446744073709551615 = %d, want 0", "<<", r)
   7017 	}
   7018 	x = -1
   7019 	y = 0
   7020 	r = x << y
   7021 	if r != -1 {
   7022 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   7023 	}
   7024 	y = 1
   7025 	r = x << y
   7026 	if r != -2 {
   7027 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   7028 	}
   7029 	y = 4294967296
   7030 	r = x << y
   7031 	if r != 0 {
   7032 		t.Errorf("-1 %s 4294967296 = %d, want 0", "<<", r)
   7033 	}
   7034 	y = 18446744073709551615
   7035 	r = x << y
   7036 	if r != 0 {
   7037 		t.Errorf("-1 %s 18446744073709551615 = %d, want 0", "<<", r)
   7038 	}
   7039 	x = 0
   7040 	y = 0
   7041 	r = x << y
   7042 	if r != 0 {
   7043 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   7044 	}
   7045 	y = 1
   7046 	r = x << y
   7047 	if r != 0 {
   7048 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   7049 	}
   7050 	y = 4294967296
   7051 	r = x << y
   7052 	if r != 0 {
   7053 		t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r)
   7054 	}
   7055 	y = 18446744073709551615
   7056 	r = x << y
   7057 	if r != 0 {
   7058 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r)
   7059 	}
   7060 	x = 1
   7061 	y = 0
   7062 	r = x << y
   7063 	if r != 1 {
   7064 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   7065 	}
   7066 	y = 1
   7067 	r = x << y
   7068 	if r != 2 {
   7069 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   7070 	}
   7071 	y = 4294967296
   7072 	r = x << y
   7073 	if r != 0 {
   7074 		t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r)
   7075 	}
   7076 	y = 18446744073709551615
   7077 	r = x << y
   7078 	if r != 0 {
   7079 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r)
   7080 	}
   7081 	x = 4294967296
   7082 	y = 0
   7083 	r = x << y
   7084 	if r != 4294967296 {
   7085 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r)
   7086 	}
   7087 	y = 1
   7088 	r = x << y
   7089 	if r != 8589934592 {
   7090 		t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r)
   7091 	}
   7092 	y = 4294967296
   7093 	r = x << y
   7094 	if r != 0 {
   7095 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", "<<", r)
   7096 	}
   7097 	y = 18446744073709551615
   7098 	r = x << y
   7099 	if r != 0 {
   7100 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 0", "<<", r)
   7101 	}
   7102 	x = 9223372036854775806
   7103 	y = 0
   7104 	r = x << y
   7105 	if r != 9223372036854775806 {
   7106 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "<<", r)
   7107 	}
   7108 	y = 1
   7109 	r = x << y
   7110 	if r != -4 {
   7111 		t.Errorf("9223372036854775806 %s 1 = %d, want -4", "<<", r)
   7112 	}
   7113 	y = 4294967296
   7114 	r = x << y
   7115 	if r != 0 {
   7116 		t.Errorf("9223372036854775806 %s 4294967296 = %d, want 0", "<<", r)
   7117 	}
   7118 	y = 18446744073709551615
   7119 	r = x << y
   7120 	if r != 0 {
   7121 		t.Errorf("9223372036854775806 %s 18446744073709551615 = %d, want 0", "<<", r)
   7122 	}
   7123 	x = 9223372036854775807
   7124 	y = 0
   7125 	r = x << y
   7126 	if r != 9223372036854775807 {
   7127 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "<<", r)
   7128 	}
   7129 	y = 1
   7130 	r = x << y
   7131 	if r != -2 {
   7132 		t.Errorf("9223372036854775807 %s 1 = %d, want -2", "<<", r)
   7133 	}
   7134 	y = 4294967296
   7135 	r = x << y
   7136 	if r != 0 {
   7137 		t.Errorf("9223372036854775807 %s 4294967296 = %d, want 0", "<<", r)
   7138 	}
   7139 	y = 18446744073709551615
   7140 	r = x << y
   7141 	if r != 0 {
   7142 		t.Errorf("9223372036854775807 %s 18446744073709551615 = %d, want 0", "<<", r)
   7143 	}
   7144 }
   7145 func TestConstFoldint64uint64rsh(t *testing.T) {
   7146 	var x, r int64
   7147 	var y uint64
   7148 	x = -9223372036854775808
   7149 	y = 0
   7150 	r = x >> y
   7151 	if r != -9223372036854775808 {
   7152 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", ">>", r)
   7153 	}
   7154 	y = 1
   7155 	r = x >> y
   7156 	if r != -4611686018427387904 {
   7157 		t.Errorf("-9223372036854775808 %s 1 = %d, want -4611686018427387904", ">>", r)
   7158 	}
   7159 	y = 4294967296
   7160 	r = x >> y
   7161 	if r != -1 {
   7162 		t.Errorf("-9223372036854775808 %s 4294967296 = %d, want -1", ">>", r)
   7163 	}
   7164 	y = 18446744073709551615
   7165 	r = x >> y
   7166 	if r != -1 {
   7167 		t.Errorf("-9223372036854775808 %s 18446744073709551615 = %d, want -1", ">>", r)
   7168 	}
   7169 	x = -9223372036854775807
   7170 	y = 0
   7171 	r = x >> y
   7172 	if r != -9223372036854775807 {
   7173 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", ">>", r)
   7174 	}
   7175 	y = 1
   7176 	r = x >> y
   7177 	if r != -4611686018427387904 {
   7178 		t.Errorf("-9223372036854775807 %s 1 = %d, want -4611686018427387904", ">>", r)
   7179 	}
   7180 	y = 4294967296
   7181 	r = x >> y
   7182 	if r != -1 {
   7183 		t.Errorf("-9223372036854775807 %s 4294967296 = %d, want -1", ">>", r)
   7184 	}
   7185 	y = 18446744073709551615
   7186 	r = x >> y
   7187 	if r != -1 {
   7188 		t.Errorf("-9223372036854775807 %s 18446744073709551615 = %d, want -1", ">>", r)
   7189 	}
   7190 	x = -4294967296
   7191 	y = 0
   7192 	r = x >> y
   7193 	if r != -4294967296 {
   7194 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", ">>", r)
   7195 	}
   7196 	y = 1
   7197 	r = x >> y
   7198 	if r != -2147483648 {
   7199 		t.Errorf("-4294967296 %s 1 = %d, want -2147483648", ">>", r)
   7200 	}
   7201 	y = 4294967296
   7202 	r = x >> y
   7203 	if r != -1 {
   7204 		t.Errorf("-4294967296 %s 4294967296 = %d, want -1", ">>", r)
   7205 	}
   7206 	y = 18446744073709551615
   7207 	r = x >> y
   7208 	if r != -1 {
   7209 		t.Errorf("-4294967296 %s 18446744073709551615 = %d, want -1", ">>", r)
   7210 	}
   7211 	x = -1
   7212 	y = 0
   7213 	r = x >> y
   7214 	if r != -1 {
   7215 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   7216 	}
   7217 	y = 1
   7218 	r = x >> y
   7219 	if r != -1 {
   7220 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   7221 	}
   7222 	y = 4294967296
   7223 	r = x >> y
   7224 	if r != -1 {
   7225 		t.Errorf("-1 %s 4294967296 = %d, want -1", ">>", r)
   7226 	}
   7227 	y = 18446744073709551615
   7228 	r = x >> y
   7229 	if r != -1 {
   7230 		t.Errorf("-1 %s 18446744073709551615 = %d, want -1", ">>", r)
   7231 	}
   7232 	x = 0
   7233 	y = 0
   7234 	r = x >> y
   7235 	if r != 0 {
   7236 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   7237 	}
   7238 	y = 1
   7239 	r = x >> y
   7240 	if r != 0 {
   7241 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   7242 	}
   7243 	y = 4294967296
   7244 	r = x >> y
   7245 	if r != 0 {
   7246 		t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r)
   7247 	}
   7248 	y = 18446744073709551615
   7249 	r = x >> y
   7250 	if r != 0 {
   7251 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r)
   7252 	}
   7253 	x = 1
   7254 	y = 0
   7255 	r = x >> y
   7256 	if r != 1 {
   7257 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   7258 	}
   7259 	y = 1
   7260 	r = x >> y
   7261 	if r != 0 {
   7262 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   7263 	}
   7264 	y = 4294967296
   7265 	r = x >> y
   7266 	if r != 0 {
   7267 		t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r)
   7268 	}
   7269 	y = 18446744073709551615
   7270 	r = x >> y
   7271 	if r != 0 {
   7272 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r)
   7273 	}
   7274 	x = 4294967296
   7275 	y = 0
   7276 	r = x >> y
   7277 	if r != 4294967296 {
   7278 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r)
   7279 	}
   7280 	y = 1
   7281 	r = x >> y
   7282 	if r != 2147483648 {
   7283 		t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r)
   7284 	}
   7285 	y = 4294967296
   7286 	r = x >> y
   7287 	if r != 0 {
   7288 		t.Errorf("4294967296 %s 4294967296 = %d, want 0", ">>", r)
   7289 	}
   7290 	y = 18446744073709551615
   7291 	r = x >> y
   7292 	if r != 0 {
   7293 		t.Errorf("4294967296 %s 18446744073709551615 = %d, want 0", ">>", r)
   7294 	}
   7295 	x = 9223372036854775806
   7296 	y = 0
   7297 	r = x >> y
   7298 	if r != 9223372036854775806 {
   7299 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", ">>", r)
   7300 	}
   7301 	y = 1
   7302 	r = x >> y
   7303 	if r != 4611686018427387903 {
   7304 		t.Errorf("9223372036854775806 %s 1 = %d, want 4611686018427387903", ">>", r)
   7305 	}
   7306 	y = 4294967296
   7307 	r = x >> y
   7308 	if r != 0 {
   7309 		t.Errorf("9223372036854775806 %s 4294967296 = %d, want 0", ">>", r)
   7310 	}
   7311 	y = 18446744073709551615
   7312 	r = x >> y
   7313 	if r != 0 {
   7314 		t.Errorf("9223372036854775806 %s 18446744073709551615 = %d, want 0", ">>", r)
   7315 	}
   7316 	x = 9223372036854775807
   7317 	y = 0
   7318 	r = x >> y
   7319 	if r != 9223372036854775807 {
   7320 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", ">>", r)
   7321 	}
   7322 	y = 1
   7323 	r = x >> y
   7324 	if r != 4611686018427387903 {
   7325 		t.Errorf("9223372036854775807 %s 1 = %d, want 4611686018427387903", ">>", r)
   7326 	}
   7327 	y = 4294967296
   7328 	r = x >> y
   7329 	if r != 0 {
   7330 		t.Errorf("9223372036854775807 %s 4294967296 = %d, want 0", ">>", r)
   7331 	}
   7332 	y = 18446744073709551615
   7333 	r = x >> y
   7334 	if r != 0 {
   7335 		t.Errorf("9223372036854775807 %s 18446744073709551615 = %d, want 0", ">>", r)
   7336 	}
   7337 }
   7338 func TestConstFoldint64uint32lsh(t *testing.T) {
   7339 	var x, r int64
   7340 	var y uint32
   7341 	x = -9223372036854775808
   7342 	y = 0
   7343 	r = x << y
   7344 	if r != -9223372036854775808 {
   7345 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "<<", r)
   7346 	}
   7347 	y = 1
   7348 	r = x << y
   7349 	if r != 0 {
   7350 		t.Errorf("-9223372036854775808 %s 1 = %d, want 0", "<<", r)
   7351 	}
   7352 	y = 4294967295
   7353 	r = x << y
   7354 	if r != 0 {
   7355 		t.Errorf("-9223372036854775808 %s 4294967295 = %d, want 0", "<<", r)
   7356 	}
   7357 	x = -9223372036854775807
   7358 	y = 0
   7359 	r = x << y
   7360 	if r != -9223372036854775807 {
   7361 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "<<", r)
   7362 	}
   7363 	y = 1
   7364 	r = x << y
   7365 	if r != 2 {
   7366 		t.Errorf("-9223372036854775807 %s 1 = %d, want 2", "<<", r)
   7367 	}
   7368 	y = 4294967295
   7369 	r = x << y
   7370 	if r != 0 {
   7371 		t.Errorf("-9223372036854775807 %s 4294967295 = %d, want 0", "<<", r)
   7372 	}
   7373 	x = -4294967296
   7374 	y = 0
   7375 	r = x << y
   7376 	if r != -4294967296 {
   7377 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "<<", r)
   7378 	}
   7379 	y = 1
   7380 	r = x << y
   7381 	if r != -8589934592 {
   7382 		t.Errorf("-4294967296 %s 1 = %d, want -8589934592", "<<", r)
   7383 	}
   7384 	y = 4294967295
   7385 	r = x << y
   7386 	if r != 0 {
   7387 		t.Errorf("-4294967296 %s 4294967295 = %d, want 0", "<<", r)
   7388 	}
   7389 	x = -1
   7390 	y = 0
   7391 	r = x << y
   7392 	if r != -1 {
   7393 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   7394 	}
   7395 	y = 1
   7396 	r = x << y
   7397 	if r != -2 {
   7398 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   7399 	}
   7400 	y = 4294967295
   7401 	r = x << y
   7402 	if r != 0 {
   7403 		t.Errorf("-1 %s 4294967295 = %d, want 0", "<<", r)
   7404 	}
   7405 	x = 0
   7406 	y = 0
   7407 	r = x << y
   7408 	if r != 0 {
   7409 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   7410 	}
   7411 	y = 1
   7412 	r = x << y
   7413 	if r != 0 {
   7414 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   7415 	}
   7416 	y = 4294967295
   7417 	r = x << y
   7418 	if r != 0 {
   7419 		t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r)
   7420 	}
   7421 	x = 1
   7422 	y = 0
   7423 	r = x << y
   7424 	if r != 1 {
   7425 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   7426 	}
   7427 	y = 1
   7428 	r = x << y
   7429 	if r != 2 {
   7430 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   7431 	}
   7432 	y = 4294967295
   7433 	r = x << y
   7434 	if r != 0 {
   7435 		t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r)
   7436 	}
   7437 	x = 4294967296
   7438 	y = 0
   7439 	r = x << y
   7440 	if r != 4294967296 {
   7441 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r)
   7442 	}
   7443 	y = 1
   7444 	r = x << y
   7445 	if r != 8589934592 {
   7446 		t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r)
   7447 	}
   7448 	y = 4294967295
   7449 	r = x << y
   7450 	if r != 0 {
   7451 		t.Errorf("4294967296 %s 4294967295 = %d, want 0", "<<", r)
   7452 	}
   7453 	x = 9223372036854775806
   7454 	y = 0
   7455 	r = x << y
   7456 	if r != 9223372036854775806 {
   7457 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "<<", r)
   7458 	}
   7459 	y = 1
   7460 	r = x << y
   7461 	if r != -4 {
   7462 		t.Errorf("9223372036854775806 %s 1 = %d, want -4", "<<", r)
   7463 	}
   7464 	y = 4294967295
   7465 	r = x << y
   7466 	if r != 0 {
   7467 		t.Errorf("9223372036854775806 %s 4294967295 = %d, want 0", "<<", r)
   7468 	}
   7469 	x = 9223372036854775807
   7470 	y = 0
   7471 	r = x << y
   7472 	if r != 9223372036854775807 {
   7473 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "<<", r)
   7474 	}
   7475 	y = 1
   7476 	r = x << y
   7477 	if r != -2 {
   7478 		t.Errorf("9223372036854775807 %s 1 = %d, want -2", "<<", r)
   7479 	}
   7480 	y = 4294967295
   7481 	r = x << y
   7482 	if r != 0 {
   7483 		t.Errorf("9223372036854775807 %s 4294967295 = %d, want 0", "<<", r)
   7484 	}
   7485 }
   7486 func TestConstFoldint64uint32rsh(t *testing.T) {
   7487 	var x, r int64
   7488 	var y uint32
   7489 	x = -9223372036854775808
   7490 	y = 0
   7491 	r = x >> y
   7492 	if r != -9223372036854775808 {
   7493 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", ">>", r)
   7494 	}
   7495 	y = 1
   7496 	r = x >> y
   7497 	if r != -4611686018427387904 {
   7498 		t.Errorf("-9223372036854775808 %s 1 = %d, want -4611686018427387904", ">>", r)
   7499 	}
   7500 	y = 4294967295
   7501 	r = x >> y
   7502 	if r != -1 {
   7503 		t.Errorf("-9223372036854775808 %s 4294967295 = %d, want -1", ">>", r)
   7504 	}
   7505 	x = -9223372036854775807
   7506 	y = 0
   7507 	r = x >> y
   7508 	if r != -9223372036854775807 {
   7509 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", ">>", r)
   7510 	}
   7511 	y = 1
   7512 	r = x >> y
   7513 	if r != -4611686018427387904 {
   7514 		t.Errorf("-9223372036854775807 %s 1 = %d, want -4611686018427387904", ">>", r)
   7515 	}
   7516 	y = 4294967295
   7517 	r = x >> y
   7518 	if r != -1 {
   7519 		t.Errorf("-9223372036854775807 %s 4294967295 = %d, want -1", ">>", r)
   7520 	}
   7521 	x = -4294967296
   7522 	y = 0
   7523 	r = x >> y
   7524 	if r != -4294967296 {
   7525 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", ">>", r)
   7526 	}
   7527 	y = 1
   7528 	r = x >> y
   7529 	if r != -2147483648 {
   7530 		t.Errorf("-4294967296 %s 1 = %d, want -2147483648", ">>", r)
   7531 	}
   7532 	y = 4294967295
   7533 	r = x >> y
   7534 	if r != -1 {
   7535 		t.Errorf("-4294967296 %s 4294967295 = %d, want -1", ">>", r)
   7536 	}
   7537 	x = -1
   7538 	y = 0
   7539 	r = x >> y
   7540 	if r != -1 {
   7541 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   7542 	}
   7543 	y = 1
   7544 	r = x >> y
   7545 	if r != -1 {
   7546 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   7547 	}
   7548 	y = 4294967295
   7549 	r = x >> y
   7550 	if r != -1 {
   7551 		t.Errorf("-1 %s 4294967295 = %d, want -1", ">>", r)
   7552 	}
   7553 	x = 0
   7554 	y = 0
   7555 	r = x >> y
   7556 	if r != 0 {
   7557 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   7558 	}
   7559 	y = 1
   7560 	r = x >> y
   7561 	if r != 0 {
   7562 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   7563 	}
   7564 	y = 4294967295
   7565 	r = x >> y
   7566 	if r != 0 {
   7567 		t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r)
   7568 	}
   7569 	x = 1
   7570 	y = 0
   7571 	r = x >> y
   7572 	if r != 1 {
   7573 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   7574 	}
   7575 	y = 1
   7576 	r = x >> y
   7577 	if r != 0 {
   7578 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   7579 	}
   7580 	y = 4294967295
   7581 	r = x >> y
   7582 	if r != 0 {
   7583 		t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r)
   7584 	}
   7585 	x = 4294967296
   7586 	y = 0
   7587 	r = x >> y
   7588 	if r != 4294967296 {
   7589 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r)
   7590 	}
   7591 	y = 1
   7592 	r = x >> y
   7593 	if r != 2147483648 {
   7594 		t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r)
   7595 	}
   7596 	y = 4294967295
   7597 	r = x >> y
   7598 	if r != 0 {
   7599 		t.Errorf("4294967296 %s 4294967295 = %d, want 0", ">>", r)
   7600 	}
   7601 	x = 9223372036854775806
   7602 	y = 0
   7603 	r = x >> y
   7604 	if r != 9223372036854775806 {
   7605 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", ">>", r)
   7606 	}
   7607 	y = 1
   7608 	r = x >> y
   7609 	if r != 4611686018427387903 {
   7610 		t.Errorf("9223372036854775806 %s 1 = %d, want 4611686018427387903", ">>", r)
   7611 	}
   7612 	y = 4294967295
   7613 	r = x >> y
   7614 	if r != 0 {
   7615 		t.Errorf("9223372036854775806 %s 4294967295 = %d, want 0", ">>", r)
   7616 	}
   7617 	x = 9223372036854775807
   7618 	y = 0
   7619 	r = x >> y
   7620 	if r != 9223372036854775807 {
   7621 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", ">>", r)
   7622 	}
   7623 	y = 1
   7624 	r = x >> y
   7625 	if r != 4611686018427387903 {
   7626 		t.Errorf("9223372036854775807 %s 1 = %d, want 4611686018427387903", ">>", r)
   7627 	}
   7628 	y = 4294967295
   7629 	r = x >> y
   7630 	if r != 0 {
   7631 		t.Errorf("9223372036854775807 %s 4294967295 = %d, want 0", ">>", r)
   7632 	}
   7633 }
   7634 func TestConstFoldint64uint16lsh(t *testing.T) {
   7635 	var x, r int64
   7636 	var y uint16
   7637 	x = -9223372036854775808
   7638 	y = 0
   7639 	r = x << y
   7640 	if r != -9223372036854775808 {
   7641 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "<<", r)
   7642 	}
   7643 	y = 1
   7644 	r = x << y
   7645 	if r != 0 {
   7646 		t.Errorf("-9223372036854775808 %s 1 = %d, want 0", "<<", r)
   7647 	}
   7648 	y = 65535
   7649 	r = x << y
   7650 	if r != 0 {
   7651 		t.Errorf("-9223372036854775808 %s 65535 = %d, want 0", "<<", r)
   7652 	}
   7653 	x = -9223372036854775807
   7654 	y = 0
   7655 	r = x << y
   7656 	if r != -9223372036854775807 {
   7657 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "<<", r)
   7658 	}
   7659 	y = 1
   7660 	r = x << y
   7661 	if r != 2 {
   7662 		t.Errorf("-9223372036854775807 %s 1 = %d, want 2", "<<", r)
   7663 	}
   7664 	y = 65535
   7665 	r = x << y
   7666 	if r != 0 {
   7667 		t.Errorf("-9223372036854775807 %s 65535 = %d, want 0", "<<", r)
   7668 	}
   7669 	x = -4294967296
   7670 	y = 0
   7671 	r = x << y
   7672 	if r != -4294967296 {
   7673 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "<<", r)
   7674 	}
   7675 	y = 1
   7676 	r = x << y
   7677 	if r != -8589934592 {
   7678 		t.Errorf("-4294967296 %s 1 = %d, want -8589934592", "<<", r)
   7679 	}
   7680 	y = 65535
   7681 	r = x << y
   7682 	if r != 0 {
   7683 		t.Errorf("-4294967296 %s 65535 = %d, want 0", "<<", r)
   7684 	}
   7685 	x = -1
   7686 	y = 0
   7687 	r = x << y
   7688 	if r != -1 {
   7689 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   7690 	}
   7691 	y = 1
   7692 	r = x << y
   7693 	if r != -2 {
   7694 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   7695 	}
   7696 	y = 65535
   7697 	r = x << y
   7698 	if r != 0 {
   7699 		t.Errorf("-1 %s 65535 = %d, want 0", "<<", r)
   7700 	}
   7701 	x = 0
   7702 	y = 0
   7703 	r = x << y
   7704 	if r != 0 {
   7705 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   7706 	}
   7707 	y = 1
   7708 	r = x << y
   7709 	if r != 0 {
   7710 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   7711 	}
   7712 	y = 65535
   7713 	r = x << y
   7714 	if r != 0 {
   7715 		t.Errorf("0 %s 65535 = %d, want 0", "<<", r)
   7716 	}
   7717 	x = 1
   7718 	y = 0
   7719 	r = x << y
   7720 	if r != 1 {
   7721 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   7722 	}
   7723 	y = 1
   7724 	r = x << y
   7725 	if r != 2 {
   7726 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   7727 	}
   7728 	y = 65535
   7729 	r = x << y
   7730 	if r != 0 {
   7731 		t.Errorf("1 %s 65535 = %d, want 0", "<<", r)
   7732 	}
   7733 	x = 4294967296
   7734 	y = 0
   7735 	r = x << y
   7736 	if r != 4294967296 {
   7737 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r)
   7738 	}
   7739 	y = 1
   7740 	r = x << y
   7741 	if r != 8589934592 {
   7742 		t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r)
   7743 	}
   7744 	y = 65535
   7745 	r = x << y
   7746 	if r != 0 {
   7747 		t.Errorf("4294967296 %s 65535 = %d, want 0", "<<", r)
   7748 	}
   7749 	x = 9223372036854775806
   7750 	y = 0
   7751 	r = x << y
   7752 	if r != 9223372036854775806 {
   7753 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "<<", r)
   7754 	}
   7755 	y = 1
   7756 	r = x << y
   7757 	if r != -4 {
   7758 		t.Errorf("9223372036854775806 %s 1 = %d, want -4", "<<", r)
   7759 	}
   7760 	y = 65535
   7761 	r = x << y
   7762 	if r != 0 {
   7763 		t.Errorf("9223372036854775806 %s 65535 = %d, want 0", "<<", r)
   7764 	}
   7765 	x = 9223372036854775807
   7766 	y = 0
   7767 	r = x << y
   7768 	if r != 9223372036854775807 {
   7769 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "<<", r)
   7770 	}
   7771 	y = 1
   7772 	r = x << y
   7773 	if r != -2 {
   7774 		t.Errorf("9223372036854775807 %s 1 = %d, want -2", "<<", r)
   7775 	}
   7776 	y = 65535
   7777 	r = x << y
   7778 	if r != 0 {
   7779 		t.Errorf("9223372036854775807 %s 65535 = %d, want 0", "<<", r)
   7780 	}
   7781 }
   7782 func TestConstFoldint64uint16rsh(t *testing.T) {
   7783 	var x, r int64
   7784 	var y uint16
   7785 	x = -9223372036854775808
   7786 	y = 0
   7787 	r = x >> y
   7788 	if r != -9223372036854775808 {
   7789 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", ">>", r)
   7790 	}
   7791 	y = 1
   7792 	r = x >> y
   7793 	if r != -4611686018427387904 {
   7794 		t.Errorf("-9223372036854775808 %s 1 = %d, want -4611686018427387904", ">>", r)
   7795 	}
   7796 	y = 65535
   7797 	r = x >> y
   7798 	if r != -1 {
   7799 		t.Errorf("-9223372036854775808 %s 65535 = %d, want -1", ">>", r)
   7800 	}
   7801 	x = -9223372036854775807
   7802 	y = 0
   7803 	r = x >> y
   7804 	if r != -9223372036854775807 {
   7805 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", ">>", r)
   7806 	}
   7807 	y = 1
   7808 	r = x >> y
   7809 	if r != -4611686018427387904 {
   7810 		t.Errorf("-9223372036854775807 %s 1 = %d, want -4611686018427387904", ">>", r)
   7811 	}
   7812 	y = 65535
   7813 	r = x >> y
   7814 	if r != -1 {
   7815 		t.Errorf("-9223372036854775807 %s 65535 = %d, want -1", ">>", r)
   7816 	}
   7817 	x = -4294967296
   7818 	y = 0
   7819 	r = x >> y
   7820 	if r != -4294967296 {
   7821 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", ">>", r)
   7822 	}
   7823 	y = 1
   7824 	r = x >> y
   7825 	if r != -2147483648 {
   7826 		t.Errorf("-4294967296 %s 1 = %d, want -2147483648", ">>", r)
   7827 	}
   7828 	y = 65535
   7829 	r = x >> y
   7830 	if r != -1 {
   7831 		t.Errorf("-4294967296 %s 65535 = %d, want -1", ">>", r)
   7832 	}
   7833 	x = -1
   7834 	y = 0
   7835 	r = x >> y
   7836 	if r != -1 {
   7837 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   7838 	}
   7839 	y = 1
   7840 	r = x >> y
   7841 	if r != -1 {
   7842 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   7843 	}
   7844 	y = 65535
   7845 	r = x >> y
   7846 	if r != -1 {
   7847 		t.Errorf("-1 %s 65535 = %d, want -1", ">>", r)
   7848 	}
   7849 	x = 0
   7850 	y = 0
   7851 	r = x >> y
   7852 	if r != 0 {
   7853 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   7854 	}
   7855 	y = 1
   7856 	r = x >> y
   7857 	if r != 0 {
   7858 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   7859 	}
   7860 	y = 65535
   7861 	r = x >> y
   7862 	if r != 0 {
   7863 		t.Errorf("0 %s 65535 = %d, want 0", ">>", r)
   7864 	}
   7865 	x = 1
   7866 	y = 0
   7867 	r = x >> y
   7868 	if r != 1 {
   7869 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   7870 	}
   7871 	y = 1
   7872 	r = x >> y
   7873 	if r != 0 {
   7874 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   7875 	}
   7876 	y = 65535
   7877 	r = x >> y
   7878 	if r != 0 {
   7879 		t.Errorf("1 %s 65535 = %d, want 0", ">>", r)
   7880 	}
   7881 	x = 4294967296
   7882 	y = 0
   7883 	r = x >> y
   7884 	if r != 4294967296 {
   7885 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r)
   7886 	}
   7887 	y = 1
   7888 	r = x >> y
   7889 	if r != 2147483648 {
   7890 		t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r)
   7891 	}
   7892 	y = 65535
   7893 	r = x >> y
   7894 	if r != 0 {
   7895 		t.Errorf("4294967296 %s 65535 = %d, want 0", ">>", r)
   7896 	}
   7897 	x = 9223372036854775806
   7898 	y = 0
   7899 	r = x >> y
   7900 	if r != 9223372036854775806 {
   7901 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", ">>", r)
   7902 	}
   7903 	y = 1
   7904 	r = x >> y
   7905 	if r != 4611686018427387903 {
   7906 		t.Errorf("9223372036854775806 %s 1 = %d, want 4611686018427387903", ">>", r)
   7907 	}
   7908 	y = 65535
   7909 	r = x >> y
   7910 	if r != 0 {
   7911 		t.Errorf("9223372036854775806 %s 65535 = %d, want 0", ">>", r)
   7912 	}
   7913 	x = 9223372036854775807
   7914 	y = 0
   7915 	r = x >> y
   7916 	if r != 9223372036854775807 {
   7917 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", ">>", r)
   7918 	}
   7919 	y = 1
   7920 	r = x >> y
   7921 	if r != 4611686018427387903 {
   7922 		t.Errorf("9223372036854775807 %s 1 = %d, want 4611686018427387903", ">>", r)
   7923 	}
   7924 	y = 65535
   7925 	r = x >> y
   7926 	if r != 0 {
   7927 		t.Errorf("9223372036854775807 %s 65535 = %d, want 0", ">>", r)
   7928 	}
   7929 }
   7930 func TestConstFoldint64uint8lsh(t *testing.T) {
   7931 	var x, r int64
   7932 	var y uint8
   7933 	x = -9223372036854775808
   7934 	y = 0
   7935 	r = x << y
   7936 	if r != -9223372036854775808 {
   7937 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", "<<", r)
   7938 	}
   7939 	y = 1
   7940 	r = x << y
   7941 	if r != 0 {
   7942 		t.Errorf("-9223372036854775808 %s 1 = %d, want 0", "<<", r)
   7943 	}
   7944 	y = 255
   7945 	r = x << y
   7946 	if r != 0 {
   7947 		t.Errorf("-9223372036854775808 %s 255 = %d, want 0", "<<", r)
   7948 	}
   7949 	x = -9223372036854775807
   7950 	y = 0
   7951 	r = x << y
   7952 	if r != -9223372036854775807 {
   7953 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", "<<", r)
   7954 	}
   7955 	y = 1
   7956 	r = x << y
   7957 	if r != 2 {
   7958 		t.Errorf("-9223372036854775807 %s 1 = %d, want 2", "<<", r)
   7959 	}
   7960 	y = 255
   7961 	r = x << y
   7962 	if r != 0 {
   7963 		t.Errorf("-9223372036854775807 %s 255 = %d, want 0", "<<", r)
   7964 	}
   7965 	x = -4294967296
   7966 	y = 0
   7967 	r = x << y
   7968 	if r != -4294967296 {
   7969 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", "<<", r)
   7970 	}
   7971 	y = 1
   7972 	r = x << y
   7973 	if r != -8589934592 {
   7974 		t.Errorf("-4294967296 %s 1 = %d, want -8589934592", "<<", r)
   7975 	}
   7976 	y = 255
   7977 	r = x << y
   7978 	if r != 0 {
   7979 		t.Errorf("-4294967296 %s 255 = %d, want 0", "<<", r)
   7980 	}
   7981 	x = -1
   7982 	y = 0
   7983 	r = x << y
   7984 	if r != -1 {
   7985 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   7986 	}
   7987 	y = 1
   7988 	r = x << y
   7989 	if r != -2 {
   7990 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   7991 	}
   7992 	y = 255
   7993 	r = x << y
   7994 	if r != 0 {
   7995 		t.Errorf("-1 %s 255 = %d, want 0", "<<", r)
   7996 	}
   7997 	x = 0
   7998 	y = 0
   7999 	r = x << y
   8000 	if r != 0 {
   8001 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   8002 	}
   8003 	y = 1
   8004 	r = x << y
   8005 	if r != 0 {
   8006 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   8007 	}
   8008 	y = 255
   8009 	r = x << y
   8010 	if r != 0 {
   8011 		t.Errorf("0 %s 255 = %d, want 0", "<<", r)
   8012 	}
   8013 	x = 1
   8014 	y = 0
   8015 	r = x << y
   8016 	if r != 1 {
   8017 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   8018 	}
   8019 	y = 1
   8020 	r = x << y
   8021 	if r != 2 {
   8022 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   8023 	}
   8024 	y = 255
   8025 	r = x << y
   8026 	if r != 0 {
   8027 		t.Errorf("1 %s 255 = %d, want 0", "<<", r)
   8028 	}
   8029 	x = 4294967296
   8030 	y = 0
   8031 	r = x << y
   8032 	if r != 4294967296 {
   8033 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", "<<", r)
   8034 	}
   8035 	y = 1
   8036 	r = x << y
   8037 	if r != 8589934592 {
   8038 		t.Errorf("4294967296 %s 1 = %d, want 8589934592", "<<", r)
   8039 	}
   8040 	y = 255
   8041 	r = x << y
   8042 	if r != 0 {
   8043 		t.Errorf("4294967296 %s 255 = %d, want 0", "<<", r)
   8044 	}
   8045 	x = 9223372036854775806
   8046 	y = 0
   8047 	r = x << y
   8048 	if r != 9223372036854775806 {
   8049 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", "<<", r)
   8050 	}
   8051 	y = 1
   8052 	r = x << y
   8053 	if r != -4 {
   8054 		t.Errorf("9223372036854775806 %s 1 = %d, want -4", "<<", r)
   8055 	}
   8056 	y = 255
   8057 	r = x << y
   8058 	if r != 0 {
   8059 		t.Errorf("9223372036854775806 %s 255 = %d, want 0", "<<", r)
   8060 	}
   8061 	x = 9223372036854775807
   8062 	y = 0
   8063 	r = x << y
   8064 	if r != 9223372036854775807 {
   8065 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", "<<", r)
   8066 	}
   8067 	y = 1
   8068 	r = x << y
   8069 	if r != -2 {
   8070 		t.Errorf("9223372036854775807 %s 1 = %d, want -2", "<<", r)
   8071 	}
   8072 	y = 255
   8073 	r = x << y
   8074 	if r != 0 {
   8075 		t.Errorf("9223372036854775807 %s 255 = %d, want 0", "<<", r)
   8076 	}
   8077 }
   8078 func TestConstFoldint64uint8rsh(t *testing.T) {
   8079 	var x, r int64
   8080 	var y uint8
   8081 	x = -9223372036854775808
   8082 	y = 0
   8083 	r = x >> y
   8084 	if r != -9223372036854775808 {
   8085 		t.Errorf("-9223372036854775808 %s 0 = %d, want -9223372036854775808", ">>", r)
   8086 	}
   8087 	y = 1
   8088 	r = x >> y
   8089 	if r != -4611686018427387904 {
   8090 		t.Errorf("-9223372036854775808 %s 1 = %d, want -4611686018427387904", ">>", r)
   8091 	}
   8092 	y = 255
   8093 	r = x >> y
   8094 	if r != -1 {
   8095 		t.Errorf("-9223372036854775808 %s 255 = %d, want -1", ">>", r)
   8096 	}
   8097 	x = -9223372036854775807
   8098 	y = 0
   8099 	r = x >> y
   8100 	if r != -9223372036854775807 {
   8101 		t.Errorf("-9223372036854775807 %s 0 = %d, want -9223372036854775807", ">>", r)
   8102 	}
   8103 	y = 1
   8104 	r = x >> y
   8105 	if r != -4611686018427387904 {
   8106 		t.Errorf("-9223372036854775807 %s 1 = %d, want -4611686018427387904", ">>", r)
   8107 	}
   8108 	y = 255
   8109 	r = x >> y
   8110 	if r != -1 {
   8111 		t.Errorf("-9223372036854775807 %s 255 = %d, want -1", ">>", r)
   8112 	}
   8113 	x = -4294967296
   8114 	y = 0
   8115 	r = x >> y
   8116 	if r != -4294967296 {
   8117 		t.Errorf("-4294967296 %s 0 = %d, want -4294967296", ">>", r)
   8118 	}
   8119 	y = 1
   8120 	r = x >> y
   8121 	if r != -2147483648 {
   8122 		t.Errorf("-4294967296 %s 1 = %d, want -2147483648", ">>", r)
   8123 	}
   8124 	y = 255
   8125 	r = x >> y
   8126 	if r != -1 {
   8127 		t.Errorf("-4294967296 %s 255 = %d, want -1", ">>", r)
   8128 	}
   8129 	x = -1
   8130 	y = 0
   8131 	r = x >> y
   8132 	if r != -1 {
   8133 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   8134 	}
   8135 	y = 1
   8136 	r = x >> y
   8137 	if r != -1 {
   8138 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   8139 	}
   8140 	y = 255
   8141 	r = x >> y
   8142 	if r != -1 {
   8143 		t.Errorf("-1 %s 255 = %d, want -1", ">>", r)
   8144 	}
   8145 	x = 0
   8146 	y = 0
   8147 	r = x >> y
   8148 	if r != 0 {
   8149 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   8150 	}
   8151 	y = 1
   8152 	r = x >> y
   8153 	if r != 0 {
   8154 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   8155 	}
   8156 	y = 255
   8157 	r = x >> y
   8158 	if r != 0 {
   8159 		t.Errorf("0 %s 255 = %d, want 0", ">>", r)
   8160 	}
   8161 	x = 1
   8162 	y = 0
   8163 	r = x >> y
   8164 	if r != 1 {
   8165 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   8166 	}
   8167 	y = 1
   8168 	r = x >> y
   8169 	if r != 0 {
   8170 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   8171 	}
   8172 	y = 255
   8173 	r = x >> y
   8174 	if r != 0 {
   8175 		t.Errorf("1 %s 255 = %d, want 0", ">>", r)
   8176 	}
   8177 	x = 4294967296
   8178 	y = 0
   8179 	r = x >> y
   8180 	if r != 4294967296 {
   8181 		t.Errorf("4294967296 %s 0 = %d, want 4294967296", ">>", r)
   8182 	}
   8183 	y = 1
   8184 	r = x >> y
   8185 	if r != 2147483648 {
   8186 		t.Errorf("4294967296 %s 1 = %d, want 2147483648", ">>", r)
   8187 	}
   8188 	y = 255
   8189 	r = x >> y
   8190 	if r != 0 {
   8191 		t.Errorf("4294967296 %s 255 = %d, want 0", ">>", r)
   8192 	}
   8193 	x = 9223372036854775806
   8194 	y = 0
   8195 	r = x >> y
   8196 	if r != 9223372036854775806 {
   8197 		t.Errorf("9223372036854775806 %s 0 = %d, want 9223372036854775806", ">>", r)
   8198 	}
   8199 	y = 1
   8200 	r = x >> y
   8201 	if r != 4611686018427387903 {
   8202 		t.Errorf("9223372036854775806 %s 1 = %d, want 4611686018427387903", ">>", r)
   8203 	}
   8204 	y = 255
   8205 	r = x >> y
   8206 	if r != 0 {
   8207 		t.Errorf("9223372036854775806 %s 255 = %d, want 0", ">>", r)
   8208 	}
   8209 	x = 9223372036854775807
   8210 	y = 0
   8211 	r = x >> y
   8212 	if r != 9223372036854775807 {
   8213 		t.Errorf("9223372036854775807 %s 0 = %d, want 9223372036854775807", ">>", r)
   8214 	}
   8215 	y = 1
   8216 	r = x >> y
   8217 	if r != 4611686018427387903 {
   8218 		t.Errorf("9223372036854775807 %s 1 = %d, want 4611686018427387903", ">>", r)
   8219 	}
   8220 	y = 255
   8221 	r = x >> y
   8222 	if r != 0 {
   8223 		t.Errorf("9223372036854775807 %s 255 = %d, want 0", ">>", r)
   8224 	}
   8225 }
   8226 func TestConstFolduint32uint64lsh(t *testing.T) {
   8227 	var x, r uint32
   8228 	var y uint64
   8229 	x = 0
   8230 	y = 0
   8231 	r = x << y
   8232 	if r != 0 {
   8233 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   8234 	}
   8235 	y = 1
   8236 	r = x << y
   8237 	if r != 0 {
   8238 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   8239 	}
   8240 	y = 4294967296
   8241 	r = x << y
   8242 	if r != 0 {
   8243 		t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r)
   8244 	}
   8245 	y = 18446744073709551615
   8246 	r = x << y
   8247 	if r != 0 {
   8248 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r)
   8249 	}
   8250 	x = 1
   8251 	y = 0
   8252 	r = x << y
   8253 	if r != 1 {
   8254 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   8255 	}
   8256 	y = 1
   8257 	r = x << y
   8258 	if r != 2 {
   8259 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   8260 	}
   8261 	y = 4294967296
   8262 	r = x << y
   8263 	if r != 0 {
   8264 		t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r)
   8265 	}
   8266 	y = 18446744073709551615
   8267 	r = x << y
   8268 	if r != 0 {
   8269 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r)
   8270 	}
   8271 	x = 4294967295
   8272 	y = 0
   8273 	r = x << y
   8274 	if r != 4294967295 {
   8275 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", "<<", r)
   8276 	}
   8277 	y = 1
   8278 	r = x << y
   8279 	if r != 4294967294 {
   8280 		t.Errorf("4294967295 %s 1 = %d, want 4294967294", "<<", r)
   8281 	}
   8282 	y = 4294967296
   8283 	r = x << y
   8284 	if r != 0 {
   8285 		t.Errorf("4294967295 %s 4294967296 = %d, want 0", "<<", r)
   8286 	}
   8287 	y = 18446744073709551615
   8288 	r = x << y
   8289 	if r != 0 {
   8290 		t.Errorf("4294967295 %s 18446744073709551615 = %d, want 0", "<<", r)
   8291 	}
   8292 }
   8293 func TestConstFolduint32uint64rsh(t *testing.T) {
   8294 	var x, r uint32
   8295 	var y uint64
   8296 	x = 0
   8297 	y = 0
   8298 	r = x >> y
   8299 	if r != 0 {
   8300 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   8301 	}
   8302 	y = 1
   8303 	r = x >> y
   8304 	if r != 0 {
   8305 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   8306 	}
   8307 	y = 4294967296
   8308 	r = x >> y
   8309 	if r != 0 {
   8310 		t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r)
   8311 	}
   8312 	y = 18446744073709551615
   8313 	r = x >> y
   8314 	if r != 0 {
   8315 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r)
   8316 	}
   8317 	x = 1
   8318 	y = 0
   8319 	r = x >> y
   8320 	if r != 1 {
   8321 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   8322 	}
   8323 	y = 1
   8324 	r = x >> y
   8325 	if r != 0 {
   8326 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   8327 	}
   8328 	y = 4294967296
   8329 	r = x >> y
   8330 	if r != 0 {
   8331 		t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r)
   8332 	}
   8333 	y = 18446744073709551615
   8334 	r = x >> y
   8335 	if r != 0 {
   8336 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r)
   8337 	}
   8338 	x = 4294967295
   8339 	y = 0
   8340 	r = x >> y
   8341 	if r != 4294967295 {
   8342 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", ">>", r)
   8343 	}
   8344 	y = 1
   8345 	r = x >> y
   8346 	if r != 2147483647 {
   8347 		t.Errorf("4294967295 %s 1 = %d, want 2147483647", ">>", r)
   8348 	}
   8349 	y = 4294967296
   8350 	r = x >> y
   8351 	if r != 0 {
   8352 		t.Errorf("4294967295 %s 4294967296 = %d, want 0", ">>", r)
   8353 	}
   8354 	y = 18446744073709551615
   8355 	r = x >> y
   8356 	if r != 0 {
   8357 		t.Errorf("4294967295 %s 18446744073709551615 = %d, want 0", ">>", r)
   8358 	}
   8359 }
   8360 func TestConstFolduint32uint32lsh(t *testing.T) {
   8361 	var x, r uint32
   8362 	var y uint32
   8363 	x = 0
   8364 	y = 0
   8365 	r = x << y
   8366 	if r != 0 {
   8367 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   8368 	}
   8369 	y = 1
   8370 	r = x << y
   8371 	if r != 0 {
   8372 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   8373 	}
   8374 	y = 4294967295
   8375 	r = x << y
   8376 	if r != 0 {
   8377 		t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r)
   8378 	}
   8379 	x = 1
   8380 	y = 0
   8381 	r = x << y
   8382 	if r != 1 {
   8383 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   8384 	}
   8385 	y = 1
   8386 	r = x << y
   8387 	if r != 2 {
   8388 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   8389 	}
   8390 	y = 4294967295
   8391 	r = x << y
   8392 	if r != 0 {
   8393 		t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r)
   8394 	}
   8395 	x = 4294967295
   8396 	y = 0
   8397 	r = x << y
   8398 	if r != 4294967295 {
   8399 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", "<<", r)
   8400 	}
   8401 	y = 1
   8402 	r = x << y
   8403 	if r != 4294967294 {
   8404 		t.Errorf("4294967295 %s 1 = %d, want 4294967294", "<<", r)
   8405 	}
   8406 	y = 4294967295
   8407 	r = x << y
   8408 	if r != 0 {
   8409 		t.Errorf("4294967295 %s 4294967295 = %d, want 0", "<<", r)
   8410 	}
   8411 }
   8412 func TestConstFolduint32uint32rsh(t *testing.T) {
   8413 	var x, r uint32
   8414 	var y uint32
   8415 	x = 0
   8416 	y = 0
   8417 	r = x >> y
   8418 	if r != 0 {
   8419 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   8420 	}
   8421 	y = 1
   8422 	r = x >> y
   8423 	if r != 0 {
   8424 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   8425 	}
   8426 	y = 4294967295
   8427 	r = x >> y
   8428 	if r != 0 {
   8429 		t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r)
   8430 	}
   8431 	x = 1
   8432 	y = 0
   8433 	r = x >> y
   8434 	if r != 1 {
   8435 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   8436 	}
   8437 	y = 1
   8438 	r = x >> y
   8439 	if r != 0 {
   8440 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   8441 	}
   8442 	y = 4294967295
   8443 	r = x >> y
   8444 	if r != 0 {
   8445 		t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r)
   8446 	}
   8447 	x = 4294967295
   8448 	y = 0
   8449 	r = x >> y
   8450 	if r != 4294967295 {
   8451 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", ">>", r)
   8452 	}
   8453 	y = 1
   8454 	r = x >> y
   8455 	if r != 2147483647 {
   8456 		t.Errorf("4294967295 %s 1 = %d, want 2147483647", ">>", r)
   8457 	}
   8458 	y = 4294967295
   8459 	r = x >> y
   8460 	if r != 0 {
   8461 		t.Errorf("4294967295 %s 4294967295 = %d, want 0", ">>", r)
   8462 	}
   8463 }
   8464 func TestConstFolduint32uint16lsh(t *testing.T) {
   8465 	var x, r uint32
   8466 	var y uint16
   8467 	x = 0
   8468 	y = 0
   8469 	r = x << y
   8470 	if r != 0 {
   8471 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   8472 	}
   8473 	y = 1
   8474 	r = x << y
   8475 	if r != 0 {
   8476 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   8477 	}
   8478 	y = 65535
   8479 	r = x << y
   8480 	if r != 0 {
   8481 		t.Errorf("0 %s 65535 = %d, want 0", "<<", r)
   8482 	}
   8483 	x = 1
   8484 	y = 0
   8485 	r = x << y
   8486 	if r != 1 {
   8487 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   8488 	}
   8489 	y = 1
   8490 	r = x << y
   8491 	if r != 2 {
   8492 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   8493 	}
   8494 	y = 65535
   8495 	r = x << y
   8496 	if r != 0 {
   8497 		t.Errorf("1 %s 65535 = %d, want 0", "<<", r)
   8498 	}
   8499 	x = 4294967295
   8500 	y = 0
   8501 	r = x << y
   8502 	if r != 4294967295 {
   8503 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", "<<", r)
   8504 	}
   8505 	y = 1
   8506 	r = x << y
   8507 	if r != 4294967294 {
   8508 		t.Errorf("4294967295 %s 1 = %d, want 4294967294", "<<", r)
   8509 	}
   8510 	y = 65535
   8511 	r = x << y
   8512 	if r != 0 {
   8513 		t.Errorf("4294967295 %s 65535 = %d, want 0", "<<", r)
   8514 	}
   8515 }
   8516 func TestConstFolduint32uint16rsh(t *testing.T) {
   8517 	var x, r uint32
   8518 	var y uint16
   8519 	x = 0
   8520 	y = 0
   8521 	r = x >> y
   8522 	if r != 0 {
   8523 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   8524 	}
   8525 	y = 1
   8526 	r = x >> y
   8527 	if r != 0 {
   8528 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   8529 	}
   8530 	y = 65535
   8531 	r = x >> y
   8532 	if r != 0 {
   8533 		t.Errorf("0 %s 65535 = %d, want 0", ">>", r)
   8534 	}
   8535 	x = 1
   8536 	y = 0
   8537 	r = x >> y
   8538 	if r != 1 {
   8539 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   8540 	}
   8541 	y = 1
   8542 	r = x >> y
   8543 	if r != 0 {
   8544 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   8545 	}
   8546 	y = 65535
   8547 	r = x >> y
   8548 	if r != 0 {
   8549 		t.Errorf("1 %s 65535 = %d, want 0", ">>", r)
   8550 	}
   8551 	x = 4294967295
   8552 	y = 0
   8553 	r = x >> y
   8554 	if r != 4294967295 {
   8555 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", ">>", r)
   8556 	}
   8557 	y = 1
   8558 	r = x >> y
   8559 	if r != 2147483647 {
   8560 		t.Errorf("4294967295 %s 1 = %d, want 2147483647", ">>", r)
   8561 	}
   8562 	y = 65535
   8563 	r = x >> y
   8564 	if r != 0 {
   8565 		t.Errorf("4294967295 %s 65535 = %d, want 0", ">>", r)
   8566 	}
   8567 }
   8568 func TestConstFolduint32uint8lsh(t *testing.T) {
   8569 	var x, r uint32
   8570 	var y uint8
   8571 	x = 0
   8572 	y = 0
   8573 	r = x << y
   8574 	if r != 0 {
   8575 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   8576 	}
   8577 	y = 1
   8578 	r = x << y
   8579 	if r != 0 {
   8580 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   8581 	}
   8582 	y = 255
   8583 	r = x << y
   8584 	if r != 0 {
   8585 		t.Errorf("0 %s 255 = %d, want 0", "<<", r)
   8586 	}
   8587 	x = 1
   8588 	y = 0
   8589 	r = x << y
   8590 	if r != 1 {
   8591 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   8592 	}
   8593 	y = 1
   8594 	r = x << y
   8595 	if r != 2 {
   8596 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   8597 	}
   8598 	y = 255
   8599 	r = x << y
   8600 	if r != 0 {
   8601 		t.Errorf("1 %s 255 = %d, want 0", "<<", r)
   8602 	}
   8603 	x = 4294967295
   8604 	y = 0
   8605 	r = x << y
   8606 	if r != 4294967295 {
   8607 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", "<<", r)
   8608 	}
   8609 	y = 1
   8610 	r = x << y
   8611 	if r != 4294967294 {
   8612 		t.Errorf("4294967295 %s 1 = %d, want 4294967294", "<<", r)
   8613 	}
   8614 	y = 255
   8615 	r = x << y
   8616 	if r != 0 {
   8617 		t.Errorf("4294967295 %s 255 = %d, want 0", "<<", r)
   8618 	}
   8619 }
   8620 func TestConstFolduint32uint8rsh(t *testing.T) {
   8621 	var x, r uint32
   8622 	var y uint8
   8623 	x = 0
   8624 	y = 0
   8625 	r = x >> y
   8626 	if r != 0 {
   8627 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   8628 	}
   8629 	y = 1
   8630 	r = x >> y
   8631 	if r != 0 {
   8632 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   8633 	}
   8634 	y = 255
   8635 	r = x >> y
   8636 	if r != 0 {
   8637 		t.Errorf("0 %s 255 = %d, want 0", ">>", r)
   8638 	}
   8639 	x = 1
   8640 	y = 0
   8641 	r = x >> y
   8642 	if r != 1 {
   8643 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   8644 	}
   8645 	y = 1
   8646 	r = x >> y
   8647 	if r != 0 {
   8648 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   8649 	}
   8650 	y = 255
   8651 	r = x >> y
   8652 	if r != 0 {
   8653 		t.Errorf("1 %s 255 = %d, want 0", ">>", r)
   8654 	}
   8655 	x = 4294967295
   8656 	y = 0
   8657 	r = x >> y
   8658 	if r != 4294967295 {
   8659 		t.Errorf("4294967295 %s 0 = %d, want 4294967295", ">>", r)
   8660 	}
   8661 	y = 1
   8662 	r = x >> y
   8663 	if r != 2147483647 {
   8664 		t.Errorf("4294967295 %s 1 = %d, want 2147483647", ">>", r)
   8665 	}
   8666 	y = 255
   8667 	r = x >> y
   8668 	if r != 0 {
   8669 		t.Errorf("4294967295 %s 255 = %d, want 0", ">>", r)
   8670 	}
   8671 }
   8672 func TestConstFoldint32uint64lsh(t *testing.T) {
   8673 	var x, r int32
   8674 	var y uint64
   8675 	x = -2147483648
   8676 	y = 0
   8677 	r = x << y
   8678 	if r != -2147483648 {
   8679 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "<<", r)
   8680 	}
   8681 	y = 1
   8682 	r = x << y
   8683 	if r != 0 {
   8684 		t.Errorf("-2147483648 %s 1 = %d, want 0", "<<", r)
   8685 	}
   8686 	y = 4294967296
   8687 	r = x << y
   8688 	if r != 0 {
   8689 		t.Errorf("-2147483648 %s 4294967296 = %d, want 0", "<<", r)
   8690 	}
   8691 	y = 18446744073709551615
   8692 	r = x << y
   8693 	if r != 0 {
   8694 		t.Errorf("-2147483648 %s 18446744073709551615 = %d, want 0", "<<", r)
   8695 	}
   8696 	x = -2147483647
   8697 	y = 0
   8698 	r = x << y
   8699 	if r != -2147483647 {
   8700 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "<<", r)
   8701 	}
   8702 	y = 1
   8703 	r = x << y
   8704 	if r != 2 {
   8705 		t.Errorf("-2147483647 %s 1 = %d, want 2", "<<", r)
   8706 	}
   8707 	y = 4294967296
   8708 	r = x << y
   8709 	if r != 0 {
   8710 		t.Errorf("-2147483647 %s 4294967296 = %d, want 0", "<<", r)
   8711 	}
   8712 	y = 18446744073709551615
   8713 	r = x << y
   8714 	if r != 0 {
   8715 		t.Errorf("-2147483647 %s 18446744073709551615 = %d, want 0", "<<", r)
   8716 	}
   8717 	x = -1
   8718 	y = 0
   8719 	r = x << y
   8720 	if r != -1 {
   8721 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   8722 	}
   8723 	y = 1
   8724 	r = x << y
   8725 	if r != -2 {
   8726 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   8727 	}
   8728 	y = 4294967296
   8729 	r = x << y
   8730 	if r != 0 {
   8731 		t.Errorf("-1 %s 4294967296 = %d, want 0", "<<", r)
   8732 	}
   8733 	y = 18446744073709551615
   8734 	r = x << y
   8735 	if r != 0 {
   8736 		t.Errorf("-1 %s 18446744073709551615 = %d, want 0", "<<", r)
   8737 	}
   8738 	x = 0
   8739 	y = 0
   8740 	r = x << y
   8741 	if r != 0 {
   8742 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   8743 	}
   8744 	y = 1
   8745 	r = x << y
   8746 	if r != 0 {
   8747 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   8748 	}
   8749 	y = 4294967296
   8750 	r = x << y
   8751 	if r != 0 {
   8752 		t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r)
   8753 	}
   8754 	y = 18446744073709551615
   8755 	r = x << y
   8756 	if r != 0 {
   8757 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r)
   8758 	}
   8759 	x = 1
   8760 	y = 0
   8761 	r = x << y
   8762 	if r != 1 {
   8763 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   8764 	}
   8765 	y = 1
   8766 	r = x << y
   8767 	if r != 2 {
   8768 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   8769 	}
   8770 	y = 4294967296
   8771 	r = x << y
   8772 	if r != 0 {
   8773 		t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r)
   8774 	}
   8775 	y = 18446744073709551615
   8776 	r = x << y
   8777 	if r != 0 {
   8778 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r)
   8779 	}
   8780 	x = 2147483647
   8781 	y = 0
   8782 	r = x << y
   8783 	if r != 2147483647 {
   8784 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", "<<", r)
   8785 	}
   8786 	y = 1
   8787 	r = x << y
   8788 	if r != -2 {
   8789 		t.Errorf("2147483647 %s 1 = %d, want -2", "<<", r)
   8790 	}
   8791 	y = 4294967296
   8792 	r = x << y
   8793 	if r != 0 {
   8794 		t.Errorf("2147483647 %s 4294967296 = %d, want 0", "<<", r)
   8795 	}
   8796 	y = 18446744073709551615
   8797 	r = x << y
   8798 	if r != 0 {
   8799 		t.Errorf("2147483647 %s 18446744073709551615 = %d, want 0", "<<", r)
   8800 	}
   8801 }
   8802 func TestConstFoldint32uint64rsh(t *testing.T) {
   8803 	var x, r int32
   8804 	var y uint64
   8805 	x = -2147483648
   8806 	y = 0
   8807 	r = x >> y
   8808 	if r != -2147483648 {
   8809 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", ">>", r)
   8810 	}
   8811 	y = 1
   8812 	r = x >> y
   8813 	if r != -1073741824 {
   8814 		t.Errorf("-2147483648 %s 1 = %d, want -1073741824", ">>", r)
   8815 	}
   8816 	y = 4294967296
   8817 	r = x >> y
   8818 	if r != -1 {
   8819 		t.Errorf("-2147483648 %s 4294967296 = %d, want -1", ">>", r)
   8820 	}
   8821 	y = 18446744073709551615
   8822 	r = x >> y
   8823 	if r != -1 {
   8824 		t.Errorf("-2147483648 %s 18446744073709551615 = %d, want -1", ">>", r)
   8825 	}
   8826 	x = -2147483647
   8827 	y = 0
   8828 	r = x >> y
   8829 	if r != -2147483647 {
   8830 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", ">>", r)
   8831 	}
   8832 	y = 1
   8833 	r = x >> y
   8834 	if r != -1073741824 {
   8835 		t.Errorf("-2147483647 %s 1 = %d, want -1073741824", ">>", r)
   8836 	}
   8837 	y = 4294967296
   8838 	r = x >> y
   8839 	if r != -1 {
   8840 		t.Errorf("-2147483647 %s 4294967296 = %d, want -1", ">>", r)
   8841 	}
   8842 	y = 18446744073709551615
   8843 	r = x >> y
   8844 	if r != -1 {
   8845 		t.Errorf("-2147483647 %s 18446744073709551615 = %d, want -1", ">>", r)
   8846 	}
   8847 	x = -1
   8848 	y = 0
   8849 	r = x >> y
   8850 	if r != -1 {
   8851 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   8852 	}
   8853 	y = 1
   8854 	r = x >> y
   8855 	if r != -1 {
   8856 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   8857 	}
   8858 	y = 4294967296
   8859 	r = x >> y
   8860 	if r != -1 {
   8861 		t.Errorf("-1 %s 4294967296 = %d, want -1", ">>", r)
   8862 	}
   8863 	y = 18446744073709551615
   8864 	r = x >> y
   8865 	if r != -1 {
   8866 		t.Errorf("-1 %s 18446744073709551615 = %d, want -1", ">>", r)
   8867 	}
   8868 	x = 0
   8869 	y = 0
   8870 	r = x >> y
   8871 	if r != 0 {
   8872 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   8873 	}
   8874 	y = 1
   8875 	r = x >> y
   8876 	if r != 0 {
   8877 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   8878 	}
   8879 	y = 4294967296
   8880 	r = x >> y
   8881 	if r != 0 {
   8882 		t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r)
   8883 	}
   8884 	y = 18446744073709551615
   8885 	r = x >> y
   8886 	if r != 0 {
   8887 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r)
   8888 	}
   8889 	x = 1
   8890 	y = 0
   8891 	r = x >> y
   8892 	if r != 1 {
   8893 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   8894 	}
   8895 	y = 1
   8896 	r = x >> y
   8897 	if r != 0 {
   8898 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   8899 	}
   8900 	y = 4294967296
   8901 	r = x >> y
   8902 	if r != 0 {
   8903 		t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r)
   8904 	}
   8905 	y = 18446744073709551615
   8906 	r = x >> y
   8907 	if r != 0 {
   8908 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r)
   8909 	}
   8910 	x = 2147483647
   8911 	y = 0
   8912 	r = x >> y
   8913 	if r != 2147483647 {
   8914 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", ">>", r)
   8915 	}
   8916 	y = 1
   8917 	r = x >> y
   8918 	if r != 1073741823 {
   8919 		t.Errorf("2147483647 %s 1 = %d, want 1073741823", ">>", r)
   8920 	}
   8921 	y = 4294967296
   8922 	r = x >> y
   8923 	if r != 0 {
   8924 		t.Errorf("2147483647 %s 4294967296 = %d, want 0", ">>", r)
   8925 	}
   8926 	y = 18446744073709551615
   8927 	r = x >> y
   8928 	if r != 0 {
   8929 		t.Errorf("2147483647 %s 18446744073709551615 = %d, want 0", ">>", r)
   8930 	}
   8931 }
   8932 func TestConstFoldint32uint32lsh(t *testing.T) {
   8933 	var x, r int32
   8934 	var y uint32
   8935 	x = -2147483648
   8936 	y = 0
   8937 	r = x << y
   8938 	if r != -2147483648 {
   8939 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "<<", r)
   8940 	}
   8941 	y = 1
   8942 	r = x << y
   8943 	if r != 0 {
   8944 		t.Errorf("-2147483648 %s 1 = %d, want 0", "<<", r)
   8945 	}
   8946 	y = 4294967295
   8947 	r = x << y
   8948 	if r != 0 {
   8949 		t.Errorf("-2147483648 %s 4294967295 = %d, want 0", "<<", r)
   8950 	}
   8951 	x = -2147483647
   8952 	y = 0
   8953 	r = x << y
   8954 	if r != -2147483647 {
   8955 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "<<", r)
   8956 	}
   8957 	y = 1
   8958 	r = x << y
   8959 	if r != 2 {
   8960 		t.Errorf("-2147483647 %s 1 = %d, want 2", "<<", r)
   8961 	}
   8962 	y = 4294967295
   8963 	r = x << y
   8964 	if r != 0 {
   8965 		t.Errorf("-2147483647 %s 4294967295 = %d, want 0", "<<", r)
   8966 	}
   8967 	x = -1
   8968 	y = 0
   8969 	r = x << y
   8970 	if r != -1 {
   8971 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   8972 	}
   8973 	y = 1
   8974 	r = x << y
   8975 	if r != -2 {
   8976 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   8977 	}
   8978 	y = 4294967295
   8979 	r = x << y
   8980 	if r != 0 {
   8981 		t.Errorf("-1 %s 4294967295 = %d, want 0", "<<", r)
   8982 	}
   8983 	x = 0
   8984 	y = 0
   8985 	r = x << y
   8986 	if r != 0 {
   8987 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   8988 	}
   8989 	y = 1
   8990 	r = x << y
   8991 	if r != 0 {
   8992 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   8993 	}
   8994 	y = 4294967295
   8995 	r = x << y
   8996 	if r != 0 {
   8997 		t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r)
   8998 	}
   8999 	x = 1
   9000 	y = 0
   9001 	r = x << y
   9002 	if r != 1 {
   9003 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   9004 	}
   9005 	y = 1
   9006 	r = x << y
   9007 	if r != 2 {
   9008 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   9009 	}
   9010 	y = 4294967295
   9011 	r = x << y
   9012 	if r != 0 {
   9013 		t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r)
   9014 	}
   9015 	x = 2147483647
   9016 	y = 0
   9017 	r = x << y
   9018 	if r != 2147483647 {
   9019 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", "<<", r)
   9020 	}
   9021 	y = 1
   9022 	r = x << y
   9023 	if r != -2 {
   9024 		t.Errorf("2147483647 %s 1 = %d, want -2", "<<", r)
   9025 	}
   9026 	y = 4294967295
   9027 	r = x << y
   9028 	if r != 0 {
   9029 		t.Errorf("2147483647 %s 4294967295 = %d, want 0", "<<", r)
   9030 	}
   9031 }
   9032 func TestConstFoldint32uint32rsh(t *testing.T) {
   9033 	var x, r int32
   9034 	var y uint32
   9035 	x = -2147483648
   9036 	y = 0
   9037 	r = x >> y
   9038 	if r != -2147483648 {
   9039 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", ">>", r)
   9040 	}
   9041 	y = 1
   9042 	r = x >> y
   9043 	if r != -1073741824 {
   9044 		t.Errorf("-2147483648 %s 1 = %d, want -1073741824", ">>", r)
   9045 	}
   9046 	y = 4294967295
   9047 	r = x >> y
   9048 	if r != -1 {
   9049 		t.Errorf("-2147483648 %s 4294967295 = %d, want -1", ">>", r)
   9050 	}
   9051 	x = -2147483647
   9052 	y = 0
   9053 	r = x >> y
   9054 	if r != -2147483647 {
   9055 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", ">>", r)
   9056 	}
   9057 	y = 1
   9058 	r = x >> y
   9059 	if r != -1073741824 {
   9060 		t.Errorf("-2147483647 %s 1 = %d, want -1073741824", ">>", r)
   9061 	}
   9062 	y = 4294967295
   9063 	r = x >> y
   9064 	if r != -1 {
   9065 		t.Errorf("-2147483647 %s 4294967295 = %d, want -1", ">>", r)
   9066 	}
   9067 	x = -1
   9068 	y = 0
   9069 	r = x >> y
   9070 	if r != -1 {
   9071 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   9072 	}
   9073 	y = 1
   9074 	r = x >> y
   9075 	if r != -1 {
   9076 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   9077 	}
   9078 	y = 4294967295
   9079 	r = x >> y
   9080 	if r != -1 {
   9081 		t.Errorf("-1 %s 4294967295 = %d, want -1", ">>", r)
   9082 	}
   9083 	x = 0
   9084 	y = 0
   9085 	r = x >> y
   9086 	if r != 0 {
   9087 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   9088 	}
   9089 	y = 1
   9090 	r = x >> y
   9091 	if r != 0 {
   9092 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   9093 	}
   9094 	y = 4294967295
   9095 	r = x >> y
   9096 	if r != 0 {
   9097 		t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r)
   9098 	}
   9099 	x = 1
   9100 	y = 0
   9101 	r = x >> y
   9102 	if r != 1 {
   9103 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   9104 	}
   9105 	y = 1
   9106 	r = x >> y
   9107 	if r != 0 {
   9108 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   9109 	}
   9110 	y = 4294967295
   9111 	r = x >> y
   9112 	if r != 0 {
   9113 		t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r)
   9114 	}
   9115 	x = 2147483647
   9116 	y = 0
   9117 	r = x >> y
   9118 	if r != 2147483647 {
   9119 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", ">>", r)
   9120 	}
   9121 	y = 1
   9122 	r = x >> y
   9123 	if r != 1073741823 {
   9124 		t.Errorf("2147483647 %s 1 = %d, want 1073741823", ">>", r)
   9125 	}
   9126 	y = 4294967295
   9127 	r = x >> y
   9128 	if r != 0 {
   9129 		t.Errorf("2147483647 %s 4294967295 = %d, want 0", ">>", r)
   9130 	}
   9131 }
   9132 func TestConstFoldint32uint16lsh(t *testing.T) {
   9133 	var x, r int32
   9134 	var y uint16
   9135 	x = -2147483648
   9136 	y = 0
   9137 	r = x << y
   9138 	if r != -2147483648 {
   9139 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "<<", r)
   9140 	}
   9141 	y = 1
   9142 	r = x << y
   9143 	if r != 0 {
   9144 		t.Errorf("-2147483648 %s 1 = %d, want 0", "<<", r)
   9145 	}
   9146 	y = 65535
   9147 	r = x << y
   9148 	if r != 0 {
   9149 		t.Errorf("-2147483648 %s 65535 = %d, want 0", "<<", r)
   9150 	}
   9151 	x = -2147483647
   9152 	y = 0
   9153 	r = x << y
   9154 	if r != -2147483647 {
   9155 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "<<", r)
   9156 	}
   9157 	y = 1
   9158 	r = x << y
   9159 	if r != 2 {
   9160 		t.Errorf("-2147483647 %s 1 = %d, want 2", "<<", r)
   9161 	}
   9162 	y = 65535
   9163 	r = x << y
   9164 	if r != 0 {
   9165 		t.Errorf("-2147483647 %s 65535 = %d, want 0", "<<", r)
   9166 	}
   9167 	x = -1
   9168 	y = 0
   9169 	r = x << y
   9170 	if r != -1 {
   9171 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   9172 	}
   9173 	y = 1
   9174 	r = x << y
   9175 	if r != -2 {
   9176 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   9177 	}
   9178 	y = 65535
   9179 	r = x << y
   9180 	if r != 0 {
   9181 		t.Errorf("-1 %s 65535 = %d, want 0", "<<", r)
   9182 	}
   9183 	x = 0
   9184 	y = 0
   9185 	r = x << y
   9186 	if r != 0 {
   9187 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   9188 	}
   9189 	y = 1
   9190 	r = x << y
   9191 	if r != 0 {
   9192 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   9193 	}
   9194 	y = 65535
   9195 	r = x << y
   9196 	if r != 0 {
   9197 		t.Errorf("0 %s 65535 = %d, want 0", "<<", r)
   9198 	}
   9199 	x = 1
   9200 	y = 0
   9201 	r = x << y
   9202 	if r != 1 {
   9203 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   9204 	}
   9205 	y = 1
   9206 	r = x << y
   9207 	if r != 2 {
   9208 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   9209 	}
   9210 	y = 65535
   9211 	r = x << y
   9212 	if r != 0 {
   9213 		t.Errorf("1 %s 65535 = %d, want 0", "<<", r)
   9214 	}
   9215 	x = 2147483647
   9216 	y = 0
   9217 	r = x << y
   9218 	if r != 2147483647 {
   9219 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", "<<", r)
   9220 	}
   9221 	y = 1
   9222 	r = x << y
   9223 	if r != -2 {
   9224 		t.Errorf("2147483647 %s 1 = %d, want -2", "<<", r)
   9225 	}
   9226 	y = 65535
   9227 	r = x << y
   9228 	if r != 0 {
   9229 		t.Errorf("2147483647 %s 65535 = %d, want 0", "<<", r)
   9230 	}
   9231 }
   9232 func TestConstFoldint32uint16rsh(t *testing.T) {
   9233 	var x, r int32
   9234 	var y uint16
   9235 	x = -2147483648
   9236 	y = 0
   9237 	r = x >> y
   9238 	if r != -2147483648 {
   9239 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", ">>", r)
   9240 	}
   9241 	y = 1
   9242 	r = x >> y
   9243 	if r != -1073741824 {
   9244 		t.Errorf("-2147483648 %s 1 = %d, want -1073741824", ">>", r)
   9245 	}
   9246 	y = 65535
   9247 	r = x >> y
   9248 	if r != -1 {
   9249 		t.Errorf("-2147483648 %s 65535 = %d, want -1", ">>", r)
   9250 	}
   9251 	x = -2147483647
   9252 	y = 0
   9253 	r = x >> y
   9254 	if r != -2147483647 {
   9255 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", ">>", r)
   9256 	}
   9257 	y = 1
   9258 	r = x >> y
   9259 	if r != -1073741824 {
   9260 		t.Errorf("-2147483647 %s 1 = %d, want -1073741824", ">>", r)
   9261 	}
   9262 	y = 65535
   9263 	r = x >> y
   9264 	if r != -1 {
   9265 		t.Errorf("-2147483647 %s 65535 = %d, want -1", ">>", r)
   9266 	}
   9267 	x = -1
   9268 	y = 0
   9269 	r = x >> y
   9270 	if r != -1 {
   9271 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   9272 	}
   9273 	y = 1
   9274 	r = x >> y
   9275 	if r != -1 {
   9276 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   9277 	}
   9278 	y = 65535
   9279 	r = x >> y
   9280 	if r != -1 {
   9281 		t.Errorf("-1 %s 65535 = %d, want -1", ">>", r)
   9282 	}
   9283 	x = 0
   9284 	y = 0
   9285 	r = x >> y
   9286 	if r != 0 {
   9287 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   9288 	}
   9289 	y = 1
   9290 	r = x >> y
   9291 	if r != 0 {
   9292 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   9293 	}
   9294 	y = 65535
   9295 	r = x >> y
   9296 	if r != 0 {
   9297 		t.Errorf("0 %s 65535 = %d, want 0", ">>", r)
   9298 	}
   9299 	x = 1
   9300 	y = 0
   9301 	r = x >> y
   9302 	if r != 1 {
   9303 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   9304 	}
   9305 	y = 1
   9306 	r = x >> y
   9307 	if r != 0 {
   9308 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   9309 	}
   9310 	y = 65535
   9311 	r = x >> y
   9312 	if r != 0 {
   9313 		t.Errorf("1 %s 65535 = %d, want 0", ">>", r)
   9314 	}
   9315 	x = 2147483647
   9316 	y = 0
   9317 	r = x >> y
   9318 	if r != 2147483647 {
   9319 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", ">>", r)
   9320 	}
   9321 	y = 1
   9322 	r = x >> y
   9323 	if r != 1073741823 {
   9324 		t.Errorf("2147483647 %s 1 = %d, want 1073741823", ">>", r)
   9325 	}
   9326 	y = 65535
   9327 	r = x >> y
   9328 	if r != 0 {
   9329 		t.Errorf("2147483647 %s 65535 = %d, want 0", ">>", r)
   9330 	}
   9331 }
   9332 func TestConstFoldint32uint8lsh(t *testing.T) {
   9333 	var x, r int32
   9334 	var y uint8
   9335 	x = -2147483648
   9336 	y = 0
   9337 	r = x << y
   9338 	if r != -2147483648 {
   9339 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", "<<", r)
   9340 	}
   9341 	y = 1
   9342 	r = x << y
   9343 	if r != 0 {
   9344 		t.Errorf("-2147483648 %s 1 = %d, want 0", "<<", r)
   9345 	}
   9346 	y = 255
   9347 	r = x << y
   9348 	if r != 0 {
   9349 		t.Errorf("-2147483648 %s 255 = %d, want 0", "<<", r)
   9350 	}
   9351 	x = -2147483647
   9352 	y = 0
   9353 	r = x << y
   9354 	if r != -2147483647 {
   9355 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", "<<", r)
   9356 	}
   9357 	y = 1
   9358 	r = x << y
   9359 	if r != 2 {
   9360 		t.Errorf("-2147483647 %s 1 = %d, want 2", "<<", r)
   9361 	}
   9362 	y = 255
   9363 	r = x << y
   9364 	if r != 0 {
   9365 		t.Errorf("-2147483647 %s 255 = %d, want 0", "<<", r)
   9366 	}
   9367 	x = -1
   9368 	y = 0
   9369 	r = x << y
   9370 	if r != -1 {
   9371 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   9372 	}
   9373 	y = 1
   9374 	r = x << y
   9375 	if r != -2 {
   9376 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   9377 	}
   9378 	y = 255
   9379 	r = x << y
   9380 	if r != 0 {
   9381 		t.Errorf("-1 %s 255 = %d, want 0", "<<", r)
   9382 	}
   9383 	x = 0
   9384 	y = 0
   9385 	r = x << y
   9386 	if r != 0 {
   9387 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   9388 	}
   9389 	y = 1
   9390 	r = x << y
   9391 	if r != 0 {
   9392 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   9393 	}
   9394 	y = 255
   9395 	r = x << y
   9396 	if r != 0 {
   9397 		t.Errorf("0 %s 255 = %d, want 0", "<<", r)
   9398 	}
   9399 	x = 1
   9400 	y = 0
   9401 	r = x << y
   9402 	if r != 1 {
   9403 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   9404 	}
   9405 	y = 1
   9406 	r = x << y
   9407 	if r != 2 {
   9408 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   9409 	}
   9410 	y = 255
   9411 	r = x << y
   9412 	if r != 0 {
   9413 		t.Errorf("1 %s 255 = %d, want 0", "<<", r)
   9414 	}
   9415 	x = 2147483647
   9416 	y = 0
   9417 	r = x << y
   9418 	if r != 2147483647 {
   9419 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", "<<", r)
   9420 	}
   9421 	y = 1
   9422 	r = x << y
   9423 	if r != -2 {
   9424 		t.Errorf("2147483647 %s 1 = %d, want -2", "<<", r)
   9425 	}
   9426 	y = 255
   9427 	r = x << y
   9428 	if r != 0 {
   9429 		t.Errorf("2147483647 %s 255 = %d, want 0", "<<", r)
   9430 	}
   9431 }
   9432 func TestConstFoldint32uint8rsh(t *testing.T) {
   9433 	var x, r int32
   9434 	var y uint8
   9435 	x = -2147483648
   9436 	y = 0
   9437 	r = x >> y
   9438 	if r != -2147483648 {
   9439 		t.Errorf("-2147483648 %s 0 = %d, want -2147483648", ">>", r)
   9440 	}
   9441 	y = 1
   9442 	r = x >> y
   9443 	if r != -1073741824 {
   9444 		t.Errorf("-2147483648 %s 1 = %d, want -1073741824", ">>", r)
   9445 	}
   9446 	y = 255
   9447 	r = x >> y
   9448 	if r != -1 {
   9449 		t.Errorf("-2147483648 %s 255 = %d, want -1", ">>", r)
   9450 	}
   9451 	x = -2147483647
   9452 	y = 0
   9453 	r = x >> y
   9454 	if r != -2147483647 {
   9455 		t.Errorf("-2147483647 %s 0 = %d, want -2147483647", ">>", r)
   9456 	}
   9457 	y = 1
   9458 	r = x >> y
   9459 	if r != -1073741824 {
   9460 		t.Errorf("-2147483647 %s 1 = %d, want -1073741824", ">>", r)
   9461 	}
   9462 	y = 255
   9463 	r = x >> y
   9464 	if r != -1 {
   9465 		t.Errorf("-2147483647 %s 255 = %d, want -1", ">>", r)
   9466 	}
   9467 	x = -1
   9468 	y = 0
   9469 	r = x >> y
   9470 	if r != -1 {
   9471 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   9472 	}
   9473 	y = 1
   9474 	r = x >> y
   9475 	if r != -1 {
   9476 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   9477 	}
   9478 	y = 255
   9479 	r = x >> y
   9480 	if r != -1 {
   9481 		t.Errorf("-1 %s 255 = %d, want -1", ">>", r)
   9482 	}
   9483 	x = 0
   9484 	y = 0
   9485 	r = x >> y
   9486 	if r != 0 {
   9487 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   9488 	}
   9489 	y = 1
   9490 	r = x >> y
   9491 	if r != 0 {
   9492 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   9493 	}
   9494 	y = 255
   9495 	r = x >> y
   9496 	if r != 0 {
   9497 		t.Errorf("0 %s 255 = %d, want 0", ">>", r)
   9498 	}
   9499 	x = 1
   9500 	y = 0
   9501 	r = x >> y
   9502 	if r != 1 {
   9503 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   9504 	}
   9505 	y = 1
   9506 	r = x >> y
   9507 	if r != 0 {
   9508 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   9509 	}
   9510 	y = 255
   9511 	r = x >> y
   9512 	if r != 0 {
   9513 		t.Errorf("1 %s 255 = %d, want 0", ">>", r)
   9514 	}
   9515 	x = 2147483647
   9516 	y = 0
   9517 	r = x >> y
   9518 	if r != 2147483647 {
   9519 		t.Errorf("2147483647 %s 0 = %d, want 2147483647", ">>", r)
   9520 	}
   9521 	y = 1
   9522 	r = x >> y
   9523 	if r != 1073741823 {
   9524 		t.Errorf("2147483647 %s 1 = %d, want 1073741823", ">>", r)
   9525 	}
   9526 	y = 255
   9527 	r = x >> y
   9528 	if r != 0 {
   9529 		t.Errorf("2147483647 %s 255 = %d, want 0", ">>", r)
   9530 	}
   9531 }
   9532 func TestConstFolduint16uint64lsh(t *testing.T) {
   9533 	var x, r uint16
   9534 	var y uint64
   9535 	x = 0
   9536 	y = 0
   9537 	r = x << y
   9538 	if r != 0 {
   9539 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   9540 	}
   9541 	y = 1
   9542 	r = x << y
   9543 	if r != 0 {
   9544 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   9545 	}
   9546 	y = 4294967296
   9547 	r = x << y
   9548 	if r != 0 {
   9549 		t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r)
   9550 	}
   9551 	y = 18446744073709551615
   9552 	r = x << y
   9553 	if r != 0 {
   9554 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r)
   9555 	}
   9556 	x = 1
   9557 	y = 0
   9558 	r = x << y
   9559 	if r != 1 {
   9560 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   9561 	}
   9562 	y = 1
   9563 	r = x << y
   9564 	if r != 2 {
   9565 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   9566 	}
   9567 	y = 4294967296
   9568 	r = x << y
   9569 	if r != 0 {
   9570 		t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r)
   9571 	}
   9572 	y = 18446744073709551615
   9573 	r = x << y
   9574 	if r != 0 {
   9575 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r)
   9576 	}
   9577 	x = 65535
   9578 	y = 0
   9579 	r = x << y
   9580 	if r != 65535 {
   9581 		t.Errorf("65535 %s 0 = %d, want 65535", "<<", r)
   9582 	}
   9583 	y = 1
   9584 	r = x << y
   9585 	if r != 65534 {
   9586 		t.Errorf("65535 %s 1 = %d, want 65534", "<<", r)
   9587 	}
   9588 	y = 4294967296
   9589 	r = x << y
   9590 	if r != 0 {
   9591 		t.Errorf("65535 %s 4294967296 = %d, want 0", "<<", r)
   9592 	}
   9593 	y = 18446744073709551615
   9594 	r = x << y
   9595 	if r != 0 {
   9596 		t.Errorf("65535 %s 18446744073709551615 = %d, want 0", "<<", r)
   9597 	}
   9598 }
   9599 func TestConstFolduint16uint64rsh(t *testing.T) {
   9600 	var x, r uint16
   9601 	var y uint64
   9602 	x = 0
   9603 	y = 0
   9604 	r = x >> y
   9605 	if r != 0 {
   9606 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   9607 	}
   9608 	y = 1
   9609 	r = x >> y
   9610 	if r != 0 {
   9611 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   9612 	}
   9613 	y = 4294967296
   9614 	r = x >> y
   9615 	if r != 0 {
   9616 		t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r)
   9617 	}
   9618 	y = 18446744073709551615
   9619 	r = x >> y
   9620 	if r != 0 {
   9621 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r)
   9622 	}
   9623 	x = 1
   9624 	y = 0
   9625 	r = x >> y
   9626 	if r != 1 {
   9627 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   9628 	}
   9629 	y = 1
   9630 	r = x >> y
   9631 	if r != 0 {
   9632 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   9633 	}
   9634 	y = 4294967296
   9635 	r = x >> y
   9636 	if r != 0 {
   9637 		t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r)
   9638 	}
   9639 	y = 18446744073709551615
   9640 	r = x >> y
   9641 	if r != 0 {
   9642 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r)
   9643 	}
   9644 	x = 65535
   9645 	y = 0
   9646 	r = x >> y
   9647 	if r != 65535 {
   9648 		t.Errorf("65535 %s 0 = %d, want 65535", ">>", r)
   9649 	}
   9650 	y = 1
   9651 	r = x >> y
   9652 	if r != 32767 {
   9653 		t.Errorf("65535 %s 1 = %d, want 32767", ">>", r)
   9654 	}
   9655 	y = 4294967296
   9656 	r = x >> y
   9657 	if r != 0 {
   9658 		t.Errorf("65535 %s 4294967296 = %d, want 0", ">>", r)
   9659 	}
   9660 	y = 18446744073709551615
   9661 	r = x >> y
   9662 	if r != 0 {
   9663 		t.Errorf("65535 %s 18446744073709551615 = %d, want 0", ">>", r)
   9664 	}
   9665 }
   9666 func TestConstFolduint16uint32lsh(t *testing.T) {
   9667 	var x, r uint16
   9668 	var y uint32
   9669 	x = 0
   9670 	y = 0
   9671 	r = x << y
   9672 	if r != 0 {
   9673 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   9674 	}
   9675 	y = 1
   9676 	r = x << y
   9677 	if r != 0 {
   9678 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   9679 	}
   9680 	y = 4294967295
   9681 	r = x << y
   9682 	if r != 0 {
   9683 		t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r)
   9684 	}
   9685 	x = 1
   9686 	y = 0
   9687 	r = x << y
   9688 	if r != 1 {
   9689 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   9690 	}
   9691 	y = 1
   9692 	r = x << y
   9693 	if r != 2 {
   9694 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   9695 	}
   9696 	y = 4294967295
   9697 	r = x << y
   9698 	if r != 0 {
   9699 		t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r)
   9700 	}
   9701 	x = 65535
   9702 	y = 0
   9703 	r = x << y
   9704 	if r != 65535 {
   9705 		t.Errorf("65535 %s 0 = %d, want 65535", "<<", r)
   9706 	}
   9707 	y = 1
   9708 	r = x << y
   9709 	if r != 65534 {
   9710 		t.Errorf("65535 %s 1 = %d, want 65534", "<<", r)
   9711 	}
   9712 	y = 4294967295
   9713 	r = x << y
   9714 	if r != 0 {
   9715 		t.Errorf("65535 %s 4294967295 = %d, want 0", "<<", r)
   9716 	}
   9717 }
   9718 func TestConstFolduint16uint32rsh(t *testing.T) {
   9719 	var x, r uint16
   9720 	var y uint32
   9721 	x = 0
   9722 	y = 0
   9723 	r = x >> y
   9724 	if r != 0 {
   9725 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   9726 	}
   9727 	y = 1
   9728 	r = x >> y
   9729 	if r != 0 {
   9730 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   9731 	}
   9732 	y = 4294967295
   9733 	r = x >> y
   9734 	if r != 0 {
   9735 		t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r)
   9736 	}
   9737 	x = 1
   9738 	y = 0
   9739 	r = x >> y
   9740 	if r != 1 {
   9741 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   9742 	}
   9743 	y = 1
   9744 	r = x >> y
   9745 	if r != 0 {
   9746 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   9747 	}
   9748 	y = 4294967295
   9749 	r = x >> y
   9750 	if r != 0 {
   9751 		t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r)
   9752 	}
   9753 	x = 65535
   9754 	y = 0
   9755 	r = x >> y
   9756 	if r != 65535 {
   9757 		t.Errorf("65535 %s 0 = %d, want 65535", ">>", r)
   9758 	}
   9759 	y = 1
   9760 	r = x >> y
   9761 	if r != 32767 {
   9762 		t.Errorf("65535 %s 1 = %d, want 32767", ">>", r)
   9763 	}
   9764 	y = 4294967295
   9765 	r = x >> y
   9766 	if r != 0 {
   9767 		t.Errorf("65535 %s 4294967295 = %d, want 0", ">>", r)
   9768 	}
   9769 }
   9770 func TestConstFolduint16uint16lsh(t *testing.T) {
   9771 	var x, r uint16
   9772 	var y uint16
   9773 	x = 0
   9774 	y = 0
   9775 	r = x << y
   9776 	if r != 0 {
   9777 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   9778 	}
   9779 	y = 1
   9780 	r = x << y
   9781 	if r != 0 {
   9782 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   9783 	}
   9784 	y = 65535
   9785 	r = x << y
   9786 	if r != 0 {
   9787 		t.Errorf("0 %s 65535 = %d, want 0", "<<", r)
   9788 	}
   9789 	x = 1
   9790 	y = 0
   9791 	r = x << y
   9792 	if r != 1 {
   9793 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   9794 	}
   9795 	y = 1
   9796 	r = x << y
   9797 	if r != 2 {
   9798 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   9799 	}
   9800 	y = 65535
   9801 	r = x << y
   9802 	if r != 0 {
   9803 		t.Errorf("1 %s 65535 = %d, want 0", "<<", r)
   9804 	}
   9805 	x = 65535
   9806 	y = 0
   9807 	r = x << y
   9808 	if r != 65535 {
   9809 		t.Errorf("65535 %s 0 = %d, want 65535", "<<", r)
   9810 	}
   9811 	y = 1
   9812 	r = x << y
   9813 	if r != 65534 {
   9814 		t.Errorf("65535 %s 1 = %d, want 65534", "<<", r)
   9815 	}
   9816 	y = 65535
   9817 	r = x << y
   9818 	if r != 0 {
   9819 		t.Errorf("65535 %s 65535 = %d, want 0", "<<", r)
   9820 	}
   9821 }
   9822 func TestConstFolduint16uint16rsh(t *testing.T) {
   9823 	var x, r uint16
   9824 	var y uint16
   9825 	x = 0
   9826 	y = 0
   9827 	r = x >> y
   9828 	if r != 0 {
   9829 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   9830 	}
   9831 	y = 1
   9832 	r = x >> y
   9833 	if r != 0 {
   9834 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   9835 	}
   9836 	y = 65535
   9837 	r = x >> y
   9838 	if r != 0 {
   9839 		t.Errorf("0 %s 65535 = %d, want 0", ">>", r)
   9840 	}
   9841 	x = 1
   9842 	y = 0
   9843 	r = x >> y
   9844 	if r != 1 {
   9845 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   9846 	}
   9847 	y = 1
   9848 	r = x >> y
   9849 	if r != 0 {
   9850 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   9851 	}
   9852 	y = 65535
   9853 	r = x >> y
   9854 	if r != 0 {
   9855 		t.Errorf("1 %s 65535 = %d, want 0", ">>", r)
   9856 	}
   9857 	x = 65535
   9858 	y = 0
   9859 	r = x >> y
   9860 	if r != 65535 {
   9861 		t.Errorf("65535 %s 0 = %d, want 65535", ">>", r)
   9862 	}
   9863 	y = 1
   9864 	r = x >> y
   9865 	if r != 32767 {
   9866 		t.Errorf("65535 %s 1 = %d, want 32767", ">>", r)
   9867 	}
   9868 	y = 65535
   9869 	r = x >> y
   9870 	if r != 0 {
   9871 		t.Errorf("65535 %s 65535 = %d, want 0", ">>", r)
   9872 	}
   9873 }
   9874 func TestConstFolduint16uint8lsh(t *testing.T) {
   9875 	var x, r uint16
   9876 	var y uint8
   9877 	x = 0
   9878 	y = 0
   9879 	r = x << y
   9880 	if r != 0 {
   9881 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   9882 	}
   9883 	y = 1
   9884 	r = x << y
   9885 	if r != 0 {
   9886 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   9887 	}
   9888 	y = 255
   9889 	r = x << y
   9890 	if r != 0 {
   9891 		t.Errorf("0 %s 255 = %d, want 0", "<<", r)
   9892 	}
   9893 	x = 1
   9894 	y = 0
   9895 	r = x << y
   9896 	if r != 1 {
   9897 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   9898 	}
   9899 	y = 1
   9900 	r = x << y
   9901 	if r != 2 {
   9902 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   9903 	}
   9904 	y = 255
   9905 	r = x << y
   9906 	if r != 0 {
   9907 		t.Errorf("1 %s 255 = %d, want 0", "<<", r)
   9908 	}
   9909 	x = 65535
   9910 	y = 0
   9911 	r = x << y
   9912 	if r != 65535 {
   9913 		t.Errorf("65535 %s 0 = %d, want 65535", "<<", r)
   9914 	}
   9915 	y = 1
   9916 	r = x << y
   9917 	if r != 65534 {
   9918 		t.Errorf("65535 %s 1 = %d, want 65534", "<<", r)
   9919 	}
   9920 	y = 255
   9921 	r = x << y
   9922 	if r != 0 {
   9923 		t.Errorf("65535 %s 255 = %d, want 0", "<<", r)
   9924 	}
   9925 }
   9926 func TestConstFolduint16uint8rsh(t *testing.T) {
   9927 	var x, r uint16
   9928 	var y uint8
   9929 	x = 0
   9930 	y = 0
   9931 	r = x >> y
   9932 	if r != 0 {
   9933 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   9934 	}
   9935 	y = 1
   9936 	r = x >> y
   9937 	if r != 0 {
   9938 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   9939 	}
   9940 	y = 255
   9941 	r = x >> y
   9942 	if r != 0 {
   9943 		t.Errorf("0 %s 255 = %d, want 0", ">>", r)
   9944 	}
   9945 	x = 1
   9946 	y = 0
   9947 	r = x >> y
   9948 	if r != 1 {
   9949 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   9950 	}
   9951 	y = 1
   9952 	r = x >> y
   9953 	if r != 0 {
   9954 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   9955 	}
   9956 	y = 255
   9957 	r = x >> y
   9958 	if r != 0 {
   9959 		t.Errorf("1 %s 255 = %d, want 0", ">>", r)
   9960 	}
   9961 	x = 65535
   9962 	y = 0
   9963 	r = x >> y
   9964 	if r != 65535 {
   9965 		t.Errorf("65535 %s 0 = %d, want 65535", ">>", r)
   9966 	}
   9967 	y = 1
   9968 	r = x >> y
   9969 	if r != 32767 {
   9970 		t.Errorf("65535 %s 1 = %d, want 32767", ">>", r)
   9971 	}
   9972 	y = 255
   9973 	r = x >> y
   9974 	if r != 0 {
   9975 		t.Errorf("65535 %s 255 = %d, want 0", ">>", r)
   9976 	}
   9977 }
   9978 func TestConstFoldint16uint64lsh(t *testing.T) {
   9979 	var x, r int16
   9980 	var y uint64
   9981 	x = -32768
   9982 	y = 0
   9983 	r = x << y
   9984 	if r != -32768 {
   9985 		t.Errorf("-32768 %s 0 = %d, want -32768", "<<", r)
   9986 	}
   9987 	y = 1
   9988 	r = x << y
   9989 	if r != 0 {
   9990 		t.Errorf("-32768 %s 1 = %d, want 0", "<<", r)
   9991 	}
   9992 	y = 4294967296
   9993 	r = x << y
   9994 	if r != 0 {
   9995 		t.Errorf("-32768 %s 4294967296 = %d, want 0", "<<", r)
   9996 	}
   9997 	y = 18446744073709551615
   9998 	r = x << y
   9999 	if r != 0 {
   10000 		t.Errorf("-32768 %s 18446744073709551615 = %d, want 0", "<<", r)
   10001 	}
   10002 	x = -32767
   10003 	y = 0
   10004 	r = x << y
   10005 	if r != -32767 {
   10006 		t.Errorf("-32767 %s 0 = %d, want -32767", "<<", r)
   10007 	}
   10008 	y = 1
   10009 	r = x << y
   10010 	if r != 2 {
   10011 		t.Errorf("-32767 %s 1 = %d, want 2", "<<", r)
   10012 	}
   10013 	y = 4294967296
   10014 	r = x << y
   10015 	if r != 0 {
   10016 		t.Errorf("-32767 %s 4294967296 = %d, want 0", "<<", r)
   10017 	}
   10018 	y = 18446744073709551615
   10019 	r = x << y
   10020 	if r != 0 {
   10021 		t.Errorf("-32767 %s 18446744073709551615 = %d, want 0", "<<", r)
   10022 	}
   10023 	x = -1
   10024 	y = 0
   10025 	r = x << y
   10026 	if r != -1 {
   10027 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   10028 	}
   10029 	y = 1
   10030 	r = x << y
   10031 	if r != -2 {
   10032 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   10033 	}
   10034 	y = 4294967296
   10035 	r = x << y
   10036 	if r != 0 {
   10037 		t.Errorf("-1 %s 4294967296 = %d, want 0", "<<", r)
   10038 	}
   10039 	y = 18446744073709551615
   10040 	r = x << y
   10041 	if r != 0 {
   10042 		t.Errorf("-1 %s 18446744073709551615 = %d, want 0", "<<", r)
   10043 	}
   10044 	x = 0
   10045 	y = 0
   10046 	r = x << y
   10047 	if r != 0 {
   10048 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   10049 	}
   10050 	y = 1
   10051 	r = x << y
   10052 	if r != 0 {
   10053 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   10054 	}
   10055 	y = 4294967296
   10056 	r = x << y
   10057 	if r != 0 {
   10058 		t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r)
   10059 	}
   10060 	y = 18446744073709551615
   10061 	r = x << y
   10062 	if r != 0 {
   10063 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r)
   10064 	}
   10065 	x = 1
   10066 	y = 0
   10067 	r = x << y
   10068 	if r != 1 {
   10069 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   10070 	}
   10071 	y = 1
   10072 	r = x << y
   10073 	if r != 2 {
   10074 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   10075 	}
   10076 	y = 4294967296
   10077 	r = x << y
   10078 	if r != 0 {
   10079 		t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r)
   10080 	}
   10081 	y = 18446744073709551615
   10082 	r = x << y
   10083 	if r != 0 {
   10084 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r)
   10085 	}
   10086 	x = 32766
   10087 	y = 0
   10088 	r = x << y
   10089 	if r != 32766 {
   10090 		t.Errorf("32766 %s 0 = %d, want 32766", "<<", r)
   10091 	}
   10092 	y = 1
   10093 	r = x << y
   10094 	if r != -4 {
   10095 		t.Errorf("32766 %s 1 = %d, want -4", "<<", r)
   10096 	}
   10097 	y = 4294967296
   10098 	r = x << y
   10099 	if r != 0 {
   10100 		t.Errorf("32766 %s 4294967296 = %d, want 0", "<<", r)
   10101 	}
   10102 	y = 18446744073709551615
   10103 	r = x << y
   10104 	if r != 0 {
   10105 		t.Errorf("32766 %s 18446744073709551615 = %d, want 0", "<<", r)
   10106 	}
   10107 	x = 32767
   10108 	y = 0
   10109 	r = x << y
   10110 	if r != 32767 {
   10111 		t.Errorf("32767 %s 0 = %d, want 32767", "<<", r)
   10112 	}
   10113 	y = 1
   10114 	r = x << y
   10115 	if r != -2 {
   10116 		t.Errorf("32767 %s 1 = %d, want -2", "<<", r)
   10117 	}
   10118 	y = 4294967296
   10119 	r = x << y
   10120 	if r != 0 {
   10121 		t.Errorf("32767 %s 4294967296 = %d, want 0", "<<", r)
   10122 	}
   10123 	y = 18446744073709551615
   10124 	r = x << y
   10125 	if r != 0 {
   10126 		t.Errorf("32767 %s 18446744073709551615 = %d, want 0", "<<", r)
   10127 	}
   10128 }
   10129 func TestConstFoldint16uint64rsh(t *testing.T) {
   10130 	var x, r int16
   10131 	var y uint64
   10132 	x = -32768
   10133 	y = 0
   10134 	r = x >> y
   10135 	if r != -32768 {
   10136 		t.Errorf("-32768 %s 0 = %d, want -32768", ">>", r)
   10137 	}
   10138 	y = 1
   10139 	r = x >> y
   10140 	if r != -16384 {
   10141 		t.Errorf("-32768 %s 1 = %d, want -16384", ">>", r)
   10142 	}
   10143 	y = 4294967296
   10144 	r = x >> y
   10145 	if r != -1 {
   10146 		t.Errorf("-32768 %s 4294967296 = %d, want -1", ">>", r)
   10147 	}
   10148 	y = 18446744073709551615
   10149 	r = x >> y
   10150 	if r != -1 {
   10151 		t.Errorf("-32768 %s 18446744073709551615 = %d, want -1", ">>", r)
   10152 	}
   10153 	x = -32767
   10154 	y = 0
   10155 	r = x >> y
   10156 	if r != -32767 {
   10157 		t.Errorf("-32767 %s 0 = %d, want -32767", ">>", r)
   10158 	}
   10159 	y = 1
   10160 	r = x >> y
   10161 	if r != -16384 {
   10162 		t.Errorf("-32767 %s 1 = %d, want -16384", ">>", r)
   10163 	}
   10164 	y = 4294967296
   10165 	r = x >> y
   10166 	if r != -1 {
   10167 		t.Errorf("-32767 %s 4294967296 = %d, want -1", ">>", r)
   10168 	}
   10169 	y = 18446744073709551615
   10170 	r = x >> y
   10171 	if r != -1 {
   10172 		t.Errorf("-32767 %s 18446744073709551615 = %d, want -1", ">>", r)
   10173 	}
   10174 	x = -1
   10175 	y = 0
   10176 	r = x >> y
   10177 	if r != -1 {
   10178 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   10179 	}
   10180 	y = 1
   10181 	r = x >> y
   10182 	if r != -1 {
   10183 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   10184 	}
   10185 	y = 4294967296
   10186 	r = x >> y
   10187 	if r != -1 {
   10188 		t.Errorf("-1 %s 4294967296 = %d, want -1", ">>", r)
   10189 	}
   10190 	y = 18446744073709551615
   10191 	r = x >> y
   10192 	if r != -1 {
   10193 		t.Errorf("-1 %s 18446744073709551615 = %d, want -1", ">>", r)
   10194 	}
   10195 	x = 0
   10196 	y = 0
   10197 	r = x >> y
   10198 	if r != 0 {
   10199 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   10200 	}
   10201 	y = 1
   10202 	r = x >> y
   10203 	if r != 0 {
   10204 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   10205 	}
   10206 	y = 4294967296
   10207 	r = x >> y
   10208 	if r != 0 {
   10209 		t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r)
   10210 	}
   10211 	y = 18446744073709551615
   10212 	r = x >> y
   10213 	if r != 0 {
   10214 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r)
   10215 	}
   10216 	x = 1
   10217 	y = 0
   10218 	r = x >> y
   10219 	if r != 1 {
   10220 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   10221 	}
   10222 	y = 1
   10223 	r = x >> y
   10224 	if r != 0 {
   10225 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   10226 	}
   10227 	y = 4294967296
   10228 	r = x >> y
   10229 	if r != 0 {
   10230 		t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r)
   10231 	}
   10232 	y = 18446744073709551615
   10233 	r = x >> y
   10234 	if r != 0 {
   10235 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r)
   10236 	}
   10237 	x = 32766
   10238 	y = 0
   10239 	r = x >> y
   10240 	if r != 32766 {
   10241 		t.Errorf("32766 %s 0 = %d, want 32766", ">>", r)
   10242 	}
   10243 	y = 1
   10244 	r = x >> y
   10245 	if r != 16383 {
   10246 		t.Errorf("32766 %s 1 = %d, want 16383", ">>", r)
   10247 	}
   10248 	y = 4294967296
   10249 	r = x >> y
   10250 	if r != 0 {
   10251 		t.Errorf("32766 %s 4294967296 = %d, want 0", ">>", r)
   10252 	}
   10253 	y = 18446744073709551615
   10254 	r = x >> y
   10255 	if r != 0 {
   10256 		t.Errorf("32766 %s 18446744073709551615 = %d, want 0", ">>", r)
   10257 	}
   10258 	x = 32767
   10259 	y = 0
   10260 	r = x >> y
   10261 	if r != 32767 {
   10262 		t.Errorf("32767 %s 0 = %d, want 32767", ">>", r)
   10263 	}
   10264 	y = 1
   10265 	r = x >> y
   10266 	if r != 16383 {
   10267 		t.Errorf("32767 %s 1 = %d, want 16383", ">>", r)
   10268 	}
   10269 	y = 4294967296
   10270 	r = x >> y
   10271 	if r != 0 {
   10272 		t.Errorf("32767 %s 4294967296 = %d, want 0", ">>", r)
   10273 	}
   10274 	y = 18446744073709551615
   10275 	r = x >> y
   10276 	if r != 0 {
   10277 		t.Errorf("32767 %s 18446744073709551615 = %d, want 0", ">>", r)
   10278 	}
   10279 }
   10280 func TestConstFoldint16uint32lsh(t *testing.T) {
   10281 	var x, r int16
   10282 	var y uint32
   10283 	x = -32768
   10284 	y = 0
   10285 	r = x << y
   10286 	if r != -32768 {
   10287 		t.Errorf("-32768 %s 0 = %d, want -32768", "<<", r)
   10288 	}
   10289 	y = 1
   10290 	r = x << y
   10291 	if r != 0 {
   10292 		t.Errorf("-32768 %s 1 = %d, want 0", "<<", r)
   10293 	}
   10294 	y = 4294967295
   10295 	r = x << y
   10296 	if r != 0 {
   10297 		t.Errorf("-32768 %s 4294967295 = %d, want 0", "<<", r)
   10298 	}
   10299 	x = -32767
   10300 	y = 0
   10301 	r = x << y
   10302 	if r != -32767 {
   10303 		t.Errorf("-32767 %s 0 = %d, want -32767", "<<", r)
   10304 	}
   10305 	y = 1
   10306 	r = x << y
   10307 	if r != 2 {
   10308 		t.Errorf("-32767 %s 1 = %d, want 2", "<<", r)
   10309 	}
   10310 	y = 4294967295
   10311 	r = x << y
   10312 	if r != 0 {
   10313 		t.Errorf("-32767 %s 4294967295 = %d, want 0", "<<", r)
   10314 	}
   10315 	x = -1
   10316 	y = 0
   10317 	r = x << y
   10318 	if r != -1 {
   10319 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   10320 	}
   10321 	y = 1
   10322 	r = x << y
   10323 	if r != -2 {
   10324 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   10325 	}
   10326 	y = 4294967295
   10327 	r = x << y
   10328 	if r != 0 {
   10329 		t.Errorf("-1 %s 4294967295 = %d, want 0", "<<", r)
   10330 	}
   10331 	x = 0
   10332 	y = 0
   10333 	r = x << y
   10334 	if r != 0 {
   10335 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   10336 	}
   10337 	y = 1
   10338 	r = x << y
   10339 	if r != 0 {
   10340 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   10341 	}
   10342 	y = 4294967295
   10343 	r = x << y
   10344 	if r != 0 {
   10345 		t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r)
   10346 	}
   10347 	x = 1
   10348 	y = 0
   10349 	r = x << y
   10350 	if r != 1 {
   10351 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   10352 	}
   10353 	y = 1
   10354 	r = x << y
   10355 	if r != 2 {
   10356 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   10357 	}
   10358 	y = 4294967295
   10359 	r = x << y
   10360 	if r != 0 {
   10361 		t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r)
   10362 	}
   10363 	x = 32766
   10364 	y = 0
   10365 	r = x << y
   10366 	if r != 32766 {
   10367 		t.Errorf("32766 %s 0 = %d, want 32766", "<<", r)
   10368 	}
   10369 	y = 1
   10370 	r = x << y
   10371 	if r != -4 {
   10372 		t.Errorf("32766 %s 1 = %d, want -4", "<<", r)
   10373 	}
   10374 	y = 4294967295
   10375 	r = x << y
   10376 	if r != 0 {
   10377 		t.Errorf("32766 %s 4294967295 = %d, want 0", "<<", r)
   10378 	}
   10379 	x = 32767
   10380 	y = 0
   10381 	r = x << y
   10382 	if r != 32767 {
   10383 		t.Errorf("32767 %s 0 = %d, want 32767", "<<", r)
   10384 	}
   10385 	y = 1
   10386 	r = x << y
   10387 	if r != -2 {
   10388 		t.Errorf("32767 %s 1 = %d, want -2", "<<", r)
   10389 	}
   10390 	y = 4294967295
   10391 	r = x << y
   10392 	if r != 0 {
   10393 		t.Errorf("32767 %s 4294967295 = %d, want 0", "<<", r)
   10394 	}
   10395 }
   10396 func TestConstFoldint16uint32rsh(t *testing.T) {
   10397 	var x, r int16
   10398 	var y uint32
   10399 	x = -32768
   10400 	y = 0
   10401 	r = x >> y
   10402 	if r != -32768 {
   10403 		t.Errorf("-32768 %s 0 = %d, want -32768", ">>", r)
   10404 	}
   10405 	y = 1
   10406 	r = x >> y
   10407 	if r != -16384 {
   10408 		t.Errorf("-32768 %s 1 = %d, want -16384", ">>", r)
   10409 	}
   10410 	y = 4294967295
   10411 	r = x >> y
   10412 	if r != -1 {
   10413 		t.Errorf("-32768 %s 4294967295 = %d, want -1", ">>", r)
   10414 	}
   10415 	x = -32767
   10416 	y = 0
   10417 	r = x >> y
   10418 	if r != -32767 {
   10419 		t.Errorf("-32767 %s 0 = %d, want -32767", ">>", r)
   10420 	}
   10421 	y = 1
   10422 	r = x >> y
   10423 	if r != -16384 {
   10424 		t.Errorf("-32767 %s 1 = %d, want -16384", ">>", r)
   10425 	}
   10426 	y = 4294967295
   10427 	r = x >> y
   10428 	if r != -1 {
   10429 		t.Errorf("-32767 %s 4294967295 = %d, want -1", ">>", r)
   10430 	}
   10431 	x = -1
   10432 	y = 0
   10433 	r = x >> y
   10434 	if r != -1 {
   10435 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   10436 	}
   10437 	y = 1
   10438 	r = x >> y
   10439 	if r != -1 {
   10440 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   10441 	}
   10442 	y = 4294967295
   10443 	r = x >> y
   10444 	if r != -1 {
   10445 		t.Errorf("-1 %s 4294967295 = %d, want -1", ">>", r)
   10446 	}
   10447 	x = 0
   10448 	y = 0
   10449 	r = x >> y
   10450 	if r != 0 {
   10451 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   10452 	}
   10453 	y = 1
   10454 	r = x >> y
   10455 	if r != 0 {
   10456 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   10457 	}
   10458 	y = 4294967295
   10459 	r = x >> y
   10460 	if r != 0 {
   10461 		t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r)
   10462 	}
   10463 	x = 1
   10464 	y = 0
   10465 	r = x >> y
   10466 	if r != 1 {
   10467 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   10468 	}
   10469 	y = 1
   10470 	r = x >> y
   10471 	if r != 0 {
   10472 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   10473 	}
   10474 	y = 4294967295
   10475 	r = x >> y
   10476 	if r != 0 {
   10477 		t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r)
   10478 	}
   10479 	x = 32766
   10480 	y = 0
   10481 	r = x >> y
   10482 	if r != 32766 {
   10483 		t.Errorf("32766 %s 0 = %d, want 32766", ">>", r)
   10484 	}
   10485 	y = 1
   10486 	r = x >> y
   10487 	if r != 16383 {
   10488 		t.Errorf("32766 %s 1 = %d, want 16383", ">>", r)
   10489 	}
   10490 	y = 4294967295
   10491 	r = x >> y
   10492 	if r != 0 {
   10493 		t.Errorf("32766 %s 4294967295 = %d, want 0", ">>", r)
   10494 	}
   10495 	x = 32767
   10496 	y = 0
   10497 	r = x >> y
   10498 	if r != 32767 {
   10499 		t.Errorf("32767 %s 0 = %d, want 32767", ">>", r)
   10500 	}
   10501 	y = 1
   10502 	r = x >> y
   10503 	if r != 16383 {
   10504 		t.Errorf("32767 %s 1 = %d, want 16383", ">>", r)
   10505 	}
   10506 	y = 4294967295
   10507 	r = x >> y
   10508 	if r != 0 {
   10509 		t.Errorf("32767 %s 4294967295 = %d, want 0", ">>", r)
   10510 	}
   10511 }
   10512 func TestConstFoldint16uint16lsh(t *testing.T) {
   10513 	var x, r int16
   10514 	var y uint16
   10515 	x = -32768
   10516 	y = 0
   10517 	r = x << y
   10518 	if r != -32768 {
   10519 		t.Errorf("-32768 %s 0 = %d, want -32768", "<<", r)
   10520 	}
   10521 	y = 1
   10522 	r = x << y
   10523 	if r != 0 {
   10524 		t.Errorf("-32768 %s 1 = %d, want 0", "<<", r)
   10525 	}
   10526 	y = 65535
   10527 	r = x << y
   10528 	if r != 0 {
   10529 		t.Errorf("-32768 %s 65535 = %d, want 0", "<<", r)
   10530 	}
   10531 	x = -32767
   10532 	y = 0
   10533 	r = x << y
   10534 	if r != -32767 {
   10535 		t.Errorf("-32767 %s 0 = %d, want -32767", "<<", r)
   10536 	}
   10537 	y = 1
   10538 	r = x << y
   10539 	if r != 2 {
   10540 		t.Errorf("-32767 %s 1 = %d, want 2", "<<", r)
   10541 	}
   10542 	y = 65535
   10543 	r = x << y
   10544 	if r != 0 {
   10545 		t.Errorf("-32767 %s 65535 = %d, want 0", "<<", r)
   10546 	}
   10547 	x = -1
   10548 	y = 0
   10549 	r = x << y
   10550 	if r != -1 {
   10551 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   10552 	}
   10553 	y = 1
   10554 	r = x << y
   10555 	if r != -2 {
   10556 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   10557 	}
   10558 	y = 65535
   10559 	r = x << y
   10560 	if r != 0 {
   10561 		t.Errorf("-1 %s 65535 = %d, want 0", "<<", r)
   10562 	}
   10563 	x = 0
   10564 	y = 0
   10565 	r = x << y
   10566 	if r != 0 {
   10567 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   10568 	}
   10569 	y = 1
   10570 	r = x << y
   10571 	if r != 0 {
   10572 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   10573 	}
   10574 	y = 65535
   10575 	r = x << y
   10576 	if r != 0 {
   10577 		t.Errorf("0 %s 65535 = %d, want 0", "<<", r)
   10578 	}
   10579 	x = 1
   10580 	y = 0
   10581 	r = x << y
   10582 	if r != 1 {
   10583 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   10584 	}
   10585 	y = 1
   10586 	r = x << y
   10587 	if r != 2 {
   10588 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   10589 	}
   10590 	y = 65535
   10591 	r = x << y
   10592 	if r != 0 {
   10593 		t.Errorf("1 %s 65535 = %d, want 0", "<<", r)
   10594 	}
   10595 	x = 32766
   10596 	y = 0
   10597 	r = x << y
   10598 	if r != 32766 {
   10599 		t.Errorf("32766 %s 0 = %d, want 32766", "<<", r)
   10600 	}
   10601 	y = 1
   10602 	r = x << y
   10603 	if r != -4 {
   10604 		t.Errorf("32766 %s 1 = %d, want -4", "<<", r)
   10605 	}
   10606 	y = 65535
   10607 	r = x << y
   10608 	if r != 0 {
   10609 		t.Errorf("32766 %s 65535 = %d, want 0", "<<", r)
   10610 	}
   10611 	x = 32767
   10612 	y = 0
   10613 	r = x << y
   10614 	if r != 32767 {
   10615 		t.Errorf("32767 %s 0 = %d, want 32767", "<<", r)
   10616 	}
   10617 	y = 1
   10618 	r = x << y
   10619 	if r != -2 {
   10620 		t.Errorf("32767 %s 1 = %d, want -2", "<<", r)
   10621 	}
   10622 	y = 65535
   10623 	r = x << y
   10624 	if r != 0 {
   10625 		t.Errorf("32767 %s 65535 = %d, want 0", "<<", r)
   10626 	}
   10627 }
   10628 func TestConstFoldint16uint16rsh(t *testing.T) {
   10629 	var x, r int16
   10630 	var y uint16
   10631 	x = -32768
   10632 	y = 0
   10633 	r = x >> y
   10634 	if r != -32768 {
   10635 		t.Errorf("-32768 %s 0 = %d, want -32768", ">>", r)
   10636 	}
   10637 	y = 1
   10638 	r = x >> y
   10639 	if r != -16384 {
   10640 		t.Errorf("-32768 %s 1 = %d, want -16384", ">>", r)
   10641 	}
   10642 	y = 65535
   10643 	r = x >> y
   10644 	if r != -1 {
   10645 		t.Errorf("-32768 %s 65535 = %d, want -1", ">>", r)
   10646 	}
   10647 	x = -32767
   10648 	y = 0
   10649 	r = x >> y
   10650 	if r != -32767 {
   10651 		t.Errorf("-32767 %s 0 = %d, want -32767", ">>", r)
   10652 	}
   10653 	y = 1
   10654 	r = x >> y
   10655 	if r != -16384 {
   10656 		t.Errorf("-32767 %s 1 = %d, want -16384", ">>", r)
   10657 	}
   10658 	y = 65535
   10659 	r = x >> y
   10660 	if r != -1 {
   10661 		t.Errorf("-32767 %s 65535 = %d, want -1", ">>", r)
   10662 	}
   10663 	x = -1
   10664 	y = 0
   10665 	r = x >> y
   10666 	if r != -1 {
   10667 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   10668 	}
   10669 	y = 1
   10670 	r = x >> y
   10671 	if r != -1 {
   10672 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   10673 	}
   10674 	y = 65535
   10675 	r = x >> y
   10676 	if r != -1 {
   10677 		t.Errorf("-1 %s 65535 = %d, want -1", ">>", r)
   10678 	}
   10679 	x = 0
   10680 	y = 0
   10681 	r = x >> y
   10682 	if r != 0 {
   10683 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   10684 	}
   10685 	y = 1
   10686 	r = x >> y
   10687 	if r != 0 {
   10688 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   10689 	}
   10690 	y = 65535
   10691 	r = x >> y
   10692 	if r != 0 {
   10693 		t.Errorf("0 %s 65535 = %d, want 0", ">>", r)
   10694 	}
   10695 	x = 1
   10696 	y = 0
   10697 	r = x >> y
   10698 	if r != 1 {
   10699 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   10700 	}
   10701 	y = 1
   10702 	r = x >> y
   10703 	if r != 0 {
   10704 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   10705 	}
   10706 	y = 65535
   10707 	r = x >> y
   10708 	if r != 0 {
   10709 		t.Errorf("1 %s 65535 = %d, want 0", ">>", r)
   10710 	}
   10711 	x = 32766
   10712 	y = 0
   10713 	r = x >> y
   10714 	if r != 32766 {
   10715 		t.Errorf("32766 %s 0 = %d, want 32766", ">>", r)
   10716 	}
   10717 	y = 1
   10718 	r = x >> y
   10719 	if r != 16383 {
   10720 		t.Errorf("32766 %s 1 = %d, want 16383", ">>", r)
   10721 	}
   10722 	y = 65535
   10723 	r = x >> y
   10724 	if r != 0 {
   10725 		t.Errorf("32766 %s 65535 = %d, want 0", ">>", r)
   10726 	}
   10727 	x = 32767
   10728 	y = 0
   10729 	r = x >> y
   10730 	if r != 32767 {
   10731 		t.Errorf("32767 %s 0 = %d, want 32767", ">>", r)
   10732 	}
   10733 	y = 1
   10734 	r = x >> y
   10735 	if r != 16383 {
   10736 		t.Errorf("32767 %s 1 = %d, want 16383", ">>", r)
   10737 	}
   10738 	y = 65535
   10739 	r = x >> y
   10740 	if r != 0 {
   10741 		t.Errorf("32767 %s 65535 = %d, want 0", ">>", r)
   10742 	}
   10743 }
   10744 func TestConstFoldint16uint8lsh(t *testing.T) {
   10745 	var x, r int16
   10746 	var y uint8
   10747 	x = -32768
   10748 	y = 0
   10749 	r = x << y
   10750 	if r != -32768 {
   10751 		t.Errorf("-32768 %s 0 = %d, want -32768", "<<", r)
   10752 	}
   10753 	y = 1
   10754 	r = x << y
   10755 	if r != 0 {
   10756 		t.Errorf("-32768 %s 1 = %d, want 0", "<<", r)
   10757 	}
   10758 	y = 255
   10759 	r = x << y
   10760 	if r != 0 {
   10761 		t.Errorf("-32768 %s 255 = %d, want 0", "<<", r)
   10762 	}
   10763 	x = -32767
   10764 	y = 0
   10765 	r = x << y
   10766 	if r != -32767 {
   10767 		t.Errorf("-32767 %s 0 = %d, want -32767", "<<", r)
   10768 	}
   10769 	y = 1
   10770 	r = x << y
   10771 	if r != 2 {
   10772 		t.Errorf("-32767 %s 1 = %d, want 2", "<<", r)
   10773 	}
   10774 	y = 255
   10775 	r = x << y
   10776 	if r != 0 {
   10777 		t.Errorf("-32767 %s 255 = %d, want 0", "<<", r)
   10778 	}
   10779 	x = -1
   10780 	y = 0
   10781 	r = x << y
   10782 	if r != -1 {
   10783 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   10784 	}
   10785 	y = 1
   10786 	r = x << y
   10787 	if r != -2 {
   10788 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   10789 	}
   10790 	y = 255
   10791 	r = x << y
   10792 	if r != 0 {
   10793 		t.Errorf("-1 %s 255 = %d, want 0", "<<", r)
   10794 	}
   10795 	x = 0
   10796 	y = 0
   10797 	r = x << y
   10798 	if r != 0 {
   10799 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   10800 	}
   10801 	y = 1
   10802 	r = x << y
   10803 	if r != 0 {
   10804 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   10805 	}
   10806 	y = 255
   10807 	r = x << y
   10808 	if r != 0 {
   10809 		t.Errorf("0 %s 255 = %d, want 0", "<<", r)
   10810 	}
   10811 	x = 1
   10812 	y = 0
   10813 	r = x << y
   10814 	if r != 1 {
   10815 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   10816 	}
   10817 	y = 1
   10818 	r = x << y
   10819 	if r != 2 {
   10820 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   10821 	}
   10822 	y = 255
   10823 	r = x << y
   10824 	if r != 0 {
   10825 		t.Errorf("1 %s 255 = %d, want 0", "<<", r)
   10826 	}
   10827 	x = 32766
   10828 	y = 0
   10829 	r = x << y
   10830 	if r != 32766 {
   10831 		t.Errorf("32766 %s 0 = %d, want 32766", "<<", r)
   10832 	}
   10833 	y = 1
   10834 	r = x << y
   10835 	if r != -4 {
   10836 		t.Errorf("32766 %s 1 = %d, want -4", "<<", r)
   10837 	}
   10838 	y = 255
   10839 	r = x << y
   10840 	if r != 0 {
   10841 		t.Errorf("32766 %s 255 = %d, want 0", "<<", r)
   10842 	}
   10843 	x = 32767
   10844 	y = 0
   10845 	r = x << y
   10846 	if r != 32767 {
   10847 		t.Errorf("32767 %s 0 = %d, want 32767", "<<", r)
   10848 	}
   10849 	y = 1
   10850 	r = x << y
   10851 	if r != -2 {
   10852 		t.Errorf("32767 %s 1 = %d, want -2", "<<", r)
   10853 	}
   10854 	y = 255
   10855 	r = x << y
   10856 	if r != 0 {
   10857 		t.Errorf("32767 %s 255 = %d, want 0", "<<", r)
   10858 	}
   10859 }
   10860 func TestConstFoldint16uint8rsh(t *testing.T) {
   10861 	var x, r int16
   10862 	var y uint8
   10863 	x = -32768
   10864 	y = 0
   10865 	r = x >> y
   10866 	if r != -32768 {
   10867 		t.Errorf("-32768 %s 0 = %d, want -32768", ">>", r)
   10868 	}
   10869 	y = 1
   10870 	r = x >> y
   10871 	if r != -16384 {
   10872 		t.Errorf("-32768 %s 1 = %d, want -16384", ">>", r)
   10873 	}
   10874 	y = 255
   10875 	r = x >> y
   10876 	if r != -1 {
   10877 		t.Errorf("-32768 %s 255 = %d, want -1", ">>", r)
   10878 	}
   10879 	x = -32767
   10880 	y = 0
   10881 	r = x >> y
   10882 	if r != -32767 {
   10883 		t.Errorf("-32767 %s 0 = %d, want -32767", ">>", r)
   10884 	}
   10885 	y = 1
   10886 	r = x >> y
   10887 	if r != -16384 {
   10888 		t.Errorf("-32767 %s 1 = %d, want -16384", ">>", r)
   10889 	}
   10890 	y = 255
   10891 	r = x >> y
   10892 	if r != -1 {
   10893 		t.Errorf("-32767 %s 255 = %d, want -1", ">>", r)
   10894 	}
   10895 	x = -1
   10896 	y = 0
   10897 	r = x >> y
   10898 	if r != -1 {
   10899 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   10900 	}
   10901 	y = 1
   10902 	r = x >> y
   10903 	if r != -1 {
   10904 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   10905 	}
   10906 	y = 255
   10907 	r = x >> y
   10908 	if r != -1 {
   10909 		t.Errorf("-1 %s 255 = %d, want -1", ">>", r)
   10910 	}
   10911 	x = 0
   10912 	y = 0
   10913 	r = x >> y
   10914 	if r != 0 {
   10915 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   10916 	}
   10917 	y = 1
   10918 	r = x >> y
   10919 	if r != 0 {
   10920 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   10921 	}
   10922 	y = 255
   10923 	r = x >> y
   10924 	if r != 0 {
   10925 		t.Errorf("0 %s 255 = %d, want 0", ">>", r)
   10926 	}
   10927 	x = 1
   10928 	y = 0
   10929 	r = x >> y
   10930 	if r != 1 {
   10931 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   10932 	}
   10933 	y = 1
   10934 	r = x >> y
   10935 	if r != 0 {
   10936 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   10937 	}
   10938 	y = 255
   10939 	r = x >> y
   10940 	if r != 0 {
   10941 		t.Errorf("1 %s 255 = %d, want 0", ">>", r)
   10942 	}
   10943 	x = 32766
   10944 	y = 0
   10945 	r = x >> y
   10946 	if r != 32766 {
   10947 		t.Errorf("32766 %s 0 = %d, want 32766", ">>", r)
   10948 	}
   10949 	y = 1
   10950 	r = x >> y
   10951 	if r != 16383 {
   10952 		t.Errorf("32766 %s 1 = %d, want 16383", ">>", r)
   10953 	}
   10954 	y = 255
   10955 	r = x >> y
   10956 	if r != 0 {
   10957 		t.Errorf("32766 %s 255 = %d, want 0", ">>", r)
   10958 	}
   10959 	x = 32767
   10960 	y = 0
   10961 	r = x >> y
   10962 	if r != 32767 {
   10963 		t.Errorf("32767 %s 0 = %d, want 32767", ">>", r)
   10964 	}
   10965 	y = 1
   10966 	r = x >> y
   10967 	if r != 16383 {
   10968 		t.Errorf("32767 %s 1 = %d, want 16383", ">>", r)
   10969 	}
   10970 	y = 255
   10971 	r = x >> y
   10972 	if r != 0 {
   10973 		t.Errorf("32767 %s 255 = %d, want 0", ">>", r)
   10974 	}
   10975 }
   10976 func TestConstFolduint8uint64lsh(t *testing.T) {
   10977 	var x, r uint8
   10978 	var y uint64
   10979 	x = 0
   10980 	y = 0
   10981 	r = x << y
   10982 	if r != 0 {
   10983 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   10984 	}
   10985 	y = 1
   10986 	r = x << y
   10987 	if r != 0 {
   10988 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   10989 	}
   10990 	y = 4294967296
   10991 	r = x << y
   10992 	if r != 0 {
   10993 		t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r)
   10994 	}
   10995 	y = 18446744073709551615
   10996 	r = x << y
   10997 	if r != 0 {
   10998 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r)
   10999 	}
   11000 	x = 1
   11001 	y = 0
   11002 	r = x << y
   11003 	if r != 1 {
   11004 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   11005 	}
   11006 	y = 1
   11007 	r = x << y
   11008 	if r != 2 {
   11009 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   11010 	}
   11011 	y = 4294967296
   11012 	r = x << y
   11013 	if r != 0 {
   11014 		t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r)
   11015 	}
   11016 	y = 18446744073709551615
   11017 	r = x << y
   11018 	if r != 0 {
   11019 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r)
   11020 	}
   11021 	x = 255
   11022 	y = 0
   11023 	r = x << y
   11024 	if r != 255 {
   11025 		t.Errorf("255 %s 0 = %d, want 255", "<<", r)
   11026 	}
   11027 	y = 1
   11028 	r = x << y
   11029 	if r != 254 {
   11030 		t.Errorf("255 %s 1 = %d, want 254", "<<", r)
   11031 	}
   11032 	y = 4294967296
   11033 	r = x << y
   11034 	if r != 0 {
   11035 		t.Errorf("255 %s 4294967296 = %d, want 0", "<<", r)
   11036 	}
   11037 	y = 18446744073709551615
   11038 	r = x << y
   11039 	if r != 0 {
   11040 		t.Errorf("255 %s 18446744073709551615 = %d, want 0", "<<", r)
   11041 	}
   11042 }
   11043 func TestConstFolduint8uint64rsh(t *testing.T) {
   11044 	var x, r uint8
   11045 	var y uint64
   11046 	x = 0
   11047 	y = 0
   11048 	r = x >> y
   11049 	if r != 0 {
   11050 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   11051 	}
   11052 	y = 1
   11053 	r = x >> y
   11054 	if r != 0 {
   11055 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   11056 	}
   11057 	y = 4294967296
   11058 	r = x >> y
   11059 	if r != 0 {
   11060 		t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r)
   11061 	}
   11062 	y = 18446744073709551615
   11063 	r = x >> y
   11064 	if r != 0 {
   11065 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r)
   11066 	}
   11067 	x = 1
   11068 	y = 0
   11069 	r = x >> y
   11070 	if r != 1 {
   11071 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   11072 	}
   11073 	y = 1
   11074 	r = x >> y
   11075 	if r != 0 {
   11076 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   11077 	}
   11078 	y = 4294967296
   11079 	r = x >> y
   11080 	if r != 0 {
   11081 		t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r)
   11082 	}
   11083 	y = 18446744073709551615
   11084 	r = x >> y
   11085 	if r != 0 {
   11086 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r)
   11087 	}
   11088 	x = 255
   11089 	y = 0
   11090 	r = x >> y
   11091 	if r != 255 {
   11092 		t.Errorf("255 %s 0 = %d, want 255", ">>", r)
   11093 	}
   11094 	y = 1
   11095 	r = x >> y
   11096 	if r != 127 {
   11097 		t.Errorf("255 %s 1 = %d, want 127", ">>", r)
   11098 	}
   11099 	y = 4294967296
   11100 	r = x >> y
   11101 	if r != 0 {
   11102 		t.Errorf("255 %s 4294967296 = %d, want 0", ">>", r)
   11103 	}
   11104 	y = 18446744073709551615
   11105 	r = x >> y
   11106 	if r != 0 {
   11107 		t.Errorf("255 %s 18446744073709551615 = %d, want 0", ">>", r)
   11108 	}
   11109 }
   11110 func TestConstFolduint8uint32lsh(t *testing.T) {
   11111 	var x, r uint8
   11112 	var y uint32
   11113 	x = 0
   11114 	y = 0
   11115 	r = x << y
   11116 	if r != 0 {
   11117 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   11118 	}
   11119 	y = 1
   11120 	r = x << y
   11121 	if r != 0 {
   11122 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   11123 	}
   11124 	y = 4294967295
   11125 	r = x << y
   11126 	if r != 0 {
   11127 		t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r)
   11128 	}
   11129 	x = 1
   11130 	y = 0
   11131 	r = x << y
   11132 	if r != 1 {
   11133 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   11134 	}
   11135 	y = 1
   11136 	r = x << y
   11137 	if r != 2 {
   11138 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   11139 	}
   11140 	y = 4294967295
   11141 	r = x << y
   11142 	if r != 0 {
   11143 		t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r)
   11144 	}
   11145 	x = 255
   11146 	y = 0
   11147 	r = x << y
   11148 	if r != 255 {
   11149 		t.Errorf("255 %s 0 = %d, want 255", "<<", r)
   11150 	}
   11151 	y = 1
   11152 	r = x << y
   11153 	if r != 254 {
   11154 		t.Errorf("255 %s 1 = %d, want 254", "<<", r)
   11155 	}
   11156 	y = 4294967295
   11157 	r = x << y
   11158 	if r != 0 {
   11159 		t.Errorf("255 %s 4294967295 = %d, want 0", "<<", r)
   11160 	}
   11161 }
   11162 func TestConstFolduint8uint32rsh(t *testing.T) {
   11163 	var x, r uint8
   11164 	var y uint32
   11165 	x = 0
   11166 	y = 0
   11167 	r = x >> y
   11168 	if r != 0 {
   11169 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   11170 	}
   11171 	y = 1
   11172 	r = x >> y
   11173 	if r != 0 {
   11174 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   11175 	}
   11176 	y = 4294967295
   11177 	r = x >> y
   11178 	if r != 0 {
   11179 		t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r)
   11180 	}
   11181 	x = 1
   11182 	y = 0
   11183 	r = x >> y
   11184 	if r != 1 {
   11185 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   11186 	}
   11187 	y = 1
   11188 	r = x >> y
   11189 	if r != 0 {
   11190 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   11191 	}
   11192 	y = 4294967295
   11193 	r = x >> y
   11194 	if r != 0 {
   11195 		t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r)
   11196 	}
   11197 	x = 255
   11198 	y = 0
   11199 	r = x >> y
   11200 	if r != 255 {
   11201 		t.Errorf("255 %s 0 = %d, want 255", ">>", r)
   11202 	}
   11203 	y = 1
   11204 	r = x >> y
   11205 	if r != 127 {
   11206 		t.Errorf("255 %s 1 = %d, want 127", ">>", r)
   11207 	}
   11208 	y = 4294967295
   11209 	r = x >> y
   11210 	if r != 0 {
   11211 		t.Errorf("255 %s 4294967295 = %d, want 0", ">>", r)
   11212 	}
   11213 }
   11214 func TestConstFolduint8uint16lsh(t *testing.T) {
   11215 	var x, r uint8
   11216 	var y uint16
   11217 	x = 0
   11218 	y = 0
   11219 	r = x << y
   11220 	if r != 0 {
   11221 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   11222 	}
   11223 	y = 1
   11224 	r = x << y
   11225 	if r != 0 {
   11226 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   11227 	}
   11228 	y = 65535
   11229 	r = x << y
   11230 	if r != 0 {
   11231 		t.Errorf("0 %s 65535 = %d, want 0", "<<", r)
   11232 	}
   11233 	x = 1
   11234 	y = 0
   11235 	r = x << y
   11236 	if r != 1 {
   11237 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   11238 	}
   11239 	y = 1
   11240 	r = x << y
   11241 	if r != 2 {
   11242 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   11243 	}
   11244 	y = 65535
   11245 	r = x << y
   11246 	if r != 0 {
   11247 		t.Errorf("1 %s 65535 = %d, want 0", "<<", r)
   11248 	}
   11249 	x = 255
   11250 	y = 0
   11251 	r = x << y
   11252 	if r != 255 {
   11253 		t.Errorf("255 %s 0 = %d, want 255", "<<", r)
   11254 	}
   11255 	y = 1
   11256 	r = x << y
   11257 	if r != 254 {
   11258 		t.Errorf("255 %s 1 = %d, want 254", "<<", r)
   11259 	}
   11260 	y = 65535
   11261 	r = x << y
   11262 	if r != 0 {
   11263 		t.Errorf("255 %s 65535 = %d, want 0", "<<", r)
   11264 	}
   11265 }
   11266 func TestConstFolduint8uint16rsh(t *testing.T) {
   11267 	var x, r uint8
   11268 	var y uint16
   11269 	x = 0
   11270 	y = 0
   11271 	r = x >> y
   11272 	if r != 0 {
   11273 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   11274 	}
   11275 	y = 1
   11276 	r = x >> y
   11277 	if r != 0 {
   11278 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   11279 	}
   11280 	y = 65535
   11281 	r = x >> y
   11282 	if r != 0 {
   11283 		t.Errorf("0 %s 65535 = %d, want 0", ">>", r)
   11284 	}
   11285 	x = 1
   11286 	y = 0
   11287 	r = x >> y
   11288 	if r != 1 {
   11289 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   11290 	}
   11291 	y = 1
   11292 	r = x >> y
   11293 	if r != 0 {
   11294 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   11295 	}
   11296 	y = 65535
   11297 	r = x >> y
   11298 	if r != 0 {
   11299 		t.Errorf("1 %s 65535 = %d, want 0", ">>", r)
   11300 	}
   11301 	x = 255
   11302 	y = 0
   11303 	r = x >> y
   11304 	if r != 255 {
   11305 		t.Errorf("255 %s 0 = %d, want 255", ">>", r)
   11306 	}
   11307 	y = 1
   11308 	r = x >> y
   11309 	if r != 127 {
   11310 		t.Errorf("255 %s 1 = %d, want 127", ">>", r)
   11311 	}
   11312 	y = 65535
   11313 	r = x >> y
   11314 	if r != 0 {
   11315 		t.Errorf("255 %s 65535 = %d, want 0", ">>", r)
   11316 	}
   11317 }
   11318 func TestConstFolduint8uint8lsh(t *testing.T) {
   11319 	var x, r uint8
   11320 	var y uint8
   11321 	x = 0
   11322 	y = 0
   11323 	r = x << y
   11324 	if r != 0 {
   11325 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   11326 	}
   11327 	y = 1
   11328 	r = x << y
   11329 	if r != 0 {
   11330 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   11331 	}
   11332 	y = 255
   11333 	r = x << y
   11334 	if r != 0 {
   11335 		t.Errorf("0 %s 255 = %d, want 0", "<<", r)
   11336 	}
   11337 	x = 1
   11338 	y = 0
   11339 	r = x << y
   11340 	if r != 1 {
   11341 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   11342 	}
   11343 	y = 1
   11344 	r = x << y
   11345 	if r != 2 {
   11346 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   11347 	}
   11348 	y = 255
   11349 	r = x << y
   11350 	if r != 0 {
   11351 		t.Errorf("1 %s 255 = %d, want 0", "<<", r)
   11352 	}
   11353 	x = 255
   11354 	y = 0
   11355 	r = x << y
   11356 	if r != 255 {
   11357 		t.Errorf("255 %s 0 = %d, want 255", "<<", r)
   11358 	}
   11359 	y = 1
   11360 	r = x << y
   11361 	if r != 254 {
   11362 		t.Errorf("255 %s 1 = %d, want 254", "<<", r)
   11363 	}
   11364 	y = 255
   11365 	r = x << y
   11366 	if r != 0 {
   11367 		t.Errorf("255 %s 255 = %d, want 0", "<<", r)
   11368 	}
   11369 }
   11370 func TestConstFolduint8uint8rsh(t *testing.T) {
   11371 	var x, r uint8
   11372 	var y uint8
   11373 	x = 0
   11374 	y = 0
   11375 	r = x >> y
   11376 	if r != 0 {
   11377 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   11378 	}
   11379 	y = 1
   11380 	r = x >> y
   11381 	if r != 0 {
   11382 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   11383 	}
   11384 	y = 255
   11385 	r = x >> y
   11386 	if r != 0 {
   11387 		t.Errorf("0 %s 255 = %d, want 0", ">>", r)
   11388 	}
   11389 	x = 1
   11390 	y = 0
   11391 	r = x >> y
   11392 	if r != 1 {
   11393 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   11394 	}
   11395 	y = 1
   11396 	r = x >> y
   11397 	if r != 0 {
   11398 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   11399 	}
   11400 	y = 255
   11401 	r = x >> y
   11402 	if r != 0 {
   11403 		t.Errorf("1 %s 255 = %d, want 0", ">>", r)
   11404 	}
   11405 	x = 255
   11406 	y = 0
   11407 	r = x >> y
   11408 	if r != 255 {
   11409 		t.Errorf("255 %s 0 = %d, want 255", ">>", r)
   11410 	}
   11411 	y = 1
   11412 	r = x >> y
   11413 	if r != 127 {
   11414 		t.Errorf("255 %s 1 = %d, want 127", ">>", r)
   11415 	}
   11416 	y = 255
   11417 	r = x >> y
   11418 	if r != 0 {
   11419 		t.Errorf("255 %s 255 = %d, want 0", ">>", r)
   11420 	}
   11421 }
   11422 func TestConstFoldint8uint64lsh(t *testing.T) {
   11423 	var x, r int8
   11424 	var y uint64
   11425 	x = -128
   11426 	y = 0
   11427 	r = x << y
   11428 	if r != -128 {
   11429 		t.Errorf("-128 %s 0 = %d, want -128", "<<", r)
   11430 	}
   11431 	y = 1
   11432 	r = x << y
   11433 	if r != 0 {
   11434 		t.Errorf("-128 %s 1 = %d, want 0", "<<", r)
   11435 	}
   11436 	y = 4294967296
   11437 	r = x << y
   11438 	if r != 0 {
   11439 		t.Errorf("-128 %s 4294967296 = %d, want 0", "<<", r)
   11440 	}
   11441 	y = 18446744073709551615
   11442 	r = x << y
   11443 	if r != 0 {
   11444 		t.Errorf("-128 %s 18446744073709551615 = %d, want 0", "<<", r)
   11445 	}
   11446 	x = -127
   11447 	y = 0
   11448 	r = x << y
   11449 	if r != -127 {
   11450 		t.Errorf("-127 %s 0 = %d, want -127", "<<", r)
   11451 	}
   11452 	y = 1
   11453 	r = x << y
   11454 	if r != 2 {
   11455 		t.Errorf("-127 %s 1 = %d, want 2", "<<", r)
   11456 	}
   11457 	y = 4294967296
   11458 	r = x << y
   11459 	if r != 0 {
   11460 		t.Errorf("-127 %s 4294967296 = %d, want 0", "<<", r)
   11461 	}
   11462 	y = 18446744073709551615
   11463 	r = x << y
   11464 	if r != 0 {
   11465 		t.Errorf("-127 %s 18446744073709551615 = %d, want 0", "<<", r)
   11466 	}
   11467 	x = -1
   11468 	y = 0
   11469 	r = x << y
   11470 	if r != -1 {
   11471 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   11472 	}
   11473 	y = 1
   11474 	r = x << y
   11475 	if r != -2 {
   11476 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   11477 	}
   11478 	y = 4294967296
   11479 	r = x << y
   11480 	if r != 0 {
   11481 		t.Errorf("-1 %s 4294967296 = %d, want 0", "<<", r)
   11482 	}
   11483 	y = 18446744073709551615
   11484 	r = x << y
   11485 	if r != 0 {
   11486 		t.Errorf("-1 %s 18446744073709551615 = %d, want 0", "<<", r)
   11487 	}
   11488 	x = 0
   11489 	y = 0
   11490 	r = x << y
   11491 	if r != 0 {
   11492 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   11493 	}
   11494 	y = 1
   11495 	r = x << y
   11496 	if r != 0 {
   11497 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   11498 	}
   11499 	y = 4294967296
   11500 	r = x << y
   11501 	if r != 0 {
   11502 		t.Errorf("0 %s 4294967296 = %d, want 0", "<<", r)
   11503 	}
   11504 	y = 18446744073709551615
   11505 	r = x << y
   11506 	if r != 0 {
   11507 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", "<<", r)
   11508 	}
   11509 	x = 1
   11510 	y = 0
   11511 	r = x << y
   11512 	if r != 1 {
   11513 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   11514 	}
   11515 	y = 1
   11516 	r = x << y
   11517 	if r != 2 {
   11518 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   11519 	}
   11520 	y = 4294967296
   11521 	r = x << y
   11522 	if r != 0 {
   11523 		t.Errorf("1 %s 4294967296 = %d, want 0", "<<", r)
   11524 	}
   11525 	y = 18446744073709551615
   11526 	r = x << y
   11527 	if r != 0 {
   11528 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", "<<", r)
   11529 	}
   11530 	x = 126
   11531 	y = 0
   11532 	r = x << y
   11533 	if r != 126 {
   11534 		t.Errorf("126 %s 0 = %d, want 126", "<<", r)
   11535 	}
   11536 	y = 1
   11537 	r = x << y
   11538 	if r != -4 {
   11539 		t.Errorf("126 %s 1 = %d, want -4", "<<", r)
   11540 	}
   11541 	y = 4294967296
   11542 	r = x << y
   11543 	if r != 0 {
   11544 		t.Errorf("126 %s 4294967296 = %d, want 0", "<<", r)
   11545 	}
   11546 	y = 18446744073709551615
   11547 	r = x << y
   11548 	if r != 0 {
   11549 		t.Errorf("126 %s 18446744073709551615 = %d, want 0", "<<", r)
   11550 	}
   11551 	x = 127
   11552 	y = 0
   11553 	r = x << y
   11554 	if r != 127 {
   11555 		t.Errorf("127 %s 0 = %d, want 127", "<<", r)
   11556 	}
   11557 	y = 1
   11558 	r = x << y
   11559 	if r != -2 {
   11560 		t.Errorf("127 %s 1 = %d, want -2", "<<", r)
   11561 	}
   11562 	y = 4294967296
   11563 	r = x << y
   11564 	if r != 0 {
   11565 		t.Errorf("127 %s 4294967296 = %d, want 0", "<<", r)
   11566 	}
   11567 	y = 18446744073709551615
   11568 	r = x << y
   11569 	if r != 0 {
   11570 		t.Errorf("127 %s 18446744073709551615 = %d, want 0", "<<", r)
   11571 	}
   11572 }
   11573 func TestConstFoldint8uint64rsh(t *testing.T) {
   11574 	var x, r int8
   11575 	var y uint64
   11576 	x = -128
   11577 	y = 0
   11578 	r = x >> y
   11579 	if r != -128 {
   11580 		t.Errorf("-128 %s 0 = %d, want -128", ">>", r)
   11581 	}
   11582 	y = 1
   11583 	r = x >> y
   11584 	if r != -64 {
   11585 		t.Errorf("-128 %s 1 = %d, want -64", ">>", r)
   11586 	}
   11587 	y = 4294967296
   11588 	r = x >> y
   11589 	if r != -1 {
   11590 		t.Errorf("-128 %s 4294967296 = %d, want -1", ">>", r)
   11591 	}
   11592 	y = 18446744073709551615
   11593 	r = x >> y
   11594 	if r != -1 {
   11595 		t.Errorf("-128 %s 18446744073709551615 = %d, want -1", ">>", r)
   11596 	}
   11597 	x = -127
   11598 	y = 0
   11599 	r = x >> y
   11600 	if r != -127 {
   11601 		t.Errorf("-127 %s 0 = %d, want -127", ">>", r)
   11602 	}
   11603 	y = 1
   11604 	r = x >> y
   11605 	if r != -64 {
   11606 		t.Errorf("-127 %s 1 = %d, want -64", ">>", r)
   11607 	}
   11608 	y = 4294967296
   11609 	r = x >> y
   11610 	if r != -1 {
   11611 		t.Errorf("-127 %s 4294967296 = %d, want -1", ">>", r)
   11612 	}
   11613 	y = 18446744073709551615
   11614 	r = x >> y
   11615 	if r != -1 {
   11616 		t.Errorf("-127 %s 18446744073709551615 = %d, want -1", ">>", r)
   11617 	}
   11618 	x = -1
   11619 	y = 0
   11620 	r = x >> y
   11621 	if r != -1 {
   11622 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   11623 	}
   11624 	y = 1
   11625 	r = x >> y
   11626 	if r != -1 {
   11627 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   11628 	}
   11629 	y = 4294967296
   11630 	r = x >> y
   11631 	if r != -1 {
   11632 		t.Errorf("-1 %s 4294967296 = %d, want -1", ">>", r)
   11633 	}
   11634 	y = 18446744073709551615
   11635 	r = x >> y
   11636 	if r != -1 {
   11637 		t.Errorf("-1 %s 18446744073709551615 = %d, want -1", ">>", r)
   11638 	}
   11639 	x = 0
   11640 	y = 0
   11641 	r = x >> y
   11642 	if r != 0 {
   11643 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   11644 	}
   11645 	y = 1
   11646 	r = x >> y
   11647 	if r != 0 {
   11648 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   11649 	}
   11650 	y = 4294967296
   11651 	r = x >> y
   11652 	if r != 0 {
   11653 		t.Errorf("0 %s 4294967296 = %d, want 0", ">>", r)
   11654 	}
   11655 	y = 18446744073709551615
   11656 	r = x >> y
   11657 	if r != 0 {
   11658 		t.Errorf("0 %s 18446744073709551615 = %d, want 0", ">>", r)
   11659 	}
   11660 	x = 1
   11661 	y = 0
   11662 	r = x >> y
   11663 	if r != 1 {
   11664 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   11665 	}
   11666 	y = 1
   11667 	r = x >> y
   11668 	if r != 0 {
   11669 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   11670 	}
   11671 	y = 4294967296
   11672 	r = x >> y
   11673 	if r != 0 {
   11674 		t.Errorf("1 %s 4294967296 = %d, want 0", ">>", r)
   11675 	}
   11676 	y = 18446744073709551615
   11677 	r = x >> y
   11678 	if r != 0 {
   11679 		t.Errorf("1 %s 18446744073709551615 = %d, want 0", ">>", r)
   11680 	}
   11681 	x = 126
   11682 	y = 0
   11683 	r = x >> y
   11684 	if r != 126 {
   11685 		t.Errorf("126 %s 0 = %d, want 126", ">>", r)
   11686 	}
   11687 	y = 1
   11688 	r = x >> y
   11689 	if r != 63 {
   11690 		t.Errorf("126 %s 1 = %d, want 63", ">>", r)
   11691 	}
   11692 	y = 4294967296
   11693 	r = x >> y
   11694 	if r != 0 {
   11695 		t.Errorf("126 %s 4294967296 = %d, want 0", ">>", r)
   11696 	}
   11697 	y = 18446744073709551615
   11698 	r = x >> y
   11699 	if r != 0 {
   11700 		t.Errorf("126 %s 18446744073709551615 = %d, want 0", ">>", r)
   11701 	}
   11702 	x = 127
   11703 	y = 0
   11704 	r = x >> y
   11705 	if r != 127 {
   11706 		t.Errorf("127 %s 0 = %d, want 127", ">>", r)
   11707 	}
   11708 	y = 1
   11709 	r = x >> y
   11710 	if r != 63 {
   11711 		t.Errorf("127 %s 1 = %d, want 63", ">>", r)
   11712 	}
   11713 	y = 4294967296
   11714 	r = x >> y
   11715 	if r != 0 {
   11716 		t.Errorf("127 %s 4294967296 = %d, want 0", ">>", r)
   11717 	}
   11718 	y = 18446744073709551615
   11719 	r = x >> y
   11720 	if r != 0 {
   11721 		t.Errorf("127 %s 18446744073709551615 = %d, want 0", ">>", r)
   11722 	}
   11723 }
   11724 func TestConstFoldint8uint32lsh(t *testing.T) {
   11725 	var x, r int8
   11726 	var y uint32
   11727 	x = -128
   11728 	y = 0
   11729 	r = x << y
   11730 	if r != -128 {
   11731 		t.Errorf("-128 %s 0 = %d, want -128", "<<", r)
   11732 	}
   11733 	y = 1
   11734 	r = x << y
   11735 	if r != 0 {
   11736 		t.Errorf("-128 %s 1 = %d, want 0", "<<", r)
   11737 	}
   11738 	y = 4294967295
   11739 	r = x << y
   11740 	if r != 0 {
   11741 		t.Errorf("-128 %s 4294967295 = %d, want 0", "<<", r)
   11742 	}
   11743 	x = -127
   11744 	y = 0
   11745 	r = x << y
   11746 	if r != -127 {
   11747 		t.Errorf("-127 %s 0 = %d, want -127", "<<", r)
   11748 	}
   11749 	y = 1
   11750 	r = x << y
   11751 	if r != 2 {
   11752 		t.Errorf("-127 %s 1 = %d, want 2", "<<", r)
   11753 	}
   11754 	y = 4294967295
   11755 	r = x << y
   11756 	if r != 0 {
   11757 		t.Errorf("-127 %s 4294967295 = %d, want 0", "<<", r)
   11758 	}
   11759 	x = -1
   11760 	y = 0
   11761 	r = x << y
   11762 	if r != -1 {
   11763 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   11764 	}
   11765 	y = 1
   11766 	r = x << y
   11767 	if r != -2 {
   11768 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   11769 	}
   11770 	y = 4294967295
   11771 	r = x << y
   11772 	if r != 0 {
   11773 		t.Errorf("-1 %s 4294967295 = %d, want 0", "<<", r)
   11774 	}
   11775 	x = 0
   11776 	y = 0
   11777 	r = x << y
   11778 	if r != 0 {
   11779 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   11780 	}
   11781 	y = 1
   11782 	r = x << y
   11783 	if r != 0 {
   11784 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   11785 	}
   11786 	y = 4294967295
   11787 	r = x << y
   11788 	if r != 0 {
   11789 		t.Errorf("0 %s 4294967295 = %d, want 0", "<<", r)
   11790 	}
   11791 	x = 1
   11792 	y = 0
   11793 	r = x << y
   11794 	if r != 1 {
   11795 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   11796 	}
   11797 	y = 1
   11798 	r = x << y
   11799 	if r != 2 {
   11800 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   11801 	}
   11802 	y = 4294967295
   11803 	r = x << y
   11804 	if r != 0 {
   11805 		t.Errorf("1 %s 4294967295 = %d, want 0", "<<", r)
   11806 	}
   11807 	x = 126
   11808 	y = 0
   11809 	r = x << y
   11810 	if r != 126 {
   11811 		t.Errorf("126 %s 0 = %d, want 126", "<<", r)
   11812 	}
   11813 	y = 1
   11814 	r = x << y
   11815 	if r != -4 {
   11816 		t.Errorf("126 %s 1 = %d, want -4", "<<", r)
   11817 	}
   11818 	y = 4294967295
   11819 	r = x << y
   11820 	if r != 0 {
   11821 		t.Errorf("126 %s 4294967295 = %d, want 0", "<<", r)
   11822 	}
   11823 	x = 127
   11824 	y = 0
   11825 	r = x << y
   11826 	if r != 127 {
   11827 		t.Errorf("127 %s 0 = %d, want 127", "<<", r)
   11828 	}
   11829 	y = 1
   11830 	r = x << y
   11831 	if r != -2 {
   11832 		t.Errorf("127 %s 1 = %d, want -2", "<<", r)
   11833 	}
   11834 	y = 4294967295
   11835 	r = x << y
   11836 	if r != 0 {
   11837 		t.Errorf("127 %s 4294967295 = %d, want 0", "<<", r)
   11838 	}
   11839 }
   11840 func TestConstFoldint8uint32rsh(t *testing.T) {
   11841 	var x, r int8
   11842 	var y uint32
   11843 	x = -128
   11844 	y = 0
   11845 	r = x >> y
   11846 	if r != -128 {
   11847 		t.Errorf("-128 %s 0 = %d, want -128", ">>", r)
   11848 	}
   11849 	y = 1
   11850 	r = x >> y
   11851 	if r != -64 {
   11852 		t.Errorf("-128 %s 1 = %d, want -64", ">>", r)
   11853 	}
   11854 	y = 4294967295
   11855 	r = x >> y
   11856 	if r != -1 {
   11857 		t.Errorf("-128 %s 4294967295 = %d, want -1", ">>", r)
   11858 	}
   11859 	x = -127
   11860 	y = 0
   11861 	r = x >> y
   11862 	if r != -127 {
   11863 		t.Errorf("-127 %s 0 = %d, want -127", ">>", r)
   11864 	}
   11865 	y = 1
   11866 	r = x >> y
   11867 	if r != -64 {
   11868 		t.Errorf("-127 %s 1 = %d, want -64", ">>", r)
   11869 	}
   11870 	y = 4294967295
   11871 	r = x >> y
   11872 	if r != -1 {
   11873 		t.Errorf("-127 %s 4294967295 = %d, want -1", ">>", r)
   11874 	}
   11875 	x = -1
   11876 	y = 0
   11877 	r = x >> y
   11878 	if r != -1 {
   11879 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   11880 	}
   11881 	y = 1
   11882 	r = x >> y
   11883 	if r != -1 {
   11884 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   11885 	}
   11886 	y = 4294967295
   11887 	r = x >> y
   11888 	if r != -1 {
   11889 		t.Errorf("-1 %s 4294967295 = %d, want -1", ">>", r)
   11890 	}
   11891 	x = 0
   11892 	y = 0
   11893 	r = x >> y
   11894 	if r != 0 {
   11895 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   11896 	}
   11897 	y = 1
   11898 	r = x >> y
   11899 	if r != 0 {
   11900 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   11901 	}
   11902 	y = 4294967295
   11903 	r = x >> y
   11904 	if r != 0 {
   11905 		t.Errorf("0 %s 4294967295 = %d, want 0", ">>", r)
   11906 	}
   11907 	x = 1
   11908 	y = 0
   11909 	r = x >> y
   11910 	if r != 1 {
   11911 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   11912 	}
   11913 	y = 1
   11914 	r = x >> y
   11915 	if r != 0 {
   11916 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   11917 	}
   11918 	y = 4294967295
   11919 	r = x >> y
   11920 	if r != 0 {
   11921 		t.Errorf("1 %s 4294967295 = %d, want 0", ">>", r)
   11922 	}
   11923 	x = 126
   11924 	y = 0
   11925 	r = x >> y
   11926 	if r != 126 {
   11927 		t.Errorf("126 %s 0 = %d, want 126", ">>", r)
   11928 	}
   11929 	y = 1
   11930 	r = x >> y
   11931 	if r != 63 {
   11932 		t.Errorf("126 %s 1 = %d, want 63", ">>", r)
   11933 	}
   11934 	y = 4294967295
   11935 	r = x >> y
   11936 	if r != 0 {
   11937 		t.Errorf("126 %s 4294967295 = %d, want 0", ">>", r)
   11938 	}
   11939 	x = 127
   11940 	y = 0
   11941 	r = x >> y
   11942 	if r != 127 {
   11943 		t.Errorf("127 %s 0 = %d, want 127", ">>", r)
   11944 	}
   11945 	y = 1
   11946 	r = x >> y
   11947 	if r != 63 {
   11948 		t.Errorf("127 %s 1 = %d, want 63", ">>", r)
   11949 	}
   11950 	y = 4294967295
   11951 	r = x >> y
   11952 	if r != 0 {
   11953 		t.Errorf("127 %s 4294967295 = %d, want 0", ">>", r)
   11954 	}
   11955 }
   11956 func TestConstFoldint8uint16lsh(t *testing.T) {
   11957 	var x, r int8
   11958 	var y uint16
   11959 	x = -128
   11960 	y = 0
   11961 	r = x << y
   11962 	if r != -128 {
   11963 		t.Errorf("-128 %s 0 = %d, want -128", "<<", r)
   11964 	}
   11965 	y = 1
   11966 	r = x << y
   11967 	if r != 0 {
   11968 		t.Errorf("-128 %s 1 = %d, want 0", "<<", r)
   11969 	}
   11970 	y = 65535
   11971 	r = x << y
   11972 	if r != 0 {
   11973 		t.Errorf("-128 %s 65535 = %d, want 0", "<<", r)
   11974 	}
   11975 	x = -127
   11976 	y = 0
   11977 	r = x << y
   11978 	if r != -127 {
   11979 		t.Errorf("-127 %s 0 = %d, want -127", "<<", r)
   11980 	}
   11981 	y = 1
   11982 	r = x << y
   11983 	if r != 2 {
   11984 		t.Errorf("-127 %s 1 = %d, want 2", "<<", r)
   11985 	}
   11986 	y = 65535
   11987 	r = x << y
   11988 	if r != 0 {
   11989 		t.Errorf("-127 %s 65535 = %d, want 0", "<<", r)
   11990 	}
   11991 	x = -1
   11992 	y = 0
   11993 	r = x << y
   11994 	if r != -1 {
   11995 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   11996 	}
   11997 	y = 1
   11998 	r = x << y
   11999 	if r != -2 {
   12000 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   12001 	}
   12002 	y = 65535
   12003 	r = x << y
   12004 	if r != 0 {
   12005 		t.Errorf("-1 %s 65535 = %d, want 0", "<<", r)
   12006 	}
   12007 	x = 0
   12008 	y = 0
   12009 	r = x << y
   12010 	if r != 0 {
   12011 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   12012 	}
   12013 	y = 1
   12014 	r = x << y
   12015 	if r != 0 {
   12016 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   12017 	}
   12018 	y = 65535
   12019 	r = x << y
   12020 	if r != 0 {
   12021 		t.Errorf("0 %s 65535 = %d, want 0", "<<", r)
   12022 	}
   12023 	x = 1
   12024 	y = 0
   12025 	r = x << y
   12026 	if r != 1 {
   12027 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   12028 	}
   12029 	y = 1
   12030 	r = x << y
   12031 	if r != 2 {
   12032 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   12033 	}
   12034 	y = 65535
   12035 	r = x << y
   12036 	if r != 0 {
   12037 		t.Errorf("1 %s 65535 = %d, want 0", "<<", r)
   12038 	}
   12039 	x = 126
   12040 	y = 0
   12041 	r = x << y
   12042 	if r != 126 {
   12043 		t.Errorf("126 %s 0 = %d, want 126", "<<", r)
   12044 	}
   12045 	y = 1
   12046 	r = x << y
   12047 	if r != -4 {
   12048 		t.Errorf("126 %s 1 = %d, want -4", "<<", r)
   12049 	}
   12050 	y = 65535
   12051 	r = x << y
   12052 	if r != 0 {
   12053 		t.Errorf("126 %s 65535 = %d, want 0", "<<", r)
   12054 	}
   12055 	x = 127
   12056 	y = 0
   12057 	r = x << y
   12058 	if r != 127 {
   12059 		t.Errorf("127 %s 0 = %d, want 127", "<<", r)
   12060 	}
   12061 	y = 1
   12062 	r = x << y
   12063 	if r != -2 {
   12064 		t.Errorf("127 %s 1 = %d, want -2", "<<", r)
   12065 	}
   12066 	y = 65535
   12067 	r = x << y
   12068 	if r != 0 {
   12069 		t.Errorf("127 %s 65535 = %d, want 0", "<<", r)
   12070 	}
   12071 }
   12072 func TestConstFoldint8uint16rsh(t *testing.T) {
   12073 	var x, r int8
   12074 	var y uint16
   12075 	x = -128
   12076 	y = 0
   12077 	r = x >> y
   12078 	if r != -128 {
   12079 		t.Errorf("-128 %s 0 = %d, want -128", ">>", r)
   12080 	}
   12081 	y = 1
   12082 	r = x >> y
   12083 	if r != -64 {
   12084 		t.Errorf("-128 %s 1 = %d, want -64", ">>", r)
   12085 	}
   12086 	y = 65535
   12087 	r = x >> y
   12088 	if r != -1 {
   12089 		t.Errorf("-128 %s 65535 = %d, want -1", ">>", r)
   12090 	}
   12091 	x = -127
   12092 	y = 0
   12093 	r = x >> y
   12094 	if r != -127 {
   12095 		t.Errorf("-127 %s 0 = %d, want -127", ">>", r)
   12096 	}
   12097 	y = 1
   12098 	r = x >> y
   12099 	if r != -64 {
   12100 		t.Errorf("-127 %s 1 = %d, want -64", ">>", r)
   12101 	}
   12102 	y = 65535
   12103 	r = x >> y
   12104 	if r != -1 {
   12105 		t.Errorf("-127 %s 65535 = %d, want -1", ">>", r)
   12106 	}
   12107 	x = -1
   12108 	y = 0
   12109 	r = x >> y
   12110 	if r != -1 {
   12111 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   12112 	}
   12113 	y = 1
   12114 	r = x >> y
   12115 	if r != -1 {
   12116 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   12117 	}
   12118 	y = 65535
   12119 	r = x >> y
   12120 	if r != -1 {
   12121 		t.Errorf("-1 %s 65535 = %d, want -1", ">>", r)
   12122 	}
   12123 	x = 0
   12124 	y = 0
   12125 	r = x >> y
   12126 	if r != 0 {
   12127 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   12128 	}
   12129 	y = 1
   12130 	r = x >> y
   12131 	if r != 0 {
   12132 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   12133 	}
   12134 	y = 65535
   12135 	r = x >> y
   12136 	if r != 0 {
   12137 		t.Errorf("0 %s 65535 = %d, want 0", ">>", r)
   12138 	}
   12139 	x = 1
   12140 	y = 0
   12141 	r = x >> y
   12142 	if r != 1 {
   12143 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   12144 	}
   12145 	y = 1
   12146 	r = x >> y
   12147 	if r != 0 {
   12148 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   12149 	}
   12150 	y = 65535
   12151 	r = x >> y
   12152 	if r != 0 {
   12153 		t.Errorf("1 %s 65535 = %d, want 0", ">>", r)
   12154 	}
   12155 	x = 126
   12156 	y = 0
   12157 	r = x >> y
   12158 	if r != 126 {
   12159 		t.Errorf("126 %s 0 = %d, want 126", ">>", r)
   12160 	}
   12161 	y = 1
   12162 	r = x >> y
   12163 	if r != 63 {
   12164 		t.Errorf("126 %s 1 = %d, want 63", ">>", r)
   12165 	}
   12166 	y = 65535
   12167 	r = x >> y
   12168 	if r != 0 {
   12169 		t.Errorf("126 %s 65535 = %d, want 0", ">>", r)
   12170 	}
   12171 	x = 127
   12172 	y = 0
   12173 	r = x >> y
   12174 	if r != 127 {
   12175 		t.Errorf("127 %s 0 = %d, want 127", ">>", r)
   12176 	}
   12177 	y = 1
   12178 	r = x >> y
   12179 	if r != 63 {
   12180 		t.Errorf("127 %s 1 = %d, want 63", ">>", r)
   12181 	}
   12182 	y = 65535
   12183 	r = x >> y
   12184 	if r != 0 {
   12185 		t.Errorf("127 %s 65535 = %d, want 0", ">>", r)
   12186 	}
   12187 }
   12188 func TestConstFoldint8uint8lsh(t *testing.T) {
   12189 	var x, r int8
   12190 	var y uint8
   12191 	x = -128
   12192 	y = 0
   12193 	r = x << y
   12194 	if r != -128 {
   12195 		t.Errorf("-128 %s 0 = %d, want -128", "<<", r)
   12196 	}
   12197 	y = 1
   12198 	r = x << y
   12199 	if r != 0 {
   12200 		t.Errorf("-128 %s 1 = %d, want 0", "<<", r)
   12201 	}
   12202 	y = 255
   12203 	r = x << y
   12204 	if r != 0 {
   12205 		t.Errorf("-128 %s 255 = %d, want 0", "<<", r)
   12206 	}
   12207 	x = -127
   12208 	y = 0
   12209 	r = x << y
   12210 	if r != -127 {
   12211 		t.Errorf("-127 %s 0 = %d, want -127", "<<", r)
   12212 	}
   12213 	y = 1
   12214 	r = x << y
   12215 	if r != 2 {
   12216 		t.Errorf("-127 %s 1 = %d, want 2", "<<", r)
   12217 	}
   12218 	y = 255
   12219 	r = x << y
   12220 	if r != 0 {
   12221 		t.Errorf("-127 %s 255 = %d, want 0", "<<", r)
   12222 	}
   12223 	x = -1
   12224 	y = 0
   12225 	r = x << y
   12226 	if r != -1 {
   12227 		t.Errorf("-1 %s 0 = %d, want -1", "<<", r)
   12228 	}
   12229 	y = 1
   12230 	r = x << y
   12231 	if r != -2 {
   12232 		t.Errorf("-1 %s 1 = %d, want -2", "<<", r)
   12233 	}
   12234 	y = 255
   12235 	r = x << y
   12236 	if r != 0 {
   12237 		t.Errorf("-1 %s 255 = %d, want 0", "<<", r)
   12238 	}
   12239 	x = 0
   12240 	y = 0
   12241 	r = x << y
   12242 	if r != 0 {
   12243 		t.Errorf("0 %s 0 = %d, want 0", "<<", r)
   12244 	}
   12245 	y = 1
   12246 	r = x << y
   12247 	if r != 0 {
   12248 		t.Errorf("0 %s 1 = %d, want 0", "<<", r)
   12249 	}
   12250 	y = 255
   12251 	r = x << y
   12252 	if r != 0 {
   12253 		t.Errorf("0 %s 255 = %d, want 0", "<<", r)
   12254 	}
   12255 	x = 1
   12256 	y = 0
   12257 	r = x << y
   12258 	if r != 1 {
   12259 		t.Errorf("1 %s 0 = %d, want 1", "<<", r)
   12260 	}
   12261 	y = 1
   12262 	r = x << y
   12263 	if r != 2 {
   12264 		t.Errorf("1 %s 1 = %d, want 2", "<<", r)
   12265 	}
   12266 	y = 255
   12267 	r = x << y
   12268 	if r != 0 {
   12269 		t.Errorf("1 %s 255 = %d, want 0", "<<", r)
   12270 	}
   12271 	x = 126
   12272 	y = 0
   12273 	r = x << y
   12274 	if r != 126 {
   12275 		t.Errorf("126 %s 0 = %d, want 126", "<<", r)
   12276 	}
   12277 	y = 1
   12278 	r = x << y
   12279 	if r != -4 {
   12280 		t.Errorf("126 %s 1 = %d, want -4", "<<", r)
   12281 	}
   12282 	y = 255
   12283 	r = x << y
   12284 	if r != 0 {
   12285 		t.Errorf("126 %s 255 = %d, want 0", "<<", r)
   12286 	}
   12287 	x = 127
   12288 	y = 0
   12289 	r = x << y
   12290 	if r != 127 {
   12291 		t.Errorf("127 %s 0 = %d, want 127", "<<", r)
   12292 	}
   12293 	y = 1
   12294 	r = x << y
   12295 	if r != -2 {
   12296 		t.Errorf("127 %s 1 = %d, want -2", "<<", r)
   12297 	}
   12298 	y = 255
   12299 	r = x << y
   12300 	if r != 0 {
   12301 		t.Errorf("127 %s 255 = %d, want 0", "<<", r)
   12302 	}
   12303 }
   12304 func TestConstFoldint8uint8rsh(t *testing.T) {
   12305 	var x, r int8
   12306 	var y uint8
   12307 	x = -128
   12308 	y = 0
   12309 	r = x >> y
   12310 	if r != -128 {
   12311 		t.Errorf("-128 %s 0 = %d, want -128", ">>", r)
   12312 	}
   12313 	y = 1
   12314 	r = x >> y
   12315 	if r != -64 {
   12316 		t.Errorf("-128 %s 1 = %d, want -64", ">>", r)
   12317 	}
   12318 	y = 255
   12319 	r = x >> y
   12320 	if r != -1 {
   12321 		t.Errorf("-128 %s 255 = %d, want -1", ">>", r)
   12322 	}
   12323 	x = -127
   12324 	y = 0
   12325 	r = x >> y
   12326 	if r != -127 {
   12327 		t.Errorf("-127 %s 0 = %d, want -127", ">>", r)
   12328 	}
   12329 	y = 1
   12330 	r = x >> y
   12331 	if r != -64 {
   12332 		t.Errorf("-127 %s 1 = %d, want -64", ">>", r)
   12333 	}
   12334 	y = 255
   12335 	r = x >> y
   12336 	if r != -1 {
   12337 		t.Errorf("-127 %s 255 = %d, want -1", ">>", r)
   12338 	}
   12339 	x = -1
   12340 	y = 0
   12341 	r = x >> y
   12342 	if r != -1 {
   12343 		t.Errorf("-1 %s 0 = %d, want -1", ">>", r)
   12344 	}
   12345 	y = 1
   12346 	r = x >> y
   12347 	if r != -1 {
   12348 		t.Errorf("-1 %s 1 = %d, want -1", ">>", r)
   12349 	}
   12350 	y = 255
   12351 	r = x >> y
   12352 	if r != -1 {
   12353 		t.Errorf("-1 %s 255 = %d, want -1", ">>", r)
   12354 	}
   12355 	x = 0
   12356 	y = 0
   12357 	r = x >> y
   12358 	if r != 0 {
   12359 		t.Errorf("0 %s 0 = %d, want 0", ">>", r)
   12360 	}
   12361 	y = 1
   12362 	r = x >> y
   12363 	if r != 0 {
   12364 		t.Errorf("0 %s 1 = %d, want 0", ">>", r)
   12365 	}
   12366 	y = 255
   12367 	r = x >> y
   12368 	if r != 0 {
   12369 		t.Errorf("0 %s 255 = %d, want 0", ">>", r)
   12370 	}
   12371 	x = 1
   12372 	y = 0
   12373 	r = x >> y
   12374 	if r != 1 {
   12375 		t.Errorf("1 %s 0 = %d, want 1", ">>", r)
   12376 	}
   12377 	y = 1
   12378 	r = x >> y
   12379 	if r != 0 {
   12380 		t.Errorf("1 %s 1 = %d, want 0", ">>", r)
   12381 	}
   12382 	y = 255
   12383 	r = x >> y
   12384 	if r != 0 {
   12385 		t.Errorf("1 %s 255 = %d, want 0", ">>", r)
   12386 	}
   12387 	x = 126
   12388 	y = 0
   12389 	r = x >> y
   12390 	if r != 126 {
   12391 		t.Errorf("126 %s 0 = %d, want 126", ">>", r)
   12392 	}
   12393 	y = 1
   12394 	r = x >> y
   12395 	if r != 63 {
   12396 		t.Errorf("126 %s 1 = %d, want 63", ">>", r)
   12397 	}
   12398 	y = 255
   12399 	r = x >> y
   12400 	if r != 0 {
   12401 		t.Errorf("126 %s 255 = %d, want 0", ">>", r)
   12402 	}
   12403 	x = 127
   12404 	y = 0
   12405 	r = x >> y
   12406 	if r != 127 {
   12407 		t.Errorf("127 %s 0 = %d, want 127", ">>", r)
   12408 	}
   12409 	y = 1
   12410 	r = x >> y
   12411 	if r != 63 {
   12412 		t.Errorf("127 %s 1 = %d, want 63", ">>", r)
   12413 	}
   12414 	y = 255
   12415 	r = x >> y
   12416 	if r != 0 {
   12417 		t.Errorf("127 %s 255 = %d, want 0", ">>", r)
   12418 	}
   12419 }
   12420 func TestConstFoldCompareuint64(t *testing.T) {
   12421 	{
   12422 		var x uint64 = 0
   12423 		var y uint64 = 0
   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 		if !(x >= y) {
   12440 			t.Errorf("!(%d >= %d)", x, y)
   12441 		}
   12442 	}
   12443 	{
   12444 		var x uint64 = 0
   12445 		var y uint64 = 1
   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 		if x >= y {
   12462 			t.Errorf("%d >= %d", x, y)
   12463 		}
   12464 	}
   12465 	{
   12466 		var x uint64 = 0
   12467 		var y uint64 = 4294967296
   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 		if x >= y {
   12484 			t.Errorf("%d >= %d", x, y)
   12485 		}
   12486 	}
   12487 	{
   12488 		var x uint64 = 0
   12489 		var y uint64 = 18446744073709551615
   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 		if x >= y {
   12506 			t.Errorf("%d >= %d", x, y)
   12507 		}
   12508 	}
   12509 	{
   12510 		var x uint64 = 1
   12511 		var y uint64 = 0
   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 		if !(x >= y) {
   12528 			t.Errorf("!(%d >= %d)", x, y)
   12529 		}
   12530 	}
   12531 	{
   12532 		var x uint64 = 1
   12533 		var y uint64 = 1
   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 		if !(x >= y) {
   12550 			t.Errorf("!(%d >= %d)", x, y)
   12551 		}
   12552 	}
   12553 	{
   12554 		var x uint64 = 1
   12555 		var y uint64 = 4294967296
   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 		if x >= y {
   12572 			t.Errorf("%d >= %d", x, y)
   12573 		}
   12574 	}
   12575 	{
   12576 		var x uint64 = 1
   12577 		var y uint64 = 18446744073709551615
   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 		if x >= y {
   12594 			t.Errorf("%d >= %d", x, y)
   12595 		}
   12596 	}
   12597 	{
   12598 		var x uint64 = 4294967296
   12599 		var y uint64 = 0
   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 		if !(x >= y) {
   12616 			t.Errorf("!(%d >= %d)", x, y)
   12617 		}
   12618 	}
   12619 	{
   12620 		var x uint64 = 4294967296
   12621 		var y uint64 = 1
   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 		if !(x >= y) {
   12638 			t.Errorf("!(%d >= %d)", x, y)
   12639 		}
   12640 	}
   12641 	{
   12642 		var x uint64 = 4294967296
   12643 		var y uint64 = 4294967296
   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 		if !(x >= y) {
   12660 			t.Errorf("!(%d >= %d)", x, y)
   12661 		}
   12662 	}
   12663 	{
   12664 		var x uint64 = 4294967296
   12665 		var y uint64 = 18446744073709551615
   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 		if x >= y {
   12682 			t.Errorf("%d >= %d", x, y)
   12683 		}
   12684 	}
   12685 	{
   12686 		var x uint64 = 18446744073709551615
   12687 		var y uint64 = 0
   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 		if !(x >= y) {
   12704 			t.Errorf("!(%d >= %d)", x, y)
   12705 		}
   12706 	}
   12707 	{
   12708 		var x uint64 = 18446744073709551615
   12709 		var y uint64 = 1
   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 		if !(x >= y) {
   12726 			t.Errorf("!(%d >= %d)", x, y)
   12727 		}
   12728 	}
   12729 	{
   12730 		var x uint64 = 18446744073709551615
   12731 		var y uint64 = 4294967296
   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 		if !(x >= y) {
   12748 			t.Errorf("!(%d >= %d)", x, y)
   12749 		}
   12750 	}
   12751 	{
   12752 		var x uint64 = 18446744073709551615
   12753 		var y uint64 = 18446744073709551615
   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 		if !(x >= y) {
   12770 			t.Errorf("!(%d >= %d)", x, y)
   12771 		}
   12772 	}
   12773 }
   12774 func TestConstFoldCompareint64(t *testing.T) {
   12775 	{
   12776 		var x int64 = -9223372036854775808
   12777 		var y int64 = -9223372036854775808
   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 		if !(x >= y) {
   12794 			t.Errorf("!(%d >= %d)", x, y)
   12795 		}
   12796 	}
   12797 	{
   12798 		var x int64 = -9223372036854775808
   12799 		var y int64 = -9223372036854775807
   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 		if x >= y {
   12816 			t.Errorf("%d >= %d", x, y)
   12817 		}
   12818 	}
   12819 	{
   12820 		var x int64 = -9223372036854775808
   12821 		var y int64 = -4294967296
   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 		if x >= y {
   12838 			t.Errorf("%d >= %d", x, y)
   12839 		}
   12840 	}
   12841 	{
   12842 		var x int64 = -9223372036854775808
   12843 		var y int64 = -1
   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 		if x >= y {
   12860 			t.Errorf("%d >= %d", x, y)
   12861 		}
   12862 	}
   12863 	{
   12864 		var x int64 = -9223372036854775808
   12865 		var y int64 = 0
   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 		if x >= y {
   12882 			t.Errorf("%d >= %d", x, y)
   12883 		}
   12884 	}
   12885 	{
   12886 		var x int64 = -9223372036854775808
   12887 		var y int64 = 1
   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 		if x >= y {
   12904 			t.Errorf("%d >= %d", x, y)
   12905 		}
   12906 	}
   12907 	{
   12908 		var x int64 = -9223372036854775808
   12909 		var y int64 = 4294967296
   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 		if x >= y {
   12926 			t.Errorf("%d >= %d", x, y)
   12927 		}
   12928 	}
   12929 	{
   12930 		var x int64 = -9223372036854775808
   12931 		var y int64 = 9223372036854775806
   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 		if x >= y {
   12948 			t.Errorf("%d >= %d", x, y)
   12949 		}
   12950 	}
   12951 	{
   12952 		var x int64 = -9223372036854775808
   12953 		var y int64 = 9223372036854775807
   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 		if x >= y {
   12970 			t.Errorf("%d >= %d", x, y)
   12971 		}
   12972 	}
   12973 	{
   12974 		var x int64 = -9223372036854775807
   12975 		var y int64 = -9223372036854775808
   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 		if !(x >= y) {
   12992 			t.Errorf("!(%d >= %d)", x, y)
   12993 		}
   12994 	}
   12995 	{
   12996 		var x int64 = -9223372036854775807
   12997 		var y int64 = -9223372036854775807
   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 		if !(x >= y) {
   13014 			t.Errorf("!(%d >= %d)", x, y)
   13015 		}
   13016 	}
   13017 	{
   13018 		var x int64 = -9223372036854775807
   13019 		var y int64 = -4294967296
   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 		if x >= y {
   13036 			t.Errorf("%d >= %d", x, y)
   13037 		}
   13038 	}
   13039 	{
   13040 		var x int64 = -9223372036854775807
   13041 		var y int64 = -1
   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 		if x >= y {
   13058 			t.Errorf("%d >= %d", x, y)
   13059 		}
   13060 	}
   13061 	{
   13062 		var x int64 = -9223372036854775807
   13063 		var y int64 = 0
   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 		if x >= y {
   13080 			t.Errorf("%d >= %d", x, y)
   13081 		}
   13082 	}
   13083 	{
   13084 		var x int64 = -9223372036854775807
   13085 		var y int64 = 1
   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 		if x >= y {
   13102 			t.Errorf("%d >= %d", x, y)
   13103 		}
   13104 	}
   13105 	{
   13106 		var x int64 = -9223372036854775807
   13107 		var y int64 = 4294967296
   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 		if x >= y {
   13124 			t.Errorf("%d >= %d", x, y)
   13125 		}
   13126 	}
   13127 	{
   13128 		var x int64 = -9223372036854775807
   13129 		var y int64 = 9223372036854775806
   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 		if x >= y {
   13146 			t.Errorf("%d >= %d", x, y)
   13147 		}
   13148 	}
   13149 	{
   13150 		var x int64 = -9223372036854775807
   13151 		var y int64 = 9223372036854775807
   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 		if x >= y {
   13168 			t.Errorf("%d >= %d", x, y)
   13169 		}
   13170 	}
   13171 	{
   13172 		var x int64 = -4294967296
   13173 		var y int64 = -9223372036854775808
   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 		if !(x >= y) {
   13190 			t.Errorf("!(%d >= %d)", x, y)
   13191 		}
   13192 	}
   13193 	{
   13194 		var x int64 = -4294967296
   13195 		var y int64 = -9223372036854775807
   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 		if !(x >= y) {
   13212 			t.Errorf("!(%d >= %d)", x, y)
   13213 		}
   13214 	}
   13215 	{
   13216 		var x int64 = -4294967296
   13217 		var y int64 = -4294967296
   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 		if !(x >= y) {
   13234 			t.Errorf("!(%d >= %d)", x, y)
   13235 		}
   13236 	}
   13237 	{
   13238 		var x int64 = -4294967296
   13239 		var y int64 = -1
   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 		if x >= y {
   13256 			t.Errorf("%d >= %d", x, y)
   13257 		}
   13258 	}
   13259 	{
   13260 		var x int64 = -4294967296
   13261 		var y int64 = 0
   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 		if x >= y {
   13278 			t.Errorf("%d >= %d", x, y)
   13279 		}
   13280 	}
   13281 	{
   13282 		var x int64 = -4294967296
   13283 		var y int64 = 1
   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 		if x >= y {
   13300 			t.Errorf("%d >= %d", x, y)
   13301 		}
   13302 	}
   13303 	{
   13304 		var x int64 = -4294967296
   13305 		var y int64 = 4294967296
   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 		if x >= y {
   13322 			t.Errorf("%d >= %d", x, y)
   13323 		}
   13324 	}
   13325 	{
   13326 		var x int64 = -4294967296
   13327 		var y int64 = 9223372036854775806
   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 		if x >= y {
   13344 			t.Errorf("%d >= %d", x, y)
   13345 		}
   13346 	}
   13347 	{
   13348 		var x int64 = -4294967296
   13349 		var y int64 = 9223372036854775807
   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 		if x >= y {
   13366 			t.Errorf("%d >= %d", x, y)
   13367 		}
   13368 	}
   13369 	{
   13370 		var x int64 = -1
   13371 		var y int64 = -9223372036854775808
   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 		if !(x >= y) {
   13388 			t.Errorf("!(%d >= %d)", x, y)
   13389 		}
   13390 	}
   13391 	{
   13392 		var x int64 = -1
   13393 		var y int64 = -9223372036854775807
   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 		if !(x >= y) {
   13410 			t.Errorf("!(%d >= %d)", x, y)
   13411 		}
   13412 	}
   13413 	{
   13414 		var x int64 = -1
   13415 		var y int64 = -4294967296
   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 		if !(x >= y) {
   13432 			t.Errorf("!(%d >= %d)", x, y)
   13433 		}
   13434 	}
   13435 	{
   13436 		var x int64 = -1
   13437 		var y int64 = -1
   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 		if !(x >= y) {
   13454 			t.Errorf("!(%d >= %d)", x, y)
   13455 		}
   13456 	}
   13457 	{
   13458 		var x int64 = -1
   13459 		var y int64 = 0
   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 		if x >= y {
   13476 			t.Errorf("%d >= %d", x, y)
   13477 		}
   13478 	}
   13479 	{
   13480 		var x int64 = -1
   13481 		var y int64 = 1
   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 		if x >= y {
   13498 			t.Errorf("%d >= %d", x, y)
   13499 		}
   13500 	}
   13501 	{
   13502 		var x int64 = -1
   13503 		var y int64 = 4294967296
   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 		if x >= y {
   13520 			t.Errorf("%d >= %d", x, y)
   13521 		}
   13522 	}
   13523 	{
   13524 		var x int64 = -1
   13525 		var y int64 = 9223372036854775806
   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 		if x >= y {
   13542 			t.Errorf("%d >= %d", x, y)
   13543 		}
   13544 	}
   13545 	{
   13546 		var x int64 = -1
   13547 		var y int64 = 9223372036854775807
   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 		if x >= y {
   13564 			t.Errorf("%d >= %d", x, y)
   13565 		}
   13566 	}
   13567 	{
   13568 		var x int64 = 0
   13569 		var y int64 = -9223372036854775808
   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 		if !(x >= y) {
   13586 			t.Errorf("!(%d >= %d)", x, y)
   13587 		}
   13588 	}
   13589 	{
   13590 		var x int64 = 0
   13591 		var y int64 = -9223372036854775807
   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 		if !(x >= y) {
   13608 			t.Errorf("!(%d >= %d)", x, y)
   13609 		}
   13610 	}
   13611 	{
   13612 		var x int64 = 0
   13613 		var y int64 = -4294967296
   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 		if !(x >= y) {
   13630 			t.Errorf("!(%d >= %d)", x, y)
   13631 		}
   13632 	}
   13633 	{
   13634 		var x int64 = 0
   13635 		var y int64 = -1
   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 		if !(x >= y) {
   13652 			t.Errorf("!(%d >= %d)", x, y)
   13653 		}
   13654 	}
   13655 	{
   13656 		var x int64 = 0
   13657 		var y int64 = 0
   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 		if !(x >= y) {
   13674 			t.Errorf("!(%d >= %d)", x, y)
   13675 		}
   13676 	}
   13677 	{
   13678 		var x int64 = 0
   13679 		var y int64 = 1
   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 		if x >= y {
   13696 			t.Errorf("%d >= %d", x, y)
   13697 		}
   13698 	}
   13699 	{
   13700 		var x int64 = 0
   13701 		var y int64 = 4294967296
   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 		if x >= y {
   13718 			t.Errorf("%d >= %d", x, y)
   13719 		}
   13720 	}
   13721 	{
   13722 		var x int64 = 0
   13723 		var y int64 = 9223372036854775806
   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 		if x >= y {
   13740 			t.Errorf("%d >= %d", x, y)
   13741 		}
   13742 	}
   13743 	{
   13744 		var x int64 = 0
   13745 		var y int64 = 9223372036854775807
   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 		if x >= y {
   13762 			t.Errorf("%d >= %d", x, y)
   13763 		}
   13764 	}
   13765 	{
   13766 		var x int64 = 1
   13767 		var y int64 = -9223372036854775808
   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 		if !(x >= y) {
   13784 			t.Errorf("!(%d >= %d)", x, y)
   13785 		}
   13786 	}
   13787 	{
   13788 		var x int64 = 1
   13789 		var y int64 = -9223372036854775807
   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 		if !(x >= y) {
   13806 			t.Errorf("!(%d >= %d)", x, y)
   13807 		}
   13808 	}
   13809 	{
   13810 		var x int64 = 1
   13811 		var y int64 = -4294967296
   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 		if !(x >= y) {
   13828 			t.Errorf("!(%d >= %d)", x, y)
   13829 		}
   13830 	}
   13831 	{
   13832 		var x int64 = 1
   13833 		var y int64 = -1
   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 		if !(x >= y) {
   13850 			t.Errorf("!(%d >= %d)", x, y)
   13851 		}
   13852 	}
   13853 	{
   13854 		var x int64 = 1
   13855 		var y int64 = 0
   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 		if !(x >= y) {
   13872 			t.Errorf("!(%d >= %d)", x, y)
   13873 		}
   13874 	}
   13875 	{
   13876 		var x int64 = 1
   13877 		var y int64 = 1
   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 		if !(x >= y) {
   13894 			t.Errorf("!(%d >= %d)", x, y)
   13895 		}
   13896 	}
   13897 	{
   13898 		var x int64 = 1
   13899 		var y int64 = 4294967296
   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 		if x >= y {
   13916 			t.Errorf("%d >= %d", x, y)
   13917 		}
   13918 	}
   13919 	{
   13920 		var x int64 = 1
   13921 		var y int64 = 9223372036854775806
   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 		if x >= y {
   13938 			t.Errorf("%d >= %d", x, y)
   13939 		}
   13940 	}
   13941 	{
   13942 		var x int64 = 1
   13943 		var y int64 = 9223372036854775807
   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 		if x >= y {
   13960 			t.Errorf("%d >= %d", x, y)
   13961 		}
   13962 	}
   13963 	{
   13964 		var x int64 = 4294967296
   13965 		var y int64 = -9223372036854775808
   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 		if !(x >= y) {
   13982 			t.Errorf("!(%d >= %d)", x, y)
   13983 		}
   13984 	}
   13985 	{
   13986 		var x int64 = 4294967296
   13987 		var y int64 = -9223372036854775807
   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 		if !(x >= y) {
   14004 			t.Errorf("!(%d >= %d)", x, y)
   14005 		}
   14006 	}
   14007 	{
   14008 		var x int64 = 4294967296
   14009 		var y int64 = -4294967296
   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 		if !(x >= y) {
   14026 			t.Errorf("!(%d >= %d)", x, y)
   14027 		}
   14028 	}
   14029 	{
   14030 		var x int64 = 4294967296
   14031 		var y int64 = -1
   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 		if !(x >= y) {
   14048 			t.Errorf("!(%d >= %d)", x, y)
   14049 		}
   14050 	}
   14051 	{
   14052 		var x int64 = 4294967296
   14053 		var y int64 = 0
   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 		if !(x >= y) {
   14070 			t.Errorf("!(%d >= %d)", x, y)
   14071 		}
   14072 	}
   14073 	{
   14074 		var x int64 = 4294967296
   14075 		var y int64 = 1
   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 		if !(x >= y) {
   14092 			t.Errorf("!(%d >= %d)", x, y)
   14093 		}
   14094 	}
   14095 	{
   14096 		var x int64 = 4294967296
   14097 		var y int64 = 4294967296
   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 		if !(x >= y) {
   14114 			t.Errorf("!(%d >= %d)", x, y)
   14115 		}
   14116 	}
   14117 	{
   14118 		var x int64 = 4294967296
   14119 		var y int64 = 9223372036854775806
   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 		if x >= y {
   14136 			t.Errorf("%d >= %d", x, y)
   14137 		}
   14138 	}
   14139 	{
   14140 		var x int64 = 4294967296
   14141 		var y int64 = 9223372036854775807
   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 		if x >= y {
   14158 			t.Errorf("%d >= %d", x, y)
   14159 		}
   14160 	}
   14161 	{
   14162 		var x int64 = 9223372036854775806
   14163 		var y int64 = -9223372036854775808
   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 		if !(x >= y) {
   14180 			t.Errorf("!(%d >= %d)", x, y)
   14181 		}
   14182 	}
   14183 	{
   14184 		var x int64 = 9223372036854775806
   14185 		var y int64 = -9223372036854775807
   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 		if !(x >= y) {
   14202 			t.Errorf("!(%d >= %d)", x, y)
   14203 		}
   14204 	}
   14205 	{
   14206 		var x int64 = 9223372036854775806
   14207 		var y int64 = -4294967296
   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 		if !(x >= y) {
   14224 			t.Errorf("!(%d >= %d)", x, y)
   14225 		}
   14226 	}
   14227 	{
   14228 		var x int64 = 9223372036854775806
   14229 		var y int64 = -1
   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 		if !(x >= y) {
   14246 			t.Errorf("!(%d >= %d)", x, y)
   14247 		}
   14248 	}
   14249 	{
   14250 		var x int64 = 9223372036854775806
   14251 		var y int64 = 0
   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 		if !(x >= y) {
   14268 			t.Errorf("!(%d >= %d)", x, y)
   14269 		}
   14270 	}
   14271 	{
   14272 		var x int64 = 9223372036854775806
   14273 		var y int64 = 1
   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 		if !(x >= y) {
   14290 			t.Errorf("!(%d >= %d)", x, y)
   14291 		}
   14292 	}
   14293 	{
   14294 		var x int64 = 9223372036854775806
   14295 		var y int64 = 4294967296
   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 		if !(x >= y) {
   14312 			t.Errorf("!(%d >= %d)", x, y)
   14313 		}
   14314 	}
   14315 	{
   14316 		var x int64 = 9223372036854775806
   14317 		var y int64 = 9223372036854775806
   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 		if !(x >= y) {
   14334 			t.Errorf("!(%d >= %d)", x, y)
   14335 		}
   14336 	}
   14337 	{
   14338 		var x int64 = 9223372036854775806
   14339 		var y int64 = 9223372036854775807
   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 		if x >= y {
   14356 			t.Errorf("%d >= %d", x, y)
   14357 		}
   14358 	}
   14359 	{
   14360 		var x int64 = 9223372036854775807
   14361 		var y int64 = -9223372036854775808
   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 		if !(x >= y) {
   14378 			t.Errorf("!(%d >= %d)", x, y)
   14379 		}
   14380 	}
   14381 	{
   14382 		var x int64 = 9223372036854775807
   14383 		var y int64 = -9223372036854775807
   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 		if !(x >= y) {
   14400 			t.Errorf("!(%d >= %d)", x, y)
   14401 		}
   14402 	}
   14403 	{
   14404 		var x int64 = 9223372036854775807
   14405 		var y int64 = -4294967296
   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 		if !(x >= y) {
   14422 			t.Errorf("!(%d >= %d)", x, y)
   14423 		}
   14424 	}
   14425 	{
   14426 		var x int64 = 9223372036854775807
   14427 		var y int64 = -1
   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 		if !(x >= y) {
   14444 			t.Errorf("!(%d >= %d)", x, y)
   14445 		}
   14446 	}
   14447 	{
   14448 		var x int64 = 9223372036854775807
   14449 		var y int64 = 0
   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 		if !(x >= y) {
   14466 			t.Errorf("!(%d >= %d)", x, y)
   14467 		}
   14468 	}
   14469 	{
   14470 		var x int64 = 9223372036854775807
   14471 		var y int64 = 1
   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 		if !(x >= y) {
   14488 			t.Errorf("!(%d >= %d)", x, y)
   14489 		}
   14490 	}
   14491 	{
   14492 		var x int64 = 9223372036854775807
   14493 		var y int64 = 4294967296
   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 		if !(x >= y) {
   14510 			t.Errorf("!(%d >= %d)", x, y)
   14511 		}
   14512 	}
   14513 	{
   14514 		var x int64 = 9223372036854775807
   14515 		var y int64 = 9223372036854775806
   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 		if !(x >= y) {
   14532 			t.Errorf("!(%d >= %d)", x, y)
   14533 		}
   14534 	}
   14535 	{
   14536 		var x int64 = 9223372036854775807
   14537 		var y int64 = 9223372036854775807
   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 		if !(x >= y) {
   14554 			t.Errorf("!(%d >= %d)", x, y)
   14555 		}
   14556 	}
   14557 }
   14558 func TestConstFoldCompareuint32(t *testing.T) {
   14559 	{
   14560 		var x uint32 = 0
   14561 		var y uint32 = 0
   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 		if !(x >= y) {
   14578 			t.Errorf("!(%d >= %d)", x, y)
   14579 		}
   14580 	}
   14581 	{
   14582 		var x uint32 = 0
   14583 		var y uint32 = 1
   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 		if x >= y {
   14600 			t.Errorf("%d >= %d", x, y)
   14601 		}
   14602 	}
   14603 	{
   14604 		var x uint32 = 0
   14605 		var y uint32 = 4294967295
   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 		if x >= y {
   14622 			t.Errorf("%d >= %d", x, y)
   14623 		}
   14624 	}
   14625 	{
   14626 		var x uint32 = 1
   14627 		var y uint32 = 0
   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 		if !(x >= y) {
   14644 			t.Errorf("!(%d >= %d)", x, y)
   14645 		}
   14646 	}
   14647 	{
   14648 		var x uint32 = 1
   14649 		var y uint32 = 1
   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 		if !(x >= y) {
   14666 			t.Errorf("!(%d >= %d)", x, y)
   14667 		}
   14668 	}
   14669 	{
   14670 		var x uint32 = 1
   14671 		var y uint32 = 4294967295
   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 		if x >= y {
   14688 			t.Errorf("%d >= %d", x, y)
   14689 		}
   14690 	}
   14691 	{
   14692 		var x uint32 = 4294967295
   14693 		var y uint32 = 0
   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 		if !(x >= y) {
   14710 			t.Errorf("!(%d >= %d)", x, y)
   14711 		}
   14712 	}
   14713 	{
   14714 		var x uint32 = 4294967295
   14715 		var y uint32 = 1
   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 		if !(x >= y) {
   14732 			t.Errorf("!(%d >= %d)", x, y)
   14733 		}
   14734 	}
   14735 	{
   14736 		var x uint32 = 4294967295
   14737 		var y uint32 = 4294967295
   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 		if !(x >= y) {
   14754 			t.Errorf("!(%d >= %d)", x, y)
   14755 		}
   14756 	}
   14757 }
   14758 func TestConstFoldCompareint32(t *testing.T) {
   14759 	{
   14760 		var x int32 = -2147483648
   14761 		var y int32 = -2147483648
   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 		if !(x >= y) {
   14778 			t.Errorf("!(%d >= %d)", x, y)
   14779 		}
   14780 	}
   14781 	{
   14782 		var x int32 = -2147483648
   14783 		var y int32 = -2147483647
   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 		if x >= y {
   14800 			t.Errorf("%d >= %d", x, y)
   14801 		}
   14802 	}
   14803 	{
   14804 		var x int32 = -2147483648
   14805 		var y int32 = -1
   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 		if x >= y {
   14822 			t.Errorf("%d >= %d", x, y)
   14823 		}
   14824 	}
   14825 	{
   14826 		var x int32 = -2147483648
   14827 		var y int32 = 0
   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 		if x >= y {
   14844 			t.Errorf("%d >= %d", x, y)
   14845 		}
   14846 	}
   14847 	{
   14848 		var x int32 = -2147483648
   14849 		var y int32 = 1
   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 		if x >= y {
   14866 			t.Errorf("%d >= %d", x, y)
   14867 		}
   14868 	}
   14869 	{
   14870 		var x int32 = -2147483648
   14871 		var y int32 = 2147483647
   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 		if x >= y {
   14888 			t.Errorf("%d >= %d", x, y)
   14889 		}
   14890 	}
   14891 	{
   14892 		var x int32 = -2147483647
   14893 		var y int32 = -2147483648
   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 		if !(x >= y) {
   14910 			t.Errorf("!(%d >= %d)", x, y)
   14911 		}
   14912 	}
   14913 	{
   14914 		var x int32 = -2147483647
   14915 		var y int32 = -2147483647
   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 		if !(x >= y) {
   14932 			t.Errorf("!(%d >= %d)", x, y)
   14933 		}
   14934 	}
   14935 	{
   14936 		var x int32 = -2147483647
   14937 		var y int32 = -1
   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 		if x >= y {
   14954 			t.Errorf("%d >= %d", x, y)
   14955 		}
   14956 	}
   14957 	{
   14958 		var x int32 = -2147483647
   14959 		var y int32 = 0
   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 		if x >= y {
   14976 			t.Errorf("%d >= %d", x, y)
   14977 		}
   14978 	}
   14979 	{
   14980 		var x int32 = -2147483647
   14981 		var y int32 = 1
   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 		if x >= y {
   14998 			t.Errorf("%d >= %d", x, y)
   14999 		}
   15000 	}
   15001 	{
   15002 		var x int32 = -2147483647
   15003 		var y int32 = 2147483647
   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 		if x >= y {
   15020 			t.Errorf("%d >= %d", x, y)
   15021 		}
   15022 	}
   15023 	{
   15024 		var x int32 = -1
   15025 		var y int32 = -2147483648
   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 		if !(x >= y) {
   15042 			t.Errorf("!(%d >= %d)", x, y)
   15043 		}
   15044 	}
   15045 	{
   15046 		var x int32 = -1
   15047 		var y int32 = -2147483647
   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 		if !(x >= y) {
   15064 			t.Errorf("!(%d >= %d)", x, y)
   15065 		}
   15066 	}
   15067 	{
   15068 		var x int32 = -1
   15069 		var y int32 = -1
   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 		if !(x >= y) {
   15086 			t.Errorf("!(%d >= %d)", x, y)
   15087 		}
   15088 	}
   15089 	{
   15090 		var x int32 = -1
   15091 		var y int32 = 0
   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 		if x >= y {
   15108 			t.Errorf("%d >= %d", x, y)
   15109 		}
   15110 	}
   15111 	{
   15112 		var x int32 = -1
   15113 		var y int32 = 1
   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 		if x >= y {
   15130 			t.Errorf("%d >= %d", x, y)
   15131 		}
   15132 	}
   15133 	{
   15134 		var x int32 = -1
   15135 		var y int32 = 2147483647
   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 		if x >= y {
   15152 			t.Errorf("%d >= %d", x, y)
   15153 		}
   15154 	}
   15155 	{
   15156 		var x int32 = 0
   15157 		var y int32 = -2147483648
   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 		if !(x >= y) {
   15174 			t.Errorf("!(%d >= %d)", x, y)
   15175 		}
   15176 	}
   15177 	{
   15178 		var x int32 = 0
   15179 		var y int32 = -2147483647
   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 		if !(x >= y) {
   15196 			t.Errorf("!(%d >= %d)", x, y)
   15197 		}
   15198 	}
   15199 	{
   15200 		var x int32 = 0
   15201 		var y int32 = -1
   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 		if !(x >= y) {
   15218 			t.Errorf("!(%d >= %d)", x, y)
   15219 		}
   15220 	}
   15221 	{
   15222 		var x int32 = 0
   15223 		var y int32 = 0
   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 		if !(x >= y) {
   15240 			t.Errorf("!(%d >= %d)", x, y)
   15241 		}
   15242 	}
   15243 	{
   15244 		var x int32 = 0
   15245 		var y int32 = 1
   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 		if x >= y {
   15262 			t.Errorf("%d >= %d", x, y)
   15263 		}
   15264 	}
   15265 	{
   15266 		var x int32 = 0
   15267 		var y int32 = 2147483647
   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 		if x >= y {
   15284 			t.Errorf("%d >= %d", x, y)
   15285 		}
   15286 	}
   15287 	{
   15288 		var x int32 = 1
   15289 		var y int32 = -2147483648
   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 		if !(x >= y) {
   15306 			t.Errorf("!(%d >= %d)", x, y)
   15307 		}
   15308 	}
   15309 	{
   15310 		var x int32 = 1
   15311 		var y int32 = -2147483647
   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 		if !(x >= y) {
   15328 			t.Errorf("!(%d >= %d)", x, y)
   15329 		}
   15330 	}
   15331 	{
   15332 		var x int32 = 1
   15333 		var y int32 = -1
   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 		if !(x >= y) {
   15350 			t.Errorf("!(%d >= %d)", x, y)
   15351 		}
   15352 	}
   15353 	{
   15354 		var x int32 = 1
   15355 		var y int32 = 0
   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 		if !(x >= y) {
   15372 			t.Errorf("!(%d >= %d)", x, y)
   15373 		}
   15374 	}
   15375 	{
   15376 		var x int32 = 1
   15377 		var y int32 = 1
   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 		if !(x >= y) {
   15394 			t.Errorf("!(%d >= %d)", x, y)
   15395 		}
   15396 	}
   15397 	{
   15398 		var x int32 = 1
   15399 		var y int32 = 2147483647
   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 		if x >= y {
   15416 			t.Errorf("%d >= %d", x, y)
   15417 		}
   15418 	}
   15419 	{
   15420 		var x int32 = 2147483647
   15421 		var y int32 = -2147483648
   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 		if !(x >= y) {
   15438 			t.Errorf("!(%d >= %d)", x, y)
   15439 		}
   15440 	}
   15441 	{
   15442 		var x int32 = 2147483647
   15443 		var y int32 = -2147483647
   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 		if !(x >= y) {
   15460 			t.Errorf("!(%d >= %d)", x, y)
   15461 		}
   15462 	}
   15463 	{
   15464 		var x int32 = 2147483647
   15465 		var y int32 = -1
   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 		if !(x >= y) {
   15482 			t.Errorf("!(%d >= %d)", x, y)
   15483 		}
   15484 	}
   15485 	{
   15486 		var x int32 = 2147483647
   15487 		var y int32 = 0
   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 		if !(x >= y) {
   15504 			t.Errorf("!(%d >= %d)", x, y)
   15505 		}
   15506 	}
   15507 	{
   15508 		var x int32 = 2147483647
   15509 		var y int32 = 1
   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 		if !(x >= y) {
   15526 			t.Errorf("!(%d >= %d)", x, y)
   15527 		}
   15528 	}
   15529 	{
   15530 		var x int32 = 2147483647
   15531 		var y int32 = 2147483647
   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 		if !(x >= y) {
   15548 			t.Errorf("!(%d >= %d)", x, y)
   15549 		}
   15550 	}
   15551 }
   15552 func TestConstFoldCompareuint16(t *testing.T) {
   15553 	{
   15554 		var x uint16 = 0
   15555 		var y uint16 = 0
   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 		if !(x >= y) {
   15572 			t.Errorf("!(%d >= %d)", x, y)
   15573 		}
   15574 	}
   15575 	{
   15576 		var x uint16 = 0
   15577 		var y uint16 = 1
   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 		if x >= y {
   15594 			t.Errorf("%d >= %d", x, y)
   15595 		}
   15596 	}
   15597 	{
   15598 		var x uint16 = 0
   15599 		var y uint16 = 65535
   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 		if x >= y {
   15616 			t.Errorf("%d >= %d", x, y)
   15617 		}
   15618 	}
   15619 	{
   15620 		var x uint16 = 1
   15621 		var y uint16 = 0
   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 		if !(x >= y) {
   15638 			t.Errorf("!(%d >= %d)", x, y)
   15639 		}
   15640 	}
   15641 	{
   15642 		var x uint16 = 1
   15643 		var y uint16 = 1
   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 		if !(x >= y) {
   15660 			t.Errorf("!(%d >= %d)", x, y)
   15661 		}
   15662 	}
   15663 	{
   15664 		var x uint16 = 1
   15665 		var y uint16 = 65535
   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 		if x >= y {
   15682 			t.Errorf("%d >= %d", x, y)
   15683 		}
   15684 	}
   15685 	{
   15686 		var x uint16 = 65535
   15687 		var y uint16 = 0
   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 		if !(x >= y) {
   15704 			t.Errorf("!(%d >= %d)", x, y)
   15705 		}
   15706 	}
   15707 	{
   15708 		var x uint16 = 65535
   15709 		var y uint16 = 1
   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 		if !(x >= y) {
   15726 			t.Errorf("!(%d >= %d)", x, y)
   15727 		}
   15728 	}
   15729 	{
   15730 		var x uint16 = 65535
   15731 		var y uint16 = 65535
   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 		if !(x >= y) {
   15748 			t.Errorf("!(%d >= %d)", x, y)
   15749 		}
   15750 	}
   15751 }
   15752 func TestConstFoldCompareint16(t *testing.T) {
   15753 	{
   15754 		var x int16 = -32768
   15755 		var y int16 = -32768
   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 		if !(x >= y) {
   15772 			t.Errorf("!(%d >= %d)", x, y)
   15773 		}
   15774 	}
   15775 	{
   15776 		var x int16 = -32768
   15777 		var y int16 = -32767
   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 		if x >= y {
   15794 			t.Errorf("%d >= %d", x, y)
   15795 		}
   15796 	}
   15797 	{
   15798 		var x int16 = -32768
   15799 		var y int16 = -1
   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 		if x >= y {
   15816 			t.Errorf("%d >= %d", x, y)
   15817 		}
   15818 	}
   15819 	{
   15820 		var x int16 = -32768
   15821 		var y int16 = 0
   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 		if x >= y {
   15838 			t.Errorf("%d >= %d", x, y)
   15839 		}
   15840 	}
   15841 	{
   15842 		var x int16 = -32768
   15843 		var y int16 = 1
   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 		if x >= y {
   15860 			t.Errorf("%d >= %d", x, y)
   15861 		}
   15862 	}
   15863 	{
   15864 		var x int16 = -32768
   15865 		var y int16 = 32766
   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 		if x >= y {
   15882 			t.Errorf("%d >= %d", x, y)
   15883 		}
   15884 	}
   15885 	{
   15886 		var x int16 = -32768
   15887 		var y int16 = 32767
   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 		if x >= y {
   15904 			t.Errorf("%d >= %d", x, y)
   15905 		}
   15906 	}
   15907 	{
   15908 		var x int16 = -32767
   15909 		var y int16 = -32768
   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 		if !(x >= y) {
   15926 			t.Errorf("!(%d >= %d)", x, y)
   15927 		}
   15928 	}
   15929 	{
   15930 		var x int16 = -32767
   15931 		var y int16 = -32767
   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 		if !(x >= y) {
   15948 			t.Errorf("!(%d >= %d)", x, y)
   15949 		}
   15950 	}
   15951 	{
   15952 		var x int16 = -32767
   15953 		var y int16 = -1
   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 		if x >= y {
   15970 			t.Errorf("%d >= %d", x, y)
   15971 		}
   15972 	}
   15973 	{
   15974 		var x int16 = -32767
   15975 		var y int16 = 0
   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 		if x >= y {
   15992 			t.Errorf("%d >= %d", x, y)
   15993 		}
   15994 	}
   15995 	{
   15996 		var x int16 = -32767
   15997 		var y int16 = 1
   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 		if x >= y {
   16014 			t.Errorf("%d >= %d", x, y)
   16015 		}
   16016 	}
   16017 	{
   16018 		var x int16 = -32767
   16019 		var y int16 = 32766
   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 		if x >= y {
   16036 			t.Errorf("%d >= %d", x, y)
   16037 		}
   16038 	}
   16039 	{
   16040 		var x int16 = -32767
   16041 		var y int16 = 32767
   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 		if x >= y {
   16058 			t.Errorf("%d >= %d", x, y)
   16059 		}
   16060 	}
   16061 	{
   16062 		var x int16 = -1
   16063 		var y int16 = -32768
   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 		if !(x >= y) {
   16080 			t.Errorf("!(%d >= %d)", x, y)
   16081 		}
   16082 	}
   16083 	{
   16084 		var x int16 = -1
   16085 		var y int16 = -32767
   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 		if !(x >= y) {
   16102 			t.Errorf("!(%d >= %d)", x, y)
   16103 		}
   16104 	}
   16105 	{
   16106 		var x int16 = -1
   16107 		var y int16 = -1
   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 		if !(x >= y) {
   16124 			t.Errorf("!(%d >= %d)", x, y)
   16125 		}
   16126 	}
   16127 	{
   16128 		var x int16 = -1
   16129 		var y int16 = 0
   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 		if x >= y {
   16146 			t.Errorf("%d >= %d", x, y)
   16147 		}
   16148 	}
   16149 	{
   16150 		var x int16 = -1
   16151 		var y int16 = 1
   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 		if x >= y {
   16168 			t.Errorf("%d >= %d", x, y)
   16169 		}
   16170 	}
   16171 	{
   16172 		var x int16 = -1
   16173 		var y int16 = 32766
   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 		if x >= y {
   16190 			t.Errorf("%d >= %d", x, y)
   16191 		}
   16192 	}
   16193 	{
   16194 		var x int16 = -1
   16195 		var y int16 = 32767
   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 		if x >= y {
   16212 			t.Errorf("%d >= %d", x, y)
   16213 		}
   16214 	}
   16215 	{
   16216 		var x int16 = 0
   16217 		var y int16 = -32768
   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 		if !(x >= y) {
   16234 			t.Errorf("!(%d >= %d)", x, y)
   16235 		}
   16236 	}
   16237 	{
   16238 		var x int16 = 0
   16239 		var y int16 = -32767
   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 		if !(x >= y) {
   16256 			t.Errorf("!(%d >= %d)", x, y)
   16257 		}
   16258 	}
   16259 	{
   16260 		var x int16 = 0
   16261 		var y int16 = -1
   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 		if !(x >= y) {
   16278 			t.Errorf("!(%d >= %d)", x, y)
   16279 		}
   16280 	}
   16281 	{
   16282 		var x int16 = 0
   16283 		var y int16 = 0
   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 		if !(x >= y) {
   16300 			t.Errorf("!(%d >= %d)", x, y)
   16301 		}
   16302 	}
   16303 	{
   16304 		var x int16 = 0
   16305 		var y int16 = 1
   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 		if x >= y {
   16322 			t.Errorf("%d >= %d", x, y)
   16323 		}
   16324 	}
   16325 	{
   16326 		var x int16 = 0
   16327 		var y int16 = 32766
   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 		if x >= y {
   16344 			t.Errorf("%d >= %d", x, y)
   16345 		}
   16346 	}
   16347 	{
   16348 		var x int16 = 0
   16349 		var y int16 = 32767
   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 		if x >= y {
   16366 			t.Errorf("%d >= %d", x, y)
   16367 		}
   16368 	}
   16369 	{
   16370 		var x int16 = 1
   16371 		var y int16 = -32768
   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 		if !(x >= y) {
   16388 			t.Errorf("!(%d >= %d)", x, y)
   16389 		}
   16390 	}
   16391 	{
   16392 		var x int16 = 1
   16393 		var y int16 = -32767
   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 		if !(x >= y) {
   16410 			t.Errorf("!(%d >= %d)", x, y)
   16411 		}
   16412 	}
   16413 	{
   16414 		var x int16 = 1
   16415 		var y int16 = -1
   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 		if !(x >= y) {
   16432 			t.Errorf("!(%d >= %d)", x, y)
   16433 		}
   16434 	}
   16435 	{
   16436 		var x int16 = 1
   16437 		var y int16 = 0
   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 		if !(x >= y) {
   16454 			t.Errorf("!(%d >= %d)", x, y)
   16455 		}
   16456 	}
   16457 	{
   16458 		var x int16 = 1
   16459 		var y int16 = 1
   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 		if !(x >= y) {
   16476 			t.Errorf("!(%d >= %d)", x, y)
   16477 		}
   16478 	}
   16479 	{
   16480 		var x int16 = 1
   16481 		var y int16 = 32766
   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 		if x >= y {
   16498 			t.Errorf("%d >= %d", x, y)
   16499 		}
   16500 	}
   16501 	{
   16502 		var x int16 = 1
   16503 		var y int16 = 32767
   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 		if x >= y {
   16520 			t.Errorf("%d >= %d", x, y)
   16521 		}
   16522 	}
   16523 	{
   16524 		var x int16 = 32766
   16525 		var y int16 = -32768
   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 		if !(x >= y) {
   16542 			t.Errorf("!(%d >= %d)", x, y)
   16543 		}
   16544 	}
   16545 	{
   16546 		var x int16 = 32766
   16547 		var y int16 = -32767
   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 		if !(x >= y) {
   16564 			t.Errorf("!(%d >= %d)", x, y)
   16565 		}
   16566 	}
   16567 	{
   16568 		var x int16 = 32766
   16569 		var y int16 = -1
   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 		if !(x >= y) {
   16586 			t.Errorf("!(%d >= %d)", x, y)
   16587 		}
   16588 	}
   16589 	{
   16590 		var x int16 = 32766
   16591 		var y int16 = 0
   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 		if !(x >= y) {
   16608 			t.Errorf("!(%d >= %d)", x, y)
   16609 		}
   16610 	}
   16611 	{
   16612 		var x int16 = 32766
   16613 		var y int16 = 1
   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 		if !(x >= y) {
   16630 			t.Errorf("!(%d >= %d)", x, y)
   16631 		}
   16632 	}
   16633 	{
   16634 		var x int16 = 32766
   16635 		var y int16 = 32766
   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 		if !(x >= y) {
   16652 			t.Errorf("!(%d >= %d)", x, y)
   16653 		}
   16654 	}
   16655 	{
   16656 		var x int16 = 32766
   16657 		var y int16 = 32767
   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 		if x >= y {
   16674 			t.Errorf("%d >= %d", x, y)
   16675 		}
   16676 	}
   16677 	{
   16678 		var x int16 = 32767
   16679 		var y int16 = -32768
   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 		if !(x >= y) {
   16696 			t.Errorf("!(%d >= %d)", x, y)
   16697 		}
   16698 	}
   16699 	{
   16700 		var x int16 = 32767
   16701 		var y int16 = -32767
   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 		if !(x >= y) {
   16718 			t.Errorf("!(%d >= %d)", x, y)
   16719 		}
   16720 	}
   16721 	{
   16722 		var x int16 = 32767
   16723 		var y int16 = -1
   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 		if !(x >= y) {
   16740 			t.Errorf("!(%d >= %d)", x, y)
   16741 		}
   16742 	}
   16743 	{
   16744 		var x int16 = 32767
   16745 		var y int16 = 0
   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 		if !(x >= y) {
   16762 			t.Errorf("!(%d >= %d)", x, y)
   16763 		}
   16764 	}
   16765 	{
   16766 		var x int16 = 32767
   16767 		var y int16 = 1
   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 		if !(x >= y) {
   16784 			t.Errorf("!(%d >= %d)", x, y)
   16785 		}
   16786 	}
   16787 	{
   16788 		var x int16 = 32767
   16789 		var y int16 = 32766
   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 		if !(x >= y) {
   16806 			t.Errorf("!(%d >= %d)", x, y)
   16807 		}
   16808 	}
   16809 	{
   16810 		var x int16 = 32767
   16811 		var y int16 = 32767
   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 		if !(x >= y) {
   16828 			t.Errorf("!(%d >= %d)", x, y)
   16829 		}
   16830 	}
   16831 }
   16832 func TestConstFoldCompareuint8(t *testing.T) {
   16833 	{
   16834 		var x uint8 = 0
   16835 		var y uint8 = 0
   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 		if !(x >= y) {
   16852 			t.Errorf("!(%d >= %d)", x, y)
   16853 		}
   16854 	}
   16855 	{
   16856 		var x uint8 = 0
   16857 		var y uint8 = 1
   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 		if x >= y {
   16874 			t.Errorf("%d >= %d", x, y)
   16875 		}
   16876 	}
   16877 	{
   16878 		var x uint8 = 0
   16879 		var y uint8 = 255
   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 		if x >= y {
   16896 			t.Errorf("%d >= %d", x, y)
   16897 		}
   16898 	}
   16899 	{
   16900 		var x uint8 = 1
   16901 		var y uint8 = 0
   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 		if !(x >= y) {
   16918 			t.Errorf("!(%d >= %d)", x, y)
   16919 		}
   16920 	}
   16921 	{
   16922 		var x uint8 = 1
   16923 		var y uint8 = 1
   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 		if !(x >= y) {
   16940 			t.Errorf("!(%d >= %d)", x, y)
   16941 		}
   16942 	}
   16943 	{
   16944 		var x uint8 = 1
   16945 		var y uint8 = 255
   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 		if x >= y {
   16962 			t.Errorf("%d >= %d", x, y)
   16963 		}
   16964 	}
   16965 	{
   16966 		var x uint8 = 255
   16967 		var y uint8 = 0
   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 		if !(x >= y) {
   16984 			t.Errorf("!(%d >= %d)", x, y)
   16985 		}
   16986 	}
   16987 	{
   16988 		var x uint8 = 255
   16989 		var y uint8 = 1
   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 		if !(x >= y) {
   17006 			t.Errorf("!(%d >= %d)", x, y)
   17007 		}
   17008 	}
   17009 	{
   17010 		var x uint8 = 255
   17011 		var y uint8 = 255
   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 		if !(x >= y) {
   17028 			t.Errorf("!(%d >= %d)", x, y)
   17029 		}
   17030 	}
   17031 }
   17032 func TestConstFoldCompareint8(t *testing.T) {
   17033 	{
   17034 		var x int8 = -128
   17035 		var y int8 = -128
   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 		if !(x >= y) {
   17052 			t.Errorf("!(%d >= %d)", x, y)
   17053 		}
   17054 	}
   17055 	{
   17056 		var x int8 = -128
   17057 		var y int8 = -127
   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 		if x >= y {
   17074 			t.Errorf("%d >= %d", x, y)
   17075 		}
   17076 	}
   17077 	{
   17078 		var x int8 = -128
   17079 		var y int8 = -1
   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 		if x >= y {
   17096 			t.Errorf("%d >= %d", x, y)
   17097 		}
   17098 	}
   17099 	{
   17100 		var x int8 = -128
   17101 		var y int8 = 0
   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 		if x >= y {
   17118 			t.Errorf("%d >= %d", x, y)
   17119 		}
   17120 	}
   17121 	{
   17122 		var x int8 = -128
   17123 		var y int8 = 1
   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 		if x >= y {
   17140 			t.Errorf("%d >= %d", x, y)
   17141 		}
   17142 	}
   17143 	{
   17144 		var x int8 = -128
   17145 		var y int8 = 126
   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 		if x >= y {
   17162 			t.Errorf("%d >= %d", x, y)
   17163 		}
   17164 	}
   17165 	{
   17166 		var x int8 = -128
   17167 		var y int8 = 127
   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 		if x >= y {
   17184 			t.Errorf("%d >= %d", x, y)
   17185 		}
   17186 	}
   17187 	{
   17188 		var x int8 = -127
   17189 		var y int8 = -128
   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 		if !(x >= y) {
   17206 			t.Errorf("!(%d >= %d)", x, y)
   17207 		}
   17208 	}
   17209 	{
   17210 		var x int8 = -127
   17211 		var y int8 = -127
   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 		if !(x >= y) {
   17228 			t.Errorf("!(%d >= %d)", x, y)
   17229 		}
   17230 	}
   17231 	{
   17232 		var x int8 = -127
   17233 		var y int8 = -1
   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 		if x >= y {
   17250 			t.Errorf("%d >= %d", x, y)
   17251 		}
   17252 	}
   17253 	{
   17254 		var x int8 = -127
   17255 		var y int8 = 0
   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 		if x >= y {
   17272 			t.Errorf("%d >= %d", x, y)
   17273 		}
   17274 	}
   17275 	{
   17276 		var x int8 = -127
   17277 		var y int8 = 1
   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 		if x >= y {
   17294 			t.Errorf("%d >= %d", x, y)
   17295 		}
   17296 	}
   17297 	{
   17298 		var x int8 = -127
   17299 		var y int8 = 126
   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 		if x >= y {
   17316 			t.Errorf("%d >= %d", x, y)
   17317 		}
   17318 	}
   17319 	{
   17320 		var x int8 = -127
   17321 		var y int8 = 127
   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 		if x >= y {
   17338 			t.Errorf("%d >= %d", x, y)
   17339 		}
   17340 	}
   17341 	{
   17342 		var x int8 = -1
   17343 		var y int8 = -128
   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 		if !(x >= y) {
   17360 			t.Errorf("!(%d >= %d)", x, y)
   17361 		}
   17362 	}
   17363 	{
   17364 		var x int8 = -1
   17365 		var y int8 = -127
   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 		if !(x >= y) {
   17382 			t.Errorf("!(%d >= %d)", x, y)
   17383 		}
   17384 	}
   17385 	{
   17386 		var x int8 = -1
   17387 		var y int8 = -1
   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 		if !(x >= y) {
   17404 			t.Errorf("!(%d >= %d)", x, y)
   17405 		}
   17406 	}
   17407 	{
   17408 		var x int8 = -1
   17409 		var y int8 = 0
   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 		if x >= y {
   17426 			t.Errorf("%d >= %d", x, y)
   17427 		}
   17428 	}
   17429 	{
   17430 		var x int8 = -1
   17431 		var y int8 = 1
   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 		if x >= y {
   17448 			t.Errorf("%d >= %d", x, y)
   17449 		}
   17450 	}
   17451 	{
   17452 		var x int8 = -1
   17453 		var y int8 = 126
   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 		if x >= y {
   17470 			t.Errorf("%d >= %d", x, y)
   17471 		}
   17472 	}
   17473 	{
   17474 		var x int8 = -1
   17475 		var y int8 = 127
   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 		if x >= y {
   17492 			t.Errorf("%d >= %d", x, y)
   17493 		}
   17494 	}
   17495 	{
   17496 		var x int8 = 0
   17497 		var y int8 = -128
   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 		if !(x >= y) {
   17514 			t.Errorf("!(%d >= %d)", x, y)
   17515 		}
   17516 	}
   17517 	{
   17518 		var x int8 = 0
   17519 		var y int8 = -127
   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 		if !(x >= y) {
   17536 			t.Errorf("!(%d >= %d)", x, y)
   17537 		}
   17538 	}
   17539 	{
   17540 		var x int8 = 0
   17541 		var y int8 = -1
   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 		if !(x >= y) {
   17558 			t.Errorf("!(%d >= %d)", x, y)
   17559 		}
   17560 	}
   17561 	{
   17562 		var x int8 = 0
   17563 		var y int8 = 0
   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 		if !(x >= y) {
   17580 			t.Errorf("!(%d >= %d)", x, y)
   17581 		}
   17582 	}
   17583 	{
   17584 		var x int8 = 0
   17585 		var y int8 = 1
   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 		if x >= y {
   17602 			t.Errorf("%d >= %d", x, y)
   17603 		}
   17604 	}
   17605 	{
   17606 		var x int8 = 0
   17607 		var y int8 = 126
   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 		if x >= y {
   17624 			t.Errorf("%d >= %d", x, y)
   17625 		}
   17626 	}
   17627 	{
   17628 		var x int8 = 0
   17629 		var y int8 = 127
   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 		if x >= y {
   17646 			t.Errorf("%d >= %d", x, y)
   17647 		}
   17648 	}
   17649 	{
   17650 		var x int8 = 1
   17651 		var y int8 = -128
   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 		if !(x >= y) {
   17668 			t.Errorf("!(%d >= %d)", x, y)
   17669 		}
   17670 	}
   17671 	{
   17672 		var x int8 = 1
   17673 		var y int8 = -127
   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 		if !(x >= y) {
   17690 			t.Errorf("!(%d >= %d)", x, y)
   17691 		}
   17692 	}
   17693 	{
   17694 		var x int8 = 1
   17695 		var y int8 = -1
   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 		if !(x >= y) {
   17712 			t.Errorf("!(%d >= %d)", x, y)
   17713 		}
   17714 	}
   17715 	{
   17716 		var x int8 = 1
   17717 		var y int8 = 0
   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 		if !(x >= y) {
   17734 			t.Errorf("!(%d >= %d)", x, y)
   17735 		}
   17736 	}
   17737 	{
   17738 		var x int8 = 1
   17739 		var y int8 = 1
   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 		if !(x >= y) {
   17756 			t.Errorf("!(%d >= %d)", x, y)
   17757 		}
   17758 	}
   17759 	{
   17760 		var x int8 = 1
   17761 		var y int8 = 126
   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 		if x >= y {
   17778 			t.Errorf("%d >= %d", x, y)
   17779 		}
   17780 	}
   17781 	{
   17782 		var x int8 = 1
   17783 		var y int8 = 127
   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 		if x >= y {
   17800 			t.Errorf("%d >= %d", x, y)
   17801 		}
   17802 	}
   17803 	{
   17804 		var x int8 = 126
   17805 		var y int8 = -128
   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 		if !(x >= y) {
   17822 			t.Errorf("!(%d >= %d)", x, y)
   17823 		}
   17824 	}
   17825 	{
   17826 		var x int8 = 126
   17827 		var y int8 = -127
   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 		if !(x >= y) {
   17844 			t.Errorf("!(%d >= %d)", x, y)
   17845 		}
   17846 	}
   17847 	{
   17848 		var x int8 = 126
   17849 		var y int8 = -1
   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 		if !(x >= y) {
   17866 			t.Errorf("!(%d >= %d)", x, y)
   17867 		}
   17868 	}
   17869 	{
   17870 		var x int8 = 126
   17871 		var y int8 = 0
   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 		if !(x >= y) {
   17888 			t.Errorf("!(%d >= %d)", x, y)
   17889 		}
   17890 	}
   17891 	{
   17892 		var x int8 = 126
   17893 		var y int8 = 1
   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 		if !(x >= y) {
   17910 			t.Errorf("!(%d >= %d)", x, y)
   17911 		}
   17912 	}
   17913 	{
   17914 		var x int8 = 126
   17915 		var y int8 = 126
   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 		if !(x >= y) {
   17932 			t.Errorf("!(%d >= %d)", x, y)
   17933 		}
   17934 	}
   17935 	{
   17936 		var x int8 = 126
   17937 		var y int8 = 127
   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 		if x >= y {
   17954 			t.Errorf("%d >= %d", x, y)
   17955 		}
   17956 	}
   17957 	{
   17958 		var x int8 = 127
   17959 		var y int8 = -128
   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 		if !(x >= y) {
   17976 			t.Errorf("!(%d >= %d)", x, y)
   17977 		}
   17978 	}
   17979 	{
   17980 		var x int8 = 127
   17981 		var y int8 = -127
   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 		if !(x >= y) {
   17998 			t.Errorf("!(%d >= %d)", x, y)
   17999 		}
   18000 	}
   18001 	{
   18002 		var x int8 = 127
   18003 		var y int8 = -1
   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 		if !(x >= y) {
   18020 			t.Errorf("!(%d >= %d)", x, y)
   18021 		}
   18022 	}
   18023 	{
   18024 		var x int8 = 127
   18025 		var y int8 = 0
   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 		if !(x >= y) {
   18042 			t.Errorf("!(%d >= %d)", x, y)
   18043 		}
   18044 	}
   18045 	{
   18046 		var x int8 = 127
   18047 		var y int8 = 1
   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 		if !(x >= y) {
   18064 			t.Errorf("!(%d >= %d)", x, y)
   18065 		}
   18066 	}
   18067 	{
   18068 		var x int8 = 127
   18069 		var y int8 = 126
   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 		if !(x >= y) {
   18086 			t.Errorf("!(%d >= %d)", x, y)
   18087 		}
   18088 	}
   18089 	{
   18090 		var x int8 = 127
   18091 		var y int8 = 127
   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 		if !(x >= y) {
   18108 			t.Errorf("!(%d >= %d)", x, y)
   18109 		}
   18110 	}
   18111 }
   18112