| // RUN: llgo -o %t %s |
| // RUN: %t 2>&1 | FileCheck %s |
| |
| // CHECK: 4294967295 |
| // CHECK-NEXT: 4294967295 |
| // CHECK-NEXT: 2147483647 |
| // CHECK-NEXT: 4294967294 |
| // CHECK-NEXT: 1073741823 |
| // CHECK-NEXT: 4294967292 |
| // CHECK-NEXT: 536870911 |
| // CHECK-NEXT: 4294967288 |
| // CHECK-NEXT: 268435455 |
| // CHECK-NEXT: 4294967280 |
| // CHECK-NEXT: 134217727 |
| // CHECK-NEXT: 4294967264 |
| // CHECK-NEXT: 67108863 |
| // CHECK-NEXT: 4294967232 |
| // CHECK-NEXT: 33554431 |
| // CHECK-NEXT: 4294967168 |
| // CHECK-NEXT: 16777215 |
| // CHECK-NEXT: 4294967040 |
| // CHECK-NEXT: 8388607 |
| // CHECK-NEXT: 4294966784 |
| // CHECK-NEXT: 4194303 |
| // CHECK-NEXT: 4294966272 |
| // CHECK-NEXT: 2097151 |
| // CHECK-NEXT: 4294965248 |
| // CHECK-NEXT: 1048575 |
| // CHECK-NEXT: 4294963200 |
| // CHECK-NEXT: 524287 |
| // CHECK-NEXT: 4294959104 |
| // CHECK-NEXT: 262143 |
| // CHECK-NEXT: 4294950912 |
| // CHECK-NEXT: 131071 |
| // CHECK-NEXT: 4294934528 |
| // CHECK-NEXT: 65535 |
| // CHECK-NEXT: 4294901760 |
| // CHECK-NEXT: 32767 |
| // CHECK-NEXT: 4294836224 |
| // CHECK-NEXT: 16383 |
| // CHECK-NEXT: 4294705152 |
| // CHECK-NEXT: 8191 |
| // CHECK-NEXT: 4294443008 |
| // CHECK-NEXT: 4095 |
| // CHECK-NEXT: 4293918720 |
| // CHECK-NEXT: 2047 |
| // CHECK-NEXT: 4292870144 |
| // CHECK-NEXT: 1023 |
| // CHECK-NEXT: 4290772992 |
| // CHECK-NEXT: 511 |
| // CHECK-NEXT: 4286578688 |
| // CHECK-NEXT: 255 |
| // CHECK-NEXT: 4278190080 |
| // CHECK-NEXT: 127 |
| // CHECK-NEXT: 4261412864 |
| // CHECK-NEXT: 63 |
| // CHECK-NEXT: 4227858432 |
| // CHECK-NEXT: 31 |
| // CHECK-NEXT: 4160749568 |
| // CHECK-NEXT: 15 |
| // CHECK-NEXT: 4026531840 |
| // CHECK-NEXT: 7 |
| // CHECK-NEXT: 3758096384 |
| // CHECK-NEXT: 3 |
| // CHECK-NEXT: 3221225472 |
| // CHECK-NEXT: 1 |
| // CHECK-NEXT: 2147483648 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 4026531839 |
| // CHECK-NEXT: 4026531839 |
| // CHECK-NEXT: 2013265919 |
| // CHECK-NEXT: 3758096382 |
| // CHECK-NEXT: 1006632959 |
| // CHECK-NEXT: 3221225468 |
| // CHECK-NEXT: 503316479 |
| // CHECK-NEXT: 2147483640 |
| // CHECK-NEXT: 251658239 |
| // CHECK-NEXT: 4294967280 |
| // CHECK-NEXT: 125829119 |
| // CHECK-NEXT: 4294967264 |
| // CHECK-NEXT: 62914559 |
| // CHECK-NEXT: 4294967232 |
| // CHECK-NEXT: 31457279 |
| // CHECK-NEXT: 4294967168 |
| // CHECK-NEXT: 15728639 |
| // CHECK-NEXT: 4294967040 |
| // CHECK-NEXT: 7864319 |
| // CHECK-NEXT: 4294966784 |
| // CHECK-NEXT: 3932159 |
| // CHECK-NEXT: 4294966272 |
| // CHECK-NEXT: 1966079 |
| // CHECK-NEXT: 4294965248 |
| // CHECK-NEXT: 983039 |
| // CHECK-NEXT: 4294963200 |
| // CHECK-NEXT: 491519 |
| // CHECK-NEXT: 4294959104 |
| // CHECK-NEXT: 245759 |
| // CHECK-NEXT: 4294950912 |
| // CHECK-NEXT: 122879 |
| // CHECK-NEXT: 4294934528 |
| // CHECK-NEXT: 61439 |
| // CHECK-NEXT: 4294901760 |
| // CHECK-NEXT: 30719 |
| // CHECK-NEXT: 4294836224 |
| // CHECK-NEXT: 15359 |
| // CHECK-NEXT: 4294705152 |
| // CHECK-NEXT: 7679 |
| // CHECK-NEXT: 4294443008 |
| // CHECK-NEXT: 3839 |
| // CHECK-NEXT: 4293918720 |
| // CHECK-NEXT: 1919 |
| // CHECK-NEXT: 4292870144 |
| // CHECK-NEXT: 959 |
| // CHECK-NEXT: 4290772992 |
| // CHECK-NEXT: 479 |
| // CHECK-NEXT: 4286578688 |
| // CHECK-NEXT: 239 |
| // CHECK-NEXT: 4278190080 |
| // CHECK-NEXT: 119 |
| // CHECK-NEXT: 4261412864 |
| // CHECK-NEXT: 59 |
| // CHECK-NEXT: 4227858432 |
| // CHECK-NEXT: 29 |
| // CHECK-NEXT: 4160749568 |
| // CHECK-NEXT: 14 |
| // CHECK-NEXT: 4026531840 |
| // CHECK-NEXT: 7 |
| // CHECK-NEXT: 3758096384 |
| // CHECK-NEXT: 3 |
| // CHECK-NEXT: 3221225472 |
| // CHECK-NEXT: 1 |
| // CHECK-NEXT: 2147483648 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -2 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -4 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -8 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -16 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -32 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -64 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -128 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -256 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -512 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -1024 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -2048 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -4096 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -8192 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -16384 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -32768 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -65536 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -131072 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -262144 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -524288 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -1048576 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -2097152 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -4194304 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -8388608 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -16777216 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -33554432 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -67108864 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -134217728 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -268435456 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -536870912 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -1073741824 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: -2147483648 |
| // CHECK-NEXT: -1 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 1 |
| // CHECK-NEXT: 1 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 2 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 4 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 8 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 16 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 32 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 64 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 128 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 256 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 512 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 1024 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 2048 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 4096 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 8192 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 16384 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 32768 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 65536 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 131072 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 262144 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 524288 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 1048576 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 2097152 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 4194304 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 8388608 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 16777216 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 33554432 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 67108864 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 134217728 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 268435456 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 536870912 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 1073741824 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: -2147483648 |
| // CHECK-NEXT: 0 |
| // CHECK-NEXT: 0 |
| |
| package main |
| |
| func testShrUint32(v uint32) { |
| for i := uint(0); i <= 32; i++ { |
| println(v >> i) |
| println(v << i) |
| } |
| } |
| |
| func testShrInt32(v int32) { |
| for i := uint(0); i <= 32; i++ { |
| println(v >> i) |
| println(v << i) |
| } |
| } |
| |
| func main() { |
| testShrUint32(0xFFFFFFFF) |
| testShrUint32(0xEFFFFFFF) |
| testShrInt32(-1) |
| testShrInt32(1) |
| } |