Home | History | Annotate | Download | only in X86
      1 ; RUN: llc -mtriple=x86_64-apple-darwin -mcpu=core2 < %s | FileCheck --check-prefix=SSE2-CODEGEN %s
      2 ; RUN: opt -mtriple=x86_64-apple-darwin -mcpu=core2 -cost-model -analyze < %s | FileCheck --check-prefix=SSE2 %s
      3 
      4 %shifttype = type <2 x i16>
      5 define %shifttype @shift2i16(%shifttype %a, %shifttype %b) {
      6 entry:
      7   ; SSE2: shift2i16
      8   ; SSE2: cost of 4 {{.*}} shl
      9   ; SSE2-CODEGEN: shift2i16
     10   ; SSE2-CODEGEN: psllq
     11 
     12   %0 = shl %shifttype %a , %b
     13   ret %shifttype %0
     14 }
     15 
     16 %shifttype4i16 = type <4 x i16>
     17 define %shifttype4i16 @shift4i16(%shifttype4i16 %a, %shifttype4i16 %b) {
     18 entry:
     19   ; SSE2: shift4i16
     20   ; SSE2: cost of 10 {{.*}} shl
     21   ; SSE2-CODEGEN: shift4i16
     22   ; SSE2-CODEGEN: pmuludq
     23 
     24   %0 = shl %shifttype4i16 %a , %b
     25   ret %shifttype4i16 %0
     26 }
     27 
     28 %shifttype8i16 = type <8 x i16>
     29 define %shifttype8i16 @shift8i16(%shifttype8i16 %a, %shifttype8i16 %b) {
     30 entry:
     31   ; SSE2: shift8i16
     32   ; SSE2: cost of 32 {{.*}} shl
     33   ; SSE2-CODEGEN: shift8i16
     34   ; SSE2-CODEGEN: psllw
     35 
     36   %0 = shl %shifttype8i16 %a , %b
     37   ret %shifttype8i16 %0
     38 }
     39 
     40 %shifttype16i16 = type <16 x i16>
     41 define %shifttype16i16 @shift16i16(%shifttype16i16 %a, %shifttype16i16 %b) {
     42 entry:
     43   ; SSE2: shift16i16
     44   ; SSE2: cost of 64 {{.*}} shl
     45   ; SSE2-CODEGEN: shift16i16
     46   ; SSE2-CODEGEN: psllw
     47 
     48   %0 = shl %shifttype16i16 %a , %b
     49   ret %shifttype16i16 %0
     50 }
     51 
     52 %shifttype32i16 = type <32 x i16>
     53 define %shifttype32i16 @shift32i16(%shifttype32i16 %a, %shifttype32i16 %b) {
     54 entry:
     55   ; SSE2: shift32i16
     56   ; SSE2: cost of 128 {{.*}} shl
     57   ; SSE2-CODEGEN: shift32i16
     58   ; SSE2-CODEGEN: psllw
     59 
     60   %0 = shl %shifttype32i16 %a , %b
     61   ret %shifttype32i16 %0
     62 }
     63 
     64 %shifttype2i32 = type <2 x i32>
     65 define %shifttype2i32 @shift2i32(%shifttype2i32 %a, %shifttype2i32 %b) {
     66 entry:
     67   ; SSE2: shift2i32
     68   ; SSE2: cost of 4 {{.*}} shl
     69   ; SSE2-CODEGEN: shift2i32
     70   ; SSE2-CODEGEN: psllq
     71 
     72   %0 = shl %shifttype2i32 %a , %b
     73   ret %shifttype2i32 %0
     74 }
     75 
     76 %shifttype4i32 = type <4 x i32>
     77 define %shifttype4i32 @shift4i32(%shifttype4i32 %a, %shifttype4i32 %b) {
     78 entry:
     79   ; SSE2: shift4i32
     80   ; SSE2: cost of 10 {{.*}} shl
     81   ; SSE2-CODEGEN: shift4i32
     82   ; SSE2-CODEGEN: pmuludq
     83 
     84   %0 = shl %shifttype4i32 %a , %b
     85   ret %shifttype4i32 %0
     86 }
     87 
     88 %shifttype8i32 = type <8 x i32>
     89 define %shifttype8i32 @shift8i32(%shifttype8i32 %a, %shifttype8i32 %b) {
     90 entry:
     91   ; SSE2: shift8i32
     92   ; SSE2: cost of 20 {{.*}} shl
     93   ; SSE2-CODEGEN: shift8i32
     94   ; SSE2-CODEGEN: pmuludq
     95 
     96   %0 = shl %shifttype8i32 %a , %b
     97   ret %shifttype8i32 %0
     98 }
     99 
    100 %shifttype16i32 = type <16 x i32>
    101 define %shifttype16i32 @shift16i32(%shifttype16i32 %a, %shifttype16i32 %b) {
    102 entry:
    103   ; SSE2: shift16i32
    104   ; SSE2: cost of 40 {{.*}} shl
    105   ; SSE2-CODEGEN: shift16i32
    106   ; SSE2-CODEGEN: pmuludq
    107 
    108   %0 = shl %shifttype16i32 %a , %b
    109   ret %shifttype16i32 %0
    110 }
    111 
    112 %shifttype32i32 = type <32 x i32>
    113 define %shifttype32i32 @shift32i32(%shifttype32i32 %a, %shifttype32i32 %b) {
    114 entry:
    115   ; SSE2: shift32i32
    116   ; SSE2: cost of 80 {{.*}} shl
    117   ; SSE2-CODEGEN: shift32i32
    118   ; SSE2-CODEGEN: pmuludq
    119 
    120   %0 = shl %shifttype32i32 %a , %b
    121   ret %shifttype32i32 %0
    122 }
    123 
    124 %shifttype2i64 = type <2 x i64>
    125 define %shifttype2i64 @shift2i64(%shifttype2i64 %a, %shifttype2i64 %b) {
    126 entry:
    127   ; SSE2: shift2i64
    128   ; SSE2: cost of 4 {{.*}} shl
    129   ; SSE2-CODEGEN: shift2i64
    130   ; SSE2-CODEGEN: psllq
    131 
    132   %0 = shl %shifttype2i64 %a , %b
    133   ret %shifttype2i64 %0
    134 }
    135 
    136 %shifttype4i64 = type <4 x i64>
    137 define %shifttype4i64 @shift4i64(%shifttype4i64 %a, %shifttype4i64 %b) {
    138 entry:
    139   ; SSE2: shift4i64
    140   ; SSE2: cost of 8 {{.*}} shl
    141   ; SSE2-CODEGEN: shift4i64
    142   ; SSE2-CODEGEN: psllq
    143 
    144   %0 = shl %shifttype4i64 %a , %b
    145   ret %shifttype4i64 %0
    146 }
    147 
    148 %shifttype8i64 = type <8 x i64>
    149 define %shifttype8i64 @shift8i64(%shifttype8i64 %a, %shifttype8i64 %b) {
    150 entry:
    151   ; SSE2: shift8i64
    152   ; SSE2: cost of 16 {{.*}} shl
    153   ; SSE2-CODEGEN: shift8i64
    154   ; SSE2-CODEGEN: psllq
    155 
    156   %0 = shl %shifttype8i64 %a , %b
    157   ret %shifttype8i64 %0
    158 }
    159 
    160 %shifttype16i64 = type <16 x i64>
    161 define %shifttype16i64 @shift16i64(%shifttype16i64 %a, %shifttype16i64 %b) {
    162 entry:
    163   ; SSE2: shift16i64
    164   ; SSE2: cost of 32 {{.*}} shl
    165   ; SSE2-CODEGEN: shift16i64
    166   ; SSE2-CODEGEN: psllq
    167 
    168   %0 = shl %shifttype16i64 %a , %b
    169   ret %shifttype16i64 %0
    170 }
    171 
    172 %shifttype32i64 = type <32 x i64>
    173 define %shifttype32i64 @shift32i64(%shifttype32i64 %a, %shifttype32i64 %b) {
    174 entry:
    175   ; SSE2: shift32i64
    176   ; SSE2: cost of 64 {{.*}} shl
    177   ; SSE2-CODEGEN: shift32i64
    178   ; SSE2-CODEGEN: psllq
    179 
    180   %0 = shl %shifttype32i64 %a , %b
    181   ret %shifttype32i64 %0
    182 }
    183 
    184 %shifttype2i8 = type <2 x i8>
    185 define %shifttype2i8 @shift2i8(%shifttype2i8 %a, %shifttype2i8 %b) {
    186 entry:
    187   ; SSE2: shift2i8
    188   ; SSE2: cost of 4 {{.*}} shl
    189   ; SSE2-CODEGEN: shift2i8
    190   ; SSE2-CODEGEN: psllq
    191 
    192   %0 = shl %shifttype2i8 %a , %b
    193   ret %shifttype2i8 %0
    194 }
    195 
    196 %shifttype4i8 = type <4 x i8>
    197 define %shifttype4i8 @shift4i8(%shifttype4i8 %a, %shifttype4i8 %b) {
    198 entry:
    199   ; SSE2: shift4i8
    200   ; SSE2: cost of 10 {{.*}} shl
    201   ; SSE2-CODEGEN: shift4i8
    202   ; SSE2-CODEGEN: pmuludq
    203 
    204   %0 = shl %shifttype4i8 %a , %b
    205   ret %shifttype4i8 %0
    206 }
    207 
    208 %shifttype8i8 = type <8 x i8>
    209 define %shifttype8i8 @shift8i8(%shifttype8i8 %a, %shifttype8i8 %b) {
    210 entry:
    211   ; SSE2: shift8i8
    212   ; SSE2: cost of 32 {{.*}} shl
    213   ; SSE2-CODEGEN: shift8i8
    214   ; SSE2-CODEGEN: psllw
    215 
    216   %0 = shl %shifttype8i8 %a , %b
    217   ret %shifttype8i8 %0
    218 }
    219 
    220 %shifttype16i8 = type <16 x i8>
    221 define %shifttype16i8 @shift16i8(%shifttype16i8 %a, %shifttype16i8 %b) {
    222 entry:
    223   ; SSE2: shift16i8
    224   ; SSE2: cost of 26 {{.*}} shl
    225   ; SSE2-CODEGEN: shift16i8
    226   ; SSE2-CODEGEN: psllw
    227 
    228   %0 = shl %shifttype16i8 %a , %b
    229   ret %shifttype16i8 %0
    230 }
    231 
    232 %shifttype32i8 = type <32 x i8>
    233 define %shifttype32i8 @shift32i8(%shifttype32i8 %a, %shifttype32i8 %b) {
    234 entry:
    235   ; SSE2: shift32i8
    236   ; SSE2: cost of 52 {{.*}} shl
    237   ; SSE2-CODEGEN: shift32i8
    238   ; SSE2-CODEGEN: psllw
    239 
    240   %0 = shl %shifttype32i8 %a , %b
    241   ret %shifttype32i8 %0
    242 }
    243 
    244 ; Test shift by a constant vector.
    245 
    246 %shifttypec = type <2 x i16>
    247 define %shifttypec @shift2i16const(%shifttypec %a, %shifttypec %b) {
    248 entry:
    249   ; SSE2: shift2i16const
    250   ; SSE2: cost of 1 {{.*}} shl
    251   ; SSE2-CODEGEN: shift2i16const
    252   ; SSE2-CODEGEN: psllq $3
    253 
    254   %0 = shl %shifttypec %a , <i16 3, i16 3>
    255   ret %shifttypec %0
    256 }
    257 
    258 %shifttypec4i16 = type <4 x i16>
    259 define %shifttypec4i16 @shift4i16const(%shifttypec4i16 %a, %shifttypec4i16 %b) {
    260 entry:
    261   ; SSE2: shift4i16const
    262   ; SSE2: cost of 1 {{.*}} shl
    263   ; SSE2-CODEGEN: shift4i16const
    264   ; SSE2-CODEGEN: pslld $3
    265 
    266   %0 = shl %shifttypec4i16 %a , <i16 3, i16 3, i16 3, i16 3>
    267   ret %shifttypec4i16 %0
    268 }
    269 
    270 %shifttypec8i16 = type <8 x i16>
    271 define %shifttypec8i16 @shift8i16const(%shifttypec8i16 %a, %shifttypec8i16 %b) {
    272 entry:
    273   ; SSE2: shift8i16const
    274   ; SSE2: cost of 1 {{.*}} shl
    275   ; SSE2-CODEGEN: shift8i16const
    276   ; SSE2-CODEGEN: psllw $3
    277 
    278   %0 = shl %shifttypec8i16 %a , <i16 3, i16 3, i16 3, i16 3,
    279                                   i16 3, i16 3, i16 3, i16 3>
    280   ret %shifttypec8i16 %0
    281 }
    282 
    283 %shifttypec16i16 = type <16 x i16>
    284 define %shifttypec16i16 @shift16i16const(%shifttypec16i16 %a,
    285                                          %shifttypec16i16 %b) {
    286 entry:
    287   ; SSE2: shift16i16const
    288   ; SSE2: cost of 2 {{.*}} shl
    289   ; SSE2-CODEGEN: shift16i16const
    290   ; SSE2-CODEGEN: psllw $3
    291 
    292   %0 = shl %shifttypec16i16 %a , <i16 3, i16 3, i16 3, i16 3,
    293                                    i16 3, i16 3, i16 3, i16 3,
    294                                    i16 3, i16 3, i16 3, i16 3,
    295                                    i16 3, i16 3, i16 3, i16 3>
    296   ret %shifttypec16i16 %0
    297 }
    298 
    299 %shifttypec32i16 = type <32 x i16>
    300 define %shifttypec32i16 @shift32i16const(%shifttypec32i16 %a,
    301                                         %shifttypec32i16 %b) {
    302 entry:
    303   ; SSE2: shift32i16const
    304   ; SSE2: cost of 4 {{.*}} shl
    305   ; SSE2-CODEGEN: shift32i16const
    306   ; SSE2-CODEGEN: psllw $3
    307 
    308   %0 = shl %shifttypec32i16 %a , <i16 3, i16 3, i16 3, i16 3,
    309                                    i16 3, i16 3, i16 3, i16 3,
    310                                    i16 3, i16 3, i16 3, i16 3,
    311                                    i16 3, i16 3, i16 3, i16 3,
    312                                    i16 3, i16 3, i16 3, i16 3,
    313                                    i16 3, i16 3, i16 3, i16 3,
    314                                    i16 3, i16 3, i16 3, i16 3,
    315                                    i16 3, i16 3, i16 3, i16 3>
    316   ret %shifttypec32i16 %0
    317 }
    318 
    319 %shifttypec2i32 = type <2 x i32>
    320 define %shifttypec2i32 @shift2i32c(%shifttypec2i32 %a, %shifttypec2i32 %b) {
    321 entry:
    322   ; SSE2: shift2i32c
    323   ; SSE2: cost of 1 {{.*}} shl
    324   ; SSE2-CODEGEN: shift2i32c
    325   ; SSE2-CODEGEN: psllq $3
    326 
    327   %0 = shl %shifttypec2i32 %a , <i32 3, i32 3>
    328   ret %shifttypec2i32 %0
    329 }
    330 
    331 %shifttypec4i32 = type <4 x i32>
    332 define %shifttypec4i32 @shift4i32c(%shifttypec4i32 %a, %shifttypec4i32 %b) {
    333 entry:
    334   ; SSE2: shift4i32c
    335   ; SSE2: cost of 1 {{.*}} shl
    336   ; SSE2-CODEGEN: shift4i32c
    337   ; SSE2-CODEGEN: pslld $3
    338 
    339   %0 = shl %shifttypec4i32 %a , <i32 3, i32 3, i32 3, i32 3>
    340   ret %shifttypec4i32 %0
    341 }
    342 
    343 %shifttypec8i32 = type <8 x i32>
    344 define %shifttypec8i32 @shift8i32c(%shifttypec8i32 %a, %shifttypec8i32 %b) {
    345 entry:
    346   ; SSE2: shift8i32c
    347   ; SSE2: cost of 2 {{.*}} shl
    348   ; SSE2-CODEGEN: shift8i32c
    349   ; SSE2-CODEGEN: pslld $3
    350 
    351   %0 = shl %shifttypec8i32 %a , <i32 3, i32 3, i32 3, i32 3,
    352                                   i32 3, i32 3, i32 3, i32 3>
    353   ret %shifttypec8i32 %0
    354 }
    355 
    356 %shifttypec16i32 = type <16 x i32>
    357 define %shifttypec16i32 @shift16i32c(%shifttypec16i32 %a, %shifttypec16i32 %b) {
    358 entry:
    359   ; SSE2: shift16i32c
    360   ; SSE2: cost of 4 {{.*}} shl
    361   ; SSE2-CODEGEN: shift16i32c
    362   ; SSE2-CODEGEN: pslld $3
    363 
    364   %0 = shl %shifttypec16i32 %a , <i32 3, i32 3, i32 3, i32 3,
    365                                    i32 3, i32 3, i32 3, i32 3,
    366                                    i32 3, i32 3, i32 3, i32 3,
    367                                    i32 3, i32 3, i32 3, i32 3>
    368   ret %shifttypec16i32 %0
    369 }
    370 
    371 %shifttypec32i32 = type <32 x i32>
    372 define %shifttypec32i32 @shift32i32c(%shifttypec32i32 %a, %shifttypec32i32 %b) {
    373 entry:
    374   ; SSE2: shift32i32c
    375   ; SSE2: cost of 8 {{.*}} shl
    376   ; SSE2-CODEGEN: shift32i32c
    377   ; SSE2-CODEGEN: pslld $3
    378   %0 = shl %shifttypec32i32 %a , <i32 3, i32 3, i32 3, i32 3,
    379                                    i32 3, i32 3, i32 3, i32 3,
    380                                    i32 3, i32 3, i32 3, i32 3,
    381                                    i32 3, i32 3, i32 3, i32 3,
    382                                    i32 3, i32 3, i32 3, i32 3,
    383                                    i32 3, i32 3, i32 3, i32 3,
    384                                    i32 3, i32 3, i32 3, i32 3,
    385                                    i32 3, i32 3, i32 3, i32 3>
    386   ret %shifttypec32i32 %0
    387 }
    388 
    389 %shifttypec2i64 = type <2 x i64>
    390 define %shifttypec2i64 @shift2i64c(%shifttypec2i64 %a, %shifttypec2i64 %b) {
    391 entry:
    392   ; SSE2: shift2i64c
    393   ; SSE2: cost of 1 {{.*}} shl
    394   ; SSE2-CODEGEN: shift2i64c
    395   ; SSE2-CODEGEN: psllq $3
    396 
    397   %0 = shl %shifttypec2i64 %a , <i64 3, i64 3>
    398   ret %shifttypec2i64 %0
    399 }
    400 
    401 %shifttypec4i64 = type <4 x i64>
    402 define %shifttypec4i64 @shift4i64c(%shifttypec4i64 %a, %shifttypec4i64 %b) {
    403 entry:
    404   ; SSE2: shift4i64c
    405   ; SSE2: cost of 2 {{.*}} shl
    406   ; SSE2-CODEGEN: shift4i64c
    407   ; SSE2-CODEGEN: psllq $3
    408 
    409   %0 = shl %shifttypec4i64 %a , <i64 3, i64 3, i64 3, i64 3>
    410   ret %shifttypec4i64 %0
    411 }
    412 
    413 %shifttypec8i64 = type <8 x i64>
    414 define %shifttypec8i64 @shift8i64c(%shifttypec8i64 %a, %shifttypec8i64 %b) {
    415 entry:
    416   ; SSE2: shift8i64c
    417   ; SSE2: cost of 4 {{.*}} shl
    418   ; SSE2-CODEGEN: shift8i64c
    419   ; SSE2-CODEGEN: psllq $3
    420 
    421  %0 = shl %shifttypec8i64 %a , <i64 3, i64 3, i64 3, i64 3,
    422                                  i64 3, i64 3, i64 3, i64 3>
    423   ret %shifttypec8i64 %0
    424 }
    425 
    426 %shifttypec16i64 = type <16 x i64>
    427 define %shifttypec16i64 @shift16i64c(%shifttypec16i64 %a, %shifttypec16i64 %b) {
    428 entry:
    429   ; SSE2: shift16i64c
    430   ; SSE2: cost of 8 {{.*}} shl
    431   ; SSE2-CODEGEN: shift16i64c
    432   ; SSE2-CODEGEN: psllq $3
    433 
    434   %0 = shl %shifttypec16i64 %a , <i64 3, i64 3, i64 3, i64 3,
    435                                    i64 3, i64 3, i64 3, i64 3,
    436                                    i64 3, i64 3, i64 3, i64 3,
    437                                    i64 3, i64 3, i64 3, i64 3>
    438   ret %shifttypec16i64 %0
    439 }
    440 
    441 %shifttypec32i64 = type <32 x i64>
    442 define %shifttypec32i64 @shift32i64c(%shifttypec32i64 %a, %shifttypec32i64 %b) {
    443 entry:
    444   ; SSE2: shift32i64c
    445   ; SSE2: cost of 16 {{.*}} shl
    446   ; SSE2-CODEGEN: shift32i64c
    447   ; SSE2-CODEGEN: psllq $3
    448 
    449   %0 = shl %shifttypec32i64 %a ,<i64 3, i64 3, i64 3, i64 3,
    450                                   i64 3, i64 3, i64 3, i64 3,
    451                                   i64 3, i64 3, i64 3, i64 3,
    452                                   i64 3, i64 3, i64 3, i64 3,
    453                                   i64 3, i64 3, i64 3, i64 3,
    454                                   i64 3, i64 3, i64 3, i64 3,
    455                                   i64 3, i64 3, i64 3, i64 3,
    456                                   i64 3, i64 3, i64 3, i64 3>
    457   ret %shifttypec32i64 %0
    458 }
    459 
    460 %shifttypec2i8 = type <2 x i8>
    461 define %shifttypec2i8 @shift2i8c(%shifttypec2i8 %a, %shifttypec2i8 %b) {
    462 entry:
    463   ; SSE2: shift2i8c
    464   ; SSE2: cost of 1 {{.*}} shl
    465   ; SSE2-CODEGEN: shift2i8c
    466   ; SSE2-CODEGEN: psllq $3
    467 
    468   %0 = shl %shifttypec2i8 %a , <i8 3, i8 3>
    469   ret %shifttypec2i8 %0
    470 }
    471 
    472 %shifttypec4i8 = type <4 x i8>
    473 define %shifttypec4i8 @shift4i8c(%shifttypec4i8 %a, %shifttypec4i8 %b) {
    474 entry:
    475   ; SSE2: shift4i8c
    476   ; SSE2: cost of 1 {{.*}} shl
    477   ; SSE2-CODEGEN: shift4i8c
    478   ; SSE2-CODEGEN: pslld $3
    479 
    480   %0 = shl %shifttypec4i8 %a , <i8 3, i8 3, i8 3, i8 3>
    481   ret %shifttypec4i8 %0
    482 }
    483 
    484 %shifttypec8i8 = type <8 x i8>
    485 define %shifttypec8i8 @shift8i8c(%shifttypec8i8 %a, %shifttypec8i8 %b) {
    486 entry:
    487   ; SSE2: shift8i8c
    488   ; SSE2: cost of 1 {{.*}} shl
    489   ; SSE2-CODEGEN: shift8i8c
    490   ; SSE2-CODEGEN: psllw $3
    491 
    492   %0 = shl %shifttypec8i8 %a , <i8 3, i8 3, i8 3, i8 3,
    493                                  i8 3, i8 3, i8 3, i8 3>
    494   ret %shifttypec8i8 %0
    495 }
    496 
    497 %shifttypec16i8 = type <16 x i8>
    498 define %shifttypec16i8 @shift16i8c(%shifttypec16i8 %a, %shifttypec16i8 %b) {
    499 entry:
    500   ; SSE2: shift16i8c
    501   ; SSE2: cost of 1 {{.*}} shl
    502   ; SSE2-CODEGEN: shift16i8c
    503   ; SSE2-CODEGEN: psllw $3
    504 
    505   %0 = shl %shifttypec16i8 %a , <i8 3, i8 3, i8 3, i8 3,
    506                                   i8 3, i8 3, i8 3, i8 3,
    507                                   i8 3, i8 3, i8 3, i8 3,
    508                                   i8 3, i8 3, i8 3, i8 3>
    509   ret %shifttypec16i8 %0
    510 }
    511 
    512 %shifttypec32i8 = type <32 x i8>
    513 define %shifttypec32i8 @shift32i8c(%shifttypec32i8 %a, %shifttypec32i8 %b) {
    514 entry:
    515   ; SSE2: shift32i8c
    516   ; SSE2: cost of 2 {{.*}} shl
    517   ; SSE2-CODEGEN: shift32i8c
    518   ; SSE2-CODEGEN: psllw $3
    519 
    520   %0 = shl %shifttypec32i8 %a , <i8 3, i8 3, i8 3, i8 3,
    521                                   i8 3, i8 3, i8 3, i8 3,
    522                                   i8 3, i8 3, i8 3, i8 3,
    523                                   i8 3, i8 3, i8 3, i8 3,
    524                                   i8 3, i8 3, i8 3, i8 3,
    525                                   i8 3, i8 3, i8 3, i8 3,
    526                                   i8 3, i8 3, i8 3, i8 3,
    527                                   i8 3, i8 3, i8 3, i8 3>
    528   ret %shifttypec32i8 %0
    529 }
    530