1
2
3
4 package test
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
View as plain text