github.com/llvm-mirror/llgo@v0.0.0-20190322182713-bf6f0a60fce1/test/execution/operators/shifts.go (about)

     1  // RUN: llgo -o %t %s
     2  // RUN: %t 2>&1 | FileCheck %s
     3  
     4  // CHECK: 4294967295
     5  // CHECK-NEXT: 4294967295
     6  // CHECK-NEXT: 2147483647
     7  // CHECK-NEXT: 4294967294
     8  // CHECK-NEXT: 1073741823
     9  // CHECK-NEXT: 4294967292
    10  // CHECK-NEXT: 536870911
    11  // CHECK-NEXT: 4294967288
    12  // CHECK-NEXT: 268435455
    13  // CHECK-NEXT: 4294967280
    14  // CHECK-NEXT: 134217727
    15  // CHECK-NEXT: 4294967264
    16  // CHECK-NEXT: 67108863
    17  // CHECK-NEXT: 4294967232
    18  // CHECK-NEXT: 33554431
    19  // CHECK-NEXT: 4294967168
    20  // CHECK-NEXT: 16777215
    21  // CHECK-NEXT: 4294967040
    22  // CHECK-NEXT: 8388607
    23  // CHECK-NEXT: 4294966784
    24  // CHECK-NEXT: 4194303
    25  // CHECK-NEXT: 4294966272
    26  // CHECK-NEXT: 2097151
    27  // CHECK-NEXT: 4294965248
    28  // CHECK-NEXT: 1048575
    29  // CHECK-NEXT: 4294963200
    30  // CHECK-NEXT: 524287
    31  // CHECK-NEXT: 4294959104
    32  // CHECK-NEXT: 262143
    33  // CHECK-NEXT: 4294950912
    34  // CHECK-NEXT: 131071
    35  // CHECK-NEXT: 4294934528
    36  // CHECK-NEXT: 65535
    37  // CHECK-NEXT: 4294901760
    38  // CHECK-NEXT: 32767
    39  // CHECK-NEXT: 4294836224
    40  // CHECK-NEXT: 16383
    41  // CHECK-NEXT: 4294705152
    42  // CHECK-NEXT: 8191
    43  // CHECK-NEXT: 4294443008
    44  // CHECK-NEXT: 4095
    45  // CHECK-NEXT: 4293918720
    46  // CHECK-NEXT: 2047
    47  // CHECK-NEXT: 4292870144
    48  // CHECK-NEXT: 1023
    49  // CHECK-NEXT: 4290772992
    50  // CHECK-NEXT: 511
    51  // CHECK-NEXT: 4286578688
    52  // CHECK-NEXT: 255
    53  // CHECK-NEXT: 4278190080
    54  // CHECK-NEXT: 127
    55  // CHECK-NEXT: 4261412864
    56  // CHECK-NEXT: 63
    57  // CHECK-NEXT: 4227858432
    58  // CHECK-NEXT: 31
    59  // CHECK-NEXT: 4160749568
    60  // CHECK-NEXT: 15
    61  // CHECK-NEXT: 4026531840
    62  // CHECK-NEXT: 7
    63  // CHECK-NEXT: 3758096384
    64  // CHECK-NEXT: 3
    65  // CHECK-NEXT: 3221225472
    66  // CHECK-NEXT: 1
    67  // CHECK-NEXT: 2147483648
    68  // CHECK-NEXT: 0
    69  // CHECK-NEXT: 0
    70  // CHECK-NEXT: 4026531839
    71  // CHECK-NEXT: 4026531839
    72  // CHECK-NEXT: 2013265919
    73  // CHECK-NEXT: 3758096382
    74  // CHECK-NEXT: 1006632959
    75  // CHECK-NEXT: 3221225468
    76  // CHECK-NEXT: 503316479
    77  // CHECK-NEXT: 2147483640
    78  // CHECK-NEXT: 251658239
    79  // CHECK-NEXT: 4294967280
    80  // CHECK-NEXT: 125829119
    81  // CHECK-NEXT: 4294967264
    82  // CHECK-NEXT: 62914559
    83  // CHECK-NEXT: 4294967232
    84  // CHECK-NEXT: 31457279
    85  // CHECK-NEXT: 4294967168
    86  // CHECK-NEXT: 15728639
    87  // CHECK-NEXT: 4294967040
    88  // CHECK-NEXT: 7864319
    89  // CHECK-NEXT: 4294966784
    90  // CHECK-NEXT: 3932159
    91  // CHECK-NEXT: 4294966272
    92  // CHECK-NEXT: 1966079
    93  // CHECK-NEXT: 4294965248
    94  // CHECK-NEXT: 983039
    95  // CHECK-NEXT: 4294963200
    96  // CHECK-NEXT: 491519
    97  // CHECK-NEXT: 4294959104
    98  // CHECK-NEXT: 245759
    99  // CHECK-NEXT: 4294950912
   100  // CHECK-NEXT: 122879
   101  // CHECK-NEXT: 4294934528
   102  // CHECK-NEXT: 61439
   103  // CHECK-NEXT: 4294901760
   104  // CHECK-NEXT: 30719
   105  // CHECK-NEXT: 4294836224
   106  // CHECK-NEXT: 15359
   107  // CHECK-NEXT: 4294705152
   108  // CHECK-NEXT: 7679
   109  // CHECK-NEXT: 4294443008
   110  // CHECK-NEXT: 3839
   111  // CHECK-NEXT: 4293918720
   112  // CHECK-NEXT: 1919
   113  // CHECK-NEXT: 4292870144
   114  // CHECK-NEXT: 959
   115  // CHECK-NEXT: 4290772992
   116  // CHECK-NEXT: 479
   117  // CHECK-NEXT: 4286578688
   118  // CHECK-NEXT: 239
   119  // CHECK-NEXT: 4278190080
   120  // CHECK-NEXT: 119
   121  // CHECK-NEXT: 4261412864
   122  // CHECK-NEXT: 59
   123  // CHECK-NEXT: 4227858432
   124  // CHECK-NEXT: 29
   125  // CHECK-NEXT: 4160749568
   126  // CHECK-NEXT: 14
   127  // CHECK-NEXT: 4026531840
   128  // CHECK-NEXT: 7
   129  // CHECK-NEXT: 3758096384
   130  // CHECK-NEXT: 3
   131  // CHECK-NEXT: 3221225472
   132  // CHECK-NEXT: 1
   133  // CHECK-NEXT: 2147483648
   134  // CHECK-NEXT: 0
   135  // CHECK-NEXT: 0
   136  // CHECK-NEXT: -1
   137  // CHECK-NEXT: -1
   138  // CHECK-NEXT: -1
   139  // CHECK-NEXT: -2
   140  // CHECK-NEXT: -1
   141  // CHECK-NEXT: -4
   142  // CHECK-NEXT: -1
   143  // CHECK-NEXT: -8
   144  // CHECK-NEXT: -1
   145  // CHECK-NEXT: -16
   146  // CHECK-NEXT: -1
   147  // CHECK-NEXT: -32
   148  // CHECK-NEXT: -1
   149  // CHECK-NEXT: -64
   150  // CHECK-NEXT: -1
   151  // CHECK-NEXT: -128
   152  // CHECK-NEXT: -1
   153  // CHECK-NEXT: -256
   154  // CHECK-NEXT: -1
   155  // CHECK-NEXT: -512
   156  // CHECK-NEXT: -1
   157  // CHECK-NEXT: -1024
   158  // CHECK-NEXT: -1
   159  // CHECK-NEXT: -2048
   160  // CHECK-NEXT: -1
   161  // CHECK-NEXT: -4096
   162  // CHECK-NEXT: -1
   163  // CHECK-NEXT: -8192
   164  // CHECK-NEXT: -1
   165  // CHECK-NEXT: -16384
   166  // CHECK-NEXT: -1
   167  // CHECK-NEXT: -32768
   168  // CHECK-NEXT: -1
   169  // CHECK-NEXT: -65536
   170  // CHECK-NEXT: -1
   171  // CHECK-NEXT: -131072
   172  // CHECK-NEXT: -1
   173  // CHECK-NEXT: -262144
   174  // CHECK-NEXT: -1
   175  // CHECK-NEXT: -524288
   176  // CHECK-NEXT: -1
   177  // CHECK-NEXT: -1048576
   178  // CHECK-NEXT: -1
   179  // CHECK-NEXT: -2097152
   180  // CHECK-NEXT: -1
   181  // CHECK-NEXT: -4194304
   182  // CHECK-NEXT: -1
   183  // CHECK-NEXT: -8388608
   184  // CHECK-NEXT: -1
   185  // CHECK-NEXT: -16777216
   186  // CHECK-NEXT: -1
   187  // CHECK-NEXT: -33554432
   188  // CHECK-NEXT: -1
   189  // CHECK-NEXT: -67108864
   190  // CHECK-NEXT: -1
   191  // CHECK-NEXT: -134217728
   192  // CHECK-NEXT: -1
   193  // CHECK-NEXT: -268435456
   194  // CHECK-NEXT: -1
   195  // CHECK-NEXT: -536870912
   196  // CHECK-NEXT: -1
   197  // CHECK-NEXT: -1073741824
   198  // CHECK-NEXT: -1
   199  // CHECK-NEXT: -2147483648
   200  // CHECK-NEXT: -1
   201  // CHECK-NEXT: 0
   202  // CHECK-NEXT: 1
   203  // CHECK-NEXT: 1
   204  // CHECK-NEXT: 0
   205  // CHECK-NEXT: 2
   206  // CHECK-NEXT: 0
   207  // CHECK-NEXT: 4
   208  // CHECK-NEXT: 0
   209  // CHECK-NEXT: 8
   210  // CHECK-NEXT: 0
   211  // CHECK-NEXT: 16
   212  // CHECK-NEXT: 0
   213  // CHECK-NEXT: 32
   214  // CHECK-NEXT: 0
   215  // CHECK-NEXT: 64
   216  // CHECK-NEXT: 0
   217  // CHECK-NEXT: 128
   218  // CHECK-NEXT: 0
   219  // CHECK-NEXT: 256
   220  // CHECK-NEXT: 0
   221  // CHECK-NEXT: 512
   222  // CHECK-NEXT: 0
   223  // CHECK-NEXT: 1024
   224  // CHECK-NEXT: 0
   225  // CHECK-NEXT: 2048
   226  // CHECK-NEXT: 0
   227  // CHECK-NEXT: 4096
   228  // CHECK-NEXT: 0
   229  // CHECK-NEXT: 8192
   230  // CHECK-NEXT: 0
   231  // CHECK-NEXT: 16384
   232  // CHECK-NEXT: 0
   233  // CHECK-NEXT: 32768
   234  // CHECK-NEXT: 0
   235  // CHECK-NEXT: 65536
   236  // CHECK-NEXT: 0
   237  // CHECK-NEXT: 131072
   238  // CHECK-NEXT: 0
   239  // CHECK-NEXT: 262144
   240  // CHECK-NEXT: 0
   241  // CHECK-NEXT: 524288
   242  // CHECK-NEXT: 0
   243  // CHECK-NEXT: 1048576
   244  // CHECK-NEXT: 0
   245  // CHECK-NEXT: 2097152
   246  // CHECK-NEXT: 0
   247  // CHECK-NEXT: 4194304
   248  // CHECK-NEXT: 0
   249  // CHECK-NEXT: 8388608
   250  // CHECK-NEXT: 0
   251  // CHECK-NEXT: 16777216
   252  // CHECK-NEXT: 0
   253  // CHECK-NEXT: 33554432
   254  // CHECK-NEXT: 0
   255  // CHECK-NEXT: 67108864
   256  // CHECK-NEXT: 0
   257  // CHECK-NEXT: 134217728
   258  // CHECK-NEXT: 0
   259  // CHECK-NEXT: 268435456
   260  // CHECK-NEXT: 0
   261  // CHECK-NEXT: 536870912
   262  // CHECK-NEXT: 0
   263  // CHECK-NEXT: 1073741824
   264  // CHECK-NEXT: 0
   265  // CHECK-NEXT: -2147483648
   266  // CHECK-NEXT: 0
   267  // CHECK-NEXT: 0
   268  
   269  package main
   270  
   271  func testShrUint32(v uint32) {
   272  	for i := uint(0); i <= 32; i++ {
   273  		println(v >> i)
   274  		println(v << i)
   275  	}
   276  }
   277  
   278  func testShrInt32(v int32) {
   279  	for i := uint(0); i <= 32; i++ {
   280  		println(v >> i)
   281  		println(v << i)
   282  	}
   283  }
   284  
   285  func main() {
   286  	testShrUint32(0xFFFFFFFF)
   287  	testShrUint32(0xEFFFFFFF)
   288  	testShrInt32(-1)
   289  	testShrInt32(1)
   290  }