Home | History | Annotate | Download | only in CodeGen
      1 // REQUIRES: powerpc-registered-target
      2 // RUN: %clang_cc1 -faltivec -triple powerpc-unknown-unknown -emit-llvm %s -o - | FileCheck %s
      3 // RUN: %clang_cc1 -faltivec -triple powerpc64-unknown-unknown -emit-llvm %s -o - | FileCheck %s
      4 // RUN: %clang_cc1 -faltivec -triple powerpc64le-unknown-unknown -emit-llvm %s -o - | FileCheck %s -check-prefix=CHECK-LE
      5 
      6 vector bool char vbc = { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 };
      7 vector signed char vsc = { 1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16 };
      8 vector unsigned char vuc = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 };
      9 vector bool short vbs = { 1, 0, 1, 0, 1, 0, 1, 0 };
     10 vector short vs = { -1, 2, -3, 4, -5, 6, -7, 8 };
     11 vector unsigned short vus = { 1, 2, 3, 4, 5, 6, 7, 8 };
     12 vector pixel vp = { 1, 2, 3, 4, 5, 6, 7, 8 };
     13 vector bool int vbi = { 1, 0, 1, 0 };
     14 vector int vi = { -1, 2, -3, 4 };
     15 vector unsigned int vui = { 1, 2, 3, 4 };
     16 vector float vf = { -1.5, 2.5, -3.5, 4.5 };
     17 
     18 vector bool char res_vbc;
     19 vector signed char res_vsc;
     20 vector unsigned char res_vuc;
     21 vector bool short res_vbs;
     22 vector short res_vs;
     23 vector unsigned short res_vus;
     24 vector pixel res_vp;
     25 vector bool int res_vbi;
     26 vector int res_vi;
     27 vector unsigned int res_vui;
     28 vector float res_vf;
     29 
     30 signed char param_sc;
     31 unsigned char param_uc;
     32 short param_s;
     33 unsigned short param_us;
     34 int param_i;
     35 unsigned int param_ui;
     36 float param_f;
     37 
     38 int res_sc;
     39 int res_uc;
     40 int res_s;
     41 int res_us;
     42 int res_i;
     43 int res_ui;
     44 int res_f;
     45 
     46 // CHECK-LABEL: define void @test1
     47 void test1() {
     48 
     49   /* vec_abs */
     50   vsc = vec_abs(vsc);
     51 // CHECK: sub <16 x i8> zeroinitializer
     52 // CHECK: @llvm.ppc.altivec.vmaxsb
     53 // CHECK-LE: sub <16 x i8> zeroinitializer
     54 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
     55 
     56   vs = vec_abs(vs);
     57 // CHECK: sub <8 x i16> zeroinitializer
     58 // CHECK: @llvm.ppc.altivec.vmaxsh
     59 // CHECK-LE: sub <8 x i16> zeroinitializer
     60 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
     61 
     62   vi = vec_abs(vi);
     63 // CHECK: sub <4 x i32> zeroinitializer
     64 // CHECK: @llvm.ppc.altivec.vmaxsw
     65 // CHECK-LE: sub <4 x i32> zeroinitializer
     66 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
     67 
     68   vf = vec_abs(vf);
     69 // CHECK: and <4 x i32>
     70 // CHECK-LE: and <4 x i32>
     71 
     72   /* vec_abs */
     73   vsc = vec_abss(vsc);
     74 // CHECK: @llvm.ppc.altivec.vsubsbs
     75 // CHECK: @llvm.ppc.altivec.vmaxsb
     76 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
     77 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
     78 
     79   vs = vec_abss(vs);
     80 // CHECK: @llvm.ppc.altivec.vsubshs
     81 // CHECK: @llvm.ppc.altivec.vmaxsh
     82 // CHECK-LE: @llvm.ppc.altivec.vsubshs
     83 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
     84 
     85   vi = vec_abss(vi);
     86 // CHECK: @llvm.ppc.altivec.vsubsws
     87 // CHECK: @llvm.ppc.altivec.vmaxsw
     88 // CHECK-LE: @llvm.ppc.altivec.vsubsws
     89 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
     90 
     91   /*  vec_add */
     92   res_vsc = vec_add(vsc, vsc);
     93 // CHECK: add <16 x i8>
     94 // CHECK-LE: add <16 x i8>
     95 
     96   res_vsc = vec_add(vbc, vsc);
     97 // CHECK: add <16 x i8>
     98 // CHECK-LE: add <16 x i8>
     99 
    100   res_vsc = vec_add(vsc, vbc);
    101 // CHECK: add <16 x i8>
    102 // CHECK-LE: add <16 x i8>
    103 
    104   res_vuc = vec_add(vuc, vuc);
    105 // CHECK: add <16 x i8>
    106 // CHECK-LE: add <16 x i8>
    107 
    108   res_vuc = vec_add(vbc, vuc);
    109 // CHECK: add <16 x i8>
    110 // CHECK-LE: add <16 x i8>
    111 
    112   res_vuc = vec_add(vuc, vbc);
    113 // CHECK: add <16 x i8>
    114 // CHECK-LE: add <16 x i8>
    115 
    116   res_vs  = vec_add(vs, vs);
    117 // CHECK: add <8 x i16>
    118 // CHECK-LE: add <8 x i16>
    119 
    120   res_vs  = vec_add(vbs, vs);
    121 // CHECK: add <8 x i16>
    122 // CHECK-LE: add <8 x i16>
    123 
    124   res_vs  = vec_add(vs, vbs);
    125 // CHECK: add <8 x i16>
    126 // CHECK-LE: add <8 x i16>
    127 
    128   res_vus = vec_add(vus, vus);
    129 // CHECK: add <8 x i16>
    130 // CHECK-LE: add <8 x i16>
    131 
    132   res_vus = vec_add(vbs, vus);
    133 // CHECK: add <8 x i16>
    134 // CHECK-LE: add <8 x i16>
    135 
    136   res_vus = vec_add(vus, vbs);
    137 // CHECK: add <8 x i16>
    138 // CHECK-LE: add <8 x i16>
    139 
    140   res_vi  = vec_add(vi, vi);
    141 // CHECK: add <4 x i32>
    142 // CHECK-LE: add <4 x i32>
    143 
    144   res_vi  = vec_add(vbi, vi);
    145 // CHECK: add <4 x i32>
    146 // CHECK-LE: add <4 x i32>
    147 
    148   res_vi  = vec_add(vi, vbi);
    149 // CHECK: add <4 x i32>
    150 // CHECK-LE: add <4 x i32>
    151 
    152   res_vui = vec_add(vui, vui);
    153 // CHECK: add <4 x i32>
    154 // CHECK-LE: add <4 x i32>
    155 
    156   res_vui = vec_add(vbi, vui);
    157 // CHECK: add <4 x i32>
    158 // CHECK-LE: add <4 x i32>
    159 
    160   res_vui = vec_add(vui, vbi);
    161 // CHECK: add <4 x i32>
    162 // CHECK-LE: add <4 x i32>
    163 
    164   res_vf  = vec_add(vf, vf);
    165 // CHECK: fadd <4 x float>
    166 // CHECK-LE: fadd <4 x float>
    167 
    168   res_vsc = vec_vaddubm(vsc, vsc);
    169 // CHECK: add <16 x i8>
    170 // CHECK-LE: add <16 x i8>
    171 
    172   res_vsc = vec_vaddubm(vbc, vsc);
    173 // CHECK: add <16 x i8>
    174 // CHECK-LE: add <16 x i8>
    175 
    176   res_vsc = vec_vaddubm(vsc, vbc);
    177 // CHECK: add <16 x i8>
    178 // CHECK-LE: add <16 x i8>
    179 
    180   res_vuc = vec_vaddubm(vuc, vuc);
    181 // CHECK: add <16 x i8>
    182 // CHECK-LE: add <16 x i8>
    183 
    184   res_vuc = vec_vaddubm(vbc, vuc);
    185 // CHECK: add <16 x i8>
    186 // CHECK-LE: add <16 x i8>
    187 
    188   res_vuc = vec_vaddubm(vuc, vbc);
    189 // CHECK: add <16 x i8>
    190 // CHECK-LE: add <16 x i8>
    191 
    192   res_vs  = vec_vadduhm(vs, vs);
    193 // CHECK: add <8 x i16>
    194 // CHECK-LE: add <8 x i16>
    195 
    196   res_vs  = vec_vadduhm(vbs, vs);
    197 // CHECK: add <8 x i16>
    198 // CHECK-LE: add <8 x i16>
    199 
    200   res_vs  = vec_vadduhm(vs, vbs);
    201 // CHECK: add <8 x i16>
    202 // CHECK-LE: add <8 x i16>
    203 
    204   res_vus = vec_vadduhm(vus, vus);
    205 // CHECK: add <8 x i16>
    206 // CHECK-LE: add <8 x i16>
    207 
    208   res_vus = vec_vadduhm(vbs, vus);
    209 // CHECK: add <8 x i16>
    210 // CHECK-LE: add <8 x i16>
    211 
    212   res_vus = vec_vadduhm(vus, vbs);
    213 // CHECK: add <8 x i16>
    214 // CHECK-LE: add <8 x i16>
    215 
    216   res_vi  = vec_vadduwm(vi, vi);
    217 // CHECK: add <4 x i32>
    218 // CHECK-LE: add <4 x i32>
    219 
    220   res_vi  = vec_vadduwm(vbi, vi);
    221 // CHECK: add <4 x i32>
    222 // CHECK-LE: add <4 x i32>
    223 
    224   res_vi  = vec_vadduwm(vi, vbi);
    225 // CHECK: add <4 x i32>
    226 // CHECK-LE: add <4 x i32>
    227 
    228   res_vui = vec_vadduwm(vui, vui);
    229 // CHECK: add <4 x i32>
    230 // CHECK-LE: add <4 x i32>
    231 
    232   res_vui = vec_vadduwm(vbi, vui);
    233 // CHECK: add <4 x i32>
    234 // CHECK-LE: add <4 x i32>
    235 
    236   res_vui = vec_vadduwm(vui, vbi);
    237 // CHECK: add <4 x i32>
    238 // CHECK-LE: add <4 x i32>
    239 
    240   res_vf  = vec_vaddfp(vf, vf);
    241 // CHECK: fadd <4 x float>
    242 // CHECK-LE: fadd <4 x float>
    243 
    244   /* vec_addc */
    245   res_vui = vec_addc(vui, vui);
    246 // CHECK: @llvm.ppc.altivec.vaddcuw
    247 // CHECK-LE: @llvm.ppc.altivec.vaddcuw
    248 
    249   res_vui = vec_vaddcuw(vui, vui);
    250 // CHECK: @llvm.ppc.altivec.vaddcuw
    251 // CHECK-LE: @llvm.ppc.altivec.vaddcuw
    252 
    253   /* vec_adds */
    254   res_vsc = vec_adds(vsc, vsc);
    255 // CHECK: @llvm.ppc.altivec.vaddsbs
    256 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
    257 
    258   res_vsc = vec_adds(vbc, vsc);
    259 // CHECK: @llvm.ppc.altivec.vaddsbs
    260 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
    261 
    262   res_vsc = vec_adds(vsc, vbc);
    263 // CHECK: @llvm.ppc.altivec.vaddsbs
    264 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
    265 
    266   res_vuc = vec_adds(vuc, vuc);
    267 // CHECK: @llvm.ppc.altivec.vaddubs
    268 // CHECK-LE: @llvm.ppc.altivec.vaddubs
    269 
    270   res_vuc = vec_adds(vbc, vuc);
    271 // CHECK: @llvm.ppc.altivec.vaddubs
    272 // CHECK-LE: @llvm.ppc.altivec.vaddubs
    273 
    274   res_vuc = vec_adds(vuc, vbc);
    275 // CHECK: @llvm.ppc.altivec.vaddubs
    276 // CHECK-LE: @llvm.ppc.altivec.vaddubs
    277 
    278   res_vs  = vec_adds(vs, vs);
    279 // CHECK: @llvm.ppc.altivec.vaddshs
    280 // CHECK-LE: @llvm.ppc.altivec.vaddshs
    281 
    282   res_vs  = vec_adds(vbs, vs);
    283 // CHECK: @llvm.ppc.altivec.vaddshs
    284 // CHECK-LE: @llvm.ppc.altivec.vaddshs
    285 
    286   res_vs  = vec_adds(vs, vbs);
    287 // CHECK: @llvm.ppc.altivec.vaddshs
    288 // CHECK-LE: @llvm.ppc.altivec.vaddshs
    289 
    290   res_vus = vec_adds(vus, vus);
    291 // CHECK: @llvm.ppc.altivec.vadduhs
    292 // CHECK-LE: @llvm.ppc.altivec.vadduhs
    293 
    294   res_vus = vec_adds(vbs, vus);
    295 // CHECK: @llvm.ppc.altivec.vadduhs
    296 // CHECK-LE: @llvm.ppc.altivec.vadduhs
    297 
    298   res_vus = vec_adds(vus, vbs);
    299 // CHECK: @llvm.ppc.altivec.vadduhs
    300 // CHECK-LE: @llvm.ppc.altivec.vadduhs
    301 
    302   res_vi  = vec_adds(vi, vi);
    303 // CHECK: @llvm.ppc.altivec.vaddsws
    304 // CHECK-LE: @llvm.ppc.altivec.vaddsws
    305 
    306   res_vi  = vec_adds(vbi, vi);
    307 // CHECK: @llvm.ppc.altivec.vaddsws
    308 // CHECK-LE: @llvm.ppc.altivec.vaddsws
    309 
    310   res_vi  = vec_adds(vi, vbi);
    311 // CHECK: @llvm.ppc.altivec.vaddsws
    312 // CHECK-LE: @llvm.ppc.altivec.vaddsws
    313 
    314   res_vui = vec_adds(vui, vui);
    315 // CHECK: @llvm.ppc.altivec.vadduws
    316 // CHECK-LE: @llvm.ppc.altivec.vadduws
    317 
    318   res_vui = vec_adds(vbi, vui);
    319 // CHECK: @llvm.ppc.altivec.vadduws
    320 // CHECK-LE: @llvm.ppc.altivec.vadduws
    321 
    322   res_vui = vec_adds(vui, vbi);
    323 // CHECK: @llvm.ppc.altivec.vadduws
    324 // CHECK-LE: @llvm.ppc.altivec.vadduws
    325 
    326   res_vsc = vec_vaddsbs(vsc, vsc);
    327 // CHECK: @llvm.ppc.altivec.vaddsbs
    328 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
    329 
    330   res_vsc = vec_vaddsbs(vbc, vsc);
    331 // CHECK: @llvm.ppc.altivec.vaddsbs
    332 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
    333 
    334   res_vsc = vec_vaddsbs(vsc, vbc);
    335 // CHECK: @llvm.ppc.altivec.vaddsbs
    336 // CHECK-LE: @llvm.ppc.altivec.vaddsbs
    337 
    338   res_vuc = vec_vaddubs(vuc, vuc);
    339 // CHECK: @llvm.ppc.altivec.vaddubs
    340 // CHECK-LE: @llvm.ppc.altivec.vaddubs
    341 
    342   res_vuc = vec_vaddubs(vbc, vuc);
    343 // CHECK: @llvm.ppc.altivec.vaddubs
    344 // CHECK-LE: @llvm.ppc.altivec.vaddubs
    345 
    346   res_vuc = vec_vaddubs(vuc, vbc);
    347 // CHECK: @llvm.ppc.altivec.vaddubs
    348 // CHECK-LE: @llvm.ppc.altivec.vaddubs
    349 
    350   res_vs  = vec_vaddshs(vs, vs);
    351 // CHECK: @llvm.ppc.altivec.vaddshs
    352 // CHECK-LE: @llvm.ppc.altivec.vaddshs
    353 
    354   res_vs  = vec_vaddshs(vbs, vs);
    355 // CHECK: @llvm.ppc.altivec.vaddshs
    356 // CHECK-LE: @llvm.ppc.altivec.vaddshs
    357 
    358   res_vs  = vec_vaddshs(vs, vbs);
    359 // CHECK: @llvm.ppc.altivec.vaddshs
    360 // CHECK-LE: @llvm.ppc.altivec.vaddshs
    361 
    362   res_vus = vec_vadduhs(vus, vus);
    363 // CHECK: @llvm.ppc.altivec.vadduhs
    364 // CHECK-LE: @llvm.ppc.altivec.vadduhs
    365 
    366   res_vus = vec_vadduhs(vbs, vus);
    367 // CHECK: @llvm.ppc.altivec.vadduhs
    368 // CHECK-LE: @llvm.ppc.altivec.vadduhs
    369 
    370   res_vus = vec_vadduhs(vus, vbs);
    371 // CHECK: @llvm.ppc.altivec.vadduhs
    372 // CHECK-LE: @llvm.ppc.altivec.vadduhs
    373 
    374   res_vi  = vec_vaddsws(vi, vi);
    375 // CHECK: @llvm.ppc.altivec.vaddsws
    376 // CHECK-LE: @llvm.ppc.altivec.vaddsws
    377 
    378   res_vi  = vec_vaddsws(vbi, vi);
    379 // CHECK: @llvm.ppc.altivec.vaddsws
    380 // CHECK-LE: @llvm.ppc.altivec.vaddsws
    381 
    382   res_vi  = vec_vaddsws(vi, vbi);
    383 // CHECK: @llvm.ppc.altivec.vaddsws
    384 // CHECK-LE: @llvm.ppc.altivec.vaddsws
    385 
    386   res_vui = vec_vadduws(vui, vui);
    387 // CHECK: @llvm.ppc.altivec.vadduws
    388 // CHECK-LE: @llvm.ppc.altivec.vadduws
    389 
    390   res_vui = vec_vadduws(vbi, vui);
    391 // CHECK: @llvm.ppc.altivec.vadduws
    392 // CHECK-LE: @llvm.ppc.altivec.vadduws
    393 
    394   res_vui = vec_vadduws(vui, vbi);
    395 // CHECK: @llvm.ppc.altivec.vadduws
    396 // CHECK-LE: @llvm.ppc.altivec.vadduws
    397 
    398   /* vec_and */
    399   res_vsc = vec_and(vsc, vsc);
    400 // CHECK: and <16 x i8>
    401 // CHECK-LE: and <16 x i8>
    402 
    403   res_vsc = vec_and(vbc, vsc);
    404 // CHECK: and <16 x i8>
    405 // CHECK-LE: and <16 x i8>
    406 
    407   res_vsc = vec_and(vsc, vbc);
    408 // CHECK: and <16 x i8>
    409 // CHECK-LE: and <16 x i8>
    410 
    411   res_vuc = vec_and(vuc, vuc);
    412 // CHECK: and <16 x i8>
    413 // CHECK-LE: and <16 x i8>
    414 
    415   res_vuc = vec_and(vbc, vuc);
    416 // CHECK: and <16 x i8>
    417 // CHECK-LE: and <16 x i8>
    418 
    419   res_vuc = vec_and(vuc, vbc);
    420 // CHECK: and <16 x i8>
    421 // CHECK-LE: and <16 x i8>
    422 
    423   res_vbc = vec_and(vbc, vbc);
    424 // CHECK: and <16 x i8>
    425 // CHECK-LE: and <16 x i8>
    426 
    427   res_vs  = vec_and(vs, vs);
    428 // CHECK: and <8 x i16>
    429 // CHECK-LE: and <8 x i16>
    430 
    431   res_vs  = vec_and(vbs, vs);
    432 // CHECK: and <8 x i16>
    433 // CHECK-LE: and <8 x i16>
    434 
    435   res_vs  = vec_and(vs, vbs);
    436 // CHECK: and <8 x i16>
    437 // CHECK-LE: and <8 x i16>
    438 
    439   res_vus = vec_and(vus, vus);
    440 // CHECK: and <8 x i16>
    441 // CHECK-LE: and <8 x i16>
    442 
    443   res_vus = vec_and(vbs, vus);
    444 // CHECK: and <8 x i16>
    445 // CHECK-LE: and <8 x i16>
    446 
    447   res_vus = vec_and(vus, vbs);
    448 // CHECK: and <8 x i16>
    449 // CHECK-LE: and <8 x i16>
    450 
    451   res_vbs = vec_and(vbs, vbs);
    452 // CHECK: and <8 x i16>
    453 // CHECK-LE: and <8 x i16>
    454 
    455   res_vi  = vec_and(vi, vi);
    456 // CHECK: and <4 x i32>
    457 // CHECK-LE: and <4 x i32>
    458 
    459   res_vi  = vec_and(vbi, vi);
    460 // CHECK: and <4 x i32>
    461 // CHECK-le: and <4 x i32>
    462 
    463   res_vi  = vec_and(vi, vbi);
    464 // CHECK: and <4 x i32>
    465 // CHECK-LE: and <4 x i32>
    466 
    467   res_vui = vec_and(vui, vui);
    468 // CHECK: and <4 x i32>
    469 // CHECK-LE: and <4 x i32>
    470 
    471   res_vui = vec_and(vbi, vui);
    472 // CHECK: and <4 x i32>
    473 // CHECK-LE: and <4 x i32>
    474 
    475   res_vui = vec_and(vui, vbi);
    476 // CHECK: and <4 x i32>
    477 // CHECK-LE: and <4 x i32>
    478 
    479   res_vbi = vec_and(vbi, vbi);
    480 // CHECK: and <4 x i32>
    481 // CHECK-LE: and <4 x i32>
    482 
    483   res_vsc = vec_vand(vsc, vsc);
    484 // CHECK: and <16 x i8>
    485 // CHECK-LE: and <16 x i8>
    486 
    487   res_vsc = vec_vand(vbc, vsc);
    488 // CHECK: and <16 x i8>
    489 // CHECK-LE: and <16 x i8>
    490 
    491   res_vsc = vec_vand(vsc, vbc);
    492 // CHECK: and <16 x i8>
    493 // CHECK-LE: and <16 x i8>
    494 
    495   res_vuc = vec_vand(vuc, vuc);
    496 // CHECK: and <16 x i8>
    497 // CHECK-LE: and <16 x i8>
    498 
    499   res_vuc = vec_vand(vbc, vuc);
    500 // CHECK: and <16 x i8>
    501 // CHECK-LE: and <16 x i8>
    502 
    503   res_vuc = vec_vand(vuc, vbc);
    504 // CHECK: and <16 x i8>
    505 // CHECK-LE: and <16 x i8>
    506 
    507   res_vbc = vec_vand(vbc, vbc);
    508 // CHECK: and <16 x i8>
    509 // CHECK-LE: and <16 x i8>
    510 
    511   res_vs  = vec_vand(vs, vs);
    512 // CHECK: and <8 x i16>
    513 // CHECK-LE: and <8 x i16>
    514 
    515   res_vs  = vec_vand(vbs, vs);
    516 // CHECK: and <8 x i16>
    517 // CHECK-LE: and <8 x i16>
    518 
    519   res_vs  = vec_vand(vs, vbs);
    520 // CHECK: and <8 x i16>
    521 // CHECK-LE: and <8 x i16>
    522 
    523   res_vus = vec_vand(vus, vus);
    524 // CHECK: and <8 x i16>
    525 // CHECK-LE: and <8 x i16>
    526 
    527   res_vus = vec_vand(vbs, vus);
    528 // CHECK: and <8 x i16>
    529 // CHECK-LE: and <8 x i16>
    530 
    531   res_vus = vec_vand(vus, vbs);
    532 // CHECK: and <8 x i16>
    533 // CHECK-LE: and <8 x i16>
    534 
    535   res_vbs = vec_vand(vbs, vbs);
    536 // CHECK: and <8 x i16>
    537 // CHECK-LE: and <8 x i16>
    538 
    539   res_vi  = vec_vand(vi, vi);
    540 // CHECK: and <4 x i32>
    541 // CHECK-LE: and <4 x i32>
    542 
    543   res_vi  = vec_vand(vbi, vi);
    544 // CHECK: and <4 x i32>
    545 // CHECK-LE: and <4 x i32>
    546 
    547   res_vi  = vec_vand(vi, vbi);
    548 // CHECK: and <4 x i32>
    549 // CHECK-LE: and <4 x i32>
    550 
    551   res_vui = vec_vand(vui, vui);
    552 // CHECK: and <4 x i32>
    553 // CHECK-LE: and <4 x i32>
    554 
    555   res_vui = vec_vand(vbi, vui);
    556 // CHECK: and <4 x i32>
    557 // CHECK-LE: and <4 x i32>
    558 
    559   res_vui = vec_vand(vui, vbi);
    560 // CHECK: and <4 x i32>
    561 // CHECK-LE: and <4 x i32>
    562 
    563   res_vbi = vec_vand(vbi, vbi);
    564 // CHECK: and <4 x i32>
    565 // CHECK-LE: and <4 x i32>
    566 
    567   /* vec_andc */
    568   res_vsc = vec_andc(vsc, vsc);
    569 // CHECK: xor <16 x i8>
    570 // CHECK: and <16 x i8>
    571 // CHECK-LE: xor <16 x i8>
    572 // CHECK-LE: and <16 x i8>
    573 
    574   res_vsc = vec_andc(vbc, vsc);
    575 // CHECK: xor <16 x i8>
    576 // CHECK: and <16 x i8>
    577 // CHECK-LE: xor <16 x i8>
    578 // CHECK-LE: and <16 x i8>
    579 
    580   res_vsc = vec_andc(vsc, vbc);
    581 // CHECK: xor <16 x i8>
    582 // CHECK: and <16 x i8>
    583 // CHECK-LE: xor <16 x i8>
    584 // CHECK-LE: and <16 x i8>
    585 
    586   res_vuc = vec_andc(vuc, vuc);
    587 // CHECK: xor <16 x i8>
    588 // CHECK: and <16 x i8>
    589 // CHECK-LE: xor <16 x i8>
    590 // CHECK-LE: and <16 x i8>
    591 
    592   res_vuc = vec_andc(vbc, vuc);
    593 // CHECK: xor <16 x i8>
    594 // CHECK: and <16 x i8>
    595 // CHECK-LE: xor <16 x i8>
    596 // CHECK-LE: and <16 x i8>
    597 
    598   res_vuc = vec_andc(vuc, vbc);
    599 // CHECK-LE: xor <16 x i8>
    600 // CHECK-LE: and <16 x i8>
    601 
    602   res_vbc = vec_andc(vbc, vbc);
    603 // CHECK: xor <16 x i8>
    604 // CHECK: and <16 x i8>
    605 // CHECK-LE: xor <16 x i8>
    606 // CHECK-LE: and <16 x i8>
    607 
    608   res_vs  = vec_andc(vs, vs);
    609 // CHECK: xor <8 x i16>
    610 // CHECK: and <8 x i16>
    611 // CHECK-LE: xor <8 x i16>
    612 // CHECK-LE: and <8 x i16>
    613 
    614   res_vs  = vec_andc(vbs, vs);
    615 // CHECK: xor <8 x i16>
    616 // CHECK: and <8 x i16>
    617 // CHECK-LE: xor <8 x i16>
    618 // CHECK-LE: and <8 x i16>
    619 
    620   res_vs  = vec_andc(vs, vbs);
    621 // CHECK: xor <8 x i16>
    622 // CHECK: and <8 x i16>
    623 // CHECK-LE: xor <8 x i16>
    624 // CHECK-LE: and <8 x i16>
    625 
    626   res_vus = vec_andc(vus, vus);
    627 // CHECK: xor <8 x i16>
    628 // CHECK: and <8 x i16>
    629 // CHECK-LE: xor <8 x i16>
    630 // CHECK-LE: and <8 x i16>
    631 
    632   res_vus = vec_andc(vbs, vus);
    633 // CHECK: xor <8 x i16>
    634 // CHECK: and <8 x i16>
    635 // CHECK-LE: xor <8 x i16>
    636 // CHECK-LE: and <8 x i16>
    637 
    638   res_vus = vec_andc(vus, vbs);
    639 // CHECK: xor <8 x i16>
    640 // CHECK: and <8 x i16>
    641 // CHECK-LE: xor <8 x i16>
    642 // CHECK-LE: and <8 x i16>
    643 
    644   res_vbs = vec_andc(vbs, vbs);
    645 // CHECK: xor <8 x i16>
    646 // CHECK: and <8 x i16>
    647 // CHECK-LE: xor <8 x i16>
    648 // CHECK-LE: and <8 x i16>
    649 
    650   res_vi  = vec_andc(vi, vi);
    651 // CHECK: xor <4 x i32>
    652 // CHECK: and <4 x i32>
    653 // CHECK-LE: xor <4 x i32>
    654 // CHECK-LE: and <4 x i32>
    655 
    656   res_vi  = vec_andc(vbi, vi);
    657 // CHECK: xor <4 x i32>
    658 // CHECK: and <4 x i32>
    659 // CHECK-LE: xor <4 x i32>
    660 // CHECK-LE: and <4 x i32>
    661 
    662   res_vi  = vec_andc(vi, vbi);
    663 // CHECK: xor <4 x i32>
    664 // CHECK: and <4 x i32>
    665 // CHECK-LE: xor <4 x i32>
    666 // CHECK-LE: and <4 x i32>
    667 
    668   res_vui = vec_andc(vui, vui);
    669 // CHECK: xor <4 x i32>
    670 // CHECK: and <4 x i32>
    671 // CHECK-LE: xor <4 x i32>
    672 // CHECK-LE: and <4 x i32>
    673 
    674   res_vui = vec_andc(vbi, vui);
    675 // CHECK: xor <4 x i32>
    676 // CHECK: and <4 x i32>
    677 // CHECK-LE: xor <4 x i32>
    678 // CHECK-LE: and <4 x i32>
    679 
    680   res_vui = vec_andc(vui, vbi);
    681 // CHECK: xor <4 x i32>
    682 // CHECK: and <4 x i32>
    683 // CHECK-LE: xor <4 x i32>
    684 // CHECK-LE: and <4 x i32>
    685 
    686   res_vf = vec_andc(vf, vf);
    687 // CHECK: xor <4 x i32>
    688 // CHECK: and <4 x i32>
    689 // CHECK-LE: xor <4 x i32>
    690 // CHECK-LE: and <4 x i32>
    691 
    692   res_vf = vec_andc(vbi, vf);
    693 // CHECK: xor <4 x i32>
    694 // CHECK: and <4 x i32>
    695 // CHECK-LE: xor <4 x i32>
    696 // CHECK-LE: and <4 x i32>
    697 
    698   res_vf = vec_andc(vf, vbi);
    699 // CHECK: xor <4 x i32>
    700 // CHECK: and <4 x i32>
    701 // CHECK-LE: xor <4 x i32>
    702 // CHECK-LE: and <4 x i32>
    703 
    704   res_vsc = vec_vandc(vsc, vsc);
    705 // CHECK: xor <16 x i8>
    706 // CHECK: and <16 x i8>
    707 // CHECK-LE: xor <16 x i8>
    708 // CHECK-LE: and <16 x i8>
    709 
    710   res_vsc = vec_vandc(vbc, vsc);
    711 // CHECK: xor <16 x i8>
    712 // CHECK: and <16 x i8>
    713 // CHECK-LE: xor <16 x i8>
    714 // CHECK-LE: and <16 x i8>
    715 
    716   res_vsc = vec_vandc(vsc, vbc);
    717 // CHECK: xor <16 x i8>
    718 // CHECK: and <16 x i8>
    719 // CHECK-LE: xor <16 x i8>
    720 // CHECK-LE: and <16 x i8>
    721 
    722   res_vuc = vec_vandc(vuc, vuc);
    723 // CHECK: xor <16 x i8>
    724 // CHECK: and <16 x i8>
    725 // CHECK-LE: xor <16 x i8>
    726 // CHECK-LE: and <16 x i8>
    727 
    728   res_vuc = vec_vandc(vbc, vuc);
    729 // CHECK: xor <16 x i8>
    730 // CHECK: and <16 x i8>
    731 // CHECK-LE: xor <16 x i8>
    732 // CHECK-LE: and <16 x i8>
    733 
    734   res_vuc = vec_vandc(vuc, vbc);
    735 // CHECK: xor <16 x i8>
    736 // CHECK: and <16 x i8>
    737 // CHECK-LE: xor <16 x i8>
    738 // CHECK-LE: and <16 x i8>
    739 
    740   res_vbc = vec_vandc(vbc, vbc);
    741 // CHECK: xor <16 x i8>
    742 // CHECK: and <16 x i8>
    743 // CHECK-LE: xor <16 x i8>
    744 // CHECK-LE: and <16 x i8>
    745 
    746   res_vs  = vec_vandc(vs, vs);
    747 // CHECK: xor <8 x i16>
    748 // CHECK: and <8 x i16>
    749 // CHECK-LE: xor <8 x i16>
    750 // CHECK-LE: and <8 x i16>
    751 
    752   res_vs  = vec_vandc(vbs, vs);
    753 // CHECK: xor <8 x i16>
    754 // CHECK: and <8 x i16>
    755 // CHECK-LE: xor <8 x i16>
    756 // CHECK-LE: and <8 x i16>
    757 
    758   res_vs  = vec_vandc(vs, vbs);
    759 // CHECK: xor <8 x i16>
    760 // CHECK: and <8 x i16>
    761 // CHECK-LE: xor <8 x i16>
    762 // CHECK-LE: and <8 x i16>
    763 
    764   res_vus = vec_vandc(vus, vus);
    765 // CHECK: xor <8 x i16>
    766 // CHECK: and <8 x i16>
    767 // CHECK-LE: xor <8 x i16>
    768 // CHECK-LE: and <8 x i16>
    769 
    770   res_vus = vec_vandc(vbs, vus);
    771 // CHECK: xor <8 x i16>
    772 // CHECK: and <8 x i16>
    773 // CHECK-LE: xor <8 x i16>
    774 // CHECK-LE: and <8 x i16>
    775 
    776   res_vus = vec_vandc(vus, vbs);
    777 // CHECK: xor <8 x i16>
    778 // CHECK: and <8 x i16>
    779 // CHECK-LE: xor <8 x i16>
    780 // CHECK-LE: and <8 x i16>
    781 
    782   res_vbs = vec_vandc(vbs, vbs);
    783 // CHECK: xor <8 x i16>
    784 // CHECK: and <8 x i16>
    785 // CHECK-LE: xor <8 x i16>
    786 // CHECK-LE: and <8 x i16>
    787 
    788   res_vi  = vec_vandc(vi, vi);
    789 // CHECK: xor <4 x i32>
    790 // CHECK: and <4 x i32>
    791 // CHECK-LE: xor <4 x i32>
    792 // CHECK-LE: and <4 x i32>
    793 
    794   res_vi  = vec_vandc(vbi, vi);
    795 // CHECK: xor <4 x i32>
    796 // CHECK: and <4 x i32>
    797 // CHECK-LE: xor <4 x i32>
    798 // CHECK-LE: and <4 x i32>
    799 
    800   res_vi  = vec_vandc(vi, vbi);
    801 // CHECK: xor <4 x i32>
    802 // CHECK: and <4 x i32>
    803 // CHECK-LE: xor <4 x i32>
    804 // CHECK-LE: and <4 x i32>
    805 
    806   res_vui = vec_vandc(vui, vui);
    807 // CHECK: xor <4 x i32>
    808 // CHECK: and <4 x i32>
    809 // CHECK-LE: xor <4 x i32>
    810 // CHECK-LE: and <4 x i32>
    811 
    812   res_vui = vec_vandc(vbi, vui);
    813 // CHECK: xor <4 x i32>
    814 // CHECK: and <4 x i32>
    815 // CHECK-LE: xor <4 x i32>
    816 // CHECK-LE: and <4 x i32>
    817 
    818   res_vui = vec_vandc(vui, vbi);
    819 // CHECK: xor <4 x i32>
    820 // CHECK: and <4 x i32>
    821 // CHECK-LE: xor <4 x i32>
    822 // CHECK-LE: and <4 x i32>
    823 
    824   res_vf = vec_vandc(vf, vf);
    825 // CHECK: xor <4 x i32>
    826 // CHECK: and <4 x i32>
    827 // CHECK-LE: xor <4 x i32>
    828 // CHECK-LE: and <4 x i32>
    829 
    830   res_vf = vec_vandc(vbi, vf);
    831 // CHECK: xor <4 x i32>
    832 // CHECK: and <4 x i32>
    833 // CHECK-LE: xor <4 x i32>
    834 // CHECK-LE: and <4 x i32>
    835 
    836   res_vf = vec_vandc(vf, vbi);
    837 // CHECK: xor <4 x i32>
    838 // CHECK: and <4 x i32>
    839 // CHECK-LE: xor <4 x i32>
    840 // CHECK-LE: and <4 x i32>
    841 
    842 }
    843 
    844 // CHECK-LABEL: define void @test2
    845 void test2() {
    846   /* vec_avg */
    847   res_vsc = vec_avg(vsc, vsc);
    848 // CHECK: @llvm.ppc.altivec.vavgsb
    849 // CHECK-LE: @llvm.ppc.altivec.vavgsb
    850 
    851   res_vuc = vec_avg(vuc, vuc);
    852 // CHECK: @llvm.ppc.altivec.vavgub
    853 // CHECK-LE: @llvm.ppc.altivec.vavgub
    854 
    855   res_vs  = vec_avg(vs, vs);
    856 // CHECK: @llvm.ppc.altivec.vavgsh
    857 // CHECK-LE: @llvm.ppc.altivec.vavgsh
    858 
    859   res_vus = vec_avg(vus, vus);
    860 // CHECK: @llvm.ppc.altivec.vavguh
    861 // CHECK-LE: @llvm.ppc.altivec.vavguh
    862 
    863   res_vi  = vec_avg(vi, vi);
    864 // CHECK: @llvm.ppc.altivec.vavgsw
    865 // CHECK-LE: @llvm.ppc.altivec.vavgsw
    866 
    867   res_vui = vec_avg(vui, vui);
    868 // CHECK: @llvm.ppc.altivec.vavguw
    869 // CHECK-LE: @llvm.ppc.altivec.vavguw
    870 
    871   res_vsc = vec_vavgsb(vsc, vsc);
    872 // CHECK: @llvm.ppc.altivec.vavgsb
    873 // CHECK-LE: @llvm.ppc.altivec.vavgsb
    874 
    875   res_vuc = vec_vavgub(vuc, vuc);
    876 // CHECK: @llvm.ppc.altivec.vavgub
    877 // CHECK-LE: @llvm.ppc.altivec.vavgub
    878 
    879   res_vs  = vec_vavgsh(vs, vs);
    880 // CHECK: @llvm.ppc.altivec.vavgsh
    881 // CHECK-LE: @llvm.ppc.altivec.vavgsh
    882 
    883   res_vus = vec_vavguh(vus, vus);
    884 // CHECK: @llvm.ppc.altivec.vavguh
    885 // CHECK-LE: @llvm.ppc.altivec.vavguh
    886 
    887   res_vi  = vec_vavgsw(vi, vi);
    888 // CHECK: @llvm.ppc.altivec.vavgsw
    889 // CHECK-LE: @llvm.ppc.altivec.vavgsw
    890 
    891   res_vui = vec_vavguw(vui, vui);
    892 // CHECK: @llvm.ppc.altivec.vavguw
    893 // CHECK-LE: @llvm.ppc.altivec.vavguw
    894 
    895   /* vec_ceil */
    896   res_vf = vec_ceil(vf);
    897 // CHECK: @llvm.ppc.altivec.vrfip
    898 // CHECK-LE: @llvm.ppc.altivec.vrfip
    899 
    900   res_vf = vec_vrfip(vf);
    901 // CHECK: @llvm.ppc.altivec.vrfip
    902 // CHECK-LE: @llvm.ppc.altivec.vrfip
    903 
    904   /* vec_cmpb */
    905   res_vi = vec_cmpb(vf, vf);
    906 // CHECK: @llvm.ppc.altivec.vcmpbfp
    907 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp
    908 
    909   res_vi = vec_vcmpbfp(vf, vf);
    910 // CHECK: @llvm.ppc.altivec.vcmpbfp
    911 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp
    912 
    913   /* vec_cmpeq */
    914   res_vbc = vec_cmpeq(vsc, vsc);
    915 // CHECK: @llvm.ppc.altivec.vcmpequb
    916 // CHECK-LE: @llvm.ppc.altivec.vcmpequb
    917 
    918   res_vbc = vec_cmpeq(vuc, vuc);
    919 // CHECK: @llvm.ppc.altivec.vcmpequb
    920 // CHECK-LE: @llvm.ppc.altivec.vcmpequb
    921 
    922   res_vbs = vec_cmpeq(vs, vs);
    923 // CHECK: @llvm.ppc.altivec.vcmpequh
    924 // CHECK-LE: @llvm.ppc.altivec.vcmpequh
    925 
    926   res_vbs = vec_cmpeq(vus, vus);
    927 // CHECK: @llvm.ppc.altivec.vcmpequh
    928 // CHECK-LE: @llvm.ppc.altivec.vcmpequh
    929 
    930   res_vbi = vec_cmpeq(vi, vi);
    931 // CHECK: @llvm.ppc.altivec.vcmpequw
    932 // CHECK-LE: @llvm.ppc.altivec.vcmpequw
    933 
    934   res_vbi = vec_cmpeq(vui, vui);
    935 // CHECK: @llvm.ppc.altivec.vcmpequw
    936 // CHECK-LE: @llvm.ppc.altivec.vcmpequw
    937 
    938   res_vbi = vec_cmpeq(vf, vf);
    939 // CHECK: @llvm.ppc.altivec.vcmpeqfp
    940 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp
    941 
    942   /* vec_cmpge */
    943   res_vbc = vec_cmpge(vsc, vsc);
    944 // CHECK: @llvm.ppc.altivec.vcmpgtsb
    945 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb
    946 
    947   res_vbc = vec_cmpge(vuc, vuc);
    948 // CHECK: @llvm.ppc.altivec.vcmpgtub
    949 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub
    950 
    951   res_vbs = vec_cmpge(vs, vs);
    952 // CHECK: @llvm.ppc.altivec.vcmpgtsh
    953 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh
    954 
    955   res_vbs = vec_cmpge(vus, vus);
    956 // CHECK: @llvm.ppc.altivec.vcmpgtuh
    957 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh
    958 
    959   res_vbi = vec_cmpge(vi, vi);
    960 // CHECK: @llvm.ppc.altivec.vcmpgtsw
    961 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw
    962 
    963   res_vbi = vec_cmpge(vui, vui);
    964 // CHECK: @llvm.ppc.altivec.vcmpgtuw
    965 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw
    966 
    967   res_vbi = vec_cmpge(vf, vf);
    968 // CHECK: @llvm.ppc.altivec.vcmpgefp
    969 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp
    970 
    971   res_vbi = vec_vcmpgefp(vf, vf);
    972 // CHECK: @llvm.ppc.altivec.vcmpgefp
    973 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp
    974 }
    975 
    976 // CHECK-LABEL: define void @test5
    977 void test5() {
    978 
    979   /* vec_cmpgt */
    980   res_vbc = vec_cmpgt(vsc, vsc);
    981 // CHECK: @llvm.ppc.altivec.vcmpgtsb
    982 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb
    983 
    984   res_vbc = vec_cmpgt(vuc, vuc);
    985 // CHECK: @llvm.ppc.altivec.vcmpgtub
    986 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub
    987 
    988   res_vbs = vec_cmpgt(vs, vs);
    989 // CHECK: @llvm.ppc.altivec.vcmpgtsh
    990 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh
    991 
    992   res_vbs = vec_cmpgt(vus, vus);
    993 // CHECK: @llvm.ppc.altivec.vcmpgtuh
    994 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh
    995 
    996   res_vbi = vec_cmpgt(vi, vi);
    997 // CHECK: @llvm.ppc.altivec.vcmpgtsw
    998 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw
    999 
   1000   res_vbi = vec_cmpgt(vui, vui);
   1001 // CHECK: @llvm.ppc.altivec.vcmpgtuw
   1002 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw
   1003 
   1004   res_vbi = vec_cmpgt(vf, vf);
   1005 // CHECK: @llvm.ppc.altivec.vcmpgtfp
   1006 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp
   1007 
   1008   res_vbc = vec_vcmpgtsb(vsc, vsc);
   1009 // CHECK: @llvm.ppc.altivec.vcmpgtsb
   1010 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb
   1011 
   1012   res_vbc = vec_vcmpgtub(vuc, vuc);
   1013 // CHECK: @llvm.ppc.altivec.vcmpgtub
   1014 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub
   1015 
   1016   res_vbs = vec_vcmpgtsh(vs, vs);
   1017 // CHECK: @llvm.ppc.altivec.vcmpgtsh
   1018 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh
   1019 
   1020   res_vbs = vec_vcmpgtuh(vus, vus);
   1021 // CHECK: @llvm.ppc.altivec.vcmpgtuh
   1022 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh
   1023 
   1024   res_vbi = vec_vcmpgtsw(vi, vi);
   1025 // CHECK: @llvm.ppc.altivec.vcmpgtsw
   1026 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw
   1027 
   1028   res_vbi = vec_vcmpgtuw(vui, vui);
   1029 // CHECK: @llvm.ppc.altivec.vcmpgtuw
   1030 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw
   1031 
   1032   res_vbi = vec_vcmpgtfp(vf, vf);
   1033 // CHECK: @llvm.ppc.altivec.vcmpgtfp
   1034 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp
   1035 
   1036   /* vec_cmple */
   1037   res_vbc = vec_cmple(vsc, vsc);
   1038 // CHECK: @llvm.ppc.altivec.vcmpgtsb
   1039 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb
   1040 
   1041   res_vbc = vec_cmple(vuc, vuc);
   1042 // CHECK: @llvm.ppc.altivec.vcmpgtub
   1043 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub
   1044 
   1045   res_vbs = vec_cmple(vs, vs);
   1046 // CHECK: @llvm.ppc.altivec.vcmpgtsh
   1047 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh
   1048 
   1049   res_vbs = vec_cmple(vus, vus);
   1050 // CHECK: @llvm.ppc.altivec.vcmpgtuh
   1051 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh
   1052 
   1053   res_vbi = vec_cmple(vi, vi);
   1054 // CHECK: @llvm.ppc.altivec.vcmpgtsw
   1055 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw
   1056 
   1057   res_vbi = vec_cmple(vui, vui);
   1058 // CHECK: @llvm.ppc.altivec.vcmpgtuw
   1059 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw
   1060 
   1061   res_vbi = vec_cmple(vf, vf);
   1062 // CHECK: @llvm.ppc.altivec.vcmpgefp
   1063 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp
   1064 }
   1065 
   1066 // CHECK-LABEL: define void @test6
   1067 void test6() {
   1068   /* vec_cmplt */
   1069   res_vbc = vec_cmplt(vsc, vsc);
   1070 // CHECK: @llvm.ppc.altivec.vcmpgtsb
   1071 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb
   1072 
   1073   res_vbc = vec_cmplt(vuc, vuc);
   1074 // CHECK: @llvm.ppc.altivec.vcmpgtub
   1075 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub
   1076 
   1077   res_vbs = vec_cmplt(vs, vs);
   1078 // CHECK: @llvm.ppc.altivec.vcmpgtsh
   1079 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh
   1080 
   1081   res_vbs = vec_cmplt(vus, vus);
   1082 // CHECK: @llvm.ppc.altivec.vcmpgtuh
   1083 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh
   1084 
   1085   res_vbi = vec_cmplt(vi, vi);
   1086 // CHECK: @llvm.ppc.altivec.vcmpgtsw
   1087 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw
   1088 
   1089   res_vbi = vec_cmplt(vui, vui);
   1090 // CHECK: @llvm.ppc.altivec.vcmpgtuw
   1091 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw
   1092 
   1093   res_vbi = vec_cmplt(vf, vf);
   1094 // CHECK: @llvm.ppc.altivec.vcmpgtfp
   1095 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp
   1096 
   1097   /* vec_ctf */
   1098   res_vf  = vec_ctf(vi, 0);
   1099 // CHECK: @llvm.ppc.altivec.vcfsx
   1100 // CHECK-LE: @llvm.ppc.altivec.vcfsx
   1101 
   1102   res_vf  = vec_ctf(vui, 0);
   1103 // CHECK: @llvm.ppc.altivec.vcfux
   1104 // CHECK-LE: @llvm.ppc.altivec.vcfux
   1105 
   1106   res_vf  = vec_vcfsx(vi, 0);
   1107 // CHECK: @llvm.ppc.altivec.vcfsx
   1108 // CHECK-LE: @llvm.ppc.altivec.vcfsx
   1109 
   1110   res_vf  = vec_vcfux(vui, 0);
   1111 // CHECK: @llvm.ppc.altivec.vcfux
   1112 // CHECK-LE: @llvm.ppc.altivec.vcfux
   1113 
   1114   /* vec_cts */
   1115   res_vi = vec_cts(vf, 0);
   1116 // CHECK: @llvm.ppc.altivec.vctsxs
   1117 // CHECK-LE: @llvm.ppc.altivec.vctsxs
   1118 
   1119   res_vi = vec_vctsxs(vf, 0);
   1120 // CHECK: @llvm.ppc.altivec.vctsxs
   1121 // CHECK-LE: @llvm.ppc.altivec.vctsxs
   1122 
   1123   /* vec_ctu */
   1124   res_vui = vec_ctu(vf, 0);
   1125 // CHECK: @llvm.ppc.altivec.vctuxs
   1126 // CHECK-LE: @llvm.ppc.altivec.vctuxs
   1127 
   1128   res_vui = vec_vctuxs(vf, 0);
   1129 // CHECK: @llvm.ppc.altivec.vctuxs
   1130 // CHECK-LE: @llvm.ppc.altivec.vctuxs
   1131 
   1132   /* vec_div */
   1133   res_vsc = vec_div(vsc, vsc);
   1134 // CHECK: sdiv <16 x i8>
   1135 // CHECK-LE: sdiv <16 x i8>
   1136 
   1137   res_vuc = vec_div(vuc, vuc);
   1138 // CHECK: udiv <16 x i8>
   1139 // CHECK-LE: udiv <16 x i8>
   1140 
   1141   res_vs = vec_div(vs, vs);
   1142 // CHECK: sdiv <8 x i16>
   1143 // CHECK-LE: sdiv <8 x i16>
   1144 
   1145   res_vus = vec_div(vus, vus);
   1146 // CHECK: udiv <8 x i16>
   1147 // CHECK-LE: udiv <8 x i16>
   1148 
   1149   res_vi = vec_div(vi, vi);
   1150 // CHECK: sdiv <4 x i32>
   1151 // CHECK-LE: sdiv <4 x i32>
   1152 
   1153   res_vui = vec_div(vui, vui);
   1154 // CHECK: udiv <4 x i32>
   1155 // CHECK-LE: udiv <4 x i32>
   1156 
   1157   /* vec_dss */
   1158   vec_dss(0);
   1159 // CHECK: @llvm.ppc.altivec.dss
   1160 // CHECK-LE: @llvm.ppc.altivec.dss
   1161 
   1162   /* vec_dssall */
   1163   vec_dssall();
   1164 // CHECK: @llvm.ppc.altivec.dssall
   1165 // CHECK-LE: @llvm.ppc.altivec.dssall
   1166 
   1167   /* vec_dst */
   1168   vec_dst(&vsc, 0, 0);
   1169 // CHECK: @llvm.ppc.altivec.dst
   1170 // CHECK-LE: @llvm.ppc.altivec.dst
   1171 
   1172   /* vec_dstst */
   1173   vec_dstst(&vs, 0, 0);
   1174 // CHECK: @llvm.ppc.altivec.dstst
   1175 // CHECK-LE: @llvm.ppc.altivec.dstst
   1176 
   1177   /* vec_dststt */
   1178   vec_dststt(&param_i, 0, 0);
   1179 // CHECK: @llvm.ppc.altivec.dststt
   1180 // CHECK-LE: @llvm.ppc.altivec.dststt
   1181 
   1182   /* vec_dstt */
   1183   vec_dstt(&vf, 0, 0);
   1184 // CHECK: @llvm.ppc.altivec.dstt
   1185 // CHECK-LE: @llvm.ppc.altivec.dstt
   1186 
   1187   /* vec_expte */
   1188   res_vf = vec_expte(vf);
   1189 // CHECK: @llvm.ppc.altivec.vexptefp
   1190 // CHECK-LE: @llvm.ppc.altivec.vexptefp
   1191 
   1192   res_vf = vec_vexptefp(vf);
   1193 // CHECK: @llvm.ppc.altivec.vexptefp
   1194 // CHECK-LE: @llvm.ppc.altivec.vexptefp
   1195 
   1196   /* vec_floor */
   1197   res_vf = vec_floor(vf);
   1198 // CHECK: @llvm.ppc.altivec.vrfim
   1199 // CHECK-LE: @llvm.ppc.altivec.vrfim
   1200 
   1201   res_vf = vec_vrfim(vf);
   1202 // CHECK: @llvm.ppc.altivec.vrfim
   1203 // CHECK-LE: @llvm.ppc.altivec.vrfim
   1204 
   1205   /* vec_ld */
   1206   res_vsc = vec_ld(0, &vsc);
   1207 // CHECK: @llvm.ppc.altivec.lvx
   1208 // CHECK-LE: @llvm.ppc.altivec.lvx
   1209 
   1210   res_vsc = vec_ld(0, &param_sc);
   1211 // CHECK: @llvm.ppc.altivec.lvx
   1212 // CHECK-LE: @llvm.ppc.altivec.lvx
   1213 
   1214   res_vuc = vec_ld(0, &vuc);
   1215 // CHECK: @llvm.ppc.altivec.lvx
   1216 // CHECK-LE: @llvm.ppc.altivec.lvx
   1217 
   1218   res_vuc = vec_ld(0, &param_uc);
   1219 // CHECK: @llvm.ppc.altivec.lvx
   1220 // CHECK-LE: @llvm.ppc.altivec.lvx
   1221 
   1222   res_vbc = vec_ld(0, &vbc);
   1223 // CHECK: @llvm.ppc.altivec.lvx
   1224 // CHECK-LE: @llvm.ppc.altivec.lvx
   1225 
   1226   res_vs  = vec_ld(0, &vs);
   1227 // CHECK: @llvm.ppc.altivec.lvx
   1228 // CHECK-LE: @llvm.ppc.altivec.lvx
   1229 
   1230   res_vs  = vec_ld(0, &param_s);
   1231 // CHECK: @llvm.ppc.altivec.lvx
   1232 // CHECK-LE: @llvm.ppc.altivec.lvx
   1233 
   1234   res_vus = vec_ld(0, &vus);
   1235 // CHECK: @llvm.ppc.altivec.lvx
   1236 // CHECK-LE: @llvm.ppc.altivec.lvx
   1237 
   1238   res_vus = vec_ld(0, &param_us);
   1239 // CHECK: @llvm.ppc.altivec.lvx
   1240 // CHECK-LE: @llvm.ppc.altivec.lvx
   1241 
   1242   res_vbs = vec_ld(0, &vbs);
   1243 // CHECK: @llvm.ppc.altivec.lvx
   1244 // CHECK-LE: @llvm.ppc.altivec.lvx
   1245 
   1246   res_vp  = vec_ld(0, &vp);
   1247 // CHECK: @llvm.ppc.altivec.lvx
   1248 // CHECK-LE: @llvm.ppc.altivec.lvx
   1249 
   1250   res_vi  = vec_ld(0, &vi);
   1251 // CHECK: @llvm.ppc.altivec.lvx
   1252 // CHECK-LE: @llvm.ppc.altivec.lvx
   1253 
   1254   res_vi  = vec_ld(0, &param_i);
   1255 // CHECK: @llvm.ppc.altivec.lvx
   1256 // CHECK-LE: @llvm.ppc.altivec.lvx
   1257 
   1258   res_vui = vec_ld(0, &vui);
   1259 // CHECK: @llvm.ppc.altivec.lvx
   1260 // CHECK-LE: @llvm.ppc.altivec.lvx
   1261 
   1262   res_vui = vec_ld(0, &param_ui);
   1263 // CHECK: @llvm.ppc.altivec.lvx
   1264 // CHECK-LE: @llvm.ppc.altivec.lvx
   1265 
   1266   res_vbi = vec_ld(0, &vbi);
   1267 // CHECK: @llvm.ppc.altivec.lvx
   1268 // CHECK-LE: @llvm.ppc.altivec.lvx
   1269 
   1270   res_vf  = vec_ld(0, &vf);
   1271 // CHECK: @llvm.ppc.altivec.lvx
   1272 // CHECK-LE: @llvm.ppc.altivec.lvx
   1273 
   1274   res_vf  = vec_ld(0, &param_f);
   1275 // CHECK: @llvm.ppc.altivec.lvx
   1276 // CHECK-LE: @llvm.ppc.altivec.lvx
   1277 
   1278   res_vsc = vec_lvx(0, &vsc);
   1279 // CHECK: @llvm.ppc.altivec.lvx
   1280 // CHECK-LE: @llvm.ppc.altivec.lvx
   1281 
   1282   res_vsc = vec_lvx(0, &param_sc);
   1283 // CHECK: @llvm.ppc.altivec.lvx
   1284 // CHECK-LE: @llvm.ppc.altivec.lvx
   1285 
   1286   res_vuc = vec_lvx(0, &vuc);
   1287 // CHECK: @llvm.ppc.altivec.lvx
   1288 // CHECK-LE: @llvm.ppc.altivec.lvx
   1289 
   1290   res_vuc = vec_lvx(0, &param_uc);
   1291 // CHECK: @llvm.ppc.altivec.lvx
   1292 // CHECK-LE: @llvm.ppc.altivec.lvx
   1293 
   1294   res_vbc = vec_lvx(0, &vbc);
   1295 // CHECK: @llvm.ppc.altivec.lvx
   1296 // CHECK-LE: @llvm.ppc.altivec.lvx
   1297 
   1298   res_vs  = vec_lvx(0, &vs);
   1299 // CHECK: @llvm.ppc.altivec.lvx
   1300 // CHECK-LE: @llvm.ppc.altivec.lvx
   1301 
   1302   res_vs  = vec_lvx(0, &param_s);
   1303 // CHECK: @llvm.ppc.altivec.lvx
   1304 // CHECK-LE: @llvm.ppc.altivec.lvx
   1305 
   1306   res_vus = vec_lvx(0, &vus);
   1307 // CHECK: @llvm.ppc.altivec.lvx
   1308 // CHECK-LE: @llvm.ppc.altivec.lvx
   1309 
   1310   res_vus = vec_lvx(0, &param_us);
   1311 // CHECK: @llvm.ppc.altivec.lvx
   1312 // CHECK-LE: @llvm.ppc.altivec.lvx
   1313 
   1314   res_vbs = vec_lvx(0, &vbs);
   1315 // CHECK: @llvm.ppc.altivec.lvx
   1316 // CHECK-LE: @llvm.ppc.altivec.lvx
   1317 
   1318   res_vp  = vec_lvx(0, &vp);
   1319 // CHECK: @llvm.ppc.altivec.lvx
   1320 // CHECK-LE: @llvm.ppc.altivec.lvx
   1321 
   1322   res_vi  = vec_lvx(0, &vi);
   1323 // CHECK: @llvm.ppc.altivec.lvx
   1324 // CHECK-LE: @llvm.ppc.altivec.lvx
   1325 
   1326   res_vi  = vec_lvx(0, &param_i);
   1327 // CHECK: @llvm.ppc.altivec.lvx
   1328 // CHECK-LE: @llvm.ppc.altivec.lvx
   1329 
   1330   res_vui = vec_lvx(0, &vui);
   1331 // CHECK: @llvm.ppc.altivec.lvx
   1332 // CHECK-LE: @llvm.ppc.altivec.lvx
   1333 
   1334   res_vui = vec_lvx(0, &param_ui);
   1335 // CHECK: @llvm.ppc.altivec.lvx
   1336 // CHECK-LE: @llvm.ppc.altivec.lvx
   1337 
   1338   res_vbi = vec_lvx(0, &vbi);
   1339 // CHECK: @llvm.ppc.altivec.lvx
   1340 // CHECK-LE: @llvm.ppc.altivec.lvx
   1341 
   1342   res_vf  = vec_lvx(0, &vf);
   1343 // CHECK: @llvm.ppc.altivec.lvx
   1344 // CHECK-LE: @llvm.ppc.altivec.lvx
   1345 
   1346   res_vf  = vec_lvx(0, &param_f);
   1347 // CHECK: @llvm.ppc.altivec.lvx
   1348 // CHECK-LE: @llvm.ppc.altivec.lvx
   1349 
   1350   /* vec_lde */
   1351   res_vsc = vec_lde(0, &param_sc);
   1352 // CHECK: @llvm.ppc.altivec.lvebx
   1353 // CHECK-LE: @llvm.ppc.altivec.lvebx
   1354 
   1355   res_vuc = vec_lde(0, &param_uc);
   1356 // CHECK: @llvm.ppc.altivec.lvebx
   1357 // CHECK-LE: @llvm.ppc.altivec.lvebx
   1358 
   1359   res_vs  = vec_lde(0, &param_s);
   1360 // CHECK: @llvm.ppc.altivec.lvehx
   1361 // CHECK-LE: @llvm.ppc.altivec.lvehx
   1362 
   1363   res_vus = vec_lde(0, &param_us);
   1364 // CHECK: @llvm.ppc.altivec.lvehx
   1365 // CHECK-LE: @llvm.ppc.altivec.lvehx
   1366 
   1367   res_vi  = vec_lde(0, &param_i);
   1368 // CHECK: @llvm.ppc.altivec.lvewx
   1369 // CHECK-LE: @llvm.ppc.altivec.lvewx
   1370 
   1371   res_vui = vec_lde(0, &param_ui);
   1372 // CHECK: @llvm.ppc.altivec.lvewx
   1373 // CHECK-LE: @llvm.ppc.altivec.lvewx
   1374 
   1375   res_vf  = vec_lde(0, &param_f);
   1376 // CHECK: @llvm.ppc.altivec.lvewx
   1377 // CHECK-LE: @llvm.ppc.altivec.lvewx
   1378 
   1379   res_vsc = vec_lvebx(0, &param_sc);
   1380 // CHECK: @llvm.ppc.altivec.lvebx
   1381 // CHECK-LE: @llvm.ppc.altivec.lvebx
   1382 
   1383   res_vuc = vec_lvebx(0, &param_uc);
   1384 // CHECK: @llvm.ppc.altivec.lvebx
   1385 // CHECK-LE: @llvm.ppc.altivec.lvebx
   1386 
   1387   res_vs  = vec_lvehx(0, &param_s);
   1388 // CHECK: @llvm.ppc.altivec.lvehx
   1389 // CHECK-LE: @llvm.ppc.altivec.lvehx
   1390 
   1391   res_vus = vec_lvehx(0, &param_us);
   1392 // CHECK: @llvm.ppc.altivec.lvehx
   1393 // CHECK-LE: @llvm.ppc.altivec.lvehx
   1394 
   1395   res_vi  = vec_lvewx(0, &param_i);
   1396 // CHECK: @llvm.ppc.altivec.lvewx
   1397 // CHECK-LE: @llvm.ppc.altivec.lvewx
   1398 
   1399   res_vui = vec_lvewx(0, &param_ui);
   1400 // CHECK: @llvm.ppc.altivec.lvewx
   1401 // CHECK-LE: @llvm.ppc.altivec.lvewx
   1402 
   1403   res_vf  = vec_lvewx(0, &param_f);
   1404 // CHECK: @llvm.ppc.altivec.lvewx
   1405 // CHECK-LE: @llvm.ppc.altivec.lvewx
   1406 
   1407   /* vec_ldl */
   1408   res_vsc = vec_ldl(0, &vsc);
   1409 // CHECK: @llvm.ppc.altivec.lvxl
   1410 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1411 
   1412   res_vsc = vec_ldl(0, &param_sc);
   1413 // CHECK: @llvm.ppc.altivec.lvxl
   1414 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1415 
   1416   res_vuc = vec_ldl(0, &vuc);
   1417 // CHECK: @llvm.ppc.altivec.lvxl
   1418 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1419 
   1420   res_vuc = vec_ldl(0, &param_uc);
   1421 // CHECK: @llvm.ppc.altivec.lvxl
   1422 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1423 
   1424   res_vbc = vec_ldl(0, &vbc);
   1425 // CHECK: @llvm.ppc.altivec.lvxl
   1426 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1427 
   1428   res_vs  = vec_ldl(0, &vs);
   1429 // CHECK: @llvm.ppc.altivec.lvxl
   1430 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1431 
   1432   res_vs  = vec_ldl(0, &param_s);
   1433 // CHECK: @llvm.ppc.altivec.lvxl
   1434 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1435 
   1436   res_vus = vec_ldl(0, &vus);
   1437 // CHECK: @llvm.ppc.altivec.lvxl
   1438 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1439 
   1440   res_vus = vec_ldl(0, &param_us);
   1441 // CHECK: @llvm.ppc.altivec.lvxl
   1442 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1443 
   1444   res_vbs = vec_ldl(0, &vbs);
   1445 // CHECK: @llvm.ppc.altivec.lvxl
   1446 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1447 
   1448   res_vp  = vec_ldl(0, &vp);
   1449 // CHECK: @llvm.ppc.altivec.lvxl
   1450 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1451 
   1452   res_vi  = vec_ldl(0, &vi);
   1453 // CHECK: @llvm.ppc.altivec.lvxl
   1454 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1455 
   1456   res_vi  = vec_ldl(0, &param_i);
   1457 // CHECK: @llvm.ppc.altivec.lvxl
   1458 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1459 
   1460   res_vui = vec_ldl(0, &vui);
   1461 // CHECK: @llvm.ppc.altivec.lvxl
   1462 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1463 
   1464   res_vui = vec_ldl(0, &param_ui);
   1465 // CHECK: @llvm.ppc.altivec.lvxl
   1466 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1467 
   1468   res_vbi = vec_ldl(0, &vbi);
   1469 // CHECK: @llvm.ppc.altivec.lvxl
   1470 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1471 
   1472   res_vf  = vec_ldl(0, &vf);
   1473 // CHECK: @llvm.ppc.altivec.lvxl
   1474 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1475 
   1476   res_vf  = vec_ldl(0, &param_f);
   1477 // CHECK: @llvm.ppc.altivec.lvxl
   1478 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1479 
   1480   res_vsc = vec_lvxl(0, &vsc);
   1481 // CHECK: @llvm.ppc.altivec.lvxl
   1482 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1483 
   1484   res_vsc = vec_lvxl(0, &param_sc);
   1485 // CHECK: @llvm.ppc.altivec.lvxl
   1486 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1487 
   1488   res_vuc = vec_lvxl(0, &vuc);
   1489 // CHECK: @llvm.ppc.altivec.lvxl
   1490 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1491 
   1492   res_vbc = vec_lvxl(0, &vbc);
   1493 // CHECK: @llvm.ppc.altivec.lvxl
   1494 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1495 
   1496   res_vuc = vec_lvxl(0, &param_uc);
   1497 // CHECK: @llvm.ppc.altivec.lvxl
   1498 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1499 
   1500   res_vs  = vec_lvxl(0, &vs);
   1501 // CHECK: @llvm.ppc.altivec.lvxl
   1502 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1503 
   1504   res_vs  = vec_lvxl(0, &param_s);
   1505 // CHECK: @llvm.ppc.altivec.lvxl
   1506 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1507 
   1508   res_vus = vec_lvxl(0, &vus);
   1509 // CHECK: @llvm.ppc.altivec.lvxl
   1510 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1511 
   1512   res_vus = vec_lvxl(0, &param_us);
   1513 // CHECK: @llvm.ppc.altivec.lvxl
   1514 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1515 
   1516   res_vbs = vec_lvxl(0, &vbs);
   1517 // CHECK: @llvm.ppc.altivec.lvxl
   1518 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1519 
   1520   res_vp  = vec_lvxl(0, &vp);
   1521 // CHECK: @llvm.ppc.altivec.lvxl
   1522 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1523 
   1524   res_vi  = vec_lvxl(0, &vi);
   1525 // CHECK: @llvm.ppc.altivec.lvxl
   1526 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1527 
   1528   res_vi  = vec_lvxl(0, &param_i);
   1529 // CHECK: @llvm.ppc.altivec.lvxl
   1530 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1531 
   1532   res_vui = vec_lvxl(0, &vui);
   1533 // CHECK: @llvm.ppc.altivec.lvxl
   1534 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1535 
   1536   res_vui = vec_lvxl(0, &param_ui);
   1537 // CHECK: @llvm.ppc.altivec.lvxl
   1538 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1539 
   1540   res_vbi = vec_lvxl(0, &vbi);
   1541 // CHECK: @llvm.ppc.altivec.lvxl
   1542 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1543 
   1544   res_vf  = vec_lvxl(0, &vf);
   1545 // CHECK: @llvm.ppc.altivec.lvxl
   1546 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1547 
   1548   res_vf  = vec_lvxl(0, &param_f);
   1549 // CHECK: @llvm.ppc.altivec.lvxl
   1550 // CHECK-LE: @llvm.ppc.altivec.lvxl
   1551 
   1552   /* vec_loge */
   1553   res_vf = vec_loge(vf);
   1554 // CHECK: @llvm.ppc.altivec.vlogefp
   1555 // CHECK-LE: @llvm.ppc.altivec.vlogefp
   1556 
   1557   res_vf = vec_vlogefp(vf);
   1558 // CHECK: @llvm.ppc.altivec.vlogefp
   1559 // CHECK-LE: @llvm.ppc.altivec.vlogefp
   1560 
   1561   /* vec_lvsl */
   1562   res_vuc = vec_lvsl(0, &param_i);
   1563 // CHECK: @llvm.ppc.altivec.lvsl
   1564 // CHECK-LE: @llvm.ppc.altivec.lvsl
   1565 
   1566   /* vec_lvsr */
   1567   res_vuc = vec_lvsr(0, &param_i);
   1568 // CHECK: @llvm.ppc.altivec.lvsr
   1569 // CHECK-LE: @llvm.ppc.altivec.lvsr
   1570 
   1571   /* vec_madd */
   1572   res_vf =vec_madd(vf, vf, vf);
   1573 // CHECK: @llvm.ppc.altivec.vmaddfp
   1574 // CHECK-LE: @llvm.ppc.altivec.vmaddfp
   1575 
   1576   res_vf = vec_vmaddfp(vf, vf, vf);
   1577 // CHECK: @llvm.ppc.altivec.vmaddfp
   1578 // CHECK-LE: @llvm.ppc.altivec.vmaddfp
   1579 
   1580   /* vec_madds */
   1581   res_vs = vec_madds(vs, vs, vs);
   1582 // CHECK: @llvm.ppc.altivec.vmhaddshs
   1583 // CHECK-LE: @llvm.ppc.altivec.vmhaddshs
   1584 
   1585   res_vs = vec_vmhaddshs(vs, vs, vs);
   1586 // CHECK: @llvm.ppc.altivec.vmhaddshs
   1587 // CHECK-LE: @llvm.ppc.altivec.vmhaddshs
   1588 
   1589   /* vec_max */
   1590   res_vsc = vec_max(vsc, vsc);
   1591 // CHECK: @llvm.ppc.altivec.vmaxsb
   1592 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
   1593 
   1594   res_vsc = vec_max(vbc, vsc);
   1595 // CHECK: @llvm.ppc.altivec.vmaxsb
   1596 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
   1597 
   1598   res_vsc = vec_max(vsc, vbc);
   1599 // CHECK: @llvm.ppc.altivec.vmaxsb
   1600 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
   1601 
   1602   res_vuc = vec_max(vuc, vuc);
   1603 // CHECK: @llvm.ppc.altivec.vmaxub
   1604 // CHECK-LE: @llvm.ppc.altivec.vmaxub
   1605 
   1606   res_vuc = vec_max(vbc, vuc);
   1607 // CHECK: @llvm.ppc.altivec.vmaxub
   1608 // CHECK-LE: @llvm.ppc.altivec.vmaxub
   1609 
   1610   res_vuc = vec_max(vuc, vbc);
   1611 // CHECK: @llvm.ppc.altivec.vmaxub
   1612 // CHECK-LE: @llvm.ppc.altivec.vmaxub
   1613 
   1614   res_vs  = vec_max(vs, vs);
   1615 // CHECK: @llvm.ppc.altivec.vmaxsh
   1616 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
   1617 
   1618   res_vs  = vec_max(vbs, vs);
   1619 // CHECK: @llvm.ppc.altivec.vmaxsh
   1620 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
   1621 
   1622   res_vs  = vec_max(vs, vbs);
   1623 // CHECK: @llvm.ppc.altivec.vmaxsh
   1624 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
   1625 
   1626   res_vus = vec_max(vus, vus);
   1627 // CHECK: @llvm.ppc.altivec.vmaxuh
   1628 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
   1629 
   1630   res_vus = vec_max(vbs, vus);
   1631 // CHECK: @llvm.ppc.altivec.vmaxuh
   1632 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
   1633 
   1634   res_vus = vec_max(vus, vbs);
   1635 // CHECK: @llvm.ppc.altivec.vmaxuh
   1636 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
   1637 
   1638   res_vi  = vec_max(vi, vi);
   1639 // CHECK: @llvm.ppc.altivec.vmaxsw
   1640 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
   1641 
   1642   res_vi  = vec_max(vbi, vi);
   1643 // CHECK: @llvm.ppc.altivec.vmaxsw
   1644 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
   1645 
   1646   res_vi  = vec_max(vi, vbi);
   1647 // CHECK: @llvm.ppc.altivec.vmaxsw
   1648 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
   1649 
   1650   res_vui = vec_max(vui, vui);
   1651 // CHECK: @llvm.ppc.altivec.vmaxuw
   1652 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
   1653 
   1654   res_vui = vec_max(vbi, vui);
   1655 // CHECK: @llvm.ppc.altivec.vmaxuw
   1656 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
   1657 
   1658   res_vui = vec_max(vui, vbi);
   1659 // CHECK: @llvm.ppc.altivec.vmaxuw
   1660 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
   1661 
   1662   res_vf  = vec_max(vf, vf);
   1663 // CHECK: @llvm.ppc.altivec.vmaxfp
   1664 // CHECK-LE: @llvm.ppc.altivec.vmaxfp
   1665 
   1666   res_vsc = vec_vmaxsb(vsc, vsc);
   1667 // CHECK: @llvm.ppc.altivec.vmaxsb
   1668 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
   1669 
   1670   res_vsc = vec_vmaxsb(vbc, vsc);
   1671 // CHECK: @llvm.ppc.altivec.vmaxsb
   1672 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
   1673 
   1674   res_vsc = vec_vmaxsb(vsc, vbc);
   1675 // CHECK: @llvm.ppc.altivec.vmaxsb
   1676 // CHECK-LE: @llvm.ppc.altivec.vmaxsb
   1677 
   1678   res_vuc = vec_vmaxub(vuc, vuc);
   1679 // CHECK: @llvm.ppc.altivec.vmaxub
   1680 // CHECK-LE: @llvm.ppc.altivec.vmaxub
   1681 
   1682   res_vuc = vec_vmaxub(vbc, vuc);
   1683 // CHECK: @llvm.ppc.altivec.vmaxub
   1684 // CHECK-LE: @llvm.ppc.altivec.vmaxub
   1685 
   1686   res_vuc = vec_vmaxub(vuc, vbc);
   1687 // CHECK: @llvm.ppc.altivec.vmaxub
   1688 // CHECK-LE: @llvm.ppc.altivec.vmaxub
   1689 
   1690   res_vs  = vec_vmaxsh(vs, vs);
   1691 // CHECK: @llvm.ppc.altivec.vmaxsh
   1692 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
   1693 
   1694   res_vs  = vec_vmaxsh(vbs, vs);
   1695 // CHECK: @llvm.ppc.altivec.vmaxsh
   1696 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
   1697 
   1698   res_vs  = vec_vmaxsh(vs, vbs);
   1699 // CHECK: @llvm.ppc.altivec.vmaxsh
   1700 // CHECK-LE: @llvm.ppc.altivec.vmaxsh
   1701 
   1702   res_vus = vec_vmaxuh(vus, vus);
   1703 // CHECK: @llvm.ppc.altivec.vmaxuh
   1704 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
   1705 
   1706   res_vus = vec_vmaxuh(vbs, vus);
   1707 // CHECK: @llvm.ppc.altivec.vmaxuh
   1708 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
   1709 
   1710   res_vus = vec_vmaxuh(vus, vbs);
   1711 // CHECK: @llvm.ppc.altivec.vmaxuh
   1712 // CHECK-LE: @llvm.ppc.altivec.vmaxuh
   1713 
   1714   res_vi  = vec_vmaxsw(vi, vi);
   1715 // CHECK: @llvm.ppc.altivec.vmaxsw
   1716 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
   1717 
   1718   res_vi  = vec_vmaxsw(vbi, vi);
   1719 // CHECK: @llvm.ppc.altivec.vmaxsw
   1720 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
   1721 
   1722   res_vi  = vec_vmaxsw(vi, vbi);
   1723 // CHECK: @llvm.ppc.altivec.vmaxsw
   1724 // CHECK-LE: @llvm.ppc.altivec.vmaxsw
   1725 
   1726   res_vui = vec_vmaxuw(vui, vui);
   1727 // CHECK: @llvm.ppc.altivec.vmaxuw
   1728 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
   1729 
   1730   res_vui = vec_vmaxuw(vbi, vui);
   1731 // CHECK: @llvm.ppc.altivec.vmaxuw
   1732 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
   1733 
   1734   res_vui = vec_vmaxuw(vui, vbi);
   1735 // CHECK: @llvm.ppc.altivec.vmaxuw
   1736 // CHECK-LE: @llvm.ppc.altivec.vmaxuw
   1737 
   1738   res_vf  = vec_vmaxfp(vf, vf);
   1739 // CHECK: @llvm.ppc.altivec.vmaxfp
   1740 // CHECK-LE: @llvm.ppc.altivec.vmaxfp
   1741 
   1742   /* vec_mergeh */
   1743   res_vsc = vec_mergeh(vsc, vsc);
   1744 // CHECK: @llvm.ppc.altivec.vperm
   1745 // CHECK-LE: @llvm.ppc.altivec.vperm
   1746 
   1747   res_vuc = vec_mergeh(vuc, vuc);
   1748 // CHECK: @llvm.ppc.altivec.vperm
   1749 // CHECK-LE: @llvm.ppc.altivec.vperm
   1750 
   1751   res_vbc = vec_mergeh(vbc, vbc);
   1752 // CHECK: @llvm.ppc.altivec.vperm
   1753 // CHECK-LE: @llvm.ppc.altivec.vperm
   1754 
   1755   res_vs  = vec_mergeh(vs, vs);
   1756 // CHECK: @llvm.ppc.altivec.vperm
   1757 // CHECK-LE: @llvm.ppc.altivec.vperm
   1758 
   1759   res_vp  = vec_mergeh(vp, vp);
   1760 // CHECK: @llvm.ppc.altivec.vperm
   1761 // CHECK-LE: @llvm.ppc.altivec.vperm
   1762 
   1763   res_vus = vec_mergeh(vus, vus);
   1764 // CHECK: @llvm.ppc.altivec.vperm
   1765 // CHECK-LE: @llvm.ppc.altivec.vperm
   1766 
   1767   res_vbs = vec_mergeh(vbs, vbs);
   1768 // CHECK: @llvm.ppc.altivec.vperm
   1769 // CHECK-LE: @llvm.ppc.altivec.vperm
   1770 
   1771   res_vi  = vec_mergeh(vi, vi);
   1772 // CHECK: @llvm.ppc.altivec.vperm
   1773 // CHECK-LE: @llvm.ppc.altivec.vperm
   1774 
   1775   res_vui = vec_mergeh(vui, vui);
   1776 // CHECK: @llvm.ppc.altivec.vperm
   1777 // CHECK-LE: @llvm.ppc.altivec.vperm
   1778 
   1779   res_vbi = vec_mergeh(vbi, vbi);
   1780 // CHECK: @llvm.ppc.altivec.vperm
   1781 // CHECK-LE: @llvm.ppc.altivec.vperm
   1782 
   1783   res_vf  = vec_mergeh(vf, vf);
   1784 // CHECK: @llvm.ppc.altivec.vperm
   1785 // CHECK-LE: @llvm.ppc.altivec.vperm
   1786 
   1787   res_vsc = vec_vmrghb(vsc, vsc);
   1788 // CHECK: @llvm.ppc.altivec.vperm
   1789 // CHECK-LE: @llvm.ppc.altivec.vperm
   1790 
   1791   res_vuc = vec_vmrghb(vuc, vuc);
   1792 // CHECK: @llvm.ppc.altivec.vperm
   1793 // CHECK-LE: @llvm.ppc.altivec.vperm
   1794 
   1795   res_vbc = vec_vmrghb(vbc, vbc);
   1796 // CHECK: @llvm.ppc.altivec.vperm
   1797 // CHECK-LE: @llvm.ppc.altivec.vperm
   1798 
   1799   res_vs  = vec_vmrghh(vs, vs);
   1800 // CHECK: @llvm.ppc.altivec.vperm
   1801 // CHECK-LE: @llvm.ppc.altivec.vperm
   1802 
   1803   res_vp  = vec_vmrghh(vp, vp);
   1804 // CHECK: @llvm.ppc.altivec.vperm
   1805 // CHECK-LE: @llvm.ppc.altivec.vperm
   1806 
   1807   res_vus = vec_vmrghh(vus, vus);
   1808 // CHECK: @llvm.ppc.altivec.vperm
   1809 // CHECK-LE: @llvm.ppc.altivec.vperm
   1810 
   1811   res_vbs = vec_vmrghh(vbs, vbs);
   1812 // CHECK: @llvm.ppc.altivec.vperm
   1813 // CHECK-LE: @llvm.ppc.altivec.vperm
   1814 
   1815   res_vi  = vec_vmrghw(vi, vi);
   1816 // CHECK: @llvm.ppc.altivec.vperm
   1817 // CHECK-LE: @llvm.ppc.altivec.vperm
   1818 
   1819   res_vui = vec_vmrghw(vui, vui);
   1820 // CHECK: @llvm.ppc.altivec.vperm
   1821 // CHECK-LE: @llvm.ppc.altivec.vperm
   1822 
   1823   res_vbi = vec_vmrghw(vbi, vbi);
   1824 // CHECK: @llvm.ppc.altivec.vperm
   1825 // CHECK-LE: @llvm.ppc.altivec.vperm
   1826 
   1827   res_vf  = vec_vmrghw(vf, vf);
   1828 // CHECK: @llvm.ppc.altivec.vperm
   1829 // CHECK-LE: @llvm.ppc.altivec.vperm
   1830 
   1831   /* vec_mergel */
   1832   res_vsc = vec_mergel(vsc, vsc);
   1833 // CHECK: @llvm.ppc.altivec.vperm
   1834 // CHECK-LE: @llvm.ppc.altivec.vperm
   1835 
   1836   res_vuc = vec_mergel(vuc, vuc);
   1837 // CHECK: @llvm.ppc.altivec.vperm
   1838 // CHECK-LE: @llvm.ppc.altivec.vperm
   1839 
   1840   res_vbc = vec_mergel(vbc, vbc);
   1841 // CHECK: @llvm.ppc.altivec.vperm
   1842 // CHECK-LE: @llvm.ppc.altivec.vperm
   1843 
   1844   res_vs  = vec_mergel(vs, vs);
   1845 // CHECK: @llvm.ppc.altivec.vperm
   1846 // CHECK-LE: @llvm.ppc.altivec.vperm
   1847 
   1848   res_vp  = vec_mergeh(vp, vp);
   1849 // CHECK: @llvm.ppc.altivec.vperm
   1850 // CHECK-LE: @llvm.ppc.altivec.vperm
   1851 
   1852   res_vus = vec_mergel(vus, vus);
   1853 // CHECK: @llvm.ppc.altivec.vperm
   1854 // CHECK-LE: @llvm.ppc.altivec.vperm
   1855 
   1856   res_vbs = vec_mergel(vbs, vbs);
   1857 // CHECK: @llvm.ppc.altivec.vperm
   1858 // CHECK-LE: @llvm.ppc.altivec.vperm
   1859 
   1860   res_vi  = vec_mergel(vi, vi);
   1861 // CHECK: @llvm.ppc.altivec.vperm
   1862 // CHECK-LE: @llvm.ppc.altivec.vperm
   1863 
   1864   res_vui = vec_mergel(vui, vui);
   1865 // CHECK: @llvm.ppc.altivec.vperm
   1866 // CHECK-LE: @llvm.ppc.altivec.vperm
   1867 
   1868   res_vbi = vec_mergel(vbi, vbi);
   1869 // CHECK: @llvm.ppc.altivec.vperm
   1870 // CHECK-LE: @llvm.ppc.altivec.vperm
   1871 
   1872   res_vf  = vec_mergel(vf, vf);
   1873 // CHECK: @llvm.ppc.altivec.vperm
   1874 // CHECK-LE: @llvm.ppc.altivec.vperm
   1875 
   1876   res_vsc = vec_vmrglb(vsc, vsc);
   1877 // CHECK: @llvm.ppc.altivec.vperm
   1878 // CHECK-LE: @llvm.ppc.altivec.vperm
   1879 
   1880   res_vuc = vec_vmrglb(vuc, vuc);
   1881 // CHECK: @llvm.ppc.altivec.vperm
   1882 // CHECK-LE: @llvm.ppc.altivec.vperm
   1883 
   1884   res_vbc = vec_vmrglb(vbc, vbc);
   1885 // CHECK: @llvm.ppc.altivec.vperm
   1886 // CHECK-LE: @llvm.ppc.altivec.vperm
   1887 
   1888   res_vs  = vec_vmrglh(vs, vs);
   1889 // CHECK: @llvm.ppc.altivec.vperm
   1890 // CHECK-LE: @llvm.ppc.altivec.vperm
   1891 
   1892   res_vp  = vec_vmrglh(vp, vp);
   1893 // CHECK: @llvm.ppc.altivec.vperm
   1894 // CHECK-LE: @llvm.ppc.altivec.vperm
   1895 
   1896   res_vus = vec_vmrglh(vus, vus);
   1897 // CHECK: @llvm.ppc.altivec.vperm
   1898 // CHECK-LE: @llvm.ppc.altivec.vperm
   1899 
   1900   res_vbs = vec_vmrglh(vbs, vbs);
   1901 // CHECK: @llvm.ppc.altivec.vperm
   1902 // CHECK-LE: @llvm.ppc.altivec.vperm
   1903 
   1904   res_vi  = vec_vmrglw(vi, vi);
   1905 // CHECK: @llvm.ppc.altivec.vperm
   1906 // CHECK-LE: @llvm.ppc.altivec.vperm
   1907 
   1908   res_vui = vec_vmrglw(vui, vui);
   1909 // CHECK: @llvm.ppc.altivec.vperm
   1910 // CHECK-LE: @llvm.ppc.altivec.vperm
   1911 
   1912   res_vbi = vec_vmrglw(vbi, vbi);
   1913 // CHECK: @llvm.ppc.altivec.vperm
   1914 // CHECK-LE: @llvm.ppc.altivec.vperm
   1915 
   1916   res_vf  = vec_vmrglw(vf, vf);
   1917 // CHECK: @llvm.ppc.altivec.vperm
   1918 // CHECK-LE: @llvm.ppc.altivec.vperm
   1919 
   1920   /* vec_mfvscr */
   1921   vus = vec_mfvscr();
   1922 // CHECK: @llvm.ppc.altivec.mfvscr
   1923 // CHECK-LE: @llvm.ppc.altivec.mfvscr
   1924 
   1925   /* vec_min */
   1926   res_vsc = vec_min(vsc, vsc);
   1927 // CHECK: @llvm.ppc.altivec.vminsb
   1928 // CHECK-LE: @llvm.ppc.altivec.vminsb
   1929 
   1930   res_vsc = vec_min(vbc, vsc);
   1931 // CHECK: @llvm.ppc.altivec.vminsb
   1932 // CHECK-LE: @llvm.ppc.altivec.vminsb
   1933 
   1934   res_vsc = vec_min(vsc, vbc);
   1935 // CHECK: @llvm.ppc.altivec.vminsb
   1936 // CHECK-LE: @llvm.ppc.altivec.vminsb
   1937 
   1938   res_vuc = vec_min(vuc, vuc);
   1939 // CHECK: @llvm.ppc.altivec.vminub
   1940 // CHECK-LE: @llvm.ppc.altivec.vminub
   1941 
   1942   res_vuc = vec_min(vbc, vuc);
   1943 // CHECK: @llvm.ppc.altivec.vminub
   1944 // CHECK-LE: @llvm.ppc.altivec.vminub
   1945 
   1946   res_vuc = vec_min(vuc, vbc);
   1947 // CHECK: @llvm.ppc.altivec.vminub
   1948 // CHECK-LE: @llvm.ppc.altivec.vminub
   1949 
   1950   res_vs  = vec_min(vs, vs);
   1951 // CHECK: @llvm.ppc.altivec.vminsh
   1952 // CHECK-LE: @llvm.ppc.altivec.vminsh
   1953 
   1954   res_vs  = vec_min(vbs, vs);
   1955 // CHECK: @llvm.ppc.altivec.vminsh
   1956 // CHECK-LE: @llvm.ppc.altivec.vminsh
   1957 
   1958   res_vs  = vec_min(vs, vbs);
   1959 // CHECK: @llvm.ppc.altivec.vminsh
   1960 // CHECK-LE: @llvm.ppc.altivec.vminsh
   1961 
   1962   res_vus = vec_min(vus, vus);
   1963 // CHECK: @llvm.ppc.altivec.vminuh
   1964 // CHECK-LE: @llvm.ppc.altivec.vminuh
   1965 
   1966   res_vus = vec_min(vbs, vus);
   1967 // CHECK: @llvm.ppc.altivec.vminuh
   1968 // CHECK-LE: @llvm.ppc.altivec.vminuh
   1969 
   1970   res_vus = vec_min(vus, vbs);
   1971 // CHECK: @llvm.ppc.altivec.vminuh
   1972 // CHECK-LE: @llvm.ppc.altivec.vminuh
   1973 
   1974   res_vi  = vec_min(vi, vi);
   1975 // CHECK: @llvm.ppc.altivec.vminsw
   1976 // CHECK-LE: @llvm.ppc.altivec.vminsw
   1977 
   1978   res_vi  = vec_min(vbi, vi);
   1979 // CHECK: @llvm.ppc.altivec.vminsw
   1980 // CHECK-LE: @llvm.ppc.altivec.vminsw
   1981 
   1982   res_vi  = vec_min(vi, vbi);
   1983 // CHECK: @llvm.ppc.altivec.vminsw
   1984 // CHECK-LE: @llvm.ppc.altivec.vminsw
   1985 
   1986   res_vui = vec_min(vui, vui);
   1987 // CHECK: @llvm.ppc.altivec.vminuw
   1988 // CHECK-LE: @llvm.ppc.altivec.vminuw
   1989 
   1990   res_vui = vec_min(vbi, vui);
   1991 // CHECK: @llvm.ppc.altivec.vminuw
   1992 // CHECK-LE: @llvm.ppc.altivec.vminuw
   1993 
   1994   res_vui = vec_min(vui, vbi);
   1995 // CHECK: @llvm.ppc.altivec.vminuw
   1996 // CHECK-LE: @llvm.ppc.altivec.vminuw
   1997 
   1998   res_vf  = vec_min(vf, vf);
   1999 // CHECK: @llvm.ppc.altivec.vminfp
   2000 // CHECK-LE: @llvm.ppc.altivec.vminfp
   2001 
   2002   res_vsc = vec_vminsb(vsc, vsc);
   2003 // CHECK: @llvm.ppc.altivec.vminsb
   2004 // CHECK-LE: @llvm.ppc.altivec.vminsb
   2005 
   2006   res_vsc = vec_vminsb(vbc, vsc);
   2007 // CHECK: @llvm.ppc.altivec.vminsb
   2008 // CHECK-LE: @llvm.ppc.altivec.vminsb
   2009 
   2010   res_vsc = vec_vminsb(vsc, vbc);
   2011 // CHECK: @llvm.ppc.altivec.vminsb
   2012 // CHECK-LE: @llvm.ppc.altivec.vminsb
   2013 
   2014   res_vuc = vec_vminub(vuc, vuc);
   2015 // CHECK: @llvm.ppc.altivec.vminub
   2016 // CHECK-LE: @llvm.ppc.altivec.vminub
   2017 
   2018   res_vuc = vec_vminub(vbc, vuc);
   2019 // CHECK: @llvm.ppc.altivec.vminub
   2020 // CHECK-LE: @llvm.ppc.altivec.vminub
   2021 
   2022   res_vuc = vec_vminub(vuc, vbc);
   2023 // CHECK: @llvm.ppc.altivec.vminub
   2024 // CHECK-LE: @llvm.ppc.altivec.vminub
   2025 
   2026   res_vs  = vec_vminsh(vs, vs);
   2027 // CHECK: @llvm.ppc.altivec.vminsh
   2028 // CHECK-LE: @llvm.ppc.altivec.vminsh
   2029 
   2030   res_vs  = vec_vminsh(vbs, vs);
   2031 // CHECK: @llvm.ppc.altivec.vminsh
   2032 // CHECK-LE: @llvm.ppc.altivec.vminsh
   2033 
   2034   res_vs  = vec_vminsh(vs, vbs);
   2035 // CHECK: @llvm.ppc.altivec.vminsh
   2036 // CHECK-LE: @llvm.ppc.altivec.vminsh
   2037 
   2038   res_vus = vec_vminuh(vus, vus);
   2039 // CHECK: @llvm.ppc.altivec.vminuh
   2040 // CHECK-LE: @llvm.ppc.altivec.vminuh
   2041 
   2042   res_vus = vec_vminuh(vbs, vus);
   2043 // CHECK: @llvm.ppc.altivec.vminuh
   2044 // CHECK-LE: @llvm.ppc.altivec.vminuh
   2045 
   2046   res_vus = vec_vminuh(vus, vbs);
   2047 // CHECK: @llvm.ppc.altivec.vminuh
   2048 // CHECK-LE: @llvm.ppc.altivec.vminuh
   2049 
   2050   res_vi  = vec_vminsw(vi, vi);
   2051 // CHECK: @llvm.ppc.altivec.vminsw
   2052 // CHECK-LE: @llvm.ppc.altivec.vminsw
   2053 
   2054   res_vi  = vec_vminsw(vbi, vi);
   2055 // CHECK: @llvm.ppc.altivec.vminsw
   2056 // CHECK-LE: @llvm.ppc.altivec.vminsw
   2057 
   2058   res_vi  = vec_vminsw(vi, vbi);
   2059 // CHECK: @llvm.ppc.altivec.vminsw
   2060 // CHECK-LE: @llvm.ppc.altivec.vminsw
   2061 
   2062   res_vui = vec_vminuw(vui, vui);
   2063 // CHECK: @llvm.ppc.altivec.vminuw
   2064 // CHECK-LE: @llvm.ppc.altivec.vminuw
   2065 
   2066   res_vui = vec_vminuw(vbi, vui);
   2067 // CHECK: @llvm.ppc.altivec.vminuw
   2068 // CHECK-LE: @llvm.ppc.altivec.vminuw
   2069 
   2070   res_vui = vec_vminuw(vui, vbi);
   2071 // CHECK: @llvm.ppc.altivec.vminuw
   2072 // CHECK-LE: @llvm.ppc.altivec.vminuw
   2073 
   2074   res_vf  = vec_vminfp(vf, vf);
   2075 // CHECK: @llvm.ppc.altivec.vminfp
   2076 // CHECK-LE: @llvm.ppc.altivec.vminfp
   2077 
   2078   /* vec_mladd */
   2079   res_vus = vec_mladd(vus, vus, vus);
   2080 // CHECK: mul <8 x i16>
   2081 // CHECK: add <8 x i16>
   2082 // CHECK-LE: mul <8 x i16>
   2083 // CHECK-LE: add <8 x i16>
   2084 
   2085   res_vs = vec_mladd(vus, vs, vs);
   2086 // CHECK: mul <8 x i16>
   2087 // CHECK: add <8 x i16>
   2088 // CHECK-LE: mul <8 x i16>
   2089 // CHECK-LE: add <8 x i16>
   2090 
   2091   res_vs = vec_mladd(vs, vus, vus);
   2092 // CHECK: mul <8 x i16>
   2093 // CHECK: add <8 x i16>
   2094 // CHECK-LE: mul <8 x i16>
   2095 // CHECK-LE: add <8 x i16>
   2096 
   2097   res_vs = vec_mladd(vs, vs, vs);
   2098 // CHECK: mul <8 x i16>
   2099 // CHECK: add <8 x i16>
   2100 // CHECK-LE: mul <8 x i16>
   2101 // CHECK-LE: add <8 x i16>
   2102 
   2103   /* vec_mradds */
   2104   res_vs = vec_mradds(vs, vs, vs);
   2105 // CHECK: @llvm.ppc.altivec.vmhraddshs
   2106 // CHECK-LE: @llvm.ppc.altivec.vmhraddshs
   2107 
   2108   res_vs = vec_vmhraddshs(vs, vs, vs);
   2109 // CHECK: @llvm.ppc.altivec.vmhraddshs
   2110 // CHECK-LE: @llvm.ppc.altivec.vmhraddshs
   2111 
   2112   /* vec_msum */
   2113   res_vi  = vec_msum(vsc, vuc, vi);
   2114 // CHECK: @llvm.ppc.altivec.vmsummbm
   2115 // CHECK-LE: @llvm.ppc.altivec.vmsummbm
   2116 
   2117   res_vui = vec_msum(vuc, vuc, vui);
   2118 // CHECK: @llvm.ppc.altivec.vmsumubm
   2119 // CHECK-LE: @llvm.ppc.altivec.vmsumubm
   2120 
   2121   res_vi  = vec_msum(vs, vs, vi);
   2122 // CHECK: @llvm.ppc.altivec.vmsumshm
   2123 // CHECK-LE: @llvm.ppc.altivec.vmsumshm
   2124 
   2125   res_vui = vec_msum(vus, vus, vui);
   2126 // CHECK: @llvm.ppc.altivec.vmsumuhm
   2127 // CHECK-LE: @llvm.ppc.altivec.vmsumuhm
   2128 
   2129   res_vi  = vec_vmsummbm(vsc, vuc, vi);
   2130 // CHECK: @llvm.ppc.altivec.vmsummbm
   2131 // CHECK-LE: @llvm.ppc.altivec.vmsummbm
   2132 
   2133   res_vui = vec_vmsumubm(vuc, vuc, vui);
   2134 // CHECK: @llvm.ppc.altivec.vmsumubm
   2135 // CHECK-LE: @llvm.ppc.altivec.vmsumubm
   2136 
   2137   res_vi  = vec_vmsumshm(vs, vs, vi);
   2138 // CHECK: @llvm.ppc.altivec.vmsumshm
   2139 // CHECK-LE: @llvm.ppc.altivec.vmsumshm
   2140 
   2141   res_vui = vec_vmsumuhm(vus, vus, vui);
   2142 // CHECK: @llvm.ppc.altivec.vmsumuhm
   2143 // CHECK-LE: @llvm.ppc.altivec.vmsumuhm
   2144 
   2145   /* vec_msums */
   2146   res_vi  = vec_msums(vs, vs, vi);
   2147 // CHECK: @llvm.ppc.altivec.vmsumshs
   2148 // CHECK-LE: @llvm.ppc.altivec.vmsumshs
   2149 
   2150   res_vui = vec_msums(vus, vus, vui);
   2151 // CHECK: @llvm.ppc.altivec.vmsumuhs
   2152 // CHECK-LE: @llvm.ppc.altivec.vmsumuhs
   2153 
   2154   res_vi  = vec_vmsumshs(vs, vs, vi);
   2155 // CHECK: @llvm.ppc.altivec.vmsumshs
   2156 // CHECK-LE: @llvm.ppc.altivec.vmsumshs
   2157 
   2158   res_vui = vec_vmsumuhs(vus, vus, vui);
   2159 // CHECK: @llvm.ppc.altivec.vmsumuhs
   2160 // CHECK-LE: @llvm.ppc.altivec.vmsumuhs
   2161 
   2162   /* vec_mtvscr */
   2163   vec_mtvscr(vsc);
   2164 // CHECK: @llvm.ppc.altivec.mtvscr
   2165 // CHECK-LE: @llvm.ppc.altivec.mtvscr
   2166 
   2167   vec_mtvscr(vuc);
   2168 // CHECK: @llvm.ppc.altivec.mtvscr
   2169 // CHECK-LE: @llvm.ppc.altivec.mtvscr
   2170 
   2171   vec_mtvscr(vbc);
   2172 // CHECK: @llvm.ppc.altivec.mtvscr
   2173 // CHECK-LE: @llvm.ppc.altivec.mtvscr
   2174 
   2175   vec_mtvscr(vs);
   2176 // CHECK: @llvm.ppc.altivec.mtvscr
   2177 // CHECK-LE: @llvm.ppc.altivec.mtvscr
   2178 
   2179   vec_mtvscr(vus);
   2180 // CHECK: @llvm.ppc.altivec.mtvscr
   2181 // CHECK-LE: @llvm.ppc.altivec.mtvscr
   2182 
   2183   vec_mtvscr(vbs);
   2184 // CHECK: @llvm.ppc.altivec.mtvscr
   2185 // CHECK-LE: @llvm.ppc.altivec.mtvscr
   2186 
   2187   vec_mtvscr(vp);
   2188 // CHECK: @llvm.ppc.altivec.mtvscr
   2189 // CHECK-LE: @llvm.ppc.altivec.mtvscr
   2190 
   2191   vec_mtvscr(vi);
   2192 // CHECK: @llvm.ppc.altivec.mtvscr
   2193 // CHECK-LE: @llvm.ppc.altivec.mtvscr
   2194 
   2195   vec_mtvscr(vui);
   2196 // CHECK: @llvm.ppc.altivec.mtvscr
   2197 // CHECK-LE: @llvm.ppc.altivec.mtvscr
   2198 
   2199   vec_mtvscr(vbi);
   2200 // CHECK: @llvm.ppc.altivec.mtvscr
   2201 // CHECK-LE: @llvm.ppc.altivec.mtvscr
   2202 
   2203   /* vec_mul */
   2204   res_vsc = vec_mul(vsc, vsc);
   2205 // CHECK: mul <16 x i8>
   2206 // CHECK-LE: mul <16 x i8>
   2207 
   2208   res_vuc = vec_mul(vuc, vuc);
   2209 // CHECK: mul <16 x i8>
   2210 // CHECK-LE: mul <16 x i8>
   2211 
   2212   res_vs = vec_mul(vs, vs);
   2213 // CHECK: mul <8 x i16>
   2214 // CHECK-LE: mul <8 x i16>
   2215 
   2216   res_vus = vec_mul(vus, vus);
   2217 // CHECK: mul <8 x i16>
   2218 // CHECK-LE: mul <8 x i16>
   2219 
   2220   res_vi = vec_mul(vi, vi);
   2221 // CHECK: mul <4 x i32>
   2222 // CHECK-LE: mul <4 x i32>
   2223 
   2224   res_vui = vec_mul(vui, vui);
   2225 // CHECK: mul <4 x i32>
   2226 // CHECK-LE: mul <4 x i32>
   2227 
   2228   /* vec_mule */
   2229   res_vs  = vec_mule(vsc, vsc);
   2230 // CHECK: @llvm.ppc.altivec.vmulesb
   2231 // CHECK-LE: @llvm.ppc.altivec.vmulosb
   2232 
   2233   res_vus = vec_mule(vuc, vuc);
   2234 // CHECK: @llvm.ppc.altivec.vmuleub
   2235 // CHECK-LE: @llvm.ppc.altivec.vmuloub
   2236 
   2237   res_vi  = vec_mule(vs, vs);
   2238 // CHECK: @llvm.ppc.altivec.vmulesh
   2239 // CHECK-LE: @llvm.ppc.altivec.vmulosh
   2240 
   2241   res_vui = vec_mule(vus, vus);
   2242 // CHECK: @llvm.ppc.altivec.vmuleuh
   2243 // CHECK-LE: @llvm.ppc.altivec.vmulouh
   2244 
   2245   res_vs  = vec_vmulesb(vsc, vsc);
   2246 // CHECK: @llvm.ppc.altivec.vmulesb
   2247 // CHECK-LE: @llvm.ppc.altivec.vmulosb
   2248 
   2249   res_vus = vec_vmuleub(vuc, vuc);
   2250 // CHECK: @llvm.ppc.altivec.vmuleub
   2251 // CHECK-LE: @llvm.ppc.altivec.vmuloub
   2252 
   2253   res_vi  = vec_vmulesh(vs, vs);
   2254 // CHECK: @llvm.ppc.altivec.vmulesh
   2255 // CHECK-LE: @llvm.ppc.altivec.vmulosh
   2256 
   2257   res_vui = vec_vmuleuh(vus, vus);
   2258 // CHECK: @llvm.ppc.altivec.vmuleuh
   2259 // CHECK-LE: @llvm.ppc.altivec.vmulouh
   2260 
   2261   /* vec_mulo */
   2262   res_vs  = vec_mulo(vsc, vsc);
   2263 // CHECK: @llvm.ppc.altivec.vmulosb
   2264 // CHECK-LE: @llvm.ppc.altivec.vmulesb
   2265 
   2266   res_vus = vec_mulo(vuc, vuc);
   2267 // CHECK: @llvm.ppc.altivec.vmuloub
   2268 // CHECK-LE: @llvm.ppc.altivec.vmuleub
   2269 
   2270   res_vi  = vec_mulo(vs, vs);
   2271 // CHECK: @llvm.ppc.altivec.vmulosh
   2272 // CHECK-LE: @llvm.ppc.altivec.vmulesh
   2273 
   2274   res_vui = vec_mulo(vus, vus);
   2275 // CHECK: @llvm.ppc.altivec.vmulouh
   2276 // CHECK-LE: @llvm.ppc.altivec.vmuleuh
   2277 
   2278   res_vs  = vec_vmulosb(vsc, vsc);
   2279 // CHECK: @llvm.ppc.altivec.vmulosb
   2280 // CHECK-LE: @llvm.ppc.altivec.vmulesb
   2281 
   2282   res_vus = vec_vmuloub(vuc, vuc);
   2283 // CHECK: @llvm.ppc.altivec.vmuloub
   2284 // CHECK-LE: @llvm.ppc.altivec.vmuleub
   2285 
   2286   res_vi  = vec_vmulosh(vs, vs);
   2287 // CHECK: @llvm.ppc.altivec.vmulosh
   2288 // CHECK-LE: @llvm.ppc.altivec.vmulesh
   2289 
   2290   res_vui = vec_vmulouh(vus, vus);
   2291 // CHECK: @llvm.ppc.altivec.vmulouh
   2292 // CHECK-LE: @llvm.ppc.altivec.vmuleuh
   2293 
   2294   /* vec_nmsub */
   2295   res_vf = vec_nmsub(vf, vf, vf);
   2296 // CHECK: @llvm.ppc.altivec.vnmsubfp
   2297 // CHECK-LE: @llvm.ppc.altivec.vnmsubfp
   2298 
   2299   res_vf = vec_vnmsubfp(vf, vf, vf);
   2300 // CHECK: @llvm.ppc.altivec.vnmsubfp
   2301 // CHECK-LE: @llvm.ppc.altivec.vnmsubfp
   2302 
   2303   /* vec_nor */
   2304   res_vsc = vec_nor(vsc, vsc);
   2305 // CHECK: or <16 x i8>
   2306 // CHECK: xor <16 x i8>
   2307 // CHECK-LE: or <16 x i8>
   2308 // CHECK-LE: xor <16 x i8>
   2309 
   2310   res_vuc = vec_nor(vuc, vuc);
   2311 // CHECK: or <16 x i8>
   2312 // CHECK: xor <16 x i8>
   2313 // CHECK-LE: or <16 x i8>
   2314 // CHECK-LE: xor <16 x i8>
   2315 
   2316   res_vuc = vec_nor(vbc, vbc);
   2317 // CHECK: or <16 x i8>
   2318 // CHECK: xor <16 x i8>
   2319 // CHECK-LE: or <16 x i8>
   2320 // CHECK-LE: xor <16 x i8>
   2321 
   2322   res_vs  = vec_nor(vs, vs);
   2323 // CHECK: or <8 x i16>
   2324 // CHECK: xor <8 x i16>
   2325 // CHECK-LE: or <8 x i16>
   2326 // CHECK-LE: xor <8 x i16>
   2327 
   2328   res_vus = vec_nor(vus, vus);
   2329 // CHECK: or <8 x i16>
   2330 // CHECK: xor <8 x i16>
   2331 // CHECK-LE: or <8 x i16>
   2332 // CHECK-LE: xor <8 x i16>
   2333 
   2334   res_vus = vec_nor(vbs, vbs);
   2335 // CHECK: or <8 x i16>
   2336 // CHECK: xor <8 x i16>
   2337 // CHECK-LE: or <8 x i16>
   2338 // CHECK-LE: xor <8 x i16>
   2339 
   2340   res_vi  = vec_nor(vi, vi);
   2341 // CHECK: or <4 x i32>
   2342 // CHECK: xor <4 x i32>
   2343 // CHECK-LE: or <4 x i32>
   2344 // CHECK-LE: xor <4 x i32>
   2345 
   2346   res_vui = vec_nor(vui, vui);
   2347 // CHECK: or <4 x i32>
   2348 // CHECK: xor <4 x i32>
   2349 // CHECK-LE: or <4 x i32>
   2350 // CHECK-LE: xor <4 x i32>
   2351 
   2352   res_vui = vec_nor(vbi, vbi);
   2353 // CHECK: or <4 x i32>
   2354 // CHECK: xor <4 x i32>
   2355 // CHECK-LE: or <4 x i32>
   2356 // CHECK-LE: xor <4 x i32>
   2357 
   2358   res_vf  = vec_nor(vf, vf);
   2359 // CHECK: or <4 x i32>
   2360 // CHECK: xor <4 x i32>
   2361 // CHECK-LE: or <4 x i32>
   2362 // CHECK-LE: xor <4 x i32>
   2363 
   2364   res_vsc = vec_vnor(vsc, vsc);
   2365 // CHECK: or <16 x i8>
   2366 // CHECK: xor <16 x i8>
   2367 // CHECK-LE: or <16 x i8>
   2368 // CHECK-LE: xor <16 x i8>
   2369 
   2370   res_vuc = vec_vnor(vuc, vuc);
   2371 // CHECK: or <16 x i8>
   2372 // CHECK: xor <16 x i8>
   2373 // CHECK-LE: or <16 x i8>
   2374 // CHECK-LE: xor <16 x i8>
   2375 
   2376   res_vuc = vec_vnor(vbc, vbc);
   2377 // CHECK: or <16 x i8>
   2378 // CHECK: xor <16 x i8>
   2379 // CHECK-LE: or <16 x i8>
   2380 // CHECK-LE: xor <16 x i8>
   2381 
   2382   res_vs  = vec_vnor(vs, vs);
   2383 // CHECK: or <8 x i16>
   2384 // CHECK: xor <8 x i16>
   2385 // CHECK-LE: or <8 x i16>
   2386 // CHECK-LE: xor <8 x i16>
   2387 
   2388   res_vus = vec_vnor(vus, vus);
   2389 // CHECK: or <8 x i16>
   2390 // CHECK: xor <8 x i16>
   2391 // CHECK-LE: or <8 x i16>
   2392 // CHECK-LE: xor <8 x i16>
   2393 
   2394   res_vus = vec_vnor(vbs, vbs);
   2395 // CHECK: or <8 x i16>
   2396 // CHECK: xor <8 x i16>
   2397 // CHECK-LE: or <8 x i16>
   2398 // CHECK-LE: xor <8 x i16>
   2399 
   2400   res_vi  = vec_vnor(vi, vi);
   2401 // CHECK: or <4 x i32>
   2402 // CHECK: xor <4 x i32>
   2403 // CHECK-LE: or <4 x i32>
   2404 // CHECK-LE: xor <4 x i32>
   2405 
   2406   res_vui = vec_vnor(vui, vui);
   2407 // CHECK: or <4 x i32>
   2408 // CHECK: xor <4 x i32>
   2409 // CHECK-LE: or <4 x i32>
   2410 // CHECK-LE: xor <4 x i32>
   2411 
   2412   res_vui = vec_vnor(vbi, vbi);
   2413 // CHECK: or <4 x i32>
   2414 // CHECK: xor <4 x i32>
   2415 // CHECK-LE: or <4 x i32>
   2416 // CHECK-LE: xor <4 x i32>
   2417 
   2418   res_vf  = vec_vnor(vf, vf);
   2419 // CHECK: or <4 x i32>
   2420 // CHECK: xor <4 x i32>
   2421 // CHECK-LE: or <4 x i32>
   2422 // CHECK-LE: xor <4 x i32>
   2423 
   2424   /* vec_or */
   2425   res_vsc = vec_or(vsc, vsc);
   2426 // CHECK: or <16 x i8>
   2427 // CHECK-LE: or <16 x i8>
   2428 
   2429   res_vsc = vec_or(vbc, vsc);
   2430 // CHECK: or <16 x i8>
   2431 // CHECK-LE: or <16 x i8>
   2432 
   2433   res_vsc = vec_or(vsc, vbc);
   2434 // CHECK: or <16 x i8>
   2435 // CHECK-LE: or <16 x i8>
   2436 
   2437   res_vuc = vec_or(vuc, vuc);
   2438 // CHECK: or <16 x i8>
   2439 // CHECK-LE: or <16 x i8>
   2440 
   2441   res_vuc = vec_or(vbc, vuc);
   2442 // CHECK: or <16 x i8>
   2443 // CHECK-LE: or <16 x i8>
   2444 
   2445   res_vuc = vec_or(vuc, vbc);
   2446 // CHECK: or <16 x i8>
   2447 // CHECK-LE: or <16 x i8>
   2448 
   2449   res_vbc = vec_or(vbc, vbc);
   2450 // CHECK: or <16 x i8>
   2451 // CHECK-LE: or <16 x i8>
   2452 
   2453   res_vs  = vec_or(vs, vs);
   2454 // CHECK: or <8 x i16>
   2455 // CHECK-LE: or <8 x i16>
   2456 
   2457   res_vs  = vec_or(vbs, vs);
   2458 // CHECK: or <8 x i16>
   2459 // CHECK-LE: or <8 x i16>
   2460 
   2461   res_vs  = vec_or(vs, vbs);
   2462 // CHECK: or <8 x i16>
   2463 // CHECK-LE: or <8 x i16>
   2464 
   2465   res_vus = vec_or(vus, vus);
   2466 // CHECK: or <8 x i16>
   2467 // CHECK-LE: or <8 x i16>
   2468 
   2469   res_vus = vec_or(vbs, vus);
   2470 // CHECK: or <8 x i16>
   2471 // CHECK-LE: or <8 x i16>
   2472 
   2473   res_vus = vec_or(vus, vbs);
   2474 // CHECK: or <8 x i16>
   2475 // CHECK-LE: or <8 x i16>
   2476 
   2477   res_vbs = vec_or(vbs, vbs);
   2478 // CHECK: or <8 x i16>
   2479 // CHECK-LE: or <8 x i16>
   2480 
   2481   res_vi  = vec_or(vi, vi);
   2482 // CHECK: or <4 x i32>
   2483 // CHECK-LE: or <4 x i32>
   2484 
   2485   res_vi  = vec_or(vbi, vi);
   2486 // CHECK: or <4 x i32>
   2487 // CHECK-LE: or <4 x i32>
   2488 
   2489   res_vi  = vec_or(vi, vbi);
   2490 // CHECK: or <4 x i32>
   2491 // CHECK-LE: or <4 x i32>
   2492 
   2493   res_vui = vec_or(vui, vui);
   2494 // CHECK: or <4 x i32>
   2495 // CHECK-LE: or <4 x i32>
   2496 
   2497   res_vui = vec_or(vbi, vui);
   2498 // CHECK: or <4 x i32>
   2499 // CHECK-LE: or <4 x i32>
   2500 
   2501   res_vui = vec_or(vui, vbi);
   2502 // CHECK: or <4 x i32>
   2503 // CHECK-LE: or <4 x i32>
   2504 
   2505   res_vbi = vec_or(vbi, vbi);
   2506 // CHECK: or <4 x i32>
   2507 // CHECK-LE: or <4 x i32>
   2508 
   2509   res_vf  = vec_or(vf, vf);
   2510 // CHECK: or <4 x i32>
   2511 // CHECK-LE: or <4 x i32>
   2512 
   2513   res_vf  = vec_or(vbi, vf);
   2514 // CHECK: or <4 x i32>
   2515 // CHECK-LE: or <4 x i32>
   2516 
   2517   res_vf  = vec_or(vf, vbi);
   2518 // CHECK: or <4 x i32>
   2519 // CHECK-LE: or <4 x i32>
   2520 
   2521   res_vsc = vec_vor(vsc, vsc);
   2522 // CHECK: or <16 x i8>
   2523 // CHECK-LE: or <16 x i8>
   2524 
   2525   res_vsc = vec_vor(vbc, vsc);
   2526 // CHECK: or <16 x i8>
   2527 // CHECK-LE: or <16 x i8>
   2528 
   2529   res_vsc = vec_vor(vsc, vbc);
   2530 // CHECK: or <16 x i8>
   2531 // CHECK-LE: or <16 x i8>
   2532 
   2533   res_vuc = vec_vor(vuc, vuc);
   2534 // CHECK: or <16 x i8>
   2535 // CHECK-LE: or <16 x i8>
   2536 
   2537   res_vuc = vec_vor(vbc, vuc);
   2538 // CHECK: or <16 x i8>
   2539 // CHECK-LE: or <16 x i8>
   2540 
   2541   res_vuc = vec_vor(vuc, vbc);
   2542 // CHECK: or <16 x i8>
   2543 // CHECK-LE: or <16 x i8>
   2544 
   2545   res_vbc = vec_vor(vbc, vbc);
   2546 // CHECK: or <16 x i8>
   2547 // CHECK-LE: or <16 x i8>
   2548 
   2549   res_vs  = vec_vor(vs, vs);
   2550 // CHECK: or <8 x i16>
   2551 // CHECK-LE: or <8 x i16>
   2552 
   2553   res_vs  = vec_vor(vbs, vs);
   2554 // CHECK: or <8 x i16>
   2555 // CHECK-LE: or <8 x i16>
   2556 
   2557   res_vs  = vec_vor(vs, vbs);
   2558 // CHECK: or <8 x i16>
   2559 // CHECK-LE: or <8 x i16>
   2560 
   2561   res_vus = vec_vor(vus, vus);
   2562 // CHECK: or <8 x i16>
   2563 // CHECK-LE: or <8 x i16>
   2564 
   2565   res_vus = vec_vor(vbs, vus);
   2566 // CHECK: or <8 x i16>
   2567 // CHECK-LE: or <8 x i16>
   2568 
   2569   res_vus = vec_vor(vus, vbs);
   2570 // CHECK: or <8 x i16>
   2571 // CHECK-LE: or <8 x i16>
   2572 
   2573   res_vbs = vec_vor(vbs, vbs);
   2574 // CHECK: or <8 x i16>
   2575 // CHECK-LE: or <8 x i16>
   2576 
   2577   res_vi  = vec_vor(vi, vi);
   2578 // CHECK: or <4 x i32>
   2579 // CHECK-LE: or <4 x i32>
   2580 
   2581   res_vi  = vec_vor(vbi, vi);
   2582 // CHECK: or <4 x i32>
   2583 // CHECK-LE: or <4 x i32>
   2584 
   2585   res_vi  = vec_vor(vi, vbi);
   2586 // CHECK: or <4 x i32>
   2587 // CHECK-LE: or <4 x i32>
   2588 
   2589   res_vui = vec_vor(vui, vui);
   2590 // CHECK: or <4 x i32>
   2591 // CHECK-LE: or <4 x i32>
   2592 
   2593   res_vui = vec_vor(vbi, vui);
   2594 // CHECK: or <4 x i32>
   2595 // CHECK-LE: or <4 x i32>
   2596 
   2597   res_vui = vec_vor(vui, vbi);
   2598 // CHECK: or <4 x i32>
   2599 // CHECK-LE: or <4 x i32>
   2600 
   2601   res_vbi = vec_vor(vbi, vbi);
   2602 // CHECK: or <4 x i32>
   2603 // CHECK-LE: or <4 x i32>
   2604 
   2605   res_vf  = vec_vor(vf, vf);
   2606 // CHECK: or <4 x i32>
   2607 // CHECK-LE: or <4 x i32>
   2608 
   2609   res_vf  = vec_vor(vbi, vf);
   2610 // CHECK: or <4 x i32>
   2611 // CHECK-LE: or <4 x i32>
   2612 
   2613   res_vf  = vec_vor(vf, vbi);
   2614 // CHECK: or <4 x i32>
   2615 // CHECK-LE: or <4 x i32>
   2616 
   2617   /* vec_pack */
   2618   res_vsc = vec_pack(vs, vs);
   2619 // CHECK: @llvm.ppc.altivec.vperm
   2620 // CHECK-LE: @llvm.ppc.altivec.vperm
   2621 
   2622   res_vuc = vec_pack(vus, vus);
   2623 // CHECK: @llvm.ppc.altivec.vperm
   2624 // CHECK-LE: @llvm.ppc.altivec.vperm
   2625 
   2626   res_vbc = vec_pack(vbs, vbs);
   2627 // CHECK: @llvm.ppc.altivec.vperm
   2628 // CHECK-LE: @llvm.ppc.altivec.vperm
   2629 
   2630   res_vs  = vec_pack(vi, vi);
   2631 // CHECK: @llvm.ppc.altivec.vperm
   2632 // CHECK-LE: @llvm.ppc.altivec.vperm
   2633 
   2634   res_vus = vec_pack(vui, vui);
   2635 // CHECK: @llvm.ppc.altivec.vperm
   2636 // CHECK-LE: @llvm.ppc.altivec.vperm
   2637 
   2638   res_vbs = vec_pack(vbi, vbi);
   2639 // CHECK: @llvm.ppc.altivec.vperm
   2640 // CHECK-LE: @llvm.ppc.altivec.vperm
   2641 
   2642   res_vsc = vec_vpkuhum(vs, vs);
   2643 // CHECK: @llvm.ppc.altivec.vperm
   2644 // CHECK-LE: @llvm.ppc.altivec.vperm
   2645 
   2646   res_vuc = vec_vpkuhum(vus, vus);
   2647 // CHECK: @llvm.ppc.altivec.vperm
   2648 // CHECK-LE: @llvm.ppc.altivec.vperm
   2649 
   2650   res_vbc = vec_vpkuhum(vbs, vbs);
   2651 // CHECK: @llvm.ppc.altivec.vperm
   2652 // CHECK-LE: @llvm.ppc.altivec.vperm
   2653 
   2654   res_vs  = vec_vpkuwum(vi, vi);
   2655 // CHECK: @llvm.ppc.altivec.vperm
   2656 // CHECK-LE: @llvm.ppc.altivec.vperm
   2657 
   2658   res_vus = vec_vpkuwum(vui, vui);
   2659 // CHECK: @llvm.ppc.altivec.vperm
   2660 // CHECK-LE: @llvm.ppc.altivec.vperm
   2661 
   2662   res_vbs = vec_vpkuwum(vbi, vbi);
   2663 // CHECK: @llvm.ppc.altivec.vperm
   2664 // CHECK-LE: @llvm.ppc.altivec.vperm
   2665 
   2666   /* vec_packpx */
   2667   res_vp = vec_packpx(vui, vui);
   2668 // CHECK: @llvm.ppc.altivec.vpkpx
   2669 // CHECK-LE: @llvm.ppc.altivec.vpkpx
   2670 
   2671   res_vp = vec_vpkpx(vui, vui);
   2672 // CHECK: @llvm.ppc.altivec.vpkpx
   2673 // CHECK-LE: @llvm.ppc.altivec.vpkpx
   2674 
   2675   /* vec_packs */
   2676   res_vsc = vec_packs(vs, vs);
   2677 // CHECK: @llvm.ppc.altivec.vpkshss
   2678 // CHECK-LE: @llvm.ppc.altivec.vpkshss
   2679 
   2680   res_vuc = vec_packs(vus, vus);
   2681 // CHECK: @llvm.ppc.altivec.vpkuhus
   2682 // CHECK-LE: @llvm.ppc.altivec.vpkuhus
   2683 
   2684   res_vs  = vec_packs(vi, vi);
   2685 // CHECK: @llvm.ppc.altivec.vpkswss
   2686 // CHECK-LE: @llvm.ppc.altivec.vpkswss
   2687 
   2688   res_vus = vec_packs(vui, vui);
   2689 // CHECK: @llvm.ppc.altivec.vpkuwus
   2690 // CHECK-LE: @llvm.ppc.altivec.vpkuwus
   2691 
   2692   res_vsc = vec_vpkshss(vs, vs);
   2693 // CHECK: @llvm.ppc.altivec.vpkshss
   2694 // CHECK-LE: @llvm.ppc.altivec.vpkshss
   2695 
   2696   res_vuc = vec_vpkuhus(vus, vus);
   2697 // CHECK: @llvm.ppc.altivec.vpkuhus
   2698 // CHECK-LE: @llvm.ppc.altivec.vpkuhus
   2699 
   2700   res_vs  = vec_vpkswss(vi, vi);
   2701 // CHECK: @llvm.ppc.altivec.vpkswss
   2702 // CHECK-LE: @llvm.ppc.altivec.vpkswss
   2703 
   2704   res_vus = vec_vpkuwus(vui, vui);
   2705 // CHECK: @llvm.ppc.altivec.vpkuwus
   2706 // CHECK-LE: @llvm.ppc.altivec.vpkuwus
   2707 
   2708   /* vec_packsu */
   2709   res_vuc = vec_packsu(vs, vs);
   2710 // CHECK: @llvm.ppc.altivec.vpkshus
   2711 // CHECK-LE: @llvm.ppc.altivec.vpkshus
   2712 
   2713   res_vuc = vec_packsu(vus, vus);
   2714 // CHECK: @llvm.ppc.altivec.vpkuhus
   2715 // CHECK-LE: @llvm.ppc.altivec.vpkuhus
   2716 
   2717   res_vus = vec_packsu(vi, vi);
   2718 // CHECK: @llvm.ppc.altivec.vpkswus
   2719 // CHECK-LE: @llvm.ppc.altivec.vpkswus
   2720 
   2721   res_vus = vec_packsu(vui, vui);
   2722 // CHECK: @llvm.ppc.altivec.vpkuwus
   2723 // CHECK-LE: @llvm.ppc.altivec.vpkuwus
   2724 
   2725   res_vuc = vec_vpkshus(vs, vs);
   2726 // CHECK: @llvm.ppc.altivec.vpkshus
   2727 // CHECK-LE: @llvm.ppc.altivec.vpkshus
   2728 
   2729   res_vuc = vec_vpkshus(vus, vus);
   2730 // CHECK: @llvm.ppc.altivec.vpkuhus
   2731 // CHECK-LE: @llvm.ppc.altivec.vpkuhus
   2732 
   2733   res_vus = vec_vpkswus(vi, vi);
   2734 // CHECK: @llvm.ppc.altivec.vpkswus
   2735 // CHECK-LE: @llvm.ppc.altivec.vpkswus
   2736 
   2737   res_vus = vec_vpkswus(vui, vui);
   2738 // CHECK: @llvm.ppc.altivec.vpkuwus
   2739 // CHECK-LE: @llvm.ppc.altivec.vpkuwus
   2740 
   2741   /* vec_perm */
   2742   res_vsc = vec_perm(vsc, vsc, vuc);
   2743 // CHECK: @llvm.ppc.altivec.vperm
   2744 // CHECK-LE: @llvm.ppc.altivec.vperm
   2745 
   2746   res_vuc = vec_perm(vuc, vuc, vuc);
   2747 // CHECK: @llvm.ppc.altivec.vperm
   2748 // CHECK-LE: @llvm.ppc.altivec.vperm
   2749 
   2750   res_vbc = vec_perm(vbc, vbc, vuc);
   2751 // CHECK: @llvm.ppc.altivec.vperm
   2752 // CHECK-LE: @llvm.ppc.altivec.vperm
   2753 
   2754   res_vs  = vec_perm(vs, vs, vuc);
   2755 // CHECK: @llvm.ppc.altivec.vperm
   2756 // CHECK-LE: @llvm.ppc.altivec.vperm
   2757 
   2758   res_vus = vec_perm(vus, vus, vuc);
   2759 // CHECK: @llvm.ppc.altivec.vperm
   2760 // CHECK-LE: @llvm.ppc.altivec.vperm
   2761 
   2762   res_vbs = vec_perm(vbs, vbs, vuc);
   2763 // CHECK: @llvm.ppc.altivec.vperm
   2764 // CHECK-LE: @llvm.ppc.altivec.vperm
   2765 
   2766   res_vp  = vec_perm(vp, vp, vuc);
   2767 // CHECK: @llvm.ppc.altivec.vperm
   2768 // CHECK-LE: @llvm.ppc.altivec.vperm
   2769 
   2770   res_vi  = vec_perm(vi, vi, vuc);
   2771 // CHECK: @llvm.ppc.altivec.vperm
   2772 // CHECK-LE: @llvm.ppc.altivec.vperm
   2773 
   2774   res_vui = vec_perm(vui, vui, vuc);
   2775 // CHECK: @llvm.ppc.altivec.vperm
   2776 // CHECK-LE: @llvm.ppc.altivec.vperm
   2777 
   2778   res_vbi = vec_perm(vbi, vbi, vuc);
   2779 // CHECK: @llvm.ppc.altivec.vperm
   2780 // CHECK-LE: @llvm.ppc.altivec.vperm
   2781 
   2782   res_vf  = vec_perm(vf, vf, vuc);
   2783 // CHECK: @llvm.ppc.altivec.vperm
   2784 // CHECK-LE: @llvm.ppc.altivec.vperm
   2785 
   2786   res_vsc = vec_vperm(vsc, vsc, vuc);
   2787 // CHECK: @llvm.ppc.altivec.vperm
   2788 // CHECK-LE: @llvm.ppc.altivec.vperm
   2789 
   2790   res_vuc = vec_vperm(vuc, vuc, vuc);
   2791 // CHECK: @llvm.ppc.altivec.vperm
   2792 // CHECK-LE: @llvm.ppc.altivec.vperm
   2793 
   2794   res_vbc = vec_vperm(vbc, vbc, vuc);
   2795 // CHECK: @llvm.ppc.altivec.vperm
   2796 // CHECK-LE: @llvm.ppc.altivec.vperm
   2797 
   2798   res_vs  = vec_vperm(vs, vs, vuc);
   2799 // CHECK: @llvm.ppc.altivec.vperm
   2800 // CHECK-LE: @llvm.ppc.altivec.vperm
   2801 
   2802   res_vus = vec_vperm(vus, vus, vuc);
   2803 // CHECK: @llvm.ppc.altivec.vperm
   2804 // CHECK-LE: @llvm.ppc.altivec.vperm
   2805 
   2806   res_vbs = vec_vperm(vbs, vbs, vuc);
   2807 // CHECK: @llvm.ppc.altivec.vperm
   2808 // CHECK-LE: @llvm.ppc.altivec.vperm
   2809 
   2810   res_vp  = vec_vperm(vp, vp, vuc);
   2811 // CHECK: @llvm.ppc.altivec.vperm
   2812 // CHECK-LE: @llvm.ppc.altivec.vperm
   2813 
   2814   res_vi  = vec_vperm(vi, vi, vuc);
   2815 // CHECK: @llvm.ppc.altivec.vperm
   2816 // CHECK-LE: @llvm.ppc.altivec.vperm
   2817 
   2818   res_vui = vec_vperm(vui, vui, vuc);
   2819 // CHECK: @llvm.ppc.altivec.vperm
   2820 // CHECK-LE: @llvm.ppc.altivec.vperm
   2821 
   2822   res_vbi = vec_vperm(vbi, vbi, vuc);
   2823 // CHECK: @llvm.ppc.altivec.vperm
   2824 // CHECK-LE: @llvm.ppc.altivec.vperm
   2825 
   2826   res_vf  = vec_vperm(vf, vf, vuc);
   2827 // CHECK: @llvm.ppc.altivec.vperm
   2828 // CHECK-LE: @llvm.ppc.altivec.vperm
   2829 
   2830   /* vec_re */
   2831   res_vf = vec_re(vf);
   2832 // CHECK: @llvm.ppc.altivec.vrefp
   2833 // CHECK-LE: @llvm.ppc.altivec.vrefp
   2834 
   2835   res_vf = vec_vrefp(vf);
   2836 // CHECK: @llvm.ppc.altivec.vrefp
   2837 // CHECK-LE: @llvm.ppc.altivec.vrefp
   2838 
   2839   /* vec_rl */
   2840   res_vsc = vec_rl(vsc, vuc);
   2841 // CHECK: @llvm.ppc.altivec.vrlb
   2842 // CHECK-LE: @llvm.ppc.altivec.vrlb
   2843 
   2844   res_vuc = vec_rl(vuc, vuc);
   2845 // CHECK: @llvm.ppc.altivec.vrlb
   2846 // CHECK-LE: @llvm.ppc.altivec.vrlb
   2847 
   2848   res_vs  = vec_rl(vs, vus);
   2849 // CHECK: @llvm.ppc.altivec.vrlh
   2850 // CHECK-LE: @llvm.ppc.altivec.vrlh
   2851 
   2852   res_vus = vec_rl(vus, vus);
   2853 // CHECK: @llvm.ppc.altivec.vrlh
   2854 // CHECK-LE: @llvm.ppc.altivec.vrlh
   2855 
   2856   res_vi  = vec_rl(vi, vui);
   2857 // CHECK: @llvm.ppc.altivec.vrlw
   2858 // CHECK-LE: @llvm.ppc.altivec.vrlw
   2859 
   2860   res_vui = vec_rl(vui, vui);
   2861 // CHECK: @llvm.ppc.altivec.vrlw
   2862 // CHECK-LE: @llvm.ppc.altivec.vrlw
   2863 
   2864   res_vsc = vec_vrlb(vsc, vuc);
   2865 // CHECK: @llvm.ppc.altivec.vrlb
   2866 // CHECK-LE: @llvm.ppc.altivec.vrlb
   2867 
   2868   res_vuc = vec_vrlb(vuc, vuc);
   2869 // CHECK: @llvm.ppc.altivec.vrlb
   2870 // CHECK-LE: @llvm.ppc.altivec.vrlb
   2871 
   2872   res_vs  = vec_vrlh(vs, vus);
   2873 // CHECK: @llvm.ppc.altivec.vrlh
   2874 // CHECK-LE: @llvm.ppc.altivec.vrlh
   2875 
   2876   res_vus = vec_vrlh(vus, vus);
   2877 // CHECK: @llvm.ppc.altivec.vrlh
   2878 // CHECK-LE: @llvm.ppc.altivec.vrlh
   2879 
   2880   res_vi  = vec_vrlw(vi, vui);
   2881 // CHECK: @llvm.ppc.altivec.vrlw
   2882 // CHECK-LE: @llvm.ppc.altivec.vrlw
   2883 
   2884   res_vui = vec_vrlw(vui, vui);
   2885 // CHECK: @llvm.ppc.altivec.vrlw
   2886 // CHECK-LE: @llvm.ppc.altivec.vrlw
   2887 
   2888   /* vec_round */
   2889   res_vf = vec_round(vf);
   2890 // CHECK: @llvm.ppc.altivec.vrfin
   2891 // CHECK-LE: @llvm.ppc.altivec.vrfin
   2892 
   2893   res_vf = vec_vrfin(vf);
   2894 // CHECK: @llvm.ppc.altivec.vrfin
   2895 // CHECK-LE: @llvm.ppc.altivec.vrfin
   2896 
   2897   /* vec_rsqrte */
   2898   res_vf = vec_rsqrte(vf);
   2899 // CHECK: @llvm.ppc.altivec.vrsqrtefp
   2900 // CHECK-LE: @llvm.ppc.altivec.vrsqrtefp
   2901 
   2902   res_vf = vec_vrsqrtefp(vf);
   2903 // CHECK: @llvm.ppc.altivec.vrsqrtefp
   2904 // CHECK-LE: @llvm.ppc.altivec.vrsqrtefp
   2905 
   2906   /* vec_sel */
   2907   res_vsc = vec_sel(vsc, vsc, vuc);
   2908 // CHECK: xor <16 x i8>
   2909 // CHECK: and <16 x i8>
   2910 // CHECK: and <16 x i8>
   2911 // CHECK: or <16 x i8>
   2912 // CHECK-LE: xor <16 x i8>
   2913 // CHECK-LE: and <16 x i8>
   2914 // CHECK-LE: and <16 x i8>
   2915 // CHECK-LE: or <16 x i8>
   2916 
   2917   res_vsc = vec_sel(vsc, vsc, vbc);
   2918 // CHECK: xor <16 x i8>
   2919 // CHECK: and <16 x i8>
   2920 // CHECK: and <16 x i8>
   2921 // CHECK: or <16 x i8>
   2922 // CHECK-LE: xor <16 x i8>
   2923 // CHECK-LE: and <16 x i8>
   2924 // CHECK-LE: and <16 x i8>
   2925 // CHECK-LE: or <16 x i8>
   2926 
   2927   res_vuc = vec_sel(vuc, vuc, vuc);
   2928 // CHECK: xor <16 x i8>
   2929 // CHECK: and <16 x i8>
   2930 // CHECK: and <16 x i8>
   2931 // CHECK: or <16 x i8>
   2932 // CHECK-LE: xor <16 x i8>
   2933 // CHECK-LE: and <16 x i8>
   2934 // CHECK-LE: and <16 x i8>
   2935 // CHECK-LE: or <16 x i8>
   2936 
   2937   res_vuc = vec_sel(vuc, vuc, vbc);
   2938 // CHECK: xor <16 x i8>
   2939 // CHECK: and <16 x i8>
   2940 // CHECK: and <16 x i8>
   2941 // CHECK: or <16 x i8>
   2942 // CHECK-LE: xor <16 x i8>
   2943 // CHECK-LE: and <16 x i8>
   2944 // CHECK-LE: and <16 x i8>
   2945 // CHECK-LE: or <16 x i8>
   2946 
   2947   res_vbc = vec_sel(vbc, vbc, vuc);
   2948 // CHECK: xor <16 x i8>
   2949 // CHECK: and <16 x i8>
   2950 // CHECK: and <16 x i8>
   2951 // CHECK: or <16 x i8>
   2952 // CHECK-LE: xor <16 x i8>
   2953 // CHECK-LE: and <16 x i8>
   2954 // CHECK-LE: and <16 x i8>
   2955 // CHECK-LE: or <16 x i8>
   2956 
   2957   res_vbc = vec_sel(vbc, vbc, vbc);
   2958 // CHECK: xor <16 x i8>
   2959 // CHECK: and <16 x i8>
   2960 // CHECK: and <16 x i8>
   2961 // CHECK: or <16 x i8>
   2962 // CHECK-LE: xor <16 x i8>
   2963 // CHECK-LE: and <16 x i8>
   2964 // CHECK-LE: and <16 x i8>
   2965 // CHECK-LE: or <16 x i8>
   2966 
   2967   res_vs  = vec_sel(vs, vs, vus);
   2968 // CHECK: xor <8 x i16>
   2969 // CHECK: and <8 x i16>
   2970 // CHECK: and <8 x i16>
   2971 // CHECK: or <8 x i16>
   2972 // CHECK-LE: xor <8 x i16>
   2973 // CHECK-LE: and <8 x i16>
   2974 // CHECK-LE: and <8 x i16>
   2975 // CHECK-LE: or <8 x i16>
   2976 
   2977   res_vs  = vec_sel(vs, vs, vbs);
   2978 // CHECK: xor <8 x i16>
   2979 // CHECK: and <8 x i16>
   2980 // CHECK: and <8 x i16>
   2981 // CHECK: or <8 x i16>
   2982 // CHECK-LE: xor <8 x i16>
   2983 // CHECK-LE: and <8 x i16>
   2984 // CHECK-LE: and <8 x i16>
   2985 // CHECK-LE: or <8 x i16>
   2986 
   2987   res_vus = vec_sel(vus, vus, vus);
   2988 // CHECK: xor <8 x i16>
   2989 // CHECK: and <8 x i16>
   2990 // CHECK: and <8 x i16>
   2991 // CHECK: or <8 x i16>
   2992 // CHECK-LE: xor <8 x i16>
   2993 // CHECK-LE: and <8 x i16>
   2994 // CHECK-LE: and <8 x i16>
   2995 // CHECK-LE: or <8 x i16>
   2996 
   2997   res_vus = vec_sel(vus, vus, vbs);
   2998 // CHECK: xor <8 x i16>
   2999 // CHECK: and <8 x i16>
   3000 // CHECK: and <8 x i16>
   3001 // CHECK: or <8 x i16>
   3002 // CHECK-LE: xor <8 x i16>
   3003 // CHECK-LE: and <8 x i16>
   3004 // CHECK-LE: and <8 x i16>
   3005 // CHECK-LE: or <8 x i16>
   3006 
   3007   res_vbs = vec_sel(vbs, vbs, vus);
   3008 // CHECK: xor <8 x i16>
   3009 // CHECK: and <8 x i16>
   3010 // CHECK: and <8 x i16>
   3011 // CHECK: or <8 x i16>
   3012 // CHECK-LE: xor <8 x i16>
   3013 // CHECK-LE: and <8 x i16>
   3014 // CHECK-LE: and <8 x i16>
   3015 // CHECK-LE: or <8 x i16>
   3016 
   3017   res_vbs = vec_sel(vbs, vbs, vbs);
   3018 // CHECK: xor <8 x i16>
   3019 // CHECK: and <8 x i16>
   3020 // CHECK: and <8 x i16>
   3021 // CHECK: or <8 x i16>
   3022 // CHECK-LE: xor <8 x i16>
   3023 // CHECK-LE: and <8 x i16>
   3024 // CHECK-LE: and <8 x i16>
   3025 // CHECK-LE: or <8 x i16>
   3026 
   3027   res_vi  = vec_sel(vi, vi, vui);
   3028 // CHECK: xor <4 x i32>
   3029 // CHECK: and <4 x i32>
   3030 // CHECK: and <4 x i32>
   3031 // CHECK: or <4 x i32>
   3032 // CHECK-LE: xor <4 x i32>
   3033 // CHECK-LE: and <4 x i32>
   3034 // CHECK-LE: and <4 x i32>
   3035 // CHECK-LE: or <4 x i32>
   3036 
   3037   res_vi  = vec_sel(vi, vi, vbi);
   3038 // CHECK: xor <4 x i32>
   3039 // CHECK: and <4 x i32>
   3040 // CHECK: and <4 x i32>
   3041 // CHECK: or <4 x i32>
   3042 // CHECK-LE: xor <4 x i32>
   3043 // CHECK-LE: and <4 x i32>
   3044 // CHECK-LE: and <4 x i32>
   3045 // CHECK-LE: or <4 x i32>
   3046 
   3047   res_vui = vec_sel(vui, vui, vui);
   3048 // CHECK: xor <4 x i32>
   3049 // CHECK: and <4 x i32>
   3050 // CHECK: and <4 x i32>
   3051 // CHECK: or <4 x i32>
   3052 // CHECK-LE: xor <4 x i32>
   3053 // CHECK-LE: and <4 x i32>
   3054 // CHECK-LE: and <4 x i32>
   3055 // CHECK-LE: or <4 x i32>
   3056 
   3057   res_vui = vec_sel(vui, vui, vbi);
   3058 // CHECK: xor <4 x i32>
   3059 // CHECK: and <4 x i32>
   3060 // CHECK: and <4 x i32>
   3061 // CHECK: or <4 x i32>
   3062 // CHECK-LE: xor <4 x i32>
   3063 // CHECK-LE: and <4 x i32>
   3064 // CHECK-LE: and <4 x i32>
   3065 // CHECK-LE: or <4 x i32>
   3066 
   3067   res_vbi = vec_sel(vbi, vbi, vui);
   3068 // CHECK: xor <4 x i32>
   3069 // CHECK: and <4 x i32>
   3070 // CHECK: and <4 x i32>
   3071 // CHECK: or <4 x i32>
   3072 // CHECK-LE: xor <4 x i32>
   3073 // CHECK-LE: and <4 x i32>
   3074 // CHECK-LE: and <4 x i32>
   3075 // CHECK-LE: or <4 x i32>
   3076 
   3077   res_vbi = vec_sel(vbi, vbi, vbi);
   3078 // CHECK: xor <4 x i32>
   3079 // CHECK: and <4 x i32>
   3080 // CHECK: and <4 x i32>
   3081 // CHECK: or <4 x i32>
   3082 // CHECK-LE: xor <4 x i32>
   3083 // CHECK-LE: and <4 x i32>
   3084 // CHECK-LE: and <4 x i32>
   3085 // CHECK-LE: or <4 x i32>
   3086 
   3087   res_vf  = vec_sel(vf, vf, vui);
   3088 // CHECK: xor <4 x i32>
   3089 // CHECK: and <4 x i32>
   3090 // CHECK: and <4 x i32>
   3091 // CHECK: or <4 x i32>
   3092 // CHECK-LE: xor <4 x i32>
   3093 // CHECK-LE: and <4 x i32>
   3094 // CHECK-LE: and <4 x i32>
   3095 // CHECK-LE: or <4 x i32>
   3096 
   3097   res_vf  = vec_sel(vf, vf, vbi);
   3098 // CHECK: xor <4 x i32>
   3099 // CHECK: and <4 x i32>
   3100 // CHECK: and <4 x i32>
   3101 // CHECK: or <4 x i32>
   3102 // CHECK-LE: xor <4 x i32>
   3103 // CHECK-LE: and <4 x i32>
   3104 // CHECK-LE: and <4 x i32>
   3105 // CHECK-LE: or <4 x i32>
   3106 
   3107   res_vsc = vec_vsel(vsc, vsc, vuc);
   3108 // CHECK: xor <16 x i8>
   3109 // CHECK: and <16 x i8>
   3110 // CHECK: and <16 x i8>
   3111 // CHECK: or <16 x i8>
   3112 // CHECK-LE: xor <16 x i8>
   3113 // CHECK-LE: and <16 x i8>
   3114 // CHECK-LE: and <16 x i8>
   3115 // CHECK-LE: or <16 x i8>
   3116 
   3117   res_vsc = vec_vsel(vsc, vsc, vbc);
   3118 // CHECK: xor <16 x i8>
   3119 // CHECK: and <16 x i8>
   3120 // CHECK: and <16 x i8>
   3121 // CHECK: or <16 x i8>
   3122 // CHECK-LE: xor <16 x i8>
   3123 // CHECK-LE: and <16 x i8>
   3124 // CHECK-LE: and <16 x i8>
   3125 // CHECK-LE: or <16 x i8>
   3126 
   3127   res_vuc = vec_vsel(vuc, vuc, vuc);
   3128 // CHECK: xor <16 x i8>
   3129 // CHECK: and <16 x i8>
   3130 // CHECK: and <16 x i8>
   3131 // CHECK: or <16 x i8>
   3132 // CHECK-LE: xor <16 x i8>
   3133 // CHECK-LE: and <16 x i8>
   3134 // CHECK-LE: and <16 x i8>
   3135 // CHECK-LE: or <16 x i8>
   3136 
   3137   res_vuc = vec_vsel(vuc, vuc, vbc);
   3138 // CHECK: xor <16 x i8>
   3139 // CHECK: and <16 x i8>
   3140 // CHECK: and <16 x i8>
   3141 // CHECK: or <16 x i8>
   3142 // CHECK-LE: xor <16 x i8>
   3143 // CHECK-LE: and <16 x i8>
   3144 // CHECK-LE: and <16 x i8>
   3145 // CHECK-LE: or <16 x i8>
   3146 
   3147   res_vbc = vec_vsel(vbc, vbc, vuc);
   3148 // CHECK: xor <16 x i8>
   3149 // CHECK: and <16 x i8>
   3150 // CHECK: and <16 x i8>
   3151 // CHECK: or <16 x i8>
   3152 // CHECK-LE: xor <16 x i8>
   3153 // CHECK-LE: and <16 x i8>
   3154 // CHECK-LE: and <16 x i8>
   3155 // CHECK-LE: or <16 x i8>
   3156 
   3157   res_vbc = vec_vsel(vbc, vbc, vbc);
   3158 // CHECK: xor <16 x i8>
   3159 // CHECK: and <16 x i8>
   3160 // CHECK: and <16 x i8>
   3161 // CHECK: or <16 x i8>
   3162 // CHECK-LE: xor <16 x i8>
   3163 // CHECK-LE: and <16 x i8>
   3164 // CHECK-LE: and <16 x i8>
   3165 // CHECK-LE: or <16 x i8>
   3166 
   3167   res_vs  = vec_vsel(vs, vs, vus);
   3168 // CHECK: xor <8 x i16>
   3169 // CHECK: and <8 x i16>
   3170 // CHECK: and <8 x i16>
   3171 // CHECK: or <8 x i16>
   3172 // CHECK-LE: xor <8 x i16>
   3173 // CHECK-LE: and <8 x i16>
   3174 // CHECK-LE: and <8 x i16>
   3175 // CHECK-LE: or <8 x i16>
   3176 
   3177   res_vs  = vec_vsel(vs, vs, vbs);
   3178 // CHECK: xor <8 x i16>
   3179 // CHECK: and <8 x i16>
   3180 // CHECK: and <8 x i16>
   3181 // CHECK: or <8 x i16>
   3182 // CHECK-LE: xor <8 x i16>
   3183 // CHECK-LE: and <8 x i16>
   3184 // CHECK-LE: and <8 x i16>
   3185 // CHECK-LE: or <8 x i16>
   3186 
   3187   res_vus = vec_vsel(vus, vus, vus);
   3188 // CHECK: xor <8 x i16>
   3189 // CHECK: and <8 x i16>
   3190 // CHECK: and <8 x i16>
   3191 // CHECK: or <8 x i16>
   3192 // CHECK-LE: xor <8 x i16>
   3193 // CHECK-LE: and <8 x i16>
   3194 // CHECK-LE: and <8 x i16>
   3195 // CHECK-LE: or <8 x i16>
   3196 
   3197   res_vus = vec_vsel(vus, vus, vbs);
   3198 // CHECK: xor <8 x i16>
   3199 // CHECK: and <8 x i16>
   3200 // CHECK: and <8 x i16>
   3201 // CHECK: or <8 x i16>
   3202 // CHECK-LE: xor <8 x i16>
   3203 // CHECK-LE: and <8 x i16>
   3204 // CHECK-LE: and <8 x i16>
   3205 // CHECK-LE: or <8 x i16>
   3206 
   3207   res_vbs = vec_vsel(vbs, vbs, vus);
   3208 // CHECK: xor <8 x i16>
   3209 // CHECK: and <8 x i16>
   3210 // CHECK: and <8 x i16>
   3211 // CHECK: or <8 x i16>
   3212 // CHECK-LE: xor <8 x i16>
   3213 // CHECK-LE: and <8 x i16>
   3214 // CHECK-LE: and <8 x i16>
   3215 // CHECK-LE: or <8 x i16>
   3216 
   3217   res_vbs = vec_vsel(vbs, vbs, vbs);
   3218 // CHECK: xor <8 x i16>
   3219 // CHECK: and <8 x i16>
   3220 // CHECK: and <8 x i16>
   3221 // CHECK: or <8 x i16>
   3222 // CHECK-LE: xor <8 x i16>
   3223 // CHECK-LE: and <8 x i16>
   3224 // CHECK-LE: and <8 x i16>
   3225 // CHECK-LE: or <8 x i16>
   3226 
   3227   res_vi  = vec_vsel(vi, vi, vui);
   3228 // CHECK: xor <4 x i32>
   3229 // CHECK: and <4 x i32>
   3230 // CHECK: and <4 x i32>
   3231 // CHECK: or <4 x i32>
   3232 // CHECK-LE: xor <4 x i32>
   3233 // CHECK-LE: and <4 x i32>
   3234 // CHECK-LE: and <4 x i32>
   3235 // CHECK-LE: or <4 x i32>
   3236 
   3237   res_vi  = vec_vsel(vi, vi, vbi);
   3238 // CHECK: xor <4 x i32>
   3239 // CHECK: and <4 x i32>
   3240 // CHECK: and <4 x i32>
   3241 // CHECK: or <4 x i32>
   3242 // CHECK-LE: xor <4 x i32>
   3243 // CHECK-LE: and <4 x i32>
   3244 // CHECK-LE: and <4 x i32>
   3245 // CHECK-LE: or <4 x i32>
   3246 
   3247   res_vui = vec_vsel(vui, vui, vui);
   3248 // CHECK: xor <4 x i32>
   3249 // CHECK: and <4 x i32>
   3250 // CHECK: and <4 x i32>
   3251 // CHECK: or <4 x i32>
   3252 // CHECK-LE: xor <4 x i32>
   3253 // CHECK-LE: and <4 x i32>
   3254 // CHECK-LE: and <4 x i32>
   3255 // CHECK-LE: or <4 x i32>
   3256 
   3257   res_vui = vec_vsel(vui, vui, vbi);
   3258 // CHECK: xor <4 x i32>
   3259 // CHECK: and <4 x i32>
   3260 // CHECK: and <4 x i32>
   3261 // CHECK: or <4 x i32>
   3262 // CHECK-LE: xor <4 x i32>
   3263 // CHECK-LE: and <4 x i32>
   3264 // CHECK-LE: and <4 x i32>
   3265 // CHECK-LE: or <4 x i32>
   3266 
   3267   res_vbi = vec_vsel(vbi, vbi, vui);
   3268 // CHECK: xor <4 x i32>
   3269 // CHECK: and <4 x i32>
   3270 // CHECK: and <4 x i32>
   3271 // CHECK: or <4 x i32>
   3272 // CHECK-LE: xor <4 x i32>
   3273 // CHECK-LE: and <4 x i32>
   3274 // CHECK-LE: and <4 x i32>
   3275 // CHECK-LE: or <4 x i32>
   3276 
   3277   res_vbi = vec_vsel(vbi, vbi, vbi);
   3278 // CHECK: xor <4 x i32>
   3279 // CHECK: and <4 x i32>
   3280 // CHECK: and <4 x i32>
   3281 // CHECK: or <4 x i32>
   3282 // CHECK-LE: xor <4 x i32>
   3283 // CHECK-LE: and <4 x i32>
   3284 // CHECK-LE: and <4 x i32>
   3285 // CHECK-LE: or <4 x i32>
   3286 
   3287   res_vf  = vec_vsel(vf, vf, vui);
   3288 // CHECK: xor <4 x i32>
   3289 // CHECK: and <4 x i32>
   3290 // CHECK: and <4 x i32>
   3291 // CHECK: or <4 x i32>
   3292 // CHECK-LE: xor <4 x i32>
   3293 // CHECK-LE: and <4 x i32>
   3294 // CHECK-LE: and <4 x i32>
   3295 // CHECK-LE: or <4 x i32>
   3296 
   3297   res_vf  = vec_vsel(vf, vf, vbi);
   3298 // CHECK: xor <4 x i32>
   3299 // CHECK: and <4 x i32>
   3300 // CHECK: and <4 x i32>
   3301 // CHECK: or <4 x i32>
   3302 // CHECK-LE: xor <4 x i32>
   3303 // CHECK-LE: and <4 x i32>
   3304 // CHECK-LE: and <4 x i32>
   3305 // CHECK-LE: or <4 x i32>
   3306 
   3307   /* vec_sl */
   3308   res_vsc = vec_sl(vsc, vuc);
   3309 // CHECK: shl <16 x i8>
   3310 // CHECK-LE: shl <16 x i8>
   3311 
   3312   res_vuc = vec_sl(vuc, vuc);
   3313 // CHECK: shl <16 x i8>
   3314 // CHECK-LE: shl <16 x i8>
   3315 
   3316   res_vs  = vec_sl(vs, vus);
   3317 // CHECK: shl <8 x i16>
   3318 // CHECK-LE: shl <8 x i16>
   3319 
   3320   res_vus = vec_sl(vus, vus);
   3321 // CHECK: shl <8 x i16>
   3322 // CHECK-LE: shl <8 x i16>
   3323 
   3324   res_vi  = vec_sl(vi, vui);
   3325 // CHECK: shl <4 x i32>
   3326 // CHECK-LE: shl <4 x i32>
   3327 
   3328   res_vui = vec_sl(vui, vui);
   3329 // CHECK: shl <4 x i32>
   3330 // CHECK-LE: shl <4 x i32>
   3331 
   3332   res_vsc = vec_vslb(vsc, vuc);
   3333 // CHECK: shl <16 x i8>
   3334 // CHECK-LE: shl <16 x i8>
   3335 
   3336   res_vuc = vec_vslb(vuc, vuc);
   3337 // CHECK: shl <16 x i8>
   3338 // CHECK-LE: shl <16 x i8>
   3339 
   3340   res_vs  = vec_vslh(vs, vus);
   3341 // CHECK: shl <8 x i16>
   3342 // CHECK-LE: shl <8 x i16>
   3343 
   3344   res_vus = vec_vslh(vus, vus);
   3345 // CHECK: shl <8 x i16>
   3346 // CHECK-LE: shl <8 x i16>
   3347 
   3348   res_vi  = vec_vslw(vi, vui);
   3349 // CHECK: shl <4 x i32>
   3350 // CHECK-LE: shl <4 x i32>
   3351 
   3352   res_vui = vec_vslw(vui, vui);
   3353 // CHECK: shl <4 x i32>
   3354 // CHECK-LE: shl <4 x i32>
   3355 
   3356   /* vec_sld */
   3357   res_vsc = vec_sld(vsc, vsc, 0);
   3358 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3359 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3360 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3361 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3362 // CHECK: @llvm.ppc.altivec.vperm
   3363 // CHECK-LE: sub nsw i32 16
   3364 // CHECK-LE: sub nsw i32 17
   3365 // CHECK-LE: sub nsw i32 18
   3366 // CHECK-LE: sub nsw i32 31
   3367 // CHECK-LE: @llvm.ppc.altivec.vperm
   3368 
   3369   res_vuc = vec_sld(vuc, vuc, 0);
   3370 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3371 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3372 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3373 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3374 // CHECK: @llvm.ppc.altivec.vperm
   3375 // CHECK-LE: sub nsw i32 16
   3376 // CHECK-LE: sub nsw i32 17
   3377 // CHECK-LE: sub nsw i32 18
   3378 // CHECK-LE: sub nsw i32 31
   3379 // CHECK-LE: @llvm.ppc.altivec.vperm
   3380 
   3381   res_vs  = vec_sld(vs, vs, 0);
   3382 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3383 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3384 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3385 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3386 // CHECK: @llvm.ppc.altivec.vperm
   3387 // CHECK-LE: sub nsw i32 16
   3388 // CHECK-LE: sub nsw i32 17
   3389 // CHECK-LE: sub nsw i32 18
   3390 // CHECK-LE: sub nsw i32 31
   3391 // CHECK-LE: @llvm.ppc.altivec.vperm
   3392 
   3393   res_vus = vec_sld(vus, vus, 0);
   3394 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3395 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3396 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3397 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3398 // CHECK: @llvm.ppc.altivec.vperm
   3399 // CHECK-LE: sub nsw i32 16
   3400 // CHECK-LE: sub nsw i32 17
   3401 // CHECK-LE: sub nsw i32 18
   3402 // CHECK-LE: sub nsw i32 31
   3403 // CHECK-LE: @llvm.ppc.altivec.vperm
   3404 
   3405   res_vbs = vec_sld(vbs, vbs, 0);
   3406 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3407 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3408 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3409 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3410 // CHECK: [[T1:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32>
   3411 // CHECK: [[T2:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32>
   3412 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> [[T1]], <4 x i32> [[T2]], <16 x i8>
   3413 // CHECK-LE: sub nsw i32 16
   3414 // CHECK-LE: sub nsw i32 17
   3415 // CHECK-LE: sub nsw i32 18
   3416 // CHECK-LE: sub nsw i32 31
   3417 // CHECK-LE: xor <16 x i8>
   3418 // CHECK-LE: [[T1:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32>
   3419 // CHECK-LE: [[T2:%.+]] = bitcast <8 x i16> {{.+}} to <4 x i32>
   3420 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> [[T1]], <4 x i32> [[T2]], <16 x i8>
   3421 
   3422   res_vp  = vec_sld(vp, vp, 0);
   3423 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3424 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3425 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3426 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3427 // CHECK: @llvm.ppc.altivec.vperm
   3428 // CHECK-LE: sub nsw i32 16
   3429 // CHECK-LE: sub nsw i32 17
   3430 // CHECK-LE: sub nsw i32 18
   3431 // CHECK-LE: sub nsw i32 31
   3432 // CHECK-LE: @llvm.ppc.altivec.vperm
   3433 
   3434   res_vi  = vec_sld(vi, vi, 0);
   3435 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3436 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3437 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3438 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3439 // CHECK: @llvm.ppc.altivec.vperm
   3440 // CHECK-LE: sub nsw i32 16
   3441 // CHECK-LE: sub nsw i32 17
   3442 // CHECK-LE: sub nsw i32 18
   3443 // CHECK-LE: sub nsw i32 31
   3444 // CHECK-LE: @llvm.ppc.altivec.vperm
   3445 
   3446   res_vui = vec_sld(vui, vui, 0);
   3447 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3448 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3449 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3450 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3451 // CHECK: @llvm.ppc.altivec.vperm
   3452 // CHECK-LE: sub nsw i32 16
   3453 // CHECK-LE: sub nsw i32 17
   3454 // CHECK-LE: sub nsw i32 18
   3455 // CHECK-LE: sub nsw i32 31
   3456 // CHECK-LE: @llvm.ppc.altivec.vperm
   3457 
   3458   res_vbi = vec_sld(vbi, vbi, 0);
   3459 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3460 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3461 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3462 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3463 // CHECK: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{.+}}, <4 x i32> {{.+}}, <16 x i8>
   3464 // CHECK-LE: sub nsw i32 16
   3465 // CHECK-LE: sub nsw i32 17
   3466 // CHECK-LE: sub nsw i32 18
   3467 // CHECK-LE: sub nsw i32 31
   3468 // CHECK-LE: xor <16 x i8>
   3469 // CHECK-LE: call <4 x i32> @llvm.ppc.altivec.vperm(<4 x i32> {{.+}}, <4 x i32> {{.+}}, <16 x i8>
   3470 
   3471   res_vf  = vec_sld(vf, vf, 0);
   3472 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3473 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3474 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3475 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3476 // CHECK: @llvm.ppc.altivec.vperm
   3477 // CHECK-LE: sub nsw i32 16
   3478 // CHECK-LE: sub nsw i32 17
   3479 // CHECK-LE: sub nsw i32 18
   3480 // CHECK-LE: sub nsw i32 31
   3481 // CHECK-LE: @llvm.ppc.altivec.vperm
   3482 
   3483   res_vsc = vec_vsldoi(vsc, vsc, 0);
   3484 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3485 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3486 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3487 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3488 // CHECK: @llvm.ppc.altivec.vperm
   3489 // CHECK-LE: sub nsw i32 16
   3490 // CHECK-LE: sub nsw i32 17
   3491 // CHECK-LE: sub nsw i32 18
   3492 // CHECK-LE: sub nsw i32 31
   3493 // CHECK-LE: @llvm.ppc.altivec.vperm
   3494 
   3495   res_vuc = vec_vsldoi(vuc, vuc, 0);
   3496 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3497 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3498 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3499 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3500 // CHECK: @llvm.ppc.altivec.vperm
   3501 // CHECK-LE: sub nsw i32 16
   3502 // CHECK-LE: sub nsw i32 17
   3503 // CHECK-LE: sub nsw i32 18
   3504 // CHECK-LE: sub nsw i32 31
   3505 // CHECK-LE: @llvm.ppc.altivec.vperm
   3506 
   3507   res_vs  = vec_vsldoi(vs, vs, 0);
   3508 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3509 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3510 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3511 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3512 // CHECK: @llvm.ppc.altivec.vperm
   3513 // CHECK-LE: sub nsw i32 16
   3514 // CHECK-LE: sub nsw i32 17
   3515 // CHECK-LE: sub nsw i32 18
   3516 // CHECK-LE: sub nsw i32 31
   3517 // CHECK-LE: @llvm.ppc.altivec.vperm
   3518 
   3519   res_vus = vec_vsldoi(vus, vus, 0);
   3520 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3521 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3522 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3523 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3524 // CHECK: @llvm.ppc.altivec.vperm
   3525 // CHECK-LE: sub nsw i32 16
   3526 // CHECK-LE: sub nsw i32 17
   3527 // CHECK-LE: sub nsw i32 18
   3528 // CHECK-LE: sub nsw i32 31
   3529 // CHECK-LE: @llvm.ppc.altivec.vperm
   3530 
   3531   res_vp  = vec_vsldoi(vp, vp, 0);
   3532 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3533 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3534 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3535 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3536 // CHECK: @llvm.ppc.altivec.vperm
   3537 // CHECK-LE: sub nsw i32 16
   3538 // CHECK-LE: sub nsw i32 17
   3539 // CHECK-LE: sub nsw i32 18
   3540 // CHECK-LE: sub nsw i32 31
   3541 // CHECK-LE: @llvm.ppc.altivec.vperm
   3542 
   3543   res_vi  = vec_vsldoi(vi, vi, 0);
   3544 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3545 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3546 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3547 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3548 // CHECK: @llvm.ppc.altivec.vperm
   3549 // CHECK-LE: sub nsw i32 16
   3550 // CHECK-LE: sub nsw i32 17
   3551 // CHECK-LE: sub nsw i32 18
   3552 // CHECK-LE: sub nsw i32 31
   3553 // CHECK-LE: @llvm.ppc.altivec.vperm
   3554 
   3555   res_vui = vec_vsldoi(vui, vui, 0);
   3556 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3557 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3558 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3559 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3560 // CHECK: @llvm.ppc.altivec.vperm
   3561 // CHECK-LE: sub nsw i32 16
   3562 // CHECK-LE: sub nsw i32 17
   3563 // CHECK-LE: sub nsw i32 18
   3564 // CHECK-LE: sub nsw i32 31
   3565 // CHECK-LE: @llvm.ppc.altivec.vperm
   3566 
   3567   res_vf  = vec_vsldoi(vf, vf, 0);
   3568 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 1
   3569 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 2
   3570 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 3
   3571 // CHECK: add nsw i32 {{[0-9a-zA-Z%.]+}}, 15
   3572 // CHECK: @llvm.ppc.altivec.vperm
   3573 // CHECK-LE: sub nsw i32 16
   3574 // CHECK-LE: sub nsw i32 17
   3575 // CHECK-LE: sub nsw i32 18
   3576 // CHECK-LE: sub nsw i32 31
   3577 // CHECK-LE: @llvm.ppc.altivec.vperm
   3578 
   3579   /* vec_sll */
   3580   res_vsc = vec_sll(vsc, vuc);
   3581 // CHECK: @llvm.ppc.altivec.vsl
   3582 // CHECK-LE: @llvm.ppc.altivec.vsl
   3583 
   3584   res_vsc = vec_sll(vsc, vus);
   3585 // CHECK: @llvm.ppc.altivec.vsl
   3586 // CHECK-LE: @llvm.ppc.altivec.vsl
   3587 
   3588   res_vsc = vec_sll(vsc, vui);
   3589 // CHECK: @llvm.ppc.altivec.vsl
   3590 // CHECK-LE: @llvm.ppc.altivec.vsl
   3591 
   3592   res_vuc = vec_sll(vuc, vuc);
   3593 // CHECK: @llvm.ppc.altivec.vsl
   3594 // CHECK-LE: @llvm.ppc.altivec.vsl
   3595 
   3596   res_vuc = vec_sll(vuc, vus);
   3597 // CHECK: @llvm.ppc.altivec.vsl
   3598 // CHECK-LE: @llvm.ppc.altivec.vsl
   3599 
   3600   res_vuc = vec_sll(vuc, vui);
   3601 // CHECK: @llvm.ppc.altivec.vsl
   3602 // CHECK-LE: @llvm.ppc.altivec.vsl
   3603 
   3604   res_vbc = vec_sll(vbc, vuc);
   3605 // CHECK: @llvm.ppc.altivec.vsl
   3606 // CHECK-LE: @llvm.ppc.altivec.vsl
   3607 
   3608   res_vbc = vec_sll(vbc, vus);
   3609 // CHECK: @llvm.ppc.altivec.vsl
   3610 // CHECK-LE: @llvm.ppc.altivec.vsl
   3611 
   3612   res_vbc = vec_sll(vbc, vui);
   3613 // CHECK: @llvm.ppc.altivec.vsl
   3614 // CHECK-LE: @llvm.ppc.altivec.vsl
   3615 
   3616   res_vs  = vec_sll(vs, vuc);
   3617 // CHECK: @llvm.ppc.altivec.vsl
   3618 // CHECK-LE: @llvm.ppc.altivec.vsl
   3619 
   3620   res_vs  = vec_sll(vs, vus);
   3621 // CHECK: @llvm.ppc.altivec.vsl
   3622 // CHECK-LE: @llvm.ppc.altivec.vsl
   3623 
   3624   res_vs  = vec_sll(vs, vui);
   3625 // CHECK: @llvm.ppc.altivec.vsl
   3626 // CHECK-LE: @llvm.ppc.altivec.vsl
   3627 
   3628   res_vus = vec_sll(vus, vuc);
   3629 // CHECK: @llvm.ppc.altivec.vsl
   3630 // CHECK-LE: @llvm.ppc.altivec.vsl
   3631 
   3632   res_vus = vec_sll(vus, vus);
   3633 // CHECK: @llvm.ppc.altivec.vsl
   3634 // CHECK-LE: @llvm.ppc.altivec.vsl
   3635 
   3636   res_vus = vec_sll(vus, vui);
   3637 // CHECK: @llvm.ppc.altivec.vsl
   3638 // CHECK-LE: @llvm.ppc.altivec.vsl
   3639 
   3640   res_vbs = vec_sll(vbs, vuc);
   3641 // CHECK: @llvm.ppc.altivec.vsl
   3642 // CHECK-LE: @llvm.ppc.altivec.vsl
   3643 
   3644   res_vbs = vec_sll(vbs, vus);
   3645 // CHECK: @llvm.ppc.altivec.vsl
   3646 // CHECK-LE: @llvm.ppc.altivec.vsl
   3647 
   3648   res_vbs = vec_sll(vbs, vui);
   3649 // CHECK: @llvm.ppc.altivec.vsl
   3650 // CHECK-LE: @llvm.ppc.altivec.vsl
   3651 
   3652   res_vp  = vec_sll(vp, vuc);
   3653 // CHECK: @llvm.ppc.altivec.vsl
   3654 // CHECK-LE: @llvm.ppc.altivec.vsl
   3655 
   3656   res_vp  = vec_sll(vp, vus);
   3657 // CHECK: @llvm.ppc.altivec.vsl
   3658 // CHECK-LE: @llvm.ppc.altivec.vsl
   3659 
   3660   res_vp  = vec_sll(vp, vui);
   3661 // CHECK: @llvm.ppc.altivec.vsl
   3662 // CHECK-LE: @llvm.ppc.altivec.vsl
   3663 
   3664   res_vi  = vec_sll(vi, vuc);
   3665 // CHECK: @llvm.ppc.altivec.vsl
   3666 // CHECK-LE: @llvm.ppc.altivec.vsl
   3667 
   3668   res_vi  = vec_sll(vi, vus);
   3669 // CHECK: @llvm.ppc.altivec.vsl
   3670 // CHECK-LE: @llvm.ppc.altivec.vsl
   3671 
   3672   res_vi  = vec_sll(vi, vui);
   3673 // CHECK: @llvm.ppc.altivec.vsl
   3674 // CHECK-LE: @llvm.ppc.altivec.vsl
   3675 
   3676   res_vui = vec_sll(vui, vuc);
   3677 // CHECK: @llvm.ppc.altivec.vsl
   3678 // CHECK-LE: @llvm.ppc.altivec.vsl
   3679 
   3680   res_vui = vec_sll(vui, vus);
   3681 // CHECK: @llvm.ppc.altivec.vsl
   3682 // CHECK-LE: @llvm.ppc.altivec.vsl
   3683 
   3684   res_vui = vec_sll(vui, vui);
   3685 // CHECK: @llvm.ppc.altivec.vsl
   3686 // CHECK-LE: @llvm.ppc.altivec.vsl
   3687 
   3688   res_vbi = vec_sll(vbi, vuc);
   3689 // CHECK: @llvm.ppc.altivec.vsl
   3690 // CHECK-LE: @llvm.ppc.altivec.vsl
   3691 
   3692   res_vbi = vec_sll(vbi, vus);
   3693 // CHECK: @llvm.ppc.altivec.vsl
   3694 // CHECK-LE: @llvm.ppc.altivec.vsl
   3695 
   3696   res_vbi = vec_sll(vbi, vui);
   3697 // CHECK: @llvm.ppc.altivec.vsl
   3698 // CHECK-LE: @llvm.ppc.altivec.vsl
   3699 
   3700   res_vsc = vec_vsl(vsc, vuc);
   3701 // CHECK: @llvm.ppc.altivec.vsl
   3702 // CHECK-LE: @llvm.ppc.altivec.vsl
   3703 
   3704   res_vsc = vec_vsl(vsc, vus);
   3705 // CHECK: @llvm.ppc.altivec.vsl
   3706 // CHECK-LE: @llvm.ppc.altivec.vsl
   3707 
   3708   res_vsc = vec_vsl(vsc, vui);
   3709 // CHECK: @llvm.ppc.altivec.vsl
   3710 // CHECK-LE: @llvm.ppc.altivec.vsl
   3711 
   3712   res_vuc = vec_vsl(vuc, vuc);
   3713 // CHECK: @llvm.ppc.altivec.vsl
   3714 // CHECK-LE: @llvm.ppc.altivec.vsl
   3715 
   3716   res_vuc = vec_vsl(vuc, vus);
   3717 // CHECK: @llvm.ppc.altivec.vsl
   3718 // CHECK-LE: @llvm.ppc.altivec.vsl
   3719 
   3720   res_vuc = vec_vsl(vuc, vui);
   3721 // CHECK: @llvm.ppc.altivec.vsl
   3722 // CHECK-LE: @llvm.ppc.altivec.vsl
   3723 
   3724   res_vbc = vec_vsl(vbc, vuc);
   3725 // CHECK: @llvm.ppc.altivec.vsl
   3726 // CHECK-LE: @llvm.ppc.altivec.vsl
   3727 
   3728   res_vbc = vec_vsl(vbc, vus);
   3729 // CHECK: @llvm.ppc.altivec.vsl
   3730 // CHECK-LE: @llvm.ppc.altivec.vsl
   3731 
   3732   res_vbc = vec_vsl(vbc, vui);
   3733 // CHECK: @llvm.ppc.altivec.vsl
   3734 // CHECK-LE: @llvm.ppc.altivec.vsl
   3735 
   3736   res_vs  = vec_vsl(vs, vuc);
   3737 // CHECK: @llvm.ppc.altivec.vsl
   3738 // CHECK-LE: @llvm.ppc.altivec.vsl
   3739 
   3740   res_vs  = vec_vsl(vs, vus);
   3741 // CHECK: @llvm.ppc.altivec.vsl
   3742 // CHECK-LE: @llvm.ppc.altivec.vsl
   3743 
   3744   res_vs  = vec_vsl(vs, vui);
   3745 // CHECK: @llvm.ppc.altivec.vsl
   3746 // CHECK-LE: @llvm.ppc.altivec.vsl
   3747 
   3748   res_vus = vec_vsl(vus, vuc);
   3749 // CHECK: @llvm.ppc.altivec.vsl
   3750 // CHECK-LE: @llvm.ppc.altivec.vsl
   3751 
   3752   res_vus = vec_vsl(vus, vus);
   3753 // CHECK: @llvm.ppc.altivec.vsl
   3754 // CHECK-LE: @llvm.ppc.altivec.vsl
   3755 
   3756   res_vus = vec_vsl(vus, vui);
   3757 // CHECK: @llvm.ppc.altivec.vsl
   3758 // CHECK-LE: @llvm.ppc.altivec.vsl
   3759 
   3760   res_vbs = vec_vsl(vbs, vuc);
   3761 // CHECK: @llvm.ppc.altivec.vsl
   3762 // CHECK-LE: @llvm.ppc.altivec.vsl
   3763 
   3764   res_vbs = vec_vsl(vbs, vus);
   3765 // CHECK: @llvm.ppc.altivec.vsl
   3766 // CHECK-LE: @llvm.ppc.altivec.vsl
   3767 
   3768   res_vbs = vec_vsl(vbs, vui);
   3769 // CHECK: @llvm.ppc.altivec.vsl
   3770 // CHECK-LE: @llvm.ppc.altivec.vsl
   3771 
   3772   res_vp  = vec_vsl(vp, vuc);
   3773 // CHECK: @llvm.ppc.altivec.vsl
   3774 // CHECK-LE: @llvm.ppc.altivec.vsl
   3775 
   3776   res_vp  = vec_vsl(vp, vus);
   3777 // CHECK: @llvm.ppc.altivec.vsl
   3778 // CHECK-LE: @llvm.ppc.altivec.vsl
   3779 
   3780   res_vp  = vec_vsl(vp, vui);
   3781 // CHECK: @llvm.ppc.altivec.vsl
   3782 // CHECK-LE: @llvm.ppc.altivec.vsl
   3783 
   3784   res_vi  = vec_vsl(vi, vuc);
   3785 // CHECK: @llvm.ppc.altivec.vsl
   3786 // CHECK-LE: @llvm.ppc.altivec.vsl
   3787 
   3788   res_vi  = vec_vsl(vi, vus);
   3789 // CHECK: @llvm.ppc.altivec.vsl
   3790 // CHECK-LE: @llvm.ppc.altivec.vsl
   3791 
   3792   res_vi  = vec_vsl(vi, vui);
   3793 // CHECK: @llvm.ppc.altivec.vsl
   3794 // CHECK-LE: @llvm.ppc.altivec.vsl
   3795 
   3796   res_vui = vec_vsl(vui, vuc);
   3797 // CHECK: @llvm.ppc.altivec.vsl
   3798 // CHECK-LE: @llvm.ppc.altivec.vsl
   3799 
   3800   res_vui = vec_vsl(vui, vus);
   3801 // CHECK: @llvm.ppc.altivec.vsl
   3802 // CHECK-LE: @llvm.ppc.altivec.vsl
   3803 
   3804   res_vui = vec_vsl(vui, vui);
   3805 // CHECK: @llvm.ppc.altivec.vsl
   3806 // CHECK-LE: @llvm.ppc.altivec.vsl
   3807 
   3808   res_vbi = vec_vsl(vbi, vuc);
   3809 // CHECK: @llvm.ppc.altivec.vsl
   3810 // CHECK-LE: @llvm.ppc.altivec.vsl
   3811 
   3812   res_vbi = vec_vsl(vbi, vus);
   3813 // CHECK: @llvm.ppc.altivec.vsl
   3814 // CHECK-LE: @llvm.ppc.altivec.vsl
   3815 
   3816   res_vbi = vec_vsl(vbi, vui);
   3817 // CHECK: @llvm.ppc.altivec.vsl
   3818 // CHECK-LE: @llvm.ppc.altivec.vsl
   3819 
   3820   /* vec_slo */
   3821   res_vsc = vec_slo(vsc, vsc);
   3822 // CHECK: @llvm.ppc.altivec.vslo
   3823 // CHECK-LE: @llvm.ppc.altivec.vslo
   3824 
   3825   res_vsc = vec_slo(vsc, vuc);
   3826 // CHECK: @llvm.ppc.altivec.vslo
   3827 // CHECK-LE: @llvm.ppc.altivec.vslo
   3828 
   3829   res_vuc = vec_slo(vuc, vsc);
   3830 // CHECK: @llvm.ppc.altivec.vslo
   3831 // CHECK-LE: @llvm.ppc.altivec.vslo
   3832 
   3833   res_vuc = vec_slo(vuc, vuc);
   3834 // CHECK: @llvm.ppc.altivec.vslo
   3835 // CHECK-LE: @llvm.ppc.altivec.vslo
   3836 
   3837   res_vs  = vec_slo(vs, vsc);
   3838 // CHECK: @llvm.ppc.altivec.vslo
   3839 // CHECK-LE: @llvm.ppc.altivec.vslo
   3840 
   3841   res_vs  = vec_slo(vs, vuc);
   3842 // CHECK: @llvm.ppc.altivec.vslo
   3843 // CHECK-LE: @llvm.ppc.altivec.vslo
   3844 
   3845   res_vus = vec_slo(vus, vsc);
   3846 // CHECK: @llvm.ppc.altivec.vslo
   3847 // CHECK-LE: @llvm.ppc.altivec.vslo
   3848 
   3849   res_vus = vec_slo(vus, vuc);
   3850 // CHECK: @llvm.ppc.altivec.vslo
   3851 // CHECK-LE: @llvm.ppc.altivec.vslo
   3852 
   3853   res_vp  = vec_slo(vp, vsc);
   3854 // CHECK: @llvm.ppc.altivec.vslo
   3855 // CHECK-LE: @llvm.ppc.altivec.vslo
   3856 
   3857   res_vp  = vec_slo(vp, vuc);
   3858 // CHECK: @llvm.ppc.altivec.vslo
   3859 // CHECK-LE: @llvm.ppc.altivec.vslo
   3860 
   3861   res_vi  = vec_slo(vi, vsc);
   3862 // CHECK: @llvm.ppc.altivec.vslo
   3863 // CHECK-LE: @llvm.ppc.altivec.vslo
   3864 
   3865   res_vi  = vec_slo(vi, vuc);
   3866 // CHECK: @llvm.ppc.altivec.vslo
   3867 // CHECK-LE: @llvm.ppc.altivec.vslo
   3868 
   3869   res_vui = vec_slo(vui, vsc);
   3870 // CHECK: @llvm.ppc.altivec.vslo
   3871 // CHECK-LE: @llvm.ppc.altivec.vslo
   3872 
   3873   res_vui = vec_slo(vui, vuc);
   3874 // CHECK: @llvm.ppc.altivec.vslo
   3875 // CHECK-LE: @llvm.ppc.altivec.vslo
   3876 
   3877   res_vf  = vec_slo(vf, vsc);
   3878 // CHECK: @llvm.ppc.altivec.vslo
   3879 // CHECK-LE: @llvm.ppc.altivec.vslo
   3880 
   3881   res_vf  = vec_slo(vf, vuc);
   3882 // CHECK: @llvm.ppc.altivec.vslo
   3883 // CHECK-LE: @llvm.ppc.altivec.vslo
   3884 
   3885   res_vsc = vec_vslo(vsc, vsc);
   3886 // CHECK: @llvm.ppc.altivec.vslo
   3887 // CHECK-LE: @llvm.ppc.altivec.vslo
   3888 
   3889   res_vsc = vec_vslo(vsc, vuc);
   3890 // CHECK: @llvm.ppc.altivec.vslo
   3891 // CHECK-LE: @llvm.ppc.altivec.vslo
   3892 
   3893   res_vuc = vec_vslo(vuc, vsc);
   3894 // CHECK: @llvm.ppc.altivec.vslo
   3895 // CHECK-LE: @llvm.ppc.altivec.vslo
   3896 
   3897   res_vuc = vec_vslo(vuc, vuc);
   3898 // CHECK: @llvm.ppc.altivec.vslo
   3899 // CHECK-LE: @llvm.ppc.altivec.vslo
   3900 
   3901   res_vs  = vec_vslo(vs, vsc);
   3902 // CHECK: @llvm.ppc.altivec.vslo
   3903 // CHECK-LE: @llvm.ppc.altivec.vslo
   3904 
   3905   res_vs  = vec_vslo(vs, vuc);
   3906 // CHECK: @llvm.ppc.altivec.vslo
   3907 // CHECK-LE: @llvm.ppc.altivec.vslo
   3908 
   3909   res_vus = vec_vslo(vus, vsc);
   3910 // CHECK: @llvm.ppc.altivec.vslo
   3911 // CHECK-LE: @llvm.ppc.altivec.vslo
   3912 
   3913   res_vus = vec_vslo(vus, vuc);
   3914 // CHECK: @llvm.ppc.altivec.vslo
   3915 // CHECK-LE: @llvm.ppc.altivec.vslo
   3916 
   3917   res_vp  = vec_vslo(vp, vsc);
   3918 // CHECK: @llvm.ppc.altivec.vslo
   3919 // CHECK-LE: @llvm.ppc.altivec.vslo
   3920 
   3921   res_vp  = vec_vslo(vp, vuc);
   3922 // CHECK: @llvm.ppc.altivec.vslo
   3923 // CHECK-LE: @llvm.ppc.altivec.vslo
   3924 
   3925   res_vi  = vec_vslo(vi, vsc);
   3926 // CHECK: @llvm.ppc.altivec.vslo
   3927 // CHECK-LE: @llvm.ppc.altivec.vslo
   3928 
   3929   res_vi  = vec_vslo(vi, vuc);
   3930 // CHECK: @llvm.ppc.altivec.vslo
   3931 // CHECK-LE: @llvm.ppc.altivec.vslo
   3932 
   3933   res_vui = vec_vslo(vui, vsc);
   3934 // CHECK: @llvm.ppc.altivec.vslo
   3935 // CHECK-LE: @llvm.ppc.altivec.vslo
   3936 
   3937   res_vui = vec_vslo(vui, vuc);
   3938 // CHECK: @llvm.ppc.altivec.vslo
   3939 // CHECK-LE: @llvm.ppc.altivec.vslo
   3940 
   3941   res_vf  = vec_vslo(vf, vsc);
   3942 // CHECK: @llvm.ppc.altivec.vslo
   3943 // CHECK-LE: @llvm.ppc.altivec.vslo
   3944 
   3945   res_vf  = vec_vslo(vf, vuc);
   3946 // CHECK: @llvm.ppc.altivec.vslo
   3947 // CHECK-LE: @llvm.ppc.altivec.vslo
   3948 
   3949   /* vec_splat */
   3950   res_vsc = vec_splat(vsc, 0);
   3951 // CHECK: @llvm.ppc.altivec.vperm
   3952 // CHECK-LE: @llvm.ppc.altivec.vperm
   3953 
   3954   res_vuc = vec_splat(vuc, 0);
   3955 // CHECK: @llvm.ppc.altivec.vperm
   3956 // CHECK-LE: @llvm.ppc.altivec.vperm
   3957 
   3958   res_vbc = vec_splat(vbc, 0);
   3959 // CHECK: @llvm.ppc.altivec.vperm
   3960 // CHECK-LE: @llvm.ppc.altivec.vperm
   3961 
   3962   res_vs  = vec_splat(vs, 0);
   3963 // CHECK: @llvm.ppc.altivec.vperm
   3964 // CHECK-LE: @llvm.ppc.altivec.vperm
   3965 
   3966   res_vus = vec_splat(vus, 0);
   3967 // CHECK: @llvm.ppc.altivec.vperm
   3968 // CHECK-LE: @llvm.ppc.altivec.vperm
   3969 
   3970   res_vbs = vec_splat(vbs, 0);
   3971 // CHECK: @llvm.ppc.altivec.vperm
   3972 // CHECK-LE: @llvm.ppc.altivec.vperm
   3973 
   3974   res_vp  = vec_splat(vp, 0);
   3975 // CHECK: @llvm.ppc.altivec.vperm
   3976 // CHECK-LE: @llvm.ppc.altivec.vperm
   3977 
   3978   res_vi  = vec_splat(vi, 0);
   3979 // CHECK: @llvm.ppc.altivec.vperm
   3980 // CHECK-LE: @llvm.ppc.altivec.vperm
   3981 
   3982   res_vui = vec_splat(vui, 0);
   3983 // CHECK: @llvm.ppc.altivec.vperm
   3984 // CHECK-LE: @llvm.ppc.altivec.vperm
   3985 
   3986   res_vbi = vec_splat(vbi, 0);
   3987 // CHECK: @llvm.ppc.altivec.vperm
   3988 // CHECK-LE: @llvm.ppc.altivec.vperm
   3989 
   3990   res_vf  = vec_splat(vf, 0);
   3991 // CHECK: @llvm.ppc.altivec.vperm
   3992 // CHECK-LE: @llvm.ppc.altivec.vperm
   3993 
   3994   res_vsc = vec_vspltb(vsc, 0);
   3995 // CHECK: @llvm.ppc.altivec.vperm
   3996 // CHECK-LE: @llvm.ppc.altivec.vperm
   3997 
   3998   res_vuc = vec_vspltb(vuc, 0);
   3999 // CHECK: @llvm.ppc.altivec.vperm
   4000 // CHECK-LE: @llvm.ppc.altivec.vperm
   4001 
   4002   res_vbc = vec_vspltb(vbc, 0);
   4003 // CHECK: @llvm.ppc.altivec.vperm
   4004 // CHECK-LE: @llvm.ppc.altivec.vperm
   4005 
   4006   res_vs  = vec_vsplth(vs, 0);
   4007 // CHECK: @llvm.ppc.altivec.vperm
   4008 // CHECK-LE: @llvm.ppc.altivec.vperm
   4009 
   4010   res_vus = vec_vsplth(vus, 0);
   4011 // CHECK: @llvm.ppc.altivec.vperm
   4012 // CHECK-LE: @llvm.ppc.altivec.vperm
   4013 
   4014   res_vbs = vec_vsplth(vbs, 0);
   4015 // CHECK: @llvm.ppc.altivec.vperm
   4016 // CHECK-LE: @llvm.ppc.altivec.vperm
   4017 
   4018   res_vp  = vec_vsplth(vp, 0);
   4019 // CHECK: @llvm.ppc.altivec.vperm
   4020 // CHECK-LE: @llvm.ppc.altivec.vperm
   4021 
   4022   res_vi  = vec_vspltw(vi, 0);
   4023 // CHECK: @llvm.ppc.altivec.vperm
   4024 // CHECK-LE: @llvm.ppc.altivec.vperm
   4025 
   4026   res_vui = vec_vspltw(vui, 0);
   4027 // CHECK: @llvm.ppc.altivec.vperm
   4028 // CHECK-LE: @llvm.ppc.altivec.vperm
   4029 
   4030   res_vbi = vec_vspltw(vbi, 0);
   4031 // CHECK: @llvm.ppc.altivec.vperm
   4032 // CHECK-LE: @llvm.ppc.altivec.vperm
   4033 
   4034   res_vf  = vec_vspltw(vf, 0);
   4035 // CHECK: @llvm.ppc.altivec.vperm
   4036 // CHECK-LE: @llvm.ppc.altivec.vperm
   4037 
   4038   /* vec_splat_s8 */
   4039   res_vsc = vec_splat_s8(0x09);                 // TODO: add check
   4040   res_vsc = vec_vspltisb(0x09);                 // TODO: add check
   4041 
   4042   /* vec_splat_s16 */
   4043   res_vs = vec_splat_s16(0x09);                 // TODO: add check
   4044   res_vs = vec_vspltish(0x09);                  // TODO: add check
   4045 
   4046   /* vec_splat_s32 */
   4047   res_vi = vec_splat_s32(0x09);                 // TODO: add check
   4048   res_vi = vec_vspltisw(0x09);                  // TODO: add check
   4049 
   4050   /* vec_splat_u8 */
   4051   res_vuc = vec_splat_u8(0x09);                 // TODO: add check
   4052 
   4053   /* vec_splat_u16 */
   4054   res_vus = vec_splat_u16(0x09);                // TODO: add check
   4055 
   4056   /* vec_splat_u32 */
   4057   res_vui = vec_splat_u32(0x09);                // TODO: add check
   4058 
   4059   /* vec_sr */
   4060   res_vsc = vec_sr(vsc, vuc);
   4061 // CHECK: lshr <16 x i8>
   4062 // CHECK-LE: lshr <16 x i8>
   4063 
   4064   res_vuc = vec_sr(vuc, vuc);
   4065 // CHECK: lshr <16 x i8>
   4066 // CHECK-LE: lshr <16 x i8>
   4067 
   4068   res_vs  = vec_sr(vs, vus);
   4069 // CHECK: lshr <8 x i16>
   4070 // CHECK-LE: lshr <8 x i16>
   4071 
   4072   res_vus = vec_sr(vus, vus);
   4073 // CHECK: lshr <8 x i16>
   4074 // CHECK-LE: lshr <8 x i16>
   4075 
   4076   res_vi  = vec_sr(vi, vui);
   4077 // CHECK: lshr <4 x i32>
   4078 // CHECK-LE: lshr <4 x i32>
   4079 
   4080   res_vui = vec_sr(vui, vui);
   4081 // CHECK: lshr <4 x i32>
   4082 // CHECK-LE: lshr <4 x i32>
   4083 
   4084   res_vsc = vec_vsrb(vsc, vuc);
   4085 // CHECK: shr <16 x i8>
   4086 // CHECK-LE: shr <16 x i8>
   4087 
   4088   res_vuc = vec_vsrb(vuc, vuc);
   4089 // CHECK: shr <16 x i8>
   4090 // CHECK-LE: shr <16 x i8>
   4091 
   4092   res_vs  = vec_vsrh(vs, vus);
   4093 // CHECK: shr <8 x i16>
   4094 // CHECK-LE: shr <8 x i16>
   4095 
   4096   res_vus = vec_vsrh(vus, vus);
   4097 // CHECK: shr <8 x i16>
   4098 // CHECK-LE: shr <8 x i16>
   4099 
   4100   res_vi  = vec_vsrw(vi, vui);
   4101 // CHECK: shr <4 x i32>
   4102 // CHECK-LE: shr <4 x i32>
   4103 
   4104   res_vui = vec_vsrw(vui, vui);
   4105 // CHECK: shr <4 x i32>
   4106 // CHECK-LE: shr <4 x i32>
   4107 
   4108   /* vec_sra */
   4109   res_vsc = vec_sra(vsc, vuc);
   4110 // CHECK: @llvm.ppc.altivec.vsrab
   4111 // CHECK-LE: @llvm.ppc.altivec.vsrab
   4112 
   4113   res_vuc = vec_sra(vuc, vuc);
   4114 // CHECK: @llvm.ppc.altivec.vsrab
   4115 // CHECK-LE: @llvm.ppc.altivec.vsrab
   4116 
   4117   res_vs  = vec_sra(vs, vus);
   4118 // CHECK: @llvm.ppc.altivec.vsrah
   4119 // CHECK-LE: @llvm.ppc.altivec.vsrah
   4120 
   4121   res_vus = vec_sra(vus, vus);
   4122 // CHECK: @llvm.ppc.altivec.vsrah
   4123 // CHECK-LE: @llvm.ppc.altivec.vsrah
   4124 
   4125   res_vi  = vec_sra(vi, vui);
   4126 // CHECK: @llvm.ppc.altivec.vsraw
   4127 // CHECK-LE: @llvm.ppc.altivec.vsraw
   4128 
   4129   res_vui = vec_sra(vui, vui);
   4130 // CHECK: @llvm.ppc.altivec.vsraw
   4131 // CHECK-LE: @llvm.ppc.altivec.vsraw
   4132 
   4133   res_vsc = vec_vsrab(vsc, vuc);
   4134 // CHECK: @llvm.ppc.altivec.vsrab
   4135 // CHECK-LE: @llvm.ppc.altivec.vsrab
   4136 
   4137   res_vuc = vec_vsrab(vuc, vuc);
   4138 // CHECK: @llvm.ppc.altivec.vsrab
   4139 // CHECK-LE: @llvm.ppc.altivec.vsrab
   4140 
   4141   res_vs  = vec_vsrah(vs, vus);
   4142 // CHECK: @llvm.ppc.altivec.vsrah
   4143 // CHECK-LE: @llvm.ppc.altivec.vsrah
   4144 
   4145   res_vus = vec_vsrah(vus, vus);
   4146 // CHECK: @llvm.ppc.altivec.vsrah
   4147 // CHECK-LE: @llvm.ppc.altivec.vsrah
   4148 
   4149   res_vi  = vec_vsraw(vi, vui);
   4150 // CHECK: @llvm.ppc.altivec.vsraw
   4151 // CHECK-LE: @llvm.ppc.altivec.vsraw
   4152 
   4153   res_vui = vec_vsraw(vui, vui);
   4154 // CHECK: @llvm.ppc.altivec.vsraw
   4155 // CHECK-LE: @llvm.ppc.altivec.vsraw
   4156 
   4157   /* vec_srl */
   4158   res_vsc = vec_srl(vsc, vuc);
   4159 // CHECK: @llvm.ppc.altivec.vsr
   4160 // CHECK-LE: @llvm.ppc.altivec.vsr
   4161 
   4162   res_vsc = vec_srl(vsc, vus);
   4163 // CHECK: @llvm.ppc.altivec.vsr
   4164 // CHECK-LE: @llvm.ppc.altivec.vsr
   4165 
   4166   res_vsc = vec_srl(vsc, vui);
   4167 // CHECK: @llvm.ppc.altivec.vsr
   4168 // CHECK-LE: @llvm.ppc.altivec.vsr
   4169 
   4170   res_vuc = vec_srl(vuc, vuc);
   4171 // CHECK: @llvm.ppc.altivec.vsr
   4172 // CHECK-LE: @llvm.ppc.altivec.vsr
   4173 
   4174   res_vuc = vec_srl(vuc, vus);
   4175 // CHECK: @llvm.ppc.altivec.vsr
   4176 // CHECK-LE: @llvm.ppc.altivec.vsr
   4177 
   4178   res_vuc = vec_srl(vuc, vui);
   4179 // CHECK: @llvm.ppc.altivec.vsr
   4180 // CHECK-LE: @llvm.ppc.altivec.vsr
   4181 
   4182   res_vbc = vec_srl(vbc, vuc);
   4183 // CHECK: @llvm.ppc.altivec.vsr
   4184 // CHECK-LE: @llvm.ppc.altivec.vsr
   4185 
   4186   res_vbc = vec_srl(vbc, vus);
   4187 // CHECK: @llvm.ppc.altivec.vsr
   4188 // CHECK-LE: @llvm.ppc.altivec.vsr
   4189 
   4190   res_vbc = vec_srl(vbc, vui);
   4191 // CHECK: @llvm.ppc.altivec.vsr
   4192 // CHECK-LE: @llvm.ppc.altivec.vsr
   4193 
   4194   res_vs  = vec_srl(vs, vuc);
   4195 // CHECK: @llvm.ppc.altivec.vsr
   4196 // CHECK-LE: @llvm.ppc.altivec.vsr
   4197 
   4198   res_vs  = vec_srl(vs, vus);
   4199 // CHECK: @llvm.ppc.altivec.vsr
   4200 // CHECK-LE: @llvm.ppc.altivec.vsr
   4201 
   4202   res_vs  = vec_srl(vs, vui);
   4203 // CHECK: @llvm.ppc.altivec.vsr
   4204 // CHECK-LE: @llvm.ppc.altivec.vsr
   4205 
   4206   res_vus = vec_srl(vus, vuc);
   4207 // CHECK: @llvm.ppc.altivec.vsr
   4208 // CHECK-LE: @llvm.ppc.altivec.vsr
   4209 
   4210   res_vus = vec_srl(vus, vus);
   4211 // CHECK: @llvm.ppc.altivec.vsr
   4212 // CHECK-LE: @llvm.ppc.altivec.vsr
   4213 
   4214   res_vus = vec_srl(vus, vui);
   4215 // CHECK: @llvm.ppc.altivec.vsr
   4216 // CHECK-LE: @llvm.ppc.altivec.vsr
   4217 
   4218   res_vbs = vec_srl(vbs, vuc);
   4219 // CHECK: @llvm.ppc.altivec.vsr
   4220 // CHECK-LE: @llvm.ppc.altivec.vsr
   4221 
   4222   res_vbs = vec_srl(vbs, vus);
   4223 // CHECK: @llvm.ppc.altivec.vsr
   4224 // CHECK-LE: @llvm.ppc.altivec.vsr
   4225 
   4226   res_vbs = vec_srl(vbs, vui);
   4227 // CHECK: @llvm.ppc.altivec.vsr
   4228 // CHECK-LE: @llvm.ppc.altivec.vsr
   4229 
   4230   res_vp  = vec_srl(vp, vuc);
   4231 // CHECK: @llvm.ppc.altivec.vsr
   4232 // CHECK-LE: @llvm.ppc.altivec.vsr
   4233 
   4234   res_vp  = vec_srl(vp, vus);
   4235 // CHECK: @llvm.ppc.altivec.vsr
   4236 // CHECK-LE: @llvm.ppc.altivec.vsr
   4237 
   4238   res_vp  = vec_srl(vp, vui);
   4239 // CHECK: @llvm.ppc.altivec.vsr
   4240 // CHECK-LE: @llvm.ppc.altivec.vsr
   4241 
   4242   res_vi  = vec_srl(vi, vuc);
   4243 // CHECK: @llvm.ppc.altivec.vsr
   4244 // CHECK-LE: @llvm.ppc.altivec.vsr
   4245 
   4246   res_vi  = vec_srl(vi, vus);
   4247 // CHECK: @llvm.ppc.altivec.vsr
   4248 // CHECK-LE: @llvm.ppc.altivec.vsr
   4249 
   4250   res_vi  = vec_srl(vi, vui);
   4251 // CHECK: @llvm.ppc.altivec.vsr
   4252 // CHECK-LE: @llvm.ppc.altivec.vsr
   4253 
   4254   res_vui = vec_srl(vui, vuc);
   4255 // CHECK: @llvm.ppc.altivec.vsr
   4256 // CHECK-LE: @llvm.ppc.altivec.vsr
   4257 
   4258   res_vui = vec_srl(vui, vus);
   4259 // CHECK: @llvm.ppc.altivec.vsr
   4260 // CHECK-LE: @llvm.ppc.altivec.vsr
   4261 
   4262   res_vui = vec_srl(vui, vui);
   4263 // CHECK: @llvm.ppc.altivec.vsr
   4264 // CHECK-LE: @llvm.ppc.altivec.vsr
   4265 
   4266   res_vbi = vec_srl(vbi, vuc);
   4267 // CHECK: @llvm.ppc.altivec.vsr
   4268 // CHECK-LE: @llvm.ppc.altivec.vsr
   4269 
   4270   res_vbi = vec_srl(vbi, vus);
   4271 // CHECK: @llvm.ppc.altivec.vsr
   4272 // CHECK-LE: @llvm.ppc.altivec.vsr
   4273 
   4274   res_vbi = vec_srl(vbi, vui);
   4275 // CHECK: @llvm.ppc.altivec.vsr
   4276 // CHECK-LE: @llvm.ppc.altivec.vsr
   4277 
   4278   res_vsc = vec_vsr(vsc, vuc);
   4279 // CHECK: @llvm.ppc.altivec.vsr
   4280 // CHECK-LE: @llvm.ppc.altivec.vsr
   4281 
   4282   res_vsc = vec_vsr(vsc, vus);
   4283 // CHECK: @llvm.ppc.altivec.vsr
   4284 // CHECK-LE: @llvm.ppc.altivec.vsr
   4285 
   4286   res_vsc = vec_vsr(vsc, vui);
   4287 // CHECK: @llvm.ppc.altivec.vsr
   4288 // CHECK-LE: @llvm.ppc.altivec.vsr
   4289 
   4290   res_vuc = vec_vsr(vuc, vuc);
   4291 // CHECK: @llvm.ppc.altivec.vsr
   4292 // CHECK-LE: @llvm.ppc.altivec.vsr
   4293 
   4294   res_vuc = vec_vsr(vuc, vus);
   4295 // CHECK: @llvm.ppc.altivec.vsr
   4296 // CHECK-LE: @llvm.ppc.altivec.vsr
   4297 
   4298   res_vuc = vec_vsr(vuc, vui);
   4299 // CHECK: @llvm.ppc.altivec.vsr
   4300 // CHECK-LE: @llvm.ppc.altivec.vsr
   4301 
   4302   res_vbc = vec_vsr(vbc, vuc);
   4303 // CHECK: @llvm.ppc.altivec.vsr
   4304 // CHECK-LE: @llvm.ppc.altivec.vsr
   4305 
   4306   res_vbc = vec_vsr(vbc, vus);
   4307 // CHECK: @llvm.ppc.altivec.vsr
   4308 // CHECK-LE: @llvm.ppc.altivec.vsr
   4309 
   4310   res_vbc = vec_vsr(vbc, vui);
   4311 // CHECK: @llvm.ppc.altivec.vsr
   4312 // CHECK-LE: @llvm.ppc.altivec.vsr
   4313 
   4314   res_vs  = vec_vsr(vs, vuc);
   4315 // CHECK: @llvm.ppc.altivec.vsr
   4316 // CHECK-LE: @llvm.ppc.altivec.vsr
   4317 
   4318   res_vs  = vec_vsr(vs, vus);
   4319 // CHECK: @llvm.ppc.altivec.vsr
   4320 // CHECK-LE: @llvm.ppc.altivec.vsr
   4321 
   4322   res_vs  = vec_vsr(vs, vui);
   4323 // CHECK: @llvm.ppc.altivec.vsr
   4324 // CHECK-LE: @llvm.ppc.altivec.vsr
   4325 
   4326   res_vus = vec_vsr(vus, vuc);
   4327 // CHECK: @llvm.ppc.altivec.vsr
   4328 // CHECK-LE: @llvm.ppc.altivec.vsr
   4329 
   4330   res_vus = vec_vsr(vus, vus);
   4331 // CHECK: @llvm.ppc.altivec.vsr
   4332 // CHECK-LE: @llvm.ppc.altivec.vsr
   4333 
   4334   res_vus = vec_vsr(vus, vui);
   4335 // CHECK: @llvm.ppc.altivec.vsr
   4336 // CHECK-LE: @llvm.ppc.altivec.vsr
   4337 
   4338   res_vbs = vec_vsr(vbs, vuc);
   4339 // CHECK: @llvm.ppc.altivec.vsr
   4340 // CHECK-LE: @llvm.ppc.altivec.vsr
   4341 
   4342   res_vbs = vec_vsr(vbs, vus);
   4343 // CHECK: @llvm.ppc.altivec.vsr
   4344 // CHECK-LE: @llvm.ppc.altivec.vsr
   4345 
   4346   res_vbs = vec_vsr(vbs, vui);
   4347 // CHECK: @llvm.ppc.altivec.vsr
   4348 // CHECK-LE: @llvm.ppc.altivec.vsr
   4349 
   4350   res_vp  = vec_vsr(vp, vuc);
   4351 // CHECK: @llvm.ppc.altivec.vsr
   4352 // CHECK-LE: @llvm.ppc.altivec.vsr
   4353 
   4354   res_vp  = vec_vsr(vp, vus);
   4355 // CHECK: @llvm.ppc.altivec.vsr
   4356 // CHECK-LE: @llvm.ppc.altivec.vsr
   4357 
   4358   res_vp  = vec_vsr(vp, vui);
   4359 // CHECK: @llvm.ppc.altivec.vsr
   4360 // CHECK-LE: @llvm.ppc.altivec.vsr
   4361 
   4362   res_vi  = vec_vsr(vi, vuc);
   4363 // CHECK: @llvm.ppc.altivec.vsr
   4364 // CHECK-LE: @llvm.ppc.altivec.vsr
   4365 
   4366   res_vi  = vec_vsr(vi, vus);
   4367 // CHECK: @llvm.ppc.altivec.vsr
   4368 // CHECK-LE: @llvm.ppc.altivec.vsr
   4369 
   4370   res_vi  = vec_vsr(vi, vui);
   4371 // CHECK: @llvm.ppc.altivec.vsr
   4372 // CHECK-LE: @llvm.ppc.altivec.vsr
   4373 
   4374   res_vui = vec_vsr(vui, vuc);
   4375 // CHECK: @llvm.ppc.altivec.vsr
   4376 // CHECK-LE: @llvm.ppc.altivec.vsr
   4377 
   4378   res_vui = vec_vsr(vui, vus);
   4379 // CHECK: @llvm.ppc.altivec.vsr
   4380 // CHECK-LE: @llvm.ppc.altivec.vsr
   4381 
   4382   res_vui = vec_vsr(vui, vui);
   4383 // CHECK: @llvm.ppc.altivec.vsr
   4384 // CHECK-LE: @llvm.ppc.altivec.vsr
   4385 
   4386   res_vbi = vec_vsr(vbi, vuc);
   4387 // CHECK: @llvm.ppc.altivec.vsr
   4388 // CHECK-LE: @llvm.ppc.altivec.vsr
   4389 
   4390   res_vbi = vec_vsr(vbi, vus);
   4391 // CHECK: @llvm.ppc.altivec.vsr
   4392 // CHECK-LE: @llvm.ppc.altivec.vsr
   4393 
   4394   res_vbi = vec_vsr(vbi, vui);
   4395 // CHECK: @llvm.ppc.altivec.vsr
   4396 // CHECK-LE: @llvm.ppc.altivec.vsr
   4397 
   4398   /* vec_sro */
   4399   res_vsc = vec_sro(vsc, vsc);
   4400 // CHECK: @llvm.ppc.altivec.vsro
   4401 // CHECK-LE: @llvm.ppc.altivec.vsro
   4402 
   4403   res_vsc = vec_sro(vsc, vuc);
   4404 // CHECK: @llvm.ppc.altivec.vsro
   4405 // CHECK-LE: @llvm.ppc.altivec.vsro
   4406 
   4407   res_vuc = vec_sro(vuc, vsc);
   4408 // CHECK: @llvm.ppc.altivec.vsro
   4409 // CHECK-LE: @llvm.ppc.altivec.vsro
   4410 
   4411   res_vuc = vec_sro(vuc, vuc);
   4412 // CHECK: @llvm.ppc.altivec.vsro
   4413 // CHECK-LE: @llvm.ppc.altivec.vsro
   4414 
   4415   res_vs  = vec_sro(vs, vsc);
   4416 // CHECK: @llvm.ppc.altivec.vsro
   4417 // CHECK-LE: @llvm.ppc.altivec.vsro
   4418 
   4419   res_vs  = vec_sro(vs, vuc);
   4420 // CHECK: @llvm.ppc.altivec.vsro
   4421 // CHECK-LE: @llvm.ppc.altivec.vsro
   4422 
   4423   res_vus = vec_sro(vus, vsc);
   4424 // CHECK: @llvm.ppc.altivec.vsro
   4425 // CHECK-LE: @llvm.ppc.altivec.vsro
   4426 
   4427   res_vus = vec_sro(vus, vuc);
   4428 // CHECK: @llvm.ppc.altivec.vsro
   4429 // CHECK-LE: @llvm.ppc.altivec.vsro
   4430 
   4431   res_vp  = vec_sro(vp, vsc);
   4432 // CHECK: @llvm.ppc.altivec.vsro
   4433 // CHECK-LE: @llvm.ppc.altivec.vsro
   4434 
   4435   res_vp  = vec_sro(vp, vuc);
   4436 // CHECK: @llvm.ppc.altivec.vsro
   4437 // CHECK-LE: @llvm.ppc.altivec.vsro
   4438 
   4439   res_vi  = vec_sro(vi, vsc);
   4440 // CHECK: @llvm.ppc.altivec.vsro
   4441 // CHECK-LE: @llvm.ppc.altivec.vsro
   4442 
   4443   res_vi  = vec_sro(vi, vuc);
   4444 // CHECK: @llvm.ppc.altivec.vsro
   4445 // CHECK-LE: @llvm.ppc.altivec.vsro
   4446 
   4447   res_vui = vec_sro(vui, vsc);
   4448 // CHECK: @llvm.ppc.altivec.vsro
   4449 // CHECK-LE: @llvm.ppc.altivec.vsro
   4450 
   4451   res_vui = vec_sro(vui, vuc);
   4452 // CHECK: @llvm.ppc.altivec.vsro
   4453 // CHECK-LE: @llvm.ppc.altivec.vsro
   4454 
   4455   res_vf  = vec_sro(vf, vsc);
   4456 // CHECK: @llvm.ppc.altivec.vsro
   4457 // CHECK-LE: @llvm.ppc.altivec.vsro
   4458 
   4459   res_vf  = vec_sro(vf, vuc);
   4460 // CHECK: @llvm.ppc.altivec.vsro
   4461 // CHECK-LE: @llvm.ppc.altivec.vsro
   4462 
   4463   res_vsc = vec_vsro(vsc, vsc);
   4464 // CHECK: @llvm.ppc.altivec.vsro
   4465 // CHECK-LE: @llvm.ppc.altivec.vsro
   4466 
   4467   res_vsc = vec_vsro(vsc, vuc);
   4468 // CHECK: @llvm.ppc.altivec.vsro
   4469 // CHECK-LE: @llvm.ppc.altivec.vsro
   4470 
   4471   res_vuc = vec_vsro(vuc, vsc);
   4472 // CHECK: @llvm.ppc.altivec.vsro
   4473 // CHECK-LE: @llvm.ppc.altivec.vsro
   4474 
   4475   res_vuc = vec_vsro(vuc, vuc);
   4476 // CHECK: @llvm.ppc.altivec.vsro
   4477 // CHECK-LE: @llvm.ppc.altivec.vsro
   4478 
   4479   res_vs  = vec_vsro(vs, vsc);
   4480 // CHECK: @llvm.ppc.altivec.vsro
   4481 // CHECK-LE: @llvm.ppc.altivec.vsro
   4482 
   4483   res_vs  = vec_vsro(vs, vuc);
   4484 // CHECK: @llvm.ppc.altivec.vsro
   4485 // CHECK-LE: @llvm.ppc.altivec.vsro
   4486 
   4487   res_vus = vec_vsro(vus, vsc);
   4488 // CHECK: @llvm.ppc.altivec.vsro
   4489 // CHECK-LE: @llvm.ppc.altivec.vsro
   4490 
   4491   res_vus = vec_vsro(vus, vuc);
   4492 // CHECK: @llvm.ppc.altivec.vsro
   4493 // CHECK-LE: @llvm.ppc.altivec.vsro
   4494 
   4495   res_vp  = vec_vsro(vp, vsc);
   4496 // CHECK: @llvm.ppc.altivec.vsro
   4497 // CHECK-LE: @llvm.ppc.altivec.vsro
   4498 
   4499   res_vp  = vec_vsro(vp, vuc);
   4500 // CHECK: @llvm.ppc.altivec.vsro
   4501 // CHECK-LE: @llvm.ppc.altivec.vsro
   4502 
   4503   res_vi  = vec_vsro(vi, vsc);
   4504 // CHECK: @llvm.ppc.altivec.vsro
   4505 // CHECK-LE: @llvm.ppc.altivec.vsro
   4506 
   4507   res_vi  = vec_vsro(vi, vuc);
   4508 // CHECK: @llvm.ppc.altivec.vsro
   4509 // CHECK-LE: @llvm.ppc.altivec.vsro
   4510 
   4511   res_vui = vec_vsro(vui, vsc);
   4512 // CHECK: @llvm.ppc.altivec.vsro
   4513 // CHECK-LE: @llvm.ppc.altivec.vsro
   4514 
   4515   res_vui = vec_vsro(vui, vuc);
   4516 // CHECK: @llvm.ppc.altivec.vsro
   4517 // CHECK-LE: @llvm.ppc.altivec.vsro
   4518 
   4519   res_vf  = vec_vsro(vf, vsc);
   4520 // CHECK: @llvm.ppc.altivec.vsro
   4521 // CHECK-LE: @llvm.ppc.altivec.vsro
   4522 
   4523   res_vf  = vec_vsro(vf, vuc);
   4524 // CHECK: @llvm.ppc.altivec.vsro
   4525 // CHECK-LE: @llvm.ppc.altivec.vsro
   4526 
   4527   /* vec_st */
   4528   vec_st(vsc, 0, &vsc);
   4529 // CHECK: @llvm.ppc.altivec.stvx
   4530 // CHECK-LE: @llvm.ppc.altivec.stvx
   4531 
   4532   vec_st(vsc, 0, &param_sc);
   4533 // CHECK: @llvm.ppc.altivec.stvx
   4534 // CHECK-LE: @llvm.ppc.altivec.stvx
   4535 
   4536   vec_st(vuc, 0, &vuc);
   4537 // CHECK: @llvm.ppc.altivec.stvx
   4538 // CHECK-LE: @llvm.ppc.altivec.stvx
   4539 
   4540   vec_st(vuc, 0, &param_uc);
   4541 // CHECK: @llvm.ppc.altivec.stvx
   4542 // CHECK-LE: @llvm.ppc.altivec.stvx
   4543 
   4544   vec_st(vbc, 0, &param_uc);
   4545 // CHECK: @llvm.ppc.altivec.stvx
   4546 // CHECK-LE: @llvm.ppc.altivec.stvx
   4547 
   4548   vec_st(vbc, 0, &param_uc);
   4549 // CHECK: @llvm.ppc.altivec.stvx
   4550 // CHECK-LE: @llvm.ppc.altivec.stvx
   4551 
   4552   vec_st(vbc, 0, &vbc);
   4553 // CHECK: @llvm.ppc.altivec.stvx
   4554 // CHECK-LE: @llvm.ppc.altivec.stvx
   4555 
   4556   vec_st(vs, 0, &vs);
   4557 // CHECK: @llvm.ppc.altivec.stvx
   4558 // CHECK-LE: @llvm.ppc.altivec.stvx
   4559 
   4560   vec_st(vs, 0, &param_s);
   4561 // CHECK: @llvm.ppc.altivec.stvx
   4562 // CHECK-LE: @llvm.ppc.altivec.stvx
   4563 
   4564   vec_st(vus, 0, &vus);
   4565 // CHECK: @llvm.ppc.altivec.stvx
   4566 // CHECK-LE: @llvm.ppc.altivec.stvx
   4567 
   4568   vec_st(vus, 0, &param_us);
   4569 // CHECK: @llvm.ppc.altivec.stvx
   4570 // CHECK-LE: @llvm.ppc.altivec.stvx
   4571 
   4572   vec_st(vbs, 0, &param_s);
   4573 // CHECK: @llvm.ppc.altivec.stvx
   4574 // CHECK-LE: @llvm.ppc.altivec.stvx
   4575 
   4576   vec_st(vbs, 0, &param_us);
   4577 // CHECK: @llvm.ppc.altivec.stvx
   4578 // CHECK-LE: @llvm.ppc.altivec.stvx
   4579 
   4580   vec_st(vbs, 0, &vbs);
   4581 // CHECK: @llvm.ppc.altivec.stvx
   4582 // CHECK-LE: @llvm.ppc.altivec.stvx
   4583 
   4584   vec_st(vp, 0, &param_s);
   4585 // CHECK: @llvm.ppc.altivec.stvx
   4586 // CHECK-LE: @llvm.ppc.altivec.stvx
   4587 
   4588   vec_st(vp, 0, &param_us);
   4589 // CHECK: @llvm.ppc.altivec.stvx
   4590 // CHECK-LE: @llvm.ppc.altivec.stvx
   4591 
   4592   vec_st(vp, 0, &vp);
   4593 // CHECK: @llvm.ppc.altivec.stvx
   4594 // CHECK-LE: @llvm.ppc.altivec.stvx
   4595 
   4596   vec_st(vi, 0, &vi);
   4597 // CHECK: @llvm.ppc.altivec.stvx
   4598 // CHECK-LE: @llvm.ppc.altivec.stvx
   4599 
   4600   vec_st(vi, 0, &param_i);
   4601 // CHECK: @llvm.ppc.altivec.stvx
   4602 // CHECK-LE: @llvm.ppc.altivec.stvx
   4603 
   4604   vec_st(vui, 0, &vui);
   4605 // CHECK: @llvm.ppc.altivec.stvx
   4606 // CHECK-LE: @llvm.ppc.altivec.stvx
   4607 
   4608   vec_st(vui, 0, &param_ui);
   4609 // CHECK: @llvm.ppc.altivec.stvx
   4610 // CHECK-LE: @llvm.ppc.altivec.stvx
   4611 
   4612   vec_st(vbi, 0, &param_i);
   4613 // CHECK: @llvm.ppc.altivec.stvx
   4614 // CHECK-LE: @llvm.ppc.altivec.stvx
   4615 
   4616   vec_st(vbi, 0, &param_ui);
   4617 // CHECK: @llvm.ppc.altivec.stvx
   4618 // CHECK-LE: @llvm.ppc.altivec.stvx
   4619 
   4620   vec_st(vbi, 0, &vbi);
   4621 // CHECK: @llvm.ppc.altivec.stvx
   4622 // CHECK-LE: @llvm.ppc.altivec.stvx
   4623 
   4624   vec_st(vf, 0, &vf);
   4625 // CHECK: @llvm.ppc.altivec.stvx
   4626 // CHECK-LE: @llvm.ppc.altivec.stvx
   4627 
   4628   vec_st(vf, 0, &param_f);
   4629 // CHECK: @llvm.ppc.altivec.stvx
   4630 // CHECK-LE: @llvm.ppc.altivec.stvx
   4631 
   4632   vec_stvx(vsc, 0, &vsc);
   4633 // CHECK: @llvm.ppc.altivec.stvx
   4634 // CHECK-LE: @llvm.ppc.altivec.stvx
   4635 
   4636   vec_stvx(vsc, 0, &param_sc);
   4637 // CHECK: @llvm.ppc.altivec.stvx
   4638 // CHECK-LE: @llvm.ppc.altivec.stvx
   4639 
   4640   vec_stvx(vuc, 0, &vuc);
   4641 // CHECK: @llvm.ppc.altivec.stvx
   4642 // CHECK-LE: @llvm.ppc.altivec.stvx
   4643 
   4644   vec_stvx(vuc, 0, &param_uc);
   4645 // CHECK: @llvm.ppc.altivec.stvx
   4646 // CHECK-LE: @llvm.ppc.altivec.stvx
   4647 
   4648   vec_stvx(vbc, 0, &param_uc);
   4649 // CHECK: @llvm.ppc.altivec.stvx
   4650 // CHECK-LE: @llvm.ppc.altivec.stvx
   4651 
   4652   vec_stvx(vbc, 0, &param_uc);
   4653 // CHECK: @llvm.ppc.altivec.stvx
   4654 // CHECK-LE: @llvm.ppc.altivec.stvx
   4655 
   4656   vec_stvx(vbc, 0, &vbc);
   4657 // CHECK: @llvm.ppc.altivec.stvx
   4658 // CHECK-LE: @llvm.ppc.altivec.stvx
   4659 
   4660   vec_stvx(vs, 0, &vs);
   4661 // CHECK: @llvm.ppc.altivec.stvx
   4662 // CHECK-LE: @llvm.ppc.altivec.stvx
   4663 
   4664   vec_stvx(vs, 0, &param_s);
   4665 // CHECK: @llvm.ppc.altivec.stvx
   4666 // CHECK-LE: @llvm.ppc.altivec.stvx
   4667 
   4668   vec_stvx(vus, 0, &vus);
   4669 // CHECK: @llvm.ppc.altivec.stvx
   4670 // CHECK-LE: @llvm.ppc.altivec.stvx
   4671 
   4672   vec_stvx(vus, 0, &param_us);
   4673 // CHECK: @llvm.ppc.altivec.stvx
   4674 // CHECK-LE: @llvm.ppc.altivec.stvx
   4675 
   4676   vec_stvx(vbs, 0, &param_s);
   4677 // CHECK: @llvm.ppc.altivec.stvx
   4678 // CHECK-LE: @llvm.ppc.altivec.stvx
   4679 
   4680   vec_stvx(vbs, 0, &param_us);
   4681 // CHECK: @llvm.ppc.altivec.stvx
   4682 // CHECK-LE: @llvm.ppc.altivec.stvx
   4683 
   4684   vec_stvx(vbs, 0, &vbs);
   4685 // CHECK: @llvm.ppc.altivec.stvx
   4686 // CHECK-LE: @llvm.ppc.altivec.stvx
   4687 
   4688   vec_stvx(vp, 0, &param_s);
   4689 // CHECK: @llvm.ppc.altivec.stvx
   4690 // CHECK-LE: @llvm.ppc.altivec.stvx
   4691 
   4692   vec_stvx(vp, 0, &param_us);
   4693 // CHECK: @llvm.ppc.altivec.stvx
   4694 // CHECK-LE: @llvm.ppc.altivec.stvx
   4695 
   4696   vec_stvx(vp, 0, &vp);
   4697 // CHECK: @llvm.ppc.altivec.stvx
   4698 // CHECK-LE: @llvm.ppc.altivec.stvx
   4699 
   4700   vec_stvx(vi, 0, &vi);
   4701 // CHECK: @llvm.ppc.altivec.stvx
   4702 // CHECK-LE: @llvm.ppc.altivec.stvx
   4703 
   4704   vec_stvx(vi, 0, &param_i);
   4705 // CHECK: @llvm.ppc.altivec.stvx
   4706 // CHECK-LE: @llvm.ppc.altivec.stvx
   4707 
   4708   vec_stvx(vui, 0, &vui);
   4709 // CHECK: @llvm.ppc.altivec.stvx
   4710 // CHECK-LE: @llvm.ppc.altivec.stvx
   4711 
   4712   vec_stvx(vui, 0, &param_ui);
   4713 // CHECK: @llvm.ppc.altivec.stvx
   4714 // CHECK-LE: @llvm.ppc.altivec.stvx
   4715 
   4716   vec_stvx(vbi, 0, &param_i);
   4717 // CHECK: @llvm.ppc.altivec.stvx
   4718 // CHECK-LE: @llvm.ppc.altivec.stvx
   4719 
   4720   vec_stvx(vbi, 0, &param_ui);
   4721 // CHECK: @llvm.ppc.altivec.stvx
   4722 // CHECK-LE: @llvm.ppc.altivec.stvx
   4723 
   4724   vec_stvx(vbi, 0, &vbi);
   4725 // CHECK: @llvm.ppc.altivec.stvx
   4726 // CHECK-LE: @llvm.ppc.altivec.stvx
   4727 
   4728   vec_stvx(vf, 0, &vf);
   4729 // CHECK: @llvm.ppc.altivec.stvx
   4730 // CHECK-LE: @llvm.ppc.altivec.stvx
   4731 
   4732   vec_stvx(vf, 0, &param_f);
   4733 // CHECK: @llvm.ppc.altivec.stvx
   4734 // CHECK-LE: @llvm.ppc.altivec.stvx
   4735 
   4736   /* vec_ste */
   4737   vec_ste(vsc, 0, &param_sc);
   4738 // CHECK: @llvm.ppc.altivec.stvebx
   4739 // CHECK-LE: @llvm.ppc.altivec.stvebx
   4740 
   4741   vec_ste(vuc, 0, &param_uc);
   4742 // CHECK: @llvm.ppc.altivec.stvebx
   4743 // CHECK-LE: @llvm.ppc.altivec.stvebx
   4744 
   4745   vec_ste(vbc, 0, &param_sc);
   4746 // CHECK: @llvm.ppc.altivec.stvebx
   4747 // CHECK-LE: @llvm.ppc.altivec.stvebx
   4748 
   4749   vec_ste(vbc, 0, &param_uc);
   4750 // CHECK: @llvm.ppc.altivec.stvebx
   4751 // CHECK-LE: @llvm.ppc.altivec.stvebx
   4752 
   4753   vec_ste(vs, 0, &param_s);
   4754 // CHECK: @llvm.ppc.altivec.stvehx
   4755 // CHECK-LE: @llvm.ppc.altivec.stvehx
   4756 
   4757   vec_ste(vus, 0, &param_us);
   4758 // CHECK: @llvm.ppc.altivec.stvehx
   4759 // CHECK-LE: @llvm.ppc.altivec.stvehx
   4760 
   4761   vec_ste(vbs, 0, &param_s);
   4762 // CHECK: @llvm.ppc.altivec.stvehx
   4763 // CHECK-LE: @llvm.ppc.altivec.stvehx
   4764 
   4765   vec_ste(vbs, 0, &param_us);
   4766 // CHECK: @llvm.ppc.altivec.stvehx
   4767 // CHECK-LE: @llvm.ppc.altivec.stvehx
   4768 
   4769   vec_ste(vp, 0, &param_s);
   4770 // CHECK: @llvm.ppc.altivec.stvehx
   4771 // CHECK-LE: @llvm.ppc.altivec.stvehx
   4772 
   4773   vec_ste(vp, 0, &param_us);
   4774 // CHECK: @llvm.ppc.altivec.stvehx
   4775 // CHECK-LE: @llvm.ppc.altivec.stvehx
   4776 
   4777   vec_ste(vi, 0, &param_i);
   4778 // CHECK: @llvm.ppc.altivec.stvewx
   4779 // CHECK-LE: @llvm.ppc.altivec.stvewx
   4780 
   4781   vec_ste(vui, 0, &param_ui);
   4782 // CHECK: @llvm.ppc.altivec.stvewx
   4783 // CHECK-LE: @llvm.ppc.altivec.stvewx
   4784 
   4785   vec_ste(vbi, 0, &param_i);
   4786 // CHECK: @llvm.ppc.altivec.stvewx
   4787 // CHECK-LE: @llvm.ppc.altivec.stvewx
   4788 
   4789   vec_ste(vbi, 0, &param_ui);
   4790 // CHECK: @llvm.ppc.altivec.stvewx
   4791 // CHECK-LE: @llvm.ppc.altivec.stvewx
   4792 
   4793   vec_ste(vf, 0, &param_f);
   4794 // CHECK: @llvm.ppc.altivec.stvewx
   4795 // CHECK-LE: @llvm.ppc.altivec.stvewx
   4796 
   4797   vec_stvebx(vsc, 0, &param_sc);
   4798 // CHECK: @llvm.ppc.altivec.stvebx
   4799 // CHECK-LE: @llvm.ppc.altivec.stvebx
   4800 
   4801   vec_stvebx(vuc, 0, &param_uc);
   4802 // CHECK: @llvm.ppc.altivec.stvebx
   4803 // CHECK-LE: @llvm.ppc.altivec.stvebx
   4804 
   4805   vec_stvebx(vbc, 0, &param_sc);
   4806 // CHECK: @llvm.ppc.altivec.stvebx
   4807 // CHECK-LE: @llvm.ppc.altivec.stvebx
   4808 
   4809   vec_stvebx(vbc, 0, &param_uc);
   4810 // CHECK: @llvm.ppc.altivec.stvebx
   4811 // CHECK-LE: @llvm.ppc.altivec.stvebx
   4812 
   4813   vec_stvehx(vs, 0, &param_s);
   4814 // CHECK: @llvm.ppc.altivec.stvehx
   4815 // CHECK-LE: @llvm.ppc.altivec.stvehx
   4816 
   4817   vec_stvehx(vus, 0, &param_us);
   4818 // CHECK: @llvm.ppc.altivec.stvehx
   4819 // CHECK-LE: @llvm.ppc.altivec.stvehx
   4820 
   4821   vec_stvehx(vbs, 0, &param_s);
   4822 // CHECK: @llvm.ppc.altivec.stvehx
   4823 // CHECK-LE: @llvm.ppc.altivec.stvehx
   4824 
   4825   vec_stvehx(vbs, 0, &param_us);
   4826 // CHECK: @llvm.ppc.altivec.stvehx
   4827 // CHECK-LE: @llvm.ppc.altivec.stvehx
   4828 
   4829   vec_stvehx(vp, 0, &param_s);
   4830 // CHECK: @llvm.ppc.altivec.stvehx
   4831 // CHECK-LE: @llvm.ppc.altivec.stvehx
   4832 
   4833   vec_stvehx(vp, 0, &param_us);
   4834 // CHECK: @llvm.ppc.altivec.stvehx
   4835 // CHECK-LE: @llvm.ppc.altivec.stvehx
   4836 
   4837   vec_stvewx(vi, 0, &param_i);
   4838 // CHECK: @llvm.ppc.altivec.stvewx
   4839 // CHECK-LE: @llvm.ppc.altivec.stvewx
   4840 
   4841   vec_stvewx(vui, 0, &param_ui);
   4842 // CHECK: @llvm.ppc.altivec.stvewx
   4843 // CHECK-LE: @llvm.ppc.altivec.stvewx
   4844 
   4845   vec_stvewx(vbi, 0, &param_i);
   4846 // CHECK: @llvm.ppc.altivec.stvewx
   4847 // CHECK-LE: @llvm.ppc.altivec.stvewx
   4848 
   4849   vec_stvewx(vbi, 0, &param_ui);
   4850 // CHECK: @llvm.ppc.altivec.stvewx
   4851 // CHECK-LE: @llvm.ppc.altivec.stvewx
   4852 
   4853   vec_stvewx(vf, 0, &param_f);
   4854 // CHECK: @llvm.ppc.altivec.stvewx
   4855 // CHECK-LE: @llvm.ppc.altivec.stvewx
   4856 
   4857   /* vec_stl */
   4858   vec_stl(vsc, 0, &vsc);
   4859 // CHECK: @llvm.ppc.altivec.stvxl
   4860 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4861 
   4862   vec_stl(vsc, 0, &param_sc);
   4863 // CHECK: @llvm.ppc.altivec.stvxl
   4864 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4865 
   4866   vec_stl(vuc, 0, &vuc);
   4867 // CHECK: @llvm.ppc.altivec.stvxl
   4868 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4869 
   4870   vec_stl(vuc, 0, &param_uc);
   4871 // CHECK: @llvm.ppc.altivec.stvxl
   4872 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4873 
   4874   vec_stl(vbc, 0, &param_sc);
   4875 // CHECK: @llvm.ppc.altivec.stvxl
   4876 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4877 
   4878   vec_stl(vbc, 0, &param_uc);
   4879 // CHECK: @llvm.ppc.altivec.stvxl
   4880 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4881 
   4882   vec_stl(vbc, 0, &vbc);
   4883 // CHECK: @llvm.ppc.altivec.stvxl
   4884 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4885 
   4886   vec_stl(vs, 0, &vs);
   4887 // CHECK: @llvm.ppc.altivec.stvxl
   4888 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4889 
   4890   vec_stl(vs, 0, &param_s);
   4891 // CHECK: @llvm.ppc.altivec.stvxl
   4892 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4893 
   4894   vec_stl(vus, 0, &vus);
   4895 // CHECK: @llvm.ppc.altivec.stvxl
   4896 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4897 
   4898   vec_stl(vus, 0, &param_us);
   4899 // CHECK: @llvm.ppc.altivec.stvxl
   4900 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4901 
   4902   vec_stl(vbs, 0, &param_s);
   4903 // CHECK: @llvm.ppc.altivec.stvxl
   4904 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4905 
   4906   vec_stl(vbs, 0, &param_us);
   4907 // CHECK: @llvm.ppc.altivec.stvxl
   4908 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4909 
   4910   vec_stl(vbs, 0, &vbs);
   4911 // CHECK: @llvm.ppc.altivec.stvxl
   4912 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4913 
   4914   vec_stl(vp, 0, &param_s);
   4915 // CHECK: @llvm.ppc.altivec.stvxl
   4916 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4917 
   4918   vec_stl(vp, 0, &param_us);
   4919 // CHECK: @llvm.ppc.altivec.stvxl
   4920 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4921 
   4922   vec_stl(vp, 0, &vp);
   4923 // CHECK: @llvm.ppc.altivec.stvxl
   4924 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4925 
   4926   vec_stl(vi, 0, &vi);
   4927 // CHECK: @llvm.ppc.altivec.stvxl
   4928 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4929 
   4930   vec_stl(vi, 0, &param_i);
   4931 // CHECK: @llvm.ppc.altivec.stvxl
   4932 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4933 
   4934   vec_stl(vui, 0, &vui);
   4935 // CHECK: @llvm.ppc.altivec.stvxl
   4936 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4937 
   4938   vec_stl(vui, 0, &param_ui);
   4939 // CHECK: @llvm.ppc.altivec.stvxl
   4940 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4941 
   4942   vec_stl(vbi, 0, &param_i);
   4943 // CHECK: @llvm.ppc.altivec.stvxl
   4944 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4945 
   4946   vec_stl(vbi, 0, &param_ui);
   4947 // CHECK: @llvm.ppc.altivec.stvxl
   4948 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4949 
   4950   vec_stl(vbi, 0, &vbi);
   4951 // CHECK: @llvm.ppc.altivec.stvxl
   4952 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4953 
   4954   vec_stl(vf, 0, &vf);
   4955 // CHECK: @llvm.ppc.altivec.stvxl
   4956 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4957 
   4958   vec_stl(vf, 0, &param_f);
   4959 // CHECK: @llvm.ppc.altivec.stvxl
   4960 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4961 
   4962   vec_stvxl(vsc, 0, &vsc);
   4963 // CHECK: @llvm.ppc.altivec.stvxl
   4964 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4965 
   4966   vec_stvxl(vsc, 0, &param_sc);
   4967 // CHECK: @llvm.ppc.altivec.stvxl
   4968 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4969 
   4970   vec_stvxl(vuc, 0, &vuc);
   4971 // CHECK: @llvm.ppc.altivec.stvxl
   4972 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4973 
   4974   vec_stvxl(vuc, 0, &param_uc);
   4975 // CHECK: @llvm.ppc.altivec.stvxl
   4976 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4977 
   4978   vec_stvxl(vbc, 0, &param_sc);
   4979 // CHECK: @llvm.ppc.altivec.stvxl
   4980 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4981 
   4982   vec_stvxl(vbc, 0, &param_uc);
   4983 // CHECK: @llvm.ppc.altivec.stvxl
   4984 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4985 
   4986   vec_stvxl(vbc, 0, &vbc);
   4987 // CHECK: @llvm.ppc.altivec.stvxl
   4988 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4989 
   4990   vec_stvxl(vs, 0, &vs);
   4991 // CHECK: @llvm.ppc.altivec.stvxl
   4992 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4993 
   4994   vec_stvxl(vs, 0, &param_s);
   4995 // CHECK: @llvm.ppc.altivec.stvxl
   4996 // CHECK-LE: @llvm.ppc.altivec.stvxl
   4997 
   4998   vec_stvxl(vus, 0, &vus);
   4999 // CHECK: @llvm.ppc.altivec.stvxl
   5000 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5001 
   5002   vec_stvxl(vus, 0, &param_us);
   5003 // CHECK: @llvm.ppc.altivec.stvxl
   5004 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5005 
   5006   vec_stvxl(vbs, 0, &param_s);
   5007 // CHECK: @llvm.ppc.altivec.stvxl
   5008 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5009 
   5010   vec_stvxl(vbs, 0, &param_us);
   5011 // CHECK: @llvm.ppc.altivec.stvxl
   5012 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5013 
   5014   vec_stvxl(vbs, 0, &vbs);
   5015 // CHECK: @llvm.ppc.altivec.stvxl
   5016 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5017 
   5018   vec_stvxl(vp, 0, &param_s);
   5019 // CHECK: @llvm.ppc.altivec.stvxl
   5020 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5021 
   5022   vec_stvxl(vp, 0, &param_us);
   5023 // CHECK: @llvm.ppc.altivec.stvxl
   5024 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5025 
   5026   vec_stvxl(vp, 0, &vp);
   5027 // CHECK: @llvm.ppc.altivec.stvxl
   5028 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5029 
   5030   vec_stvxl(vi, 0, &vi);
   5031 // CHECK: @llvm.ppc.altivec.stvxl
   5032 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5033 
   5034   vec_stvxl(vi, 0, &param_i);
   5035 // CHECK: @llvm.ppc.altivec.stvxl
   5036 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5037 
   5038   vec_stvxl(vui, 0, &vui);
   5039 // CHECK: @llvm.ppc.altivec.stvxl
   5040 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5041 
   5042   vec_stvxl(vui, 0, &param_ui);
   5043 // CHECK: @llvm.ppc.altivec.stvxl
   5044 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5045 
   5046   vec_stvxl(vbi, 0, &param_i);
   5047 // CHECK: @llvm.ppc.altivec.stvxl
   5048 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5049 
   5050   vec_stvxl(vbi, 0, &param_ui);
   5051 // CHECK: @llvm.ppc.altivec.stvxl
   5052 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5053 
   5054   vec_stvxl(vbi, 0, &vbi);
   5055 // CHECK: @llvm.ppc.altivec.stvxl
   5056 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5057 
   5058   vec_stvxl(vf, 0, &vf);
   5059 // CHECK: @llvm.ppc.altivec.stvxl
   5060 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5061 
   5062   vec_stvxl(vf, 0, &param_f);
   5063 // CHECK: @llvm.ppc.altivec.stvxl
   5064 // CHECK-LE: @llvm.ppc.altivec.stvxl
   5065 
   5066   /* vec_sub */
   5067   res_vsc = vec_sub(vsc, vsc);
   5068 // CHECK: sub <16 x i8>
   5069 // CHECK-LE: sub <16 x i8>
   5070 
   5071   res_vsc = vec_sub(vbc, vsc);
   5072 // CHECK: sub <16 x i8>
   5073 // CHECK-LE: sub <16 x i8>
   5074 
   5075   res_vsc = vec_sub(vsc, vbc);
   5076 // CHECK: sub <16 x i8>
   5077 // CHECK-LE: sub <16 x i8>
   5078 
   5079   res_vuc = vec_sub(vuc, vuc);
   5080 // CHECK: sub <16 x i8>
   5081 // CHECK-LE: sub <16 x i8>
   5082 
   5083   res_vuc = vec_sub(vbc, vuc);
   5084 // CHECK: sub <16 x i8>
   5085 // CHECK-LE: sub <16 x i8>
   5086 
   5087   res_vuc = vec_sub(vuc, vbc);
   5088 // CHECK: sub <16 x i8>
   5089 // CHECK-LE: sub <16 x i8>
   5090 
   5091   res_vs  = vec_sub(vs, vs);
   5092 // CHECK: sub <8 x i16>
   5093 // CHECK-LE: sub <8 x i16>
   5094 
   5095   res_vs  = vec_sub(vbs, vs);
   5096 // CHECK: sub <8 x i16>
   5097 // CHECK-LE: sub <8 x i16>
   5098 
   5099   res_vs  = vec_sub(vs, vbs);
   5100 // CHECK: sub <8 x i16>
   5101 // CHECK-LE: sub <8 x i16>
   5102 
   5103   res_vus = vec_sub(vus, vus);
   5104 // CHECK: sub <8 x i16>
   5105 // CHECK-LE: sub <8 x i16>
   5106 
   5107   res_vus = vec_sub(vbs, vus);
   5108 // CHECK: sub <8 x i16>
   5109 // CHECK-LE: sub <8 x i16>
   5110 
   5111   res_vus = vec_sub(vus, vbs);
   5112 // CHECK: sub <8 x i16>
   5113 // CHECK-LE: sub <8 x i16>
   5114 
   5115   res_vi  = vec_sub(vi, vi);
   5116 // CHECK: sub <4 x i32>
   5117 // CHECK-LE: sub <4 x i32>
   5118 
   5119   res_vi  = vec_sub(vbi, vi);
   5120 // CHECK: sub <4 x i32>
   5121 // CHECK-LE: sub <4 x i32>
   5122 
   5123   res_vi  = vec_sub(vi, vbi);
   5124 // CHECK: sub <4 x i32>
   5125 // CHECK-LE: sub <4 x i32>
   5126 
   5127   res_vui = vec_sub(vui, vui);
   5128 // CHECK: sub <4 x i32>
   5129 // CHECK-LE: sub <4 x i32>
   5130 
   5131   res_vui = vec_sub(vbi, vui);
   5132 // CHECK: sub <4 x i32>
   5133 // CHECK-LE: sub <4 x i32>
   5134 
   5135   res_vui = vec_sub(vui, vbi);
   5136 // CHECK: sub <4 x i32>
   5137 // CHECK-LE: sub <4 x i32>
   5138 
   5139   res_vf  = vec_sub(vf, vf);
   5140 // CHECK: fsub <4 x float>
   5141 // CHECK-LE: fsub <4 x float>
   5142 
   5143   res_vsc = vec_vsububm(vsc, vsc);
   5144 // CHECK: sub <16 x i8>
   5145 // CHECK-LE: sub <16 x i8>
   5146 
   5147   res_vsc = vec_vsububm(vbc, vsc);
   5148 // CHECK: sub <16 x i8>
   5149 // CHECK-LE: sub <16 x i8>
   5150 
   5151   res_vsc = vec_vsububm(vsc, vbc);
   5152 // CHECK: sub <16 x i8>
   5153 // CHECK-LE: sub <16 x i8>
   5154 
   5155   res_vuc = vec_vsububm(vuc, vuc);
   5156 // CHECK: sub <16 x i8>
   5157 // CHECK-LE: sub <16 x i8>
   5158 
   5159   res_vuc = vec_vsububm(vbc, vuc);
   5160 // CHECK: sub <16 x i8>
   5161 // CHECK-LE: sub <16 x i8>
   5162 
   5163   res_vuc = vec_vsububm(vuc, vbc);
   5164 // CHECK: sub <16 x i8>
   5165 // CHECK-LE: sub <16 x i8>
   5166 
   5167   res_vs  = vec_vsubuhm(vs, vs);
   5168 // CHECK: sub <8 x i16>
   5169 // CHECK-LE: sub <8 x i16>
   5170 
   5171   res_vs  = vec_vsubuhm(vbs, vus);
   5172 // CHECK: sub <8 x i16>
   5173 // CHECK-LE: sub <8 x i16>
   5174 
   5175   res_vs  = vec_vsubuhm(vus, vbs);
   5176 // CHECK: sub <8 x i16>
   5177 // CHECK-LE: sub <8 x i16>
   5178 
   5179   res_vus = vec_vsubuhm(vus, vus);
   5180 // CHECK: sub <8 x i16>
   5181 // CHECK-LE: sub <8 x i16>
   5182 
   5183   res_vus = vec_vsubuhm(vbs, vus);
   5184 // CHECK: sub <8 x i16>
   5185 // CHECK-LE: sub <8 x i16>
   5186 
   5187   res_vus = vec_vsubuhm(vus, vbs);
   5188 // CHECK: sub <8 x i16>
   5189 // CHECK-LE: sub <8 x i16>
   5190 
   5191   res_vi  = vec_vsubuwm(vi, vi);
   5192 // CHECK: sub <4 x i32>
   5193 // CHECK-LE: sub <4 x i32>
   5194 
   5195   res_vi  = vec_vsubuwm(vbi, vi);
   5196 // CHECK: sub <4 x i32>
   5197 // CHECK-LE: sub <4 x i32>
   5198 
   5199   res_vi  = vec_vsubuwm(vi, vbi);
   5200 // CHECK: sub <4 x i32>
   5201 // CHECK-LE: sub <4 x i32>
   5202 
   5203   res_vui = vec_vsubuwm(vui, vui);
   5204 // CHECK: sub <4 x i32>
   5205 // CHECK-LE: sub <4 x i32>
   5206 
   5207   res_vui = vec_vsubuwm(vbi, vui);
   5208 // CHECK: sub <4 x i32>
   5209 // CHECK-LE: sub <4 x i32>
   5210 
   5211   res_vui = vec_vsubuwm(vui, vbi);
   5212 // CHECK: sub <4 x i32>
   5213 // CHECK-LE: sub <4 x i32>
   5214 
   5215   res_vf  = vec_vsubfp(vf, vf);
   5216 // CHECK: fsub <4 x float>
   5217 // CHECK-LE: fsub <4 x float>
   5218 
   5219   /* vec_subc */
   5220   res_vui = vec_subc(vui, vui);
   5221 // CHECK: @llvm.ppc.altivec.vsubcuw
   5222 // CHECK-LE: @llvm.ppc.altivec.vsubcuw
   5223 
   5224   res_vui = vec_vsubcuw(vui, vui);
   5225 // CHECK: @llvm.ppc.altivec.vsubcuw
   5226 // CHECK-LE: @llvm.ppc.altivec.vsubcuw
   5227 
   5228   /* vec_subs */
   5229   res_vsc = vec_subs(vsc, vsc);
   5230 // CHECK: @llvm.ppc.altivec.vsubsbs
   5231 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
   5232 
   5233   res_vsc = vec_subs(vbc, vsc);
   5234 // CHECK: @llvm.ppc.altivec.vsubsbs
   5235 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
   5236 
   5237   res_vsc = vec_subs(vsc, vbc);
   5238 // CHECK: @llvm.ppc.altivec.vsubsbs
   5239 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
   5240 
   5241   res_vuc = vec_subs(vuc, vuc);
   5242 // CHECK: @llvm.ppc.altivec.vsububs
   5243 // CHECK-LE: @llvm.ppc.altivec.vsububs
   5244 
   5245   res_vuc = vec_subs(vbc, vuc);
   5246 // CHECK: @llvm.ppc.altivec.vsububs
   5247 // CHECK-LE: @llvm.ppc.altivec.vsububs
   5248 
   5249   res_vuc = vec_subs(vuc, vbc);
   5250 // CHECK: @llvm.ppc.altivec.vsububs
   5251 // CHECK-LE: @llvm.ppc.altivec.vsububs
   5252 
   5253   res_vs  = vec_subs(vs, vs);
   5254 // CHECK: @llvm.ppc.altivec.vsubshs
   5255 // CHECK-LE: @llvm.ppc.altivec.vsubshs
   5256 
   5257   res_vs  = vec_subs(vbs, vs);
   5258 // CHECK: @llvm.ppc.altivec.vsubshs
   5259 // CHECK-LE: @llvm.ppc.altivec.vsubshs
   5260 
   5261   res_vs  = vec_subs(vs, vbs);
   5262 // CHECK: @llvm.ppc.altivec.vsubshs
   5263 // CHECK-LE: @llvm.ppc.altivec.vsubshs
   5264 
   5265   res_vus = vec_subs(vus, vus);
   5266 // CHECK: @llvm.ppc.altivec.vsubuhs
   5267 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
   5268 
   5269   res_vus = vec_subs(vbs, vus);
   5270 // CHECK: @llvm.ppc.altivec.vsubuhs
   5271 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
   5272 
   5273   res_vus = vec_subs(vus, vbs);
   5274 // CHECK: @llvm.ppc.altivec.vsubuhs
   5275 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
   5276 
   5277   res_vi  = vec_subs(vi, vi);
   5278 // CHECK: @llvm.ppc.altivec.vsubsws
   5279 // CHECK-LE: @llvm.ppc.altivec.vsubsws
   5280 
   5281   res_vi  = vec_subs(vbi, vi);
   5282 // CHECK: @llvm.ppc.altivec.vsubsws
   5283 // CHECK-LE: @llvm.ppc.altivec.vsubsws
   5284 
   5285   res_vi  = vec_subs(vi, vbi);
   5286 // CHECK: @llvm.ppc.altivec.vsubsws
   5287 // CHECK-LE: @llvm.ppc.altivec.vsubsws
   5288 
   5289   res_vui = vec_subs(vui, vui);
   5290 // CHECK: @llvm.ppc.altivec.vsubuws
   5291 // CHECK-LE: @llvm.ppc.altivec.vsubuws
   5292 
   5293   res_vui = vec_subs(vbi, vui);
   5294 // CHECK: @llvm.ppc.altivec.vsubuws
   5295 // CHECK-LE: @llvm.ppc.altivec.vsubuws
   5296 
   5297   res_vui = vec_subs(vui, vbi);
   5298 // CHECK: @llvm.ppc.altivec.vsubuws
   5299 // CHECK-LE: @llvm.ppc.altivec.vsubuws
   5300 
   5301   res_vsc = vec_vsubsbs(vsc, vsc);
   5302 // CHECK: @llvm.ppc.altivec.vsubsbs
   5303 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
   5304 
   5305   res_vsc = vec_vsubsbs(vbc, vsc);
   5306 // CHECK: @llvm.ppc.altivec.vsubsbs
   5307 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
   5308 
   5309   res_vsc = vec_vsubsbs(vsc, vbc);
   5310 // CHECK: @llvm.ppc.altivec.vsubsbs
   5311 // CHECK-LE: @llvm.ppc.altivec.vsubsbs
   5312 
   5313   res_vuc = vec_vsububs(vuc, vuc);
   5314 // CHECK: @llvm.ppc.altivec.vsububs
   5315 // CHECK-LE: @llvm.ppc.altivec.vsububs
   5316 
   5317   res_vuc = vec_vsububs(vbc, vuc);
   5318 // CHECK: @llvm.ppc.altivec.vsububs
   5319 // CHECK-LE: @llvm.ppc.altivec.vsububs
   5320 
   5321   res_vuc = vec_vsububs(vuc, vbc);
   5322 // CHECK: @llvm.ppc.altivec.vsububs
   5323 // CHECK-LE: @llvm.ppc.altivec.vsububs
   5324 
   5325   res_vs  = vec_vsubshs(vs, vs);
   5326 // CHECK: @llvm.ppc.altivec.vsubshs
   5327 // CHECK-LE: @llvm.ppc.altivec.vsubshs
   5328 
   5329   res_vs  = vec_vsubshs(vbs, vs);
   5330 // CHECK: @llvm.ppc.altivec.vsubshs
   5331 // CHECK-LE: @llvm.ppc.altivec.vsubshs
   5332 
   5333   res_vs  = vec_vsubshs(vs, vbs);
   5334 // CHECK: @llvm.ppc.altivec.vsubshs
   5335 // CHECK-LE: @llvm.ppc.altivec.vsubshs
   5336 
   5337   res_vus = vec_vsubuhs(vus, vus);
   5338 // CHECK: @llvm.ppc.altivec.vsubuhs
   5339 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
   5340 
   5341   res_vus = vec_vsubuhs(vbs, vus);
   5342 // CHECK: @llvm.ppc.altivec.vsubuhs
   5343 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
   5344 
   5345   res_vus = vec_vsubuhs(vus, vbs);
   5346 // CHECK: @llvm.ppc.altivec.vsubuhs
   5347 // CHECK-LE: @llvm.ppc.altivec.vsubuhs
   5348 
   5349   res_vi  = vec_vsubsws(vi, vi);
   5350 // CHECK: @llvm.ppc.altivec.vsubsws
   5351 // CHECK-LE: @llvm.ppc.altivec.vsubsws
   5352 
   5353   res_vi  = vec_vsubsws(vbi, vi);
   5354 // CHECK: @llvm.ppc.altivec.vsubsws
   5355 // CHECK-LE: @llvm.ppc.altivec.vsubsws
   5356 
   5357   res_vi  = vec_vsubsws(vi, vbi);
   5358 // CHECK: @llvm.ppc.altivec.vsubsws
   5359 // CHECK-LE: @llvm.ppc.altivec.vsubsws
   5360 
   5361   res_vui = vec_vsubuws(vui, vui);
   5362 // CHECK: @llvm.ppc.altivec.vsubuws
   5363 // CHECK-LE: @llvm.ppc.altivec.vsubuws
   5364 
   5365   res_vui = vec_vsubuws(vbi, vui);
   5366 // CHECK: @llvm.ppc.altivec.vsubuws
   5367 // CHECK-LE: @llvm.ppc.altivec.vsubuws
   5368 
   5369   res_vui = vec_vsubuws(vui, vbi);
   5370 // CHECK: @llvm.ppc.altivec.vsubuws
   5371 // CHECK-LE: @llvm.ppc.altivec.vsubuws
   5372 
   5373   /* vec_sum4s */
   5374   res_vi  = vec_sum4s(vsc, vi);
   5375 // CHECK: @llvm.ppc.altivec.vsum4sbs
   5376 // CHECK-LE: @llvm.ppc.altivec.vsum4sbs
   5377 
   5378   res_vui = vec_sum4s(vuc, vui);
   5379 // CHECK: @llvm.ppc.altivec.vsum4ubs
   5380 // CHECK-LE: @llvm.ppc.altivec.vsum4ubs
   5381 
   5382   res_vi  = vec_sum4s(vs, vi);
   5383 // CHECK: @llvm.ppc.altivec.vsum4shs
   5384 // CHECK-LE: @llvm.ppc.altivec.vsum4shs
   5385 
   5386   res_vi  = vec_vsum4sbs(vsc, vi);
   5387 // CHECK: @llvm.ppc.altivec.vsum4sbs
   5388 // CHECK-LE: @llvm.ppc.altivec.vsum4sbs
   5389 
   5390   res_vui = vec_vsum4ubs(vuc, vui);
   5391 // CHECK: @llvm.ppc.altivec.vsum4ubs
   5392 // CHECK-LE: @llvm.ppc.altivec.vsum4ubs
   5393 
   5394   res_vi  = vec_vsum4shs(vs, vi);
   5395 // CHECK: @llvm.ppc.altivec.vsum4shs
   5396 // CHECK-LE: @llvm.ppc.altivec.vsum4shs
   5397 
   5398   /* vec_sum2s */
   5399   res_vi = vec_sum2s(vi, vi);
   5400 // CHECK: @llvm.ppc.altivec.vsum2sws
   5401 // CHECK-LE: @llvm.ppc.altivec.vperm
   5402 // CHECK-LE: @llvm.ppc.altivec.vsum2sws
   5403 // CHECK-LE: @llvm.ppc.altivec.vperm
   5404 
   5405   res_vi = vec_vsum2sws(vi, vi);
   5406 // CHECK: @llvm.ppc.altivec.vsum2sws
   5407 // CHECK-LE: @llvm.ppc.altivec.vperm
   5408 // CHECK-LE: @llvm.ppc.altivec.vsum2sws
   5409 // CHECK-LE: @llvm.ppc.altivec.vperm
   5410 
   5411   /* vec_sums */
   5412   res_vi = vec_sums(vi, vi);
   5413 // CHECK: @llvm.ppc.altivec.vsumsws
   5414 // CHECK-LE: @llvm.ppc.altivec.vperm
   5415 // CHECK-LE: @llvm.ppc.altivec.vsumsws
   5416 
   5417   res_vi = vec_vsumsws(vi, vi);
   5418 // CHECK: @llvm.ppc.altivec.vsumsws
   5419 // CHECK-LE: @llvm.ppc.altivec.vperm
   5420 // CHECK-LE: @llvm.ppc.altivec.vsumsws
   5421 
   5422   /* vec_trunc */
   5423   res_vf = vec_trunc(vf);
   5424 // CHECK: @llvm.ppc.altivec.vrfiz
   5425 // CHECK-LE: @llvm.ppc.altivec.vrfiz
   5426 
   5427   res_vf = vec_vrfiz(vf);
   5428 // CHECK: @llvm.ppc.altivec.vrfiz
   5429 // CHECK-LE: @llvm.ppc.altivec.vrfiz
   5430 
   5431   /* vec_unpackh */
   5432   res_vs  = vec_unpackh(vsc);
   5433 // CHECK: @llvm.ppc.altivec.vupkhsb
   5434 // CHECK-LE: @llvm.ppc.altivec.vupklsb
   5435 
   5436   res_vbs = vec_unpackh(vbc);
   5437 // CHECK: @llvm.ppc.altivec.vupkhsb
   5438 // CHECK-LE: @llvm.ppc.altivec.vupklsb
   5439 
   5440   res_vi  = vec_unpackh(vs);
   5441 // CHECK: @llvm.ppc.altivec.vupkhsh
   5442 // CHECK-LE: @llvm.ppc.altivec.vupklsh
   5443 
   5444   res_vbi = vec_unpackh(vbs);
   5445 // CHECK: @llvm.ppc.altivec.vupkhsh
   5446 // CHECK-LE: @llvm.ppc.altivec.vupklsh
   5447 
   5448   res_vui = vec_unpackh(vp);
   5449 // CHECK: @llvm.ppc.altivec.vupkhpx
   5450 // CHECK-LE: @llvm.ppc.altivec.vupklpx
   5451 
   5452   res_vs  = vec_vupkhsb(vsc);
   5453 // CHECK: @llvm.ppc.altivec.vupkhsb
   5454 // CHECK-LE: @llvm.ppc.altivec.vupklsb
   5455 
   5456   res_vbs = vec_vupkhsb(vbc);
   5457 // CHECK: @llvm.ppc.altivec.vupkhsb
   5458 // CHECK-LE: @llvm.ppc.altivec.vupklsb
   5459 
   5460   res_vi  = vec_vupkhsh(vs);
   5461 // CHECK: @llvm.ppc.altivec.vupkhsh
   5462 // CHECK-LE: @llvm.ppc.altivec.vupklsh
   5463 
   5464   res_vbi = vec_vupkhsh(vbs);
   5465 // CHECK: @llvm.ppc.altivec.vupkhsh
   5466 // CHECK-LE: @llvm.ppc.altivec.vupklsh
   5467 
   5468   res_vui = vec_vupkhsh(vp);
   5469 // CHECK: @llvm.ppc.altivec.vupkhpx
   5470 // CHECK-LE: @llvm.ppc.altivec.vupklpx
   5471 
   5472   /* vec_unpackl */
   5473   res_vs  = vec_unpackl(vsc);
   5474 // CHECK: @llvm.ppc.altivec.vupklsb
   5475 // CHECK-LE: @llvm.ppc.altivec.vupkhsb
   5476 
   5477   res_vbs = vec_unpackl(vbc);
   5478 // CHECK: @llvm.ppc.altivec.vupklsb
   5479 // CHECK-LE: @llvm.ppc.altivec.vupkhsb
   5480 
   5481   res_vi  = vec_unpackl(vs);
   5482 // CHECK: @llvm.ppc.altivec.vupklsh
   5483 // CHECK-LE: @llvm.ppc.altivec.vupkhsh
   5484 
   5485   res_vbi = vec_unpackl(vbs);
   5486 // CHECK: @llvm.ppc.altivec.vupklsh
   5487 // CHECK-LE: @llvm.ppc.altivec.vupkhsh
   5488 
   5489   res_vui = vec_unpackl(vp);
   5490 // CHECK: @llvm.ppc.altivec.vupklpx
   5491 // CHECK-LE: @llvm.ppc.altivec.vupkhpx
   5492 
   5493   res_vs  = vec_vupklsb(vsc);
   5494 // CHECK: @llvm.ppc.altivec.vupklsb
   5495 // CHECK-LE: @llvm.ppc.altivec.vupkhsb
   5496 
   5497   res_vbs = vec_vupklsb(vbc);
   5498 // CHECK: @llvm.ppc.altivec.vupklsb
   5499 // CHECK-LE: @llvm.ppc.altivec.vupkhsb
   5500 
   5501   res_vi  = vec_vupklsh(vs);
   5502 // CHECK: @llvm.ppc.altivec.vupklsh
   5503 // CHECK-LE: @llvm.ppc.altivec.vupkhsh
   5504 
   5505   res_vbi = vec_vupklsh(vbs);
   5506 // CHECK: @llvm.ppc.altivec.vupklsh
   5507 // CHECK-LE: @llvm.ppc.altivec.vupkhsh
   5508 
   5509   res_vui = vec_vupklsh(vp);
   5510 // CHECK: @llvm.ppc.altivec.vupklpx
   5511 // CHECK-LE: @llvm.ppc.altivec.vupkhpx
   5512 
   5513   /* vec_xor */
   5514   res_vsc = vec_xor(vsc, vsc);
   5515 // CHECK: xor <16 x i8>
   5516 // CHECK-LE: xor <16 x i8>
   5517 
   5518   res_vsc = vec_xor(vbc, vsc);
   5519 // CHECK: xor <16 x i8>
   5520 // CHECK-LE: xor <16 x i8>
   5521 
   5522   res_vsc = vec_xor(vsc, vbc);
   5523 // CHECK: xor <16 x i8>
   5524 // CHECK-LE: xor <16 x i8>
   5525 
   5526   res_vuc = vec_xor(vuc, vuc);
   5527 // CHECK: xor <16 x i8>
   5528 // CHECK-LE: xor <16 x i8>
   5529 
   5530   res_vuc = vec_xor(vbc, vuc);
   5531 // CHECK: xor <16 x i8>
   5532 // CHECK-LE: xor <16 x i8>
   5533 
   5534   res_vuc = vec_xor(vuc, vbc);
   5535 // CHECK: xor <16 x i8>
   5536 // CHECK-LE: xor <16 x i8>
   5537 
   5538   res_vbc = vec_xor(vbc, vbc);
   5539 // CHECK: xor <16 x i8>
   5540 // CHECK-LE: xor <16 x i8>
   5541 
   5542   res_vs  = vec_xor(vs, vs);
   5543 // CHECK: xor <8 x i16>
   5544 // CHECK-LE: xor <8 x i16>
   5545 
   5546   res_vs  = vec_xor(vbs, vs);
   5547 // CHECK: xor <8 x i16>
   5548 // CHECK-LE: xor <8 x i16>
   5549 
   5550   res_vs  = vec_xor(vs, vbs);
   5551 // CHECK: xor <8 x i16>
   5552 // CHECK-LE: xor <8 x i16>
   5553 
   5554   res_vus = vec_xor(vus, vus);
   5555 // CHECK: xor <8 x i16>
   5556 // CHECK-LE: xor <8 x i16>
   5557 
   5558   res_vus = vec_xor(vbs, vus);
   5559 // CHECK: xor <8 x i16>
   5560 // CHECK-LE: xor <8 x i16>
   5561 
   5562   res_vus = vec_xor(vus, vbs);
   5563 // CHECK: xor <8 x i16>
   5564 // CHECK-LE: xor <8 x i16>
   5565 
   5566   res_vbs = vec_xor(vbs, vbs);
   5567 // CHECK: xor <8 x i16>
   5568 // CHECK-LE: xor <8 x i16>
   5569 
   5570   res_vi  = vec_xor(vi, vi);
   5571 // CHECK: xor <4 x i32>
   5572 // CHECK-LE: xor <4 x i32>
   5573 
   5574   res_vi  = vec_xor(vbi, vi);
   5575 // CHECK: xor <4 x i32>
   5576 // CHECK-LE: xor <4 x i32>
   5577 
   5578   res_vi  = vec_xor(vi, vbi);
   5579 // CHECK: xor <4 x i32>
   5580 // CHECK-LE: xor <4 x i32>
   5581 
   5582   res_vui = vec_xor(vui, vui);
   5583 // CHECK: xor <4 x i32>
   5584 // CHECK-LE: xor <4 x i32>
   5585 
   5586   res_vui = vec_xor(vbi, vui);
   5587 // CHECK: xor <4 x i32>
   5588 // CHECK-LE: xor <4 x i32>
   5589 
   5590   res_vui = vec_xor(vui, vbi);
   5591 // CHECK: xor <4 x i32>
   5592 // CHECK-LE: xor <4 x i32>
   5593 
   5594   res_vbi = vec_xor(vbi, vbi);
   5595 // CHECK: xor <4 x i32>
   5596 // CHECK-LE: xor <4 x i32>
   5597 
   5598   res_vf  = vec_xor(vf, vf);
   5599 // CHECK: xor <4 x i32>
   5600 // CHECK-LE: xor <4 x i32>
   5601 
   5602   res_vf  = vec_xor(vbi, vf);
   5603 // CHECK: xor <4 x i32>
   5604 // CHECK-LE: xor <4 x i32>
   5605 
   5606   res_vf  = vec_xor(vf, vbi);
   5607 // CHECK: xor <4 x i32>
   5608 // CHECK-LE: xor <4 x i32>
   5609 
   5610   res_vsc = vec_vxor(vsc, vsc);
   5611 // CHECK: xor <16 x i8>
   5612 // CHECK-LE: xor <16 x i8>
   5613 
   5614   res_vsc = vec_vxor(vbc, vsc);
   5615 // CHECK: xor <16 x i8>
   5616 // CHECK-LE: xor <16 x i8>
   5617 
   5618   res_vsc = vec_vxor(vsc, vbc);
   5619 // CHECK: xor <16 x i8>
   5620 // CHECK-LE: xor <16 x i8>
   5621 
   5622   res_vuc = vec_vxor(vuc, vuc);
   5623 // CHECK: xor <16 x i8>
   5624 // CHECK-LE: xor <16 x i8>
   5625 
   5626   res_vuc = vec_vxor(vbc, vuc);
   5627 // CHECK: xor <16 x i8>
   5628 // CHECK-LE: xor <16 x i8>
   5629 
   5630   res_vuc = vec_vxor(vuc, vbc);
   5631 // CHECK: xor <16 x i8>
   5632 // CHECK-LE: xor <16 x i8>
   5633 
   5634   res_vbc = vec_vxor(vbc, vbc);
   5635 // CHECK: xor <16 x i8>
   5636 // CHECK-LE: xor <16 x i8>
   5637 
   5638   res_vs  = vec_vxor(vs, vs);
   5639 // CHECK: xor <8 x i16>
   5640 // CHECK-LE: xor <8 x i16>
   5641 
   5642   res_vs  = vec_vxor(vbs, vs);
   5643 // CHECK: xor <8 x i16>
   5644 // CHECK-LE: xor <8 x i16>
   5645 
   5646   res_vs  = vec_vxor(vs, vbs);
   5647 // CHECK: xor <8 x i16>
   5648 // CHECK-LE: xor <8 x i16>
   5649 
   5650   res_vus = vec_vxor(vus, vus);
   5651 // CHECK: xor <8 x i16>
   5652 // CHECK-LE: xor <8 x i16>
   5653 
   5654   res_vus = vec_vxor(vbs, vus);
   5655 // CHECK: xor <8 x i16>
   5656 // CHECK-LE: xor <8 x i16>
   5657 
   5658   res_vus = vec_vxor(vus, vbs);
   5659 // CHECK: xor <8 x i16>
   5660 // CHECK-LE: xor <8 x i16>
   5661 
   5662   res_vbs = vec_vxor(vbs, vbs);
   5663 // CHECK: xor <8 x i16>
   5664 // CHECK-LE: xor <8 x i16>
   5665 
   5666   res_vi  = vec_vxor(vi, vi);
   5667 // CHECK: xor <4 x i32>
   5668 // CHECK-LE: xor <4 x i32>
   5669 
   5670   res_vi  = vec_vxor(vbi, vi);
   5671 // CHECK: xor <4 x i32>
   5672 // CHECK-LE: xor <4 x i32>
   5673 
   5674   res_vi  = vec_vxor(vi, vbi);
   5675 // CHECK: xor <4 x i32>
   5676 // CHECK-LE: xor <4 x i32>
   5677 
   5678   res_vui = vec_vxor(vui, vui);
   5679 // CHECK: xor <4 x i32>
   5680 // CHECK-LE: xor <4 x i32>
   5681 
   5682   res_vui = vec_vxor(vbi, vui);
   5683 // CHECK: xor <4 x i32>
   5684 // CHECK-LE: xor <4 x i32>
   5685 
   5686   res_vui = vec_vxor(vui, vbi);
   5687 // CHECK: xor <4 x i32>
   5688 // CHECK-LE: xor <4 x i32>
   5689 
   5690   res_vbi = vec_vxor(vbi, vbi);
   5691 // CHECK: xor <4 x i32>
   5692 // CHECK-LE: xor <4 x i32>
   5693 
   5694   res_vf  = vec_vxor(vf, vf);
   5695 // CHECK: xor <4 x i32>
   5696 // CHECK-LE: xor <4 x i32>
   5697 
   5698   res_vf  = vec_vxor(vbi, vf);
   5699 // CHECK: xor <4 x i32>
   5700 // CHECK-LE: xor <4 x i32>
   5701 
   5702   res_vf  = vec_vxor(vf, vbi);
   5703 // CHECK: xor <4 x i32>
   5704 // CHECK-LE: xor <4 x i32>
   5705 
   5706   /* ------------------------------ extensions -------------------------------------- */
   5707 
   5708   /* vec_extract */
   5709   res_sc = vec_extract(vsc, param_i);
   5710 // CHECK: extractelement <16 x i8>
   5711 // CHECK-LE: extractelement <16 x i8>
   5712 
   5713   res_uc = vec_extract(vuc, param_i);
   5714 // CHECK: extractelement <16 x i8>
   5715 // CHECK-LE: extractelement <16 x i8>
   5716 
   5717   res_uc = vec_extract(vbc, param_i);
   5718 // CHECK: extractelement <16 x i8>
   5719 // CHECK-LE: extractelement <16 x i8>
   5720 
   5721   res_s  = vec_extract(vs, param_i);
   5722 // CHECK: extractelement <8 x i16>
   5723 // CHECK-LE: extractelement <8 x i16>
   5724 
   5725   res_us = vec_extract(vus, param_i);
   5726 // CHECK: extractelement <8 x i16>
   5727 // CHECK-LE: extractelement <8 x i16>
   5728 
   5729   res_us = vec_extract(vbs, param_i);
   5730 // CHECK: extractelement <8 x i16>
   5731 // CHECK-LE: extractelement <8 x i16>
   5732 
   5733   res_i  = vec_extract(vi, param_i);
   5734 // CHECK: extractelement <4 x i32>
   5735 // CHECK-LE: extractelement <4 x i32>
   5736 
   5737   res_ui = vec_extract(vui, param_i);
   5738 // CHECK: extractelement <4 x i32>
   5739 // CHECK-LE: extractelement <4 x i32>
   5740 
   5741   res_ui = vec_extract(vbi, param_i);
   5742 // CHECK: extractelement <4 x i32>
   5743 // CHECK-LE: extractelement <4 x i32>
   5744 
   5745   res_f  = vec_extract(vf, param_i);
   5746 // CHECK: extractelement <4 x float>
   5747 // CHECK-LE: extractelement <4 x float>
   5748 
   5749   /* vec_insert */
   5750   res_vsc = vec_insert(param_sc, vsc, param_i);
   5751 // CHECK: insertelement <16 x i8>
   5752 // CHECK-LE: insertelement <16 x i8>
   5753 
   5754   res_vuc = vec_insert(param_uc, vuc, param_i);
   5755 // CHECK: insertelement <16 x i8>
   5756 // CHECK-LE: insertelement <16 x i8>
   5757 
   5758   res_vbc = vec_insert(param_uc, vbc, param_i);
   5759 // CHECK: insertelement <16 x i8>
   5760 // CHECK-LE: insertelement <16 x i8>
   5761 
   5762   res_vs  = vec_insert(param_s, vs, param_i);
   5763 // CHECK: insertelement <8 x i16>
   5764 // CHECK-LE: insertelement <8 x i16>
   5765 
   5766   res_vus = vec_insert(param_us, vus, param_i);
   5767 // CHECK: insertelement <8 x i16>
   5768 // CHECK-LE: insertelement <8 x i16>
   5769 
   5770   res_vbs = vec_insert(param_us, vbs, param_i);
   5771 // CHECK: insertelement <8 x i16>
   5772 // CHECK-LE: insertelement <8 x i16>
   5773 
   5774   res_vi  = vec_insert(param_i, vi, param_i);
   5775 // CHECK: insertelement <4 x i32>
   5776 // CHECK-LE: insertelement <4 x i32>
   5777 
   5778   res_vui = vec_insert(param_ui, vui, param_i);
   5779 // CHECK: insertelement <4 x i32>
   5780 // CHECK-LE: insertelement <4 x i32>
   5781 
   5782   res_vbi = vec_insert(param_ui, vbi, param_i);
   5783 // CHECK: insertelement <4 x i32>
   5784 // CHECK-LE: insertelement <4 x i32>
   5785 
   5786   res_vf  = vec_insert(param_f, vf, param_i);
   5787 // CHECK: insertelement <4 x float>
   5788 // CHECK-LE: insertelement <4 x float>
   5789 
   5790   /* vec_lvlx */
   5791   res_vsc = vec_lvlx(0, &param_sc);
   5792 // CHECK: @llvm.ppc.altivec.lvx
   5793 // CHECK: @llvm.ppc.altivec.lvsl
   5794 // CHECK: store <16 x i8> zeroinitializer
   5795 // CHECK: @llvm.ppc.altivec.vperm
   5796 // CHECK-LE: @llvm.ppc.altivec.lvx
   5797 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5798 // CHECK-LE: store <16 x i8> zeroinitializer
   5799 // CHECK-LE: @llvm.ppc.altivec.vperm
   5800 
   5801   res_vsc = vec_lvlx(0, &vsc);
   5802 // CHECK: @llvm.ppc.altivec.lvx
   5803 // CHECK: @llvm.ppc.altivec.lvsl
   5804 // CHECK: store <16 x i8> zeroinitializer
   5805 // CHECK: @llvm.ppc.altivec.vperm
   5806 // CHECK-LE: @llvm.ppc.altivec.lvx
   5807 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5808 // CHECK-LE: store <16 x i8> zeroinitializer
   5809 // CHECK-LE: @llvm.ppc.altivec.vperm
   5810 
   5811   res_vuc = vec_lvlx(0, &param_uc);
   5812 // CHECK: @llvm.ppc.altivec.lvx
   5813 // CHECK: @llvm.ppc.altivec.lvsl
   5814 // CHECK: store <16 x i8> zeroinitializer
   5815 // CHECK: @llvm.ppc.altivec.vperm
   5816 // CHECK-LE: @llvm.ppc.altivec.lvx
   5817 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5818 // CHECK-LE: store <16 x i8> zeroinitializer
   5819 // CHECK-LE: @llvm.ppc.altivec.vperm
   5820 
   5821   res_vuc = vec_lvlx(0, &vuc);
   5822 // CHECK: @llvm.ppc.altivec.lvx
   5823 // CHECK: @llvm.ppc.altivec.lvsl
   5824 // CHECK: store <16 x i8> zeroinitializer
   5825 // CHECK: @llvm.ppc.altivec.vperm
   5826 // CHECK-LE: @llvm.ppc.altivec.lvx
   5827 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5828 // CHECK-LE: store <16 x i8> zeroinitializer
   5829 // CHECK-LE: @llvm.ppc.altivec.vperm
   5830 
   5831   res_vbc = vec_lvlx(0, &vbc);
   5832 // CHECK: @llvm.ppc.altivec.lvx
   5833 // CHECK: store <16 x i8> zeroinitializer
   5834 // CHECK: @llvm.ppc.altivec.lvsl
   5835 // CHECK: @llvm.ppc.altivec.vperm
   5836 // CHECK-LE: @llvm.ppc.altivec.lvx
   5837 // CHECK-LE: store <16 x i8> zeroinitializer
   5838 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5839 // CHECK-LE: @llvm.ppc.altivec.vperm
   5840 
   5841   res_vs  = vec_lvlx(0, &param_s);
   5842 // CHECK: @llvm.ppc.altivec.lvx
   5843 // CHECK: @llvm.ppc.altivec.lvsl
   5844 // CHECK: store <8 x i16> zeroinitializer
   5845 // CHECK: @llvm.ppc.altivec.vperm
   5846 // CHECK-LE: @llvm.ppc.altivec.lvx
   5847 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5848 // CHECK-LE: store <8 x i16> zeroinitializer
   5849 // CHECK-LE: @llvm.ppc.altivec.vperm
   5850 
   5851   res_vs  = vec_lvlx(0, &vs);
   5852 // CHECK: @llvm.ppc.altivec.lvx
   5853 // CHECK: @llvm.ppc.altivec.lvsl
   5854 // CHECK: store <8 x i16> zeroinitializer
   5855 // CHECK: @llvm.ppc.altivec.vperm
   5856 // CHECK-LE: @llvm.ppc.altivec.lvx
   5857 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5858 // CHECK-LE: store <8 x i16> zeroinitializer
   5859 // CHECK-LE: @llvm.ppc.altivec.vperm
   5860 
   5861   res_vus = vec_lvlx(0, &param_us);
   5862 // CHECK: @llvm.ppc.altivec.lvx
   5863 // CHECK: @llvm.ppc.altivec.lvsl
   5864 // CHECK: store <8 x i16> zeroinitializer
   5865 // CHECK: @llvm.ppc.altivec.vperm
   5866 // CHECK-LE: @llvm.ppc.altivec.lvx
   5867 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5868 // CHECK-LE: store <8 x i16> zeroinitializer
   5869 // CHECK-LE: @llvm.ppc.altivec.vperm
   5870 
   5871   res_vus = vec_lvlx(0, &vus);
   5872 // CHECK: @llvm.ppc.altivec.lvx
   5873 // CHECK: @llvm.ppc.altivec.lvsl
   5874 // CHECK: store <8 x i16> zeroinitializer
   5875 // CHECK: @llvm.ppc.altivec.vperm
   5876 // CHECK-LE: @llvm.ppc.altivec.lvx
   5877 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5878 // CHECK-LE: store <8 x i16> zeroinitializer
   5879 // CHECK-LE: @llvm.ppc.altivec.vperm
   5880 
   5881   res_vbs = vec_lvlx(0, &vbs);
   5882 // CHECK: @llvm.ppc.altivec.lvx
   5883 // CHECK: store <8 x i16> zeroinitializer
   5884 // CHECK: @llvm.ppc.altivec.lvsl
   5885 // CHECK: @llvm.ppc.altivec.vperm
   5886 // CHECK-LE: @llvm.ppc.altivec.lvx
   5887 // CHECK-LE: store <8 x i16> zeroinitializer
   5888 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5889 // CHECK-LE: @llvm.ppc.altivec.vperm
   5890 
   5891   res_vp  = vec_lvlx(0, &vp);
   5892 // CHECK: @llvm.ppc.altivec.lvx
   5893 // CHECK: store <8 x i16> zeroinitializer
   5894 // CHECK: @llvm.ppc.altivec.lvsl
   5895 // CHECK: @llvm.ppc.altivec.vperm
   5896 // CHECK-LE: @llvm.ppc.altivec.lvx
   5897 // CHECK-LE: store <8 x i16> zeroinitializer
   5898 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5899 // CHECK-LE: @llvm.ppc.altivec.vperm
   5900 
   5901   res_vi  = vec_lvlx(0, &param_i);
   5902 // CHECK: @llvm.ppc.altivec.lvx
   5903 // CHECK: @llvm.ppc.altivec.lvsl
   5904 // CHECK: store <4 x i32> zeroinitializer
   5905 // CHECK: @llvm.ppc.altivec.vperm
   5906 // CHECK-LE: @llvm.ppc.altivec.lvx
   5907 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5908 // CHECK-LE: store <4 x i32> zeroinitializer
   5909 // CHECK-LE: @llvm.ppc.altivec.vperm
   5910 
   5911   res_vi  = vec_lvlx(0, &vi);
   5912 // CHECK: @llvm.ppc.altivec.lvx
   5913 // CHECK: @llvm.ppc.altivec.lvsl
   5914 // CHECK: store <4 x i32> zeroinitializer
   5915 // CHECK: @llvm.ppc.altivec.vperm
   5916 // CHECK-LE: @llvm.ppc.altivec.lvx
   5917 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5918 // CHECK-LE: store <4 x i32> zeroinitializer
   5919 // CHECK-LE: @llvm.ppc.altivec.vperm
   5920 
   5921   res_vui = vec_lvlx(0, &param_ui);
   5922 // CHECK: @llvm.ppc.altivec.lvx
   5923 // CHECK: @llvm.ppc.altivec.lvsl
   5924 // CHECK: store <4 x i32> zeroinitializer
   5925 // CHECK: @llvm.ppc.altivec.vperm
   5926 // CHECK-LE: @llvm.ppc.altivec.lvx
   5927 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5928 // CHECK-LE: store <4 x i32> zeroinitializer
   5929 // CHECK-LE: @llvm.ppc.altivec.vperm
   5930 
   5931   res_vui = vec_lvlx(0, &vui);
   5932 // CHECK: @llvm.ppc.altivec.lvx
   5933 // CHECK: @llvm.ppc.altivec.lvsl
   5934 // CHECK: store <4 x i32> zeroinitializer
   5935 // CHECK: @llvm.ppc.altivec.vperm
   5936 // CHECK-LE: @llvm.ppc.altivec.lvx
   5937 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5938 // CHECK-LE: store <4 x i32> zeroinitializer
   5939 // CHECK-LE: @llvm.ppc.altivec.vperm
   5940 
   5941   res_vbi = vec_lvlx(0, &vbi);
   5942 // CHECK: @llvm.ppc.altivec.lvx
   5943 // CHECK: store <4 x i32> zeroinitializer
   5944 // CHECK: @llvm.ppc.altivec.lvsl
   5945 // CHECK: @llvm.ppc.altivec.vperm
   5946 // CHECK-LE: @llvm.ppc.altivec.lvx
   5947 // CHECK-LE: store <4 x i32> zeroinitializer
   5948 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5949 // CHECK-LE: @llvm.ppc.altivec.vperm
   5950 
   5951   res_vf  = vec_lvlx(0, &vf);
   5952 // CHECK: @llvm.ppc.altivec.lvx
   5953 // CHECK: @llvm.ppc.altivec.lvsl
   5954 // CHECK: store <4 x float> zeroinitializer
   5955 // CHECK: @llvm.ppc.altivec.vperm
   5956 // CHECK-LE: @llvm.ppc.altivec.lvx
   5957 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5958 // CHECK-LE: store <4 x float> zeroinitializer
   5959 // CHECK-LE: @llvm.ppc.altivec.vperm
   5960 
   5961   /* vec_lvlxl */
   5962   res_vsc = vec_lvlxl(0, &param_sc);
   5963 // CHECK: @llvm.ppc.altivec.lvxl
   5964 // CHECK: @llvm.ppc.altivec.lvsl
   5965 // CHECK: store <16 x i8> zeroinitializer
   5966 // CHECK: @llvm.ppc.altivec.vperm
   5967 // CHECK-LE: @llvm.ppc.altivec.lvxl
   5968 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5969 // CHECK-LE: store <16 x i8> zeroinitializer
   5970 // CHECK-LE: @llvm.ppc.altivec.vperm
   5971 
   5972   res_vsc = vec_lvlxl(0, &vsc);
   5973 // CHECK: @llvm.ppc.altivec.lvxl
   5974 // CHECK: @llvm.ppc.altivec.lvsl
   5975 // CHECK: store <16 x i8> zeroinitializer
   5976 // CHECK: @llvm.ppc.altivec.vperm
   5977 // CHECK-LE: @llvm.ppc.altivec.lvxl
   5978 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5979 // CHECK-LE: store <16 x i8> zeroinitializer
   5980 // CHECK-LE: @llvm.ppc.altivec.vperm
   5981 
   5982   res_vuc = vec_lvlxl(0, &param_uc);
   5983 // CHECK: @llvm.ppc.altivec.lvxl
   5984 // CHECK: @llvm.ppc.altivec.lvsl
   5985 // CHECK: store <16 x i8> zeroinitializer
   5986 // CHECK: @llvm.ppc.altivec.vperm
   5987 // CHECK-LE: @llvm.ppc.altivec.lvxl
   5988 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5989 // CHECK-LE: store <16 x i8> zeroinitializer
   5990 // CHECK-LE: @llvm.ppc.altivec.vperm
   5991 
   5992   res_vuc = vec_lvlxl(0, &vuc);
   5993 // CHECK: @llvm.ppc.altivec.lvxl
   5994 // CHECK: @llvm.ppc.altivec.lvsl
   5995 // CHECK: store <16 x i8> zeroinitializer
   5996 // CHECK: @llvm.ppc.altivec.vperm
   5997 // CHECK-LE: @llvm.ppc.altivec.lvxl
   5998 // CHECK-LE: @llvm.ppc.altivec.lvsl
   5999 // CHECK-LE: store <16 x i8> zeroinitializer
   6000 // CHECK-LE: @llvm.ppc.altivec.vperm
   6001 
   6002   res_vbc = vec_lvlxl(0, &vbc);
   6003 // CHECK: @llvm.ppc.altivec.lvxl
   6004 // CHECK: store <16 x i8> zeroinitializer
   6005 // CHECK: @llvm.ppc.altivec.lvsl
   6006 // CHECK: @llvm.ppc.altivec.vperm
   6007 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6008 // CHECK-LE: store <16 x i8> zeroinitializer
   6009 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6010 // CHECK-LE: @llvm.ppc.altivec.vperm
   6011 
   6012   res_vs  = vec_lvlxl(0, &param_s);
   6013 // CHECK: @llvm.ppc.altivec.lvxl
   6014 // CHECK: @llvm.ppc.altivec.lvsl
   6015 // CHECK: store <8 x i16> zeroinitializer
   6016 // CHECK: @llvm.ppc.altivec.vperm
   6017 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6018 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6019 // CHECK-LE: store <8 x i16> zeroinitializer
   6020 // CHECK-LE: @llvm.ppc.altivec.vperm
   6021 
   6022   res_vs  = vec_lvlxl(0, &vs);
   6023 // CHECK: @llvm.ppc.altivec.lvxl
   6024 // CHECK: @llvm.ppc.altivec.lvsl
   6025 // CHECK: store <8 x i16> zeroinitializer
   6026 // CHECK: @llvm.ppc.altivec.vperm
   6027 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6028 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6029 // CHECK-LE: store <8 x i16> zeroinitializer
   6030 // CHECK-LE: @llvm.ppc.altivec.vperm
   6031 
   6032   res_vus = vec_lvlxl(0, &param_us);
   6033 // CHECK: @llvm.ppc.altivec.lvxl
   6034 // CHECK: @llvm.ppc.altivec.lvsl
   6035 // CHECK: store <8 x i16> zeroinitializer
   6036 // CHECK: @llvm.ppc.altivec.vperm
   6037 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6038 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6039 // CHECK-LE: store <8 x i16> zeroinitializer
   6040 // CHECK-LE: @llvm.ppc.altivec.vperm
   6041 
   6042   res_vus = vec_lvlxl(0, &vus);
   6043 // CHECK: @llvm.ppc.altivec.lvxl
   6044 // CHECK: @llvm.ppc.altivec.lvsl
   6045 // CHECK: store <8 x i16> zeroinitializer
   6046 // CHECK: @llvm.ppc.altivec.vperm
   6047 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6048 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6049 // CHECK-LE: store <8 x i16> zeroinitializer
   6050 // CHECK-LE: @llvm.ppc.altivec.vperm
   6051 
   6052   res_vbs = vec_lvlxl(0, &vbs);
   6053 // CHECK: @llvm.ppc.altivec.lvxl
   6054 // CHECK: store <8 x i16> zeroinitializer
   6055 // CHECK: @llvm.ppc.altivec.lvsl
   6056 // CHECK: @llvm.ppc.altivec.vperm
   6057 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6058 // CHECK-LE: store <8 x i16> zeroinitializer
   6059 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6060 // CHECK-LE: @llvm.ppc.altivec.vperm
   6061 
   6062   res_vp  = vec_lvlxl(0, &vp);
   6063 // CHECK: @llvm.ppc.altivec.lvxl
   6064 // CHECK: store <8 x i16> zeroinitializer
   6065 // CHECK: @llvm.ppc.altivec.lvsl
   6066 // CHECK: @llvm.ppc.altivec.vperm
   6067 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6068 // CHECK-LE: store <8 x i16> zeroinitializer
   6069 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6070 // CHECK-LE: @llvm.ppc.altivec.vperm
   6071 
   6072   res_vi  = vec_lvlxl(0, &param_i);
   6073 // CHECK: @llvm.ppc.altivec.lvxl
   6074 // CHECK: @llvm.ppc.altivec.lvsl
   6075 // CHECK: store <4 x i32> zeroinitializer
   6076 // CHECK: @llvm.ppc.altivec.vperm
   6077 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6078 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6079 // CHECK-LE: store <4 x i32> zeroinitializer
   6080 // CHECK-LE: @llvm.ppc.altivec.vperm
   6081 
   6082   res_vi  = vec_lvlxl(0, &vi);
   6083 // CHECK: @llvm.ppc.altivec.lvxl
   6084 // CHECK: @llvm.ppc.altivec.lvsl
   6085 // CHECK: store <4 x i32> zeroinitializer
   6086 // CHECK: @llvm.ppc.altivec.vperm
   6087 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6088 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6089 // CHECK-LE: store <4 x i32> zeroinitializer
   6090 // CHECK-LE: @llvm.ppc.altivec.vperm
   6091 
   6092   res_vui = vec_lvlxl(0, &param_ui);
   6093 // CHECK: @llvm.ppc.altivec.lvxl
   6094 // CHECK: @llvm.ppc.altivec.lvsl
   6095 // CHECK: store <4 x i32> zeroinitializer
   6096 // CHECK: @llvm.ppc.altivec.vperm
   6097 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6098 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6099 // CHECK-LE: store <4 x i32> zeroinitializer
   6100 // CHECK-LE: @llvm.ppc.altivec.vperm
   6101 
   6102   res_vui = vec_lvlxl(0, &vui);
   6103 // CHECK: @llvm.ppc.altivec.lvxl
   6104 // CHECK: @llvm.ppc.altivec.lvsl
   6105 // CHECK: store <4 x i32> zeroinitializer
   6106 // CHECK: @llvm.ppc.altivec.vperm
   6107 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6108 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6109 // CHECK-LE: store <4 x i32> zeroinitializer
   6110 // CHECK-LE: @llvm.ppc.altivec.vperm
   6111 
   6112   res_vbi = vec_lvlxl(0, &vbi);
   6113 // CHECK: @llvm.ppc.altivec.lvxl
   6114 // CHECK: store <4 x i32> zeroinitializer
   6115 // CHECK: @llvm.ppc.altivec.lvsl
   6116 // CHECK: @llvm.ppc.altivec.vperm
   6117 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6118 // CHECK-LE: store <4 x i32> zeroinitializer
   6119 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6120 // CHECK-LE: @llvm.ppc.altivec.vperm
   6121 
   6122   res_vf  = vec_lvlxl(0, &vf);
   6123 // CHECK: @llvm.ppc.altivec.lvxl
   6124 // CHECK: @llvm.ppc.altivec.lvsl
   6125 // CHECK: store <4 x float> zeroinitializer
   6126 // CHECK: @llvm.ppc.altivec.vperm
   6127 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6128 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6129 // CHECK-LE: store <4 x float> zeroinitializer
   6130 // CHECK-LE: @llvm.ppc.altivec.vperm
   6131 
   6132   /* vec_lvrx */
   6133   res_vsc = vec_lvrx(0, &param_sc);
   6134 // CHECK: @llvm.ppc.altivec.lvx
   6135 // CHECK: @llvm.ppc.altivec.lvsl
   6136 // CHECK: store <16 x i8> zeroinitializer
   6137 // CHECK: @llvm.ppc.altivec.vperm
   6138 // CHECK-LE: @llvm.ppc.altivec.lvx
   6139 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6140 // CHECK-LE: store <16 x i8> zeroinitializer
   6141 // CHECK-LE: @llvm.ppc.altivec.vperm
   6142 
   6143   res_vsc = vec_lvrx(0, &vsc);
   6144 // CHECK: @llvm.ppc.altivec.lvx
   6145 // CHECK: @llvm.ppc.altivec.lvsl
   6146 // CHECK: store <16 x i8> zeroinitializer
   6147 // CHECK: @llvm.ppc.altivec.vperm
   6148 // CHECK-LE: @llvm.ppc.altivec.lvx
   6149 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6150 // CHECK-LE: store <16 x i8> zeroinitializer
   6151 // CHECK-LE: @llvm.ppc.altivec.vperm
   6152 
   6153   res_vuc = vec_lvrx(0, &param_uc);
   6154 // CHECK: @llvm.ppc.altivec.lvx
   6155 // CHECK: @llvm.ppc.altivec.lvsl
   6156 // CHECK: store <16 x i8> zeroinitializer
   6157 // CHECK: @llvm.ppc.altivec.vperm
   6158 // CHECK-LE: @llvm.ppc.altivec.lvx
   6159 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6160 // CHECK-LE: store <16 x i8> zeroinitializer
   6161 // CHECK-LE: @llvm.ppc.altivec.vperm
   6162 
   6163   res_vuc = vec_lvrx(0, &vuc);
   6164 // CHECK: @llvm.ppc.altivec.lvx
   6165 // CHECK: @llvm.ppc.altivec.lvsl
   6166 // CHECK: store <16 x i8> zeroinitializer
   6167 // CHECK: @llvm.ppc.altivec.vperm
   6168 // CHECK-LE: @llvm.ppc.altivec.lvx
   6169 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6170 // CHECK-LE: store <16 x i8> zeroinitializer
   6171 // CHECK-LE: @llvm.ppc.altivec.vperm
   6172 
   6173   res_vbc = vec_lvrx(0, &vbc);
   6174 // CHECK: store <16 x i8> zeroinitializer
   6175 // CHECK: @llvm.ppc.altivec.lvx
   6176 // CHECK: @llvm.ppc.altivec.lvsl
   6177 // CHECK: @llvm.ppc.altivec.vperm
   6178 // CHECK-LE: store <16 x i8> zeroinitializer
   6179 // CHECK-LE: @llvm.ppc.altivec.lvx
   6180 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6181 // CHECK-LE: @llvm.ppc.altivec.vperm
   6182 
   6183   res_vs  = vec_lvrx(0, &param_s);
   6184 // CHECK: @llvm.ppc.altivec.lvx
   6185 // CHECK: @llvm.ppc.altivec.lvsl
   6186 // CHECK: store <8 x i16> zeroinitializer
   6187 // CHECK: @llvm.ppc.altivec.vperm
   6188 // CHECK-LE: @llvm.ppc.altivec.lvx
   6189 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6190 // CHECK-LE: store <8 x i16> zeroinitializer
   6191 // CHECK-LE: @llvm.ppc.altivec.vperm
   6192 
   6193   res_vs  = vec_lvrx(0, &vs);
   6194 // CHECK: @llvm.ppc.altivec.lvx
   6195 // CHECK: @llvm.ppc.altivec.lvsl
   6196 // CHECK: store <8 x i16> zeroinitializer
   6197 // CHECK: @llvm.ppc.altivec.vperm
   6198 // CHECK-LE: @llvm.ppc.altivec.lvx
   6199 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6200 // CHECK-LE: store <8 x i16> zeroinitializer
   6201 // CHECK-LE: @llvm.ppc.altivec.vperm
   6202 
   6203   res_vus = vec_lvrx(0, &param_us);
   6204 // CHECK: @llvm.ppc.altivec.lvx
   6205 // CHECK: @llvm.ppc.altivec.lvsl
   6206 // CHECK: store <8 x i16> zeroinitializer
   6207 // CHECK: @llvm.ppc.altivec.vperm
   6208 // CHECK-LE: @llvm.ppc.altivec.lvx
   6209 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6210 // CHECK-LE: store <8 x i16> zeroinitializer
   6211 // CHECK-LE: @llvm.ppc.altivec.vperm
   6212 
   6213   res_vus = vec_lvrx(0, &vus);
   6214 // CHECK: @llvm.ppc.altivec.lvx
   6215 // CHECK: @llvm.ppc.altivec.lvsl
   6216 // CHECK: store <8 x i16> zeroinitializer
   6217 // CHECK: @llvm.ppc.altivec.vperm
   6218 // CHECK-LE: @llvm.ppc.altivec.lvx
   6219 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6220 // CHECK-LE: store <8 x i16> zeroinitializer
   6221 // CHECK-LE: @llvm.ppc.altivec.vperm
   6222 
   6223   res_vbs = vec_lvrx(0, &vbs);
   6224 // CHECK: store <8 x i16> zeroinitializer
   6225 // CHECK: @llvm.ppc.altivec.lvx
   6226 // CHECK: @llvm.ppc.altivec.lvsl
   6227 // CHECK: @llvm.ppc.altivec.vperm
   6228 // CHECK-LE: store <8 x i16> zeroinitializer
   6229 // CHECK-LE: @llvm.ppc.altivec.lvx
   6230 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6231 // CHECK-LE: @llvm.ppc.altivec.vperm
   6232 
   6233   res_vp  = vec_lvrx(0, &vp);
   6234 // CHECK: store <8 x i16> zeroinitializer
   6235 // CHECK: @llvm.ppc.altivec.lvx
   6236 // CHECK: @llvm.ppc.altivec.lvsl
   6237 // CHECK: @llvm.ppc.altivec.vperm
   6238 // CHECK-LE: store <8 x i16> zeroinitializer
   6239 // CHECK-LE: @llvm.ppc.altivec.lvx
   6240 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6241 // CHECK-LE: @llvm.ppc.altivec.vperm
   6242 
   6243   res_vi  = vec_lvrx(0, &param_i);
   6244 // CHECK: @llvm.ppc.altivec.lvx
   6245 // CHECK: @llvm.ppc.altivec.lvsl
   6246 // CHECK: store <4 x i32> zeroinitializer
   6247 // CHECK: @llvm.ppc.altivec.vperm
   6248 // CHECK-LE: @llvm.ppc.altivec.lvx
   6249 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6250 // CHECK-LE: store <4 x i32> zeroinitializer
   6251 // CHECK-LE: @llvm.ppc.altivec.vperm
   6252 
   6253   res_vi  = vec_lvrx(0, &vi);
   6254 // CHECK: @llvm.ppc.altivec.lvx
   6255 // CHECK: @llvm.ppc.altivec.lvsl
   6256 // CHECK: store <4 x i32> zeroinitializer
   6257 // CHECK: @llvm.ppc.altivec.vperm
   6258 // CHECK-LE: @llvm.ppc.altivec.lvx
   6259 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6260 // CHECK-LE: store <4 x i32> zeroinitializer
   6261 // CHECK-LE: @llvm.ppc.altivec.vperm
   6262 
   6263   res_vui = vec_lvrx(0, &param_ui);
   6264 // CHECK: @llvm.ppc.altivec.lvx
   6265 // CHECK: @llvm.ppc.altivec.lvsl
   6266 // CHECK: store <4 x i32> zeroinitializer
   6267 // CHECK: @llvm.ppc.altivec.vperm
   6268 // CHECK-LE: @llvm.ppc.altivec.lvx
   6269 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6270 // CHECK-LE: store <4 x i32> zeroinitializer
   6271 // CHECK-LE: @llvm.ppc.altivec.vperm
   6272 
   6273   res_vui = vec_lvrx(0, &vui);
   6274 // CHECK: @llvm.ppc.altivec.lvx
   6275 // CHECK: @llvm.ppc.altivec.lvsl
   6276 // CHECK: store <4 x i32> zeroinitializer
   6277 // CHECK: @llvm.ppc.altivec.vperm
   6278 // CHECK-LE: @llvm.ppc.altivec.lvx
   6279 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6280 // CHECK-LE: store <4 x i32> zeroinitializer
   6281 // CHECK-LE: @llvm.ppc.altivec.vperm
   6282 
   6283   res_vbi = vec_lvrx(0, &vbi);
   6284 // CHECK: store <4 x i32> zeroinitializer
   6285 // CHECK: @llvm.ppc.altivec.lvx
   6286 // CHECK: @llvm.ppc.altivec.lvsl
   6287 // CHECK: @llvm.ppc.altivec.vperm
   6288 // CHECK-LE: store <4 x i32> zeroinitializer
   6289 // CHECK-LE: @llvm.ppc.altivec.lvx
   6290 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6291 // CHECK-LE: @llvm.ppc.altivec.vperm
   6292 
   6293   res_vf  = vec_lvrx(0, &vf);
   6294 // CHECK: @llvm.ppc.altivec.lvx
   6295 // CHECK: @llvm.ppc.altivec.lvsl
   6296 // CHECK: store <4 x float> zeroinitializer
   6297 // CHECK: @llvm.ppc.altivec.vperm
   6298 // CHECK-LE: @llvm.ppc.altivec.lvx
   6299 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6300 // CHECK-LE: store <4 x float> zeroinitializer
   6301 // CHECK-LE: @llvm.ppc.altivec.vperm
   6302 
   6303   /* vec_lvrxl */
   6304   res_vsc = vec_lvrxl(0, &param_sc);
   6305 // CHECK: @llvm.ppc.altivec.lvxl
   6306 // CHECK: @llvm.ppc.altivec.lvsl
   6307 // CHECK: store <16 x i8> zeroinitializer
   6308 // CHECK: @llvm.ppc.altivec.vperm
   6309 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6310 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6311 // CHECK-LE: store <16 x i8> zeroinitializer
   6312 // CHECK-LE: @llvm.ppc.altivec.vperm
   6313 
   6314   res_vsc = vec_lvrxl(0, &vsc);
   6315 // CHECK: @llvm.ppc.altivec.lvxl
   6316 // CHECK: @llvm.ppc.altivec.lvsl
   6317 // CHECK: store <16 x i8> zeroinitializer
   6318 // CHECK: @llvm.ppc.altivec.vperm
   6319 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6320 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6321 // CHECK-LE: store <16 x i8> zeroinitializer
   6322 // CHECK-LE: @llvm.ppc.altivec.vperm
   6323 
   6324   res_vuc = vec_lvrxl(0, &param_uc);
   6325 // CHECK: @llvm.ppc.altivec.lvxl
   6326 // CHECK: @llvm.ppc.altivec.lvsl
   6327 // CHECK: store <16 x i8> zeroinitializer
   6328 // CHECK: @llvm.ppc.altivec.vperm
   6329 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6330 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6331 // CHECK-LE: store <16 x i8> zeroinitializer
   6332 // CHECK-LE: @llvm.ppc.altivec.vperm
   6333 
   6334   res_vuc = vec_lvrxl(0, &vuc);
   6335 // CHECK: @llvm.ppc.altivec.lvxl
   6336 // CHECK: @llvm.ppc.altivec.lvsl
   6337 // CHECK: store <16 x i8> zeroinitializer
   6338 // CHECK: @llvm.ppc.altivec.vperm
   6339 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6340 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6341 // CHECK-LE: store <16 x i8> zeroinitializer
   6342 // CHECK-LE: @llvm.ppc.altivec.vperm
   6343 
   6344   res_vbc = vec_lvrxl(0, &vbc);
   6345 // CHECK: store <16 x i8> zeroinitializer
   6346 // CHECK: @llvm.ppc.altivec.lvxl
   6347 // CHECK: @llvm.ppc.altivec.lvsl
   6348 // CHECK: @llvm.ppc.altivec.vperm
   6349 // CHECK-LE: store <16 x i8> zeroinitializer
   6350 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6351 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6352 // CHECK-LE: @llvm.ppc.altivec.vperm
   6353 
   6354   res_vs  = vec_lvrxl(0, &param_s);
   6355 // CHECK: @llvm.ppc.altivec.lvxl
   6356 // CHECK: @llvm.ppc.altivec.lvsl
   6357 // CHECK: store <8 x i16> zeroinitializer
   6358 // CHECK: @llvm.ppc.altivec.vperm
   6359 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6360 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6361 // CHECK-LE: store <8 x i16> zeroinitializer
   6362 // CHECK-LE: @llvm.ppc.altivec.vperm
   6363 
   6364   res_vs  = vec_lvrxl(0, &vs);
   6365 // CHECK: @llvm.ppc.altivec.lvxl
   6366 // CHECK: @llvm.ppc.altivec.lvsl
   6367 // CHECK: store <8 x i16> zeroinitializer
   6368 // CHECK: @llvm.ppc.altivec.vperm
   6369 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6370 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6371 // CHECK-LE: store <8 x i16> zeroinitializer
   6372 // CHECK-LE: @llvm.ppc.altivec.vperm
   6373 
   6374   res_vus = vec_lvrxl(0, &param_us);
   6375 // CHECK: @llvm.ppc.altivec.lvxl
   6376 // CHECK: @llvm.ppc.altivec.lvsl
   6377 // CHECK: store <8 x i16> zeroinitializer
   6378 // CHECK: @llvm.ppc.altivec.vperm
   6379 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6380 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6381 // CHECK-LE: store <8 x i16> zeroinitializer
   6382 // CHECK-LE: @llvm.ppc.altivec.vperm
   6383 
   6384   res_vus = vec_lvrxl(0, &vus);
   6385 // CHECK: @llvm.ppc.altivec.lvxl
   6386 // CHECK: @llvm.ppc.altivec.lvsl
   6387 // CHECK: store <8 x i16> zeroinitializer
   6388 // CHECK: @llvm.ppc.altivec.vperm
   6389 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6390 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6391 // CHECK-LE: store <8 x i16> zeroinitializer
   6392 // CHECK-LE: @llvm.ppc.altivec.vperm
   6393 
   6394   res_vbs = vec_lvrxl(0, &vbs);
   6395 // CHECK: store <8 x i16> zeroinitializer
   6396 // CHECK: @llvm.ppc.altivec.lvxl
   6397 // CHECK: @llvm.ppc.altivec.lvsl
   6398 // CHECK: @llvm.ppc.altivec.vperm
   6399 // CHECK-LE: store <8 x i16> zeroinitializer
   6400 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6401 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6402 // CHECK-LE: @llvm.ppc.altivec.vperm
   6403 
   6404   res_vp  = vec_lvrxl(0, &vp);
   6405 // CHECK: store <8 x i16> zeroinitializer
   6406 // CHECK: @llvm.ppc.altivec.lvxl
   6407 // CHECK: @llvm.ppc.altivec.lvsl
   6408 // CHECK: @llvm.ppc.altivec.vperm
   6409 // CHECK-LE: store <8 x i16> zeroinitializer
   6410 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6411 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6412 // CHECK-LE: @llvm.ppc.altivec.vperm
   6413 
   6414   res_vi  = vec_lvrxl(0, &param_i);
   6415 // CHECK: @llvm.ppc.altivec.lvxl
   6416 // CHECK: @llvm.ppc.altivec.lvsl
   6417 // CHECK: store <4 x i32> zeroinitializer
   6418 // CHECK: @llvm.ppc.altivec.vperm
   6419 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6420 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6421 // CHECK-LE: store <4 x i32> zeroinitializer
   6422 // CHECK-LE: @llvm.ppc.altivec.vperm
   6423 
   6424   res_vi  = vec_lvrxl(0, &vi);
   6425 // CHECK: @llvm.ppc.altivec.lvxl
   6426 // CHECK: @llvm.ppc.altivec.lvsl
   6427 // CHECK: store <4 x i32> zeroinitializer
   6428 // CHECK: @llvm.ppc.altivec.vperm
   6429 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6430 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6431 // CHECK-LE: store <4 x i32> zeroinitializer
   6432 // CHECK-LE: @llvm.ppc.altivec.vperm
   6433 
   6434   res_vui = vec_lvrxl(0, &param_ui);
   6435 // CHECK: @llvm.ppc.altivec.lvxl
   6436 // CHECK: @llvm.ppc.altivec.lvsl
   6437 // CHECK: store <4 x i32> zeroinitializer
   6438 // CHECK: @llvm.ppc.altivec.vperm
   6439 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6440 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6441 // CHECK-LE: store <4 x i32> zeroinitializer
   6442 // CHECK-LE: @llvm.ppc.altivec.vperm
   6443 
   6444   res_vui = vec_lvrxl(0, &vui);
   6445 // CHECK: @llvm.ppc.altivec.lvxl
   6446 // CHECK: @llvm.ppc.altivec.lvsl
   6447 // CHECK: store <4 x i32> zeroinitializer
   6448 // CHECK: @llvm.ppc.altivec.vperm
   6449 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6450 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6451 // CHECK-LE: store <4 x i32> zeroinitializer
   6452 // CHECK-LE: @llvm.ppc.altivec.vperm
   6453 
   6454   res_vbi = vec_lvrxl(0, &vbi);
   6455 // CHECK: store <4 x i32> zeroinitializer
   6456 // CHECK: @llvm.ppc.altivec.lvxl
   6457 // CHECK: @llvm.ppc.altivec.lvsl
   6458 // CHECK: @llvm.ppc.altivec.vperm
   6459 // CHECK-LE: store <4 x i32> zeroinitializer
   6460 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6461 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6462 // CHECK-LE: @llvm.ppc.altivec.vperm
   6463 
   6464   res_vf  = vec_lvrxl(0, &vf);
   6465 // CHECK: @llvm.ppc.altivec.lvxl
   6466 // CHECK: @llvm.ppc.altivec.lvsl
   6467 // CHECK: store <4 x float> zeroinitializer
   6468 // CHECK: @llvm.ppc.altivec.vperm
   6469 // CHECK-LE: @llvm.ppc.altivec.lvxl
   6470 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6471 // CHECK-LE: store <4 x float> zeroinitializer
   6472 // CHECK-LE: @llvm.ppc.altivec.vperm
   6473 
   6474   /* vec_stvlx */
   6475   vec_stvlx(vsc, 0, &param_sc);
   6476 // CHECK: @llvm.ppc.altivec.lvx
   6477 // CHECK: @llvm.ppc.altivec.lvsl
   6478 // CHECK: store <16 x i8> zeroinitializer
   6479 // CHECK: @llvm.ppc.altivec.vperm
   6480 // CHECK: @llvm.ppc.altivec.lvsr
   6481 // CHECK: @llvm.ppc.altivec.vperm
   6482 // CHECK: @llvm.ppc.altivec.stvx
   6483 // CHECK-LE: @llvm.ppc.altivec.lvx
   6484 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6485 // CHECK-LE: store <16 x i8> zeroinitializer
   6486 // CHECK-LE: @llvm.ppc.altivec.vperm
   6487 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6488 // CHECK-LE: @llvm.ppc.altivec.vperm
   6489 // CHECK-LE: @llvm.ppc.altivec.stvx
   6490 
   6491   vec_stvlx(vsc, 0, &vsc);
   6492 // CHECK: @llvm.ppc.altivec.lvx
   6493 // CHECK: @llvm.ppc.altivec.lvsl
   6494 // CHECK: store <16 x i8> zeroinitializer
   6495 // CHECK: @llvm.ppc.altivec.vperm
   6496 // CHECK: @llvm.ppc.altivec.lvsr
   6497 // CHECK: @llvm.ppc.altivec.vperm
   6498 // CHECK: @llvm.ppc.altivec.stvx
   6499 // CHECK-LE: @llvm.ppc.altivec.lvx
   6500 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6501 // CHECK-LE: store <16 x i8> zeroinitializer
   6502 // CHECK-LE: @llvm.ppc.altivec.vperm
   6503 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6504 // CHECK-LE: @llvm.ppc.altivec.vperm
   6505 // CHECK-LE: @llvm.ppc.altivec.stvx
   6506 
   6507   vec_stvlx(vuc, 0, &param_uc);
   6508 // CHECK: @llvm.ppc.altivec.lvx
   6509 // CHECK: @llvm.ppc.altivec.lvsl
   6510 // CHECK: store <16 x i8> zeroinitializer
   6511 // CHECK: @llvm.ppc.altivec.vperm
   6512 // CHECK: @llvm.ppc.altivec.lvsr
   6513 // CHECK: @llvm.ppc.altivec.vperm
   6514 // CHECK: @llvm.ppc.altivec.stvx
   6515 // CHECK-LE: @llvm.ppc.altivec.lvx
   6516 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6517 // CHECK-LE: store <16 x i8> zeroinitializer
   6518 // CHECK-LE: @llvm.ppc.altivec.vperm
   6519 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6520 // CHECK-LE: @llvm.ppc.altivec.vperm
   6521 // CHECK-LE: @llvm.ppc.altivec.stvx
   6522 
   6523   vec_stvlx(vuc, 0, &vuc);
   6524 // CHECK: @llvm.ppc.altivec.lvx
   6525 // CHECK: @llvm.ppc.altivec.lvsl
   6526 // CHECK: store <16 x i8> zeroinitializer
   6527 // CHECK: @llvm.ppc.altivec.vperm
   6528 // CHECK: @llvm.ppc.altivec.lvsr
   6529 // CHECK: @llvm.ppc.altivec.vperm
   6530 // CHECK: @llvm.ppc.altivec.stvx
   6531 // CHECK-LE: @llvm.ppc.altivec.lvx
   6532 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6533 // CHECK-LE: store <16 x i8> zeroinitializer
   6534 // CHECK-LE: @llvm.ppc.altivec.vperm
   6535 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6536 // CHECK-LE: @llvm.ppc.altivec.vperm
   6537 // CHECK-LE: @llvm.ppc.altivec.stvx
   6538 
   6539   vec_stvlx(vbc, 0, &vbc);
   6540 // CHECK: store <16 x i8> zeroinitializer
   6541 // CHECK: @llvm.ppc.altivec.lvx
   6542 // CHECK: @llvm.ppc.altivec.lvsl
   6543 // CHECK: @llvm.ppc.altivec.vperm
   6544 // CHECK: @llvm.ppc.altivec.lvsr
   6545 // CHECK: @llvm.ppc.altivec.vperm
   6546 // CHECK: @llvm.ppc.altivec.stvx
   6547 // CHECK-LE: store <16 x i8> zeroinitializer
   6548 // CHECK-LE: @llvm.ppc.altivec.lvx
   6549 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6550 // CHECK-LE: @llvm.ppc.altivec.vperm
   6551 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6552 // CHECK-LE: @llvm.ppc.altivec.vperm
   6553 // CHECK-LE: @llvm.ppc.altivec.stvx
   6554 
   6555   vec_stvlx(vs, 0, &param_s);
   6556 // CHECK: @llvm.ppc.altivec.lvx
   6557 // CHECK: @llvm.ppc.altivec.lvsl
   6558 // CHECK: store <8 x i16> zeroinitializer
   6559 // CHECK: @llvm.ppc.altivec.vperm
   6560 // CHECK: @llvm.ppc.altivec.lvsr
   6561 // CHECK: @llvm.ppc.altivec.vperm
   6562 // CHECK: @llvm.ppc.altivec.stvx
   6563 // CHECK-LE: @llvm.ppc.altivec.lvx
   6564 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6565 // CHECK-LE: store <8 x i16> zeroinitializer
   6566 // CHECK-LE: @llvm.ppc.altivec.vperm
   6567 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6568 // CHECK-LE: @llvm.ppc.altivec.vperm
   6569 // CHECK-LE: @llvm.ppc.altivec.stvx
   6570 
   6571   vec_stvlx(vs, 0, &vs);
   6572 // CHECK: @llvm.ppc.altivec.lvx
   6573 // CHECK: @llvm.ppc.altivec.lvsl
   6574 // CHECK: store <8 x i16> zeroinitializer
   6575 // CHECK: @llvm.ppc.altivec.vperm
   6576 // CHECK: @llvm.ppc.altivec.lvsr
   6577 // CHECK: @llvm.ppc.altivec.vperm
   6578 // CHECK: @llvm.ppc.altivec.stvx
   6579 // CHECK-LE: @llvm.ppc.altivec.lvx
   6580 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6581 // CHECK-LE: store <8 x i16> zeroinitializer
   6582 // CHECK-LE: @llvm.ppc.altivec.vperm
   6583 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6584 // CHECK-LE: @llvm.ppc.altivec.vperm
   6585 // CHECK-LE: @llvm.ppc.altivec.stvx
   6586 
   6587   vec_stvlx(vus, 0, &param_us);
   6588 // CHECK: @llvm.ppc.altivec.lvx
   6589 // CHECK: @llvm.ppc.altivec.lvsl
   6590 // CHECK: store <8 x i16> zeroinitializer
   6591 // CHECK: @llvm.ppc.altivec.vperm
   6592 // CHECK: @llvm.ppc.altivec.lvsr
   6593 // CHECK: @llvm.ppc.altivec.vperm
   6594 // CHECK: @llvm.ppc.altivec.stvx
   6595 // CHECK-LE: @llvm.ppc.altivec.lvx
   6596 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6597 // CHECK-LE: store <8 x i16> zeroinitializer
   6598 // CHECK-LE: @llvm.ppc.altivec.vperm
   6599 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6600 // CHECK-LE: @llvm.ppc.altivec.vperm
   6601 // CHECK-LE: @llvm.ppc.altivec.stvx
   6602 
   6603   vec_stvlx(vus, 0, &vus);
   6604 // CHECK: @llvm.ppc.altivec.lvx
   6605 // CHECK: @llvm.ppc.altivec.lvsl
   6606 // CHECK: store <8 x i16> zeroinitializer
   6607 // CHECK: @llvm.ppc.altivec.vperm
   6608 // CHECK: @llvm.ppc.altivec.lvsr
   6609 // CHECK: @llvm.ppc.altivec.vperm
   6610 // CHECK: @llvm.ppc.altivec.stvx
   6611 // CHECK-LE: @llvm.ppc.altivec.lvx
   6612 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6613 // CHECK-LE: store <8 x i16> zeroinitializer
   6614 // CHECK-LE: @llvm.ppc.altivec.vperm
   6615 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6616 // CHECK-LE: @llvm.ppc.altivec.vperm
   6617 // CHECK-LE: @llvm.ppc.altivec.stvx
   6618 
   6619   vec_stvlx(vbs, 0, &vbs);
   6620 // CHECK: store <8 x i16> zeroinitializer
   6621 // CHECK: @llvm.ppc.altivec.lvx
   6622 // CHECK: @llvm.ppc.altivec.lvsl
   6623 // CHECK: @llvm.ppc.altivec.vperm
   6624 // CHECK: @llvm.ppc.altivec.lvsr
   6625 // CHECK: @llvm.ppc.altivec.vperm
   6626 // CHECK: @llvm.ppc.altivec.stvx
   6627 // CHECK-LE: store <8 x i16> zeroinitializer
   6628 // CHECK-LE: @llvm.ppc.altivec.lvx
   6629 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6630 // CHECK-LE: @llvm.ppc.altivec.vperm
   6631 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6632 // CHECK-LE: @llvm.ppc.altivec.vperm
   6633 // CHECK-LE: @llvm.ppc.altivec.stvx
   6634 
   6635   vec_stvlx(vp, 0, &vp);
   6636 // CHECK: store <8 x i16> zeroinitializer
   6637 // CHECK: @llvm.ppc.altivec.lvx
   6638 // CHECK: @llvm.ppc.altivec.lvsl
   6639 // CHECK: @llvm.ppc.altivec.vperm
   6640 // CHECK: @llvm.ppc.altivec.lvsr
   6641 // CHECK: @llvm.ppc.altivec.vperm
   6642 // CHECK: @llvm.ppc.altivec.stvx
   6643 // CHECK-LE: store <8 x i16> zeroinitializer
   6644 // CHECK-LE: @llvm.ppc.altivec.lvx
   6645 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6646 // CHECK-LE: @llvm.ppc.altivec.vperm
   6647 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6648 // CHECK-LE: @llvm.ppc.altivec.vperm
   6649 // CHECK-LE: @llvm.ppc.altivec.stvx
   6650 
   6651   vec_stvlx(vi, 0, &param_i);
   6652 // CHECK: @llvm.ppc.altivec.lvx
   6653 // CHECK: @llvm.ppc.altivec.lvsl
   6654 // CHECK: store <4 x i32> zeroinitializer
   6655 // CHECK: @llvm.ppc.altivec.vperm
   6656 // CHECK: @llvm.ppc.altivec.lvsr
   6657 // CHECK: @llvm.ppc.altivec.vperm
   6658 // CHECK: @llvm.ppc.altivec.stvx
   6659 // CHECK-LE: @llvm.ppc.altivec.lvx
   6660 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6661 // CHECK-LE: store <4 x i32> zeroinitializer
   6662 // CHECK-LE: @llvm.ppc.altivec.vperm
   6663 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6664 // CHECK-LE: @llvm.ppc.altivec.vperm
   6665 // CHECK-LE: @llvm.ppc.altivec.stvx
   6666 
   6667   vec_stvlx(vi, 0, &vi);
   6668 // CHECK: @llvm.ppc.altivec.lvx
   6669 // CHECK: @llvm.ppc.altivec.lvsl
   6670 // CHECK: store <4 x i32> zeroinitializer
   6671 // CHECK: @llvm.ppc.altivec.vperm
   6672 // CHECK: @llvm.ppc.altivec.lvsr
   6673 // CHECK: @llvm.ppc.altivec.vperm
   6674 // CHECK: @llvm.ppc.altivec.stvx
   6675 // CHECK-LE: @llvm.ppc.altivec.lvx
   6676 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6677 // CHECK-LE: store <4 x i32> zeroinitializer
   6678 // CHECK-LE: @llvm.ppc.altivec.vperm
   6679 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6680 // CHECK-LE: @llvm.ppc.altivec.vperm
   6681 // CHECK-LE: @llvm.ppc.altivec.stvx
   6682 
   6683   vec_stvlx(vui, 0, &param_ui);
   6684 // CHECK: @llvm.ppc.altivec.lvx
   6685 // CHECK: @llvm.ppc.altivec.lvsl
   6686 // CHECK: store <4 x i32> zeroinitializer
   6687 // CHECK: @llvm.ppc.altivec.vperm
   6688 // CHECK: @llvm.ppc.altivec.lvsr
   6689 // CHECK: @llvm.ppc.altivec.vperm
   6690 // CHECK: @llvm.ppc.altivec.stvx
   6691 // CHECK-LE: @llvm.ppc.altivec.lvx
   6692 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6693 // CHECK-LE: store <4 x i32> zeroinitializer
   6694 // CHECK-LE: @llvm.ppc.altivec.vperm
   6695 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6696 // CHECK-LE: @llvm.ppc.altivec.vperm
   6697 // CHECK-LE: @llvm.ppc.altivec.stvx
   6698 
   6699   vec_stvlx(vui, 0, &vui);
   6700 // CHECK: @llvm.ppc.altivec.lvx
   6701 // CHECK: @llvm.ppc.altivec.lvsl
   6702 // CHECK: store <4 x i32> zeroinitializer
   6703 // CHECK: @llvm.ppc.altivec.vperm
   6704 // CHECK: @llvm.ppc.altivec.lvsr
   6705 // CHECK: @llvm.ppc.altivec.vperm
   6706 // CHECK: @llvm.ppc.altivec.stvx
   6707 // CHECK-LE: @llvm.ppc.altivec.lvx
   6708 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6709 // CHECK-LE: store <4 x i32> zeroinitializer
   6710 // CHECK-LE: @llvm.ppc.altivec.vperm
   6711 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6712 // CHECK-LE: @llvm.ppc.altivec.vperm
   6713 // CHECK-LE: @llvm.ppc.altivec.stvx
   6714 
   6715   vec_stvlx(vbi, 0, &vbi);
   6716 // CHECK: store <4 x i32> zeroinitializer
   6717 // CHECK: @llvm.ppc.altivec.lvx
   6718 // CHECK: @llvm.ppc.altivec.lvsl
   6719 // CHECK: @llvm.ppc.altivec.vperm
   6720 // CHECK: @llvm.ppc.altivec.lvsr
   6721 // CHECK: @llvm.ppc.altivec.vperm
   6722 // CHECK: @llvm.ppc.altivec.stvx
   6723 // CHECK-LE: store <4 x i32> zeroinitializer
   6724 // CHECK-LE: @llvm.ppc.altivec.lvx
   6725 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6726 // CHECK-LE: @llvm.ppc.altivec.vperm
   6727 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6728 // CHECK-LE: @llvm.ppc.altivec.vperm
   6729 // CHECK-LE: @llvm.ppc.altivec.stvx
   6730 
   6731   vec_stvlx(vf, 0, &vf);
   6732 // CHECK: @llvm.ppc.altivec.lvx
   6733 // CHECK: @llvm.ppc.altivec.lvsl
   6734 // CHECK: store <4 x float> zeroinitializer
   6735 // CHECK: @llvm.ppc.altivec.vperm
   6736 // CHECK: @llvm.ppc.altivec.lvsr
   6737 // CHECK: @llvm.ppc.altivec.vperm
   6738 // CHECK: @llvm.ppc.altivec.stvx
   6739 // CHECK-LE: @llvm.ppc.altivec.lvx
   6740 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6741 // CHECK-LE: store <4 x float> zeroinitializer
   6742 // CHECK-LE: @llvm.ppc.altivec.vperm
   6743 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6744 // CHECK-LE: @llvm.ppc.altivec.vperm
   6745 // CHECK-LE: @llvm.ppc.altivec.stvx
   6746 
   6747   /* vec_stvlxl */
   6748   vec_stvlxl(vsc, 0, &param_sc);
   6749 // CHECK: @llvm.ppc.altivec.lvx
   6750 // CHECK: @llvm.ppc.altivec.lvsl
   6751 // CHECK: store <16 x i8> zeroinitializer
   6752 // CHECK: @llvm.ppc.altivec.vperm
   6753 // CHECK: @llvm.ppc.altivec.lvsr
   6754 // CHECK: @llvm.ppc.altivec.vperm
   6755 // CHECK: @llvm.ppc.altivec.stvxl
   6756 // CHECK-LE: @llvm.ppc.altivec.lvx
   6757 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6758 // CHECK-LE: store <16 x i8> zeroinitializer
   6759 // CHECK-LE: @llvm.ppc.altivec.vperm
   6760 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6761 // CHECK-LE: @llvm.ppc.altivec.vperm
   6762 // CHECK-LE: @llvm.ppc.altivec.stvxl
   6763 
   6764   vec_stvlxl(vsc, 0, &vsc);
   6765 // CHECK: @llvm.ppc.altivec.lvx
   6766 // CHECK: @llvm.ppc.altivec.lvsl
   6767 // CHECK: store <16 x i8> zeroinitializer
   6768 // CHECK: @llvm.ppc.altivec.vperm
   6769 // CHECK: @llvm.ppc.altivec.lvsr
   6770 // CHECK: @llvm.ppc.altivec.vperm
   6771 // CHECK: @llvm.ppc.altivec.stvxl
   6772 // CHECK-LE: @llvm.ppc.altivec.lvx
   6773 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6774 // CHECK-LE: store <16 x i8> zeroinitializer
   6775 // CHECK-LE: @llvm.ppc.altivec.vperm
   6776 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6777 // CHECK-LE: @llvm.ppc.altivec.vperm
   6778 // CHECK-LE: @llvm.ppc.altivec.stvxl
   6779 
   6780   vec_stvlxl(vuc, 0, &param_uc);
   6781 // CHECK: @llvm.ppc.altivec.lvx
   6782 // CHECK: @llvm.ppc.altivec.lvsl
   6783 // CHECK: store <16 x i8> zeroinitializer
   6784 // CHECK: @llvm.ppc.altivec.vperm
   6785 // CHECK: @llvm.ppc.altivec.lvsr
   6786 // CHECK: @llvm.ppc.altivec.vperm
   6787 // CHECK: @llvm.ppc.altivec.stvxl
   6788 // CHECK-LE: @llvm.ppc.altivec.lvx
   6789 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6790 // CHECK-LE: store <16 x i8> zeroinitializer
   6791 // CHECK-LE: @llvm.ppc.altivec.vperm
   6792 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6793 // CHECK-LE: @llvm.ppc.altivec.vperm
   6794 // CHECK-LE: @llvm.ppc.altivec.stvxl
   6795 
   6796   vec_stvlxl(vuc, 0, &vuc);
   6797 // CHECK: @llvm.ppc.altivec.lvx
   6798 // CHECK: @llvm.ppc.altivec.lvsl
   6799 // CHECK: store <16 x i8> zeroinitializer
   6800 // CHECK: @llvm.ppc.altivec.vperm
   6801 // CHECK: @llvm.ppc.altivec.lvsr
   6802 // CHECK: @llvm.ppc.altivec.vperm
   6803 // CHECK: @llvm.ppc.altivec.stvxl
   6804 // CHECK-LE: @llvm.ppc.altivec.lvx
   6805 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6806 // CHECK-LE: store <16 x i8> zeroinitializer
   6807 // CHECK-LE: @llvm.ppc.altivec.vperm
   6808 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6809 // CHECK-LE: @llvm.ppc.altivec.vperm
   6810 // CHECK-LE: @llvm.ppc.altivec.stvxl
   6811 
   6812   vec_stvlxl(vbc, 0, &vbc);
   6813 // CHECK: store <16 x i8> zeroinitializer
   6814 // CHECK: @llvm.ppc.altivec.lvx
   6815 // CHECK: @llvm.ppc.altivec.lvsl
   6816 // CHECK: @llvm.ppc.altivec.vperm
   6817 // CHECK: @llvm.ppc.altivec.lvsr
   6818 // CHECK: @llvm.ppc.altivec.vperm
   6819 // CHECK: @llvm.ppc.altivec.stvxl
   6820 // CHECK-LE: store <16 x i8> zeroinitializer
   6821 // CHECK-LE: @llvm.ppc.altivec.lvx
   6822 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6823 // CHECK-LE: @llvm.ppc.altivec.vperm
   6824 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6825 // CHECK-LE: @llvm.ppc.altivec.vperm
   6826 // CHECK-LE: @llvm.ppc.altivec.stvxl
   6827 
   6828   vec_stvlxl(vs, 0, &param_s);
   6829 // CHECK: @llvm.ppc.altivec.lvx
   6830 // CHECK: @llvm.ppc.altivec.lvsl
   6831 // CHECK: store <8 x i16> zeroinitializer
   6832 // CHECK: @llvm.ppc.altivec.vperm
   6833 // CHECK: @llvm.ppc.altivec.lvsr
   6834 // CHECK: @llvm.ppc.altivec.vperm
   6835 // CHECK: @llvm.ppc.altivec.stvxl
   6836 // CHECK-LE: @llvm.ppc.altivec.lvx
   6837 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6838 // CHECK-LE: store <8 x i16> zeroinitializer
   6839 // CHECK-LE: @llvm.ppc.altivec.vperm
   6840 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6841 // CHECK-LE: @llvm.ppc.altivec.vperm
   6842 // CHECK-LE: @llvm.ppc.altivec.stvxl
   6843 
   6844   vec_stvlxl(vs, 0, &vs);
   6845 // CHECK: @llvm.ppc.altivec.lvx
   6846 // CHECK: @llvm.ppc.altivec.lvsl
   6847 // CHECK: store <8 x i16> zeroinitializer
   6848 // CHECK: @llvm.ppc.altivec.vperm
   6849 // CHECK: @llvm.ppc.altivec.lvsr
   6850 // CHECK: @llvm.ppc.altivec.vperm
   6851 // CHECK: @llvm.ppc.altivec.stvxl
   6852 // CHECK-LE: @llvm.ppc.altivec.lvx
   6853 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6854 // CHECK-LE: store <8 x i16> zeroinitializer
   6855 // CHECK-LE: @llvm.ppc.altivec.vperm
   6856 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6857 // CHECK-LE: @llvm.ppc.altivec.vperm
   6858 // CHECK-LE: @llvm.ppc.altivec.stvxl
   6859 
   6860   vec_stvlxl(vus, 0, &param_us);
   6861 // CHECK: @llvm.ppc.altivec.lvx
   6862 // CHECK: @llvm.ppc.altivec.lvsl
   6863 // CHECK: store <8 x i16> zeroinitializer
   6864 // CHECK: @llvm.ppc.altivec.vperm
   6865 // CHECK: @llvm.ppc.altivec.lvsr
   6866 // CHECK: @llvm.ppc.altivec.vperm
   6867 // CHECK: @llvm.ppc.altivec.stvxl
   6868 // CHECK-LE: @llvm.ppc.altivec.lvx
   6869 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6870 // CHECK-LE: store <8 x i16> zeroinitializer
   6871 // CHECK-LE: @llvm.ppc.altivec.vperm
   6872 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6873 // CHECK-LE: @llvm.ppc.altivec.vperm
   6874 // CHECK-LE: @llvm.ppc.altivec.stvxl
   6875 
   6876   vec_stvlxl(vus, 0, &vus);
   6877 // CHECK: @llvm.ppc.altivec.lvx
   6878 // CHECK: @llvm.ppc.altivec.lvsl
   6879 // CHECK: store <8 x i16> zeroinitializer
   6880 // CHECK: @llvm.ppc.altivec.vperm
   6881 // CHECK: @llvm.ppc.altivec.lvsr
   6882 // CHECK: @llvm.ppc.altivec.vperm
   6883 // CHECK: @llvm.ppc.altivec.stvxl
   6884 // CHECK-LE: @llvm.ppc.altivec.lvx
   6885 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6886 // CHECK-LE: store <8 x i16> zeroinitializer
   6887 // CHECK-LE: @llvm.ppc.altivec.vperm
   6888 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6889 // CHECK-LE: @llvm.ppc.altivec.vperm
   6890 // CHECK-LE: @llvm.ppc.altivec.stvxl
   6891 
   6892   vec_stvlxl(vbs, 0, &vbs);
   6893 // CHECK: store <8 x i16> zeroinitializer
   6894 // CHECK: @llvm.ppc.altivec.lvx
   6895 // CHECK: @llvm.ppc.altivec.lvsl
   6896 // CHECK: @llvm.ppc.altivec.vperm
   6897 // CHECK: @llvm.ppc.altivec.lvsr
   6898 // CHECK: @llvm.ppc.altivec.vperm
   6899 // CHECK: @llvm.ppc.altivec.stvxl
   6900 // CHECK-LE: store <8 x i16> zeroinitializer
   6901 // CHECK-LE: @llvm.ppc.altivec.lvx
   6902 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6903 // CHECK-LE: @llvm.ppc.altivec.vperm
   6904 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6905 // CHECK-LE: @llvm.ppc.altivec.vperm
   6906 // CHECK-LE: @llvm.ppc.altivec.stvxl
   6907 
   6908   vec_stvlxl(vp, 0, &vp);
   6909 // CHECK: store <8 x i16> zeroinitializer
   6910 // CHECK: @llvm.ppc.altivec.lvx
   6911 // CHECK: @llvm.ppc.altivec.lvsl
   6912 // CHECK: @llvm.ppc.altivec.vperm
   6913 // CHECK: @llvm.ppc.altivec.lvsr
   6914 // CHECK: @llvm.ppc.altivec.vperm
   6915 // CHECK: @llvm.ppc.altivec.stvxl
   6916 // CHECK-LE: store <8 x i16> zeroinitializer
   6917 // CHECK-LE: @llvm.ppc.altivec.lvx
   6918 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6919 // CHECK-LE: @llvm.ppc.altivec.vperm
   6920 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6921 // CHECK-LE: @llvm.ppc.altivec.vperm
   6922 // CHECK-LE: @llvm.ppc.altivec.stvxl
   6923 
   6924   vec_stvlxl(vi, 0, &param_i);
   6925 // CHECK: @llvm.ppc.altivec.lvx
   6926 // CHECK: @llvm.ppc.altivec.lvsl
   6927 // CHECK: store <4 x i32> zeroinitializer
   6928 // CHECK: @llvm.ppc.altivec.vperm
   6929 // CHECK: @llvm.ppc.altivec.lvsr
   6930 // CHECK: @llvm.ppc.altivec.vperm
   6931 // CHECK: @llvm.ppc.altivec.stvxl
   6932 // CHECK-LE: @llvm.ppc.altivec.lvx
   6933 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6934 // CHECK-LE: store <4 x i32> zeroinitializer
   6935 // CHECK-LE: @llvm.ppc.altivec.vperm
   6936 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6937 // CHECK-LE: @llvm.ppc.altivec.vperm
   6938 // CHECK-LE: @llvm.ppc.altivec.stvxl
   6939 
   6940   vec_stvlxl(vi, 0, &vi);
   6941 // CHECK: @llvm.ppc.altivec.lvx
   6942 // CHECK: @llvm.ppc.altivec.lvsl
   6943 // CHECK: store <4 x i32> zeroinitializer
   6944 // CHECK: @llvm.ppc.altivec.vperm
   6945 // CHECK: @llvm.ppc.altivec.lvsr
   6946 // CHECK: @llvm.ppc.altivec.vperm
   6947 // CHECK: @llvm.ppc.altivec.stvxl
   6948 // CHECK-LE: @llvm.ppc.altivec.lvx
   6949 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6950 // CHECK-LE: store <4 x i32> zeroinitializer
   6951 // CHECK-LE: @llvm.ppc.altivec.vperm
   6952 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6953 // CHECK-LE: @llvm.ppc.altivec.vperm
   6954 // CHECK-LE: @llvm.ppc.altivec.stvxl
   6955 
   6956   vec_stvlxl(vui, 0, &param_ui);
   6957 // CHECK: @llvm.ppc.altivec.lvx
   6958 // CHECK: @llvm.ppc.altivec.lvsl
   6959 // CHECK: store <4 x i32> zeroinitializer
   6960 // CHECK: @llvm.ppc.altivec.vperm
   6961 // CHECK: @llvm.ppc.altivec.lvsr
   6962 // CHECK: @llvm.ppc.altivec.vperm
   6963 // CHECK: @llvm.ppc.altivec.stvxl
   6964 // CHECK-LE: @llvm.ppc.altivec.lvx
   6965 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6966 // CHECK-LE: store <4 x i32> zeroinitializer
   6967 // CHECK-LE: @llvm.ppc.altivec.vperm
   6968 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6969 // CHECK-LE: @llvm.ppc.altivec.vperm
   6970 // CHECK-LE: @llvm.ppc.altivec.stvxl
   6971 
   6972   vec_stvlxl(vui, 0, &vui);
   6973 // CHECK: @llvm.ppc.altivec.lvx
   6974 // CHECK: @llvm.ppc.altivec.lvsl
   6975 // CHECK: store <4 x i32> zeroinitializer
   6976 // CHECK: @llvm.ppc.altivec.vperm
   6977 // CHECK: @llvm.ppc.altivec.lvsr
   6978 // CHECK: @llvm.ppc.altivec.vperm
   6979 // CHECK: @llvm.ppc.altivec.stvxl
   6980 // CHECK-LE: @llvm.ppc.altivec.lvx
   6981 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6982 // CHECK-LE: store <4 x i32> zeroinitializer
   6983 // CHECK-LE: @llvm.ppc.altivec.vperm
   6984 // CHECK-LE: @llvm.ppc.altivec.lvsr
   6985 // CHECK-LE: @llvm.ppc.altivec.vperm
   6986 // CHECK-LE: @llvm.ppc.altivec.stvxl
   6987 
   6988   vec_stvlxl(vbi, 0, &vbi);
   6989 // CHECK: store <4 x i32> zeroinitializer
   6990 // CHECK: @llvm.ppc.altivec.lvx
   6991 // CHECK: @llvm.ppc.altivec.lvsl
   6992 // CHECK: @llvm.ppc.altivec.vperm
   6993 // CHECK: @llvm.ppc.altivec.lvsr
   6994 // CHECK: @llvm.ppc.altivec.vperm
   6995 // CHECK: @llvm.ppc.altivec.stvxl
   6996 // CHECK-LE: store <4 x i32> zeroinitializer
   6997 // CHECK-LE: @llvm.ppc.altivec.lvx
   6998 // CHECK-LE: @llvm.ppc.altivec.lvsl
   6999 // CHECK-LE: @llvm.ppc.altivec.vperm
   7000 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7001 // CHECK-LE: @llvm.ppc.altivec.vperm
   7002 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7003 
   7004   vec_stvlxl(vf, 0, &vf);
   7005 // CHECK: @llvm.ppc.altivec.lvx
   7006 // CHECK: @llvm.ppc.altivec.lvsl
   7007 // CHECK: store <4 x float> zeroinitializer
   7008 // CHECK: @llvm.ppc.altivec.vperm
   7009 // CHECK: @llvm.ppc.altivec.lvsr
   7010 // CHECK: @llvm.ppc.altivec.vperm
   7011 // CHECK: @llvm.ppc.altivec.stvxl
   7012 // CHECK-LE: @llvm.ppc.altivec.lvx
   7013 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7014 // CHECK-LE: store <4 x float> zeroinitializer
   7015 // CHECK-LE: @llvm.ppc.altivec.vperm
   7016 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7017 // CHECK-LE: @llvm.ppc.altivec.vperm
   7018 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7019 
   7020   /* vec_stvrx */
   7021   vec_stvrx(vsc, 0, &param_sc);
   7022 // CHECK: @llvm.ppc.altivec.lvx
   7023 // CHECK: @llvm.ppc.altivec.lvsl
   7024 // CHECK: store <16 x i8> zeroinitializer
   7025 // CHECK: @llvm.ppc.altivec.vperm
   7026 // CHECK: @llvm.ppc.altivec.lvsr
   7027 // CHECK: @llvm.ppc.altivec.vperm
   7028 // CHECK: @llvm.ppc.altivec.stvx
   7029 // CHECK-LE: @llvm.ppc.altivec.lvx
   7030 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7031 // CHECK-LE: store <16 x i8> zeroinitializer
   7032 // CHECK-LE: @llvm.ppc.altivec.vperm
   7033 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7034 // CHECK-LE: @llvm.ppc.altivec.vperm
   7035 // CHECK-LE: @llvm.ppc.altivec.stvx
   7036 
   7037   vec_stvrx(vsc, 0, &vsc);
   7038 // CHECK: @llvm.ppc.altivec.lvx
   7039 // CHECK: @llvm.ppc.altivec.lvsl
   7040 // CHECK: store <16 x i8> zeroinitializer
   7041 // CHECK: @llvm.ppc.altivec.vperm
   7042 // CHECK: @llvm.ppc.altivec.lvsr
   7043 // CHECK: @llvm.ppc.altivec.vperm
   7044 // CHECK: @llvm.ppc.altivec.stvx
   7045 // CHECK-LE: @llvm.ppc.altivec.lvx
   7046 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7047 // CHECK-LE: store <16 x i8> zeroinitializer
   7048 // CHECK-LE: @llvm.ppc.altivec.vperm
   7049 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7050 // CHECK-LE: @llvm.ppc.altivec.vperm
   7051 // CHECK-LE: @llvm.ppc.altivec.stvx
   7052 
   7053   vec_stvrx(vuc, 0, &param_uc);
   7054 // CHECK: @llvm.ppc.altivec.lvx
   7055 // CHECK: @llvm.ppc.altivec.lvsl
   7056 // CHECK: store <16 x i8> zeroinitializer
   7057 // CHECK: @llvm.ppc.altivec.vperm
   7058 // CHECK: @llvm.ppc.altivec.lvsr
   7059 // CHECK: @llvm.ppc.altivec.vperm
   7060 // CHECK: @llvm.ppc.altivec.stvx
   7061 // CHECK-LE: @llvm.ppc.altivec.lvx
   7062 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7063 // CHECK-LE: store <16 x i8> zeroinitializer
   7064 // CHECK-LE: @llvm.ppc.altivec.vperm
   7065 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7066 // CHECK-LE: @llvm.ppc.altivec.vperm
   7067 // CHECK-LE: @llvm.ppc.altivec.stvx
   7068 
   7069   vec_stvrx(vuc, 0, &vuc);
   7070 // CHECK: @llvm.ppc.altivec.lvx
   7071 // CHECK: @llvm.ppc.altivec.lvsl
   7072 // CHECK: store <16 x i8> zeroinitializer
   7073 // CHECK: @llvm.ppc.altivec.vperm
   7074 // CHECK: @llvm.ppc.altivec.lvsr
   7075 // CHECK: @llvm.ppc.altivec.vperm
   7076 // CHECK: @llvm.ppc.altivec.stvx
   7077 // CHECK-LE: @llvm.ppc.altivec.lvx
   7078 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7079 // CHECK-LE: store <16 x i8> zeroinitializer
   7080 // CHECK-LE: @llvm.ppc.altivec.vperm
   7081 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7082 // CHECK-LE: @llvm.ppc.altivec.vperm
   7083 // CHECK-LE: @llvm.ppc.altivec.stvx
   7084 
   7085   vec_stvrx(vbc, 0, &vbc);
   7086 // CHECK: @llvm.ppc.altivec.lvx
   7087 // CHECK: store <16 x i8> zeroinitializer
   7088 // CHECK: @llvm.ppc.altivec.lvsl
   7089 // CHECK: @llvm.ppc.altivec.vperm
   7090 // CHECK: @llvm.ppc.altivec.lvsr
   7091 // CHECK: @llvm.ppc.altivec.vperm
   7092 // CHECK: @llvm.ppc.altivec.stvx
   7093 // CHECK-LE: @llvm.ppc.altivec.lvx
   7094 // CHECK-LE: store <16 x i8> zeroinitializer
   7095 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7096 // CHECK-LE: @llvm.ppc.altivec.vperm
   7097 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7098 // CHECK-LE: @llvm.ppc.altivec.vperm
   7099 // CHECK-LE: @llvm.ppc.altivec.stvx
   7100 
   7101   vec_stvrx(vs, 0, &param_s);
   7102 // CHECK: @llvm.ppc.altivec.lvx
   7103 // CHECK: @llvm.ppc.altivec.lvsl
   7104 // CHECK: store <8 x i16> zeroinitializer
   7105 // CHECK: @llvm.ppc.altivec.vperm
   7106 // CHECK: @llvm.ppc.altivec.lvsr
   7107 // CHECK: @llvm.ppc.altivec.vperm
   7108 // CHECK: @llvm.ppc.altivec.stvx
   7109 // CHECK-LE: @llvm.ppc.altivec.lvx
   7110 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7111 // CHECK-LE: store <8 x i16> zeroinitializer
   7112 // CHECK-LE: @llvm.ppc.altivec.vperm
   7113 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7114 // CHECK-LE: @llvm.ppc.altivec.vperm
   7115 // CHECK-LE: @llvm.ppc.altivec.stvx
   7116 
   7117   vec_stvrx(vs, 0, &vs);
   7118 // CHECK: @llvm.ppc.altivec.lvx
   7119 // CHECK: @llvm.ppc.altivec.lvsl
   7120 // CHECK: store <8 x i16> zeroinitializer
   7121 // CHECK: @llvm.ppc.altivec.vperm
   7122 // CHECK: @llvm.ppc.altivec.lvsr
   7123 // CHECK: @llvm.ppc.altivec.vperm
   7124 // CHECK: @llvm.ppc.altivec.stvx
   7125 // CHECK-LE: @llvm.ppc.altivec.lvx
   7126 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7127 // CHECK-LE: store <8 x i16> zeroinitializer
   7128 // CHECK-LE: @llvm.ppc.altivec.vperm
   7129 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7130 // CHECK-LE: @llvm.ppc.altivec.vperm
   7131 // CHECK-LE: @llvm.ppc.altivec.stvx
   7132 
   7133   vec_stvrx(vus, 0, &param_us);
   7134 // CHECK: @llvm.ppc.altivec.lvx
   7135 // CHECK: @llvm.ppc.altivec.lvsl
   7136 // CHECK: store <8 x i16> zeroinitializer
   7137 // CHECK: @llvm.ppc.altivec.vperm
   7138 // CHECK: @llvm.ppc.altivec.lvsr
   7139 // CHECK: @llvm.ppc.altivec.vperm
   7140 // CHECK: @llvm.ppc.altivec.stvx
   7141 // CHECK-LE: @llvm.ppc.altivec.lvx
   7142 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7143 // CHECK-LE: store <8 x i16> zeroinitializer
   7144 // CHECK-LE: @llvm.ppc.altivec.vperm
   7145 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7146 // CHECK-LE: @llvm.ppc.altivec.vperm
   7147 // CHECK-LE: @llvm.ppc.altivec.stvx
   7148 
   7149   vec_stvrx(vus, 0, &vus);
   7150 // CHECK: @llvm.ppc.altivec.lvx
   7151 // CHECK: @llvm.ppc.altivec.lvsl
   7152 // CHECK: store <8 x i16> zeroinitializer
   7153 // CHECK: @llvm.ppc.altivec.vperm
   7154 // CHECK: @llvm.ppc.altivec.lvsr
   7155 // CHECK: @llvm.ppc.altivec.vperm
   7156 // CHECK: @llvm.ppc.altivec.stvx
   7157 // CHECK-LE: @llvm.ppc.altivec.lvx
   7158 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7159 // CHECK-LE: store <8 x i16> zeroinitializer
   7160 // CHECK-LE: @llvm.ppc.altivec.vperm
   7161 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7162 // CHECK-LE: @llvm.ppc.altivec.vperm
   7163 // CHECK-LE: @llvm.ppc.altivec.stvx
   7164 
   7165   vec_stvrx(vbs, 0, &vbs);
   7166 // CHECK: @llvm.ppc.altivec.lvx
   7167 // CHECK: store <8 x i16> zeroinitializer
   7168 // CHECK: @llvm.ppc.altivec.lvsl
   7169 // CHECK: @llvm.ppc.altivec.vperm
   7170 // CHECK: @llvm.ppc.altivec.lvsr
   7171 // CHECK: @llvm.ppc.altivec.vperm
   7172 // CHECK: @llvm.ppc.altivec.stvx
   7173 // CHECK-LE: @llvm.ppc.altivec.lvx
   7174 // CHECK-LE: store <8 x i16> zeroinitializer
   7175 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7176 // CHECK-LE: @llvm.ppc.altivec.vperm
   7177 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7178 // CHECK-LE: @llvm.ppc.altivec.vperm
   7179 // CHECK-LE: @llvm.ppc.altivec.stvx
   7180 
   7181   vec_stvrx(vp, 0, &vp);
   7182 // CHECK: @llvm.ppc.altivec.lvx
   7183 // CHECK: store <8 x i16> zeroinitializer
   7184 // CHECK: @llvm.ppc.altivec.lvsl
   7185 // CHECK: @llvm.ppc.altivec.vperm
   7186 // CHECK: @llvm.ppc.altivec.lvsr
   7187 // CHECK: @llvm.ppc.altivec.vperm
   7188 // CHECK: @llvm.ppc.altivec.stvx
   7189 // CHECK-LE: @llvm.ppc.altivec.lvx
   7190 // CHECK-LE: store <8 x i16> zeroinitializer
   7191 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7192 // CHECK-LE: @llvm.ppc.altivec.vperm
   7193 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7194 // CHECK-LE: @llvm.ppc.altivec.vperm
   7195 // CHECK-LE: @llvm.ppc.altivec.stvx
   7196 
   7197   vec_stvrx(vi, 0, &param_i);
   7198 // CHECK: @llvm.ppc.altivec.lvx
   7199 // CHECK: @llvm.ppc.altivec.lvsl
   7200 // CHECK: store <4 x i32> zeroinitializer
   7201 // CHECK: @llvm.ppc.altivec.vperm
   7202 // CHECK: @llvm.ppc.altivec.lvsr
   7203 // CHECK: @llvm.ppc.altivec.vperm
   7204 // CHECK: @llvm.ppc.altivec.stvx
   7205 // CHECK-LE: @llvm.ppc.altivec.lvx
   7206 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7207 // CHECK-LE: store <4 x i32> zeroinitializer
   7208 // CHECK-LE: @llvm.ppc.altivec.vperm
   7209 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7210 // CHECK-LE: @llvm.ppc.altivec.vperm
   7211 // CHECK-LE: @llvm.ppc.altivec.stvx
   7212 
   7213   vec_stvrx(vi, 0, &vi);
   7214 // CHECK: @llvm.ppc.altivec.lvx
   7215 // CHECK: @llvm.ppc.altivec.lvsl
   7216 // CHECK: store <4 x i32> zeroinitializer
   7217 // CHECK: @llvm.ppc.altivec.vperm
   7218 // CHECK: @llvm.ppc.altivec.lvsr
   7219 // CHECK: @llvm.ppc.altivec.vperm
   7220 // CHECK: @llvm.ppc.altivec.stvx
   7221 // CHECK-LE: @llvm.ppc.altivec.lvx
   7222 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7223 // CHECK-LE: store <4 x i32> zeroinitializer
   7224 // CHECK-LE: @llvm.ppc.altivec.vperm
   7225 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7226 // CHECK-LE: @llvm.ppc.altivec.vperm
   7227 // CHECK-LE: @llvm.ppc.altivec.stvx
   7228 
   7229   vec_stvrx(vui, 0, &param_ui);
   7230 // CHECK: @llvm.ppc.altivec.lvx
   7231 // CHECK: @llvm.ppc.altivec.lvsl
   7232 // CHECK: store <4 x i32> zeroinitializer
   7233 // CHECK: @llvm.ppc.altivec.vperm
   7234 // CHECK: @llvm.ppc.altivec.lvsr
   7235 // CHECK: @llvm.ppc.altivec.vperm
   7236 // CHECK: @llvm.ppc.altivec.stvx
   7237 // CHECK-LE: @llvm.ppc.altivec.lvx
   7238 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7239 // CHECK-LE: store <4 x i32> zeroinitializer
   7240 // CHECK-LE: @llvm.ppc.altivec.vperm
   7241 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7242 // CHECK-LE: @llvm.ppc.altivec.vperm
   7243 // CHECK-LE: @llvm.ppc.altivec.stvx
   7244 
   7245   vec_stvrx(vui, 0, &vui);
   7246 // CHECK: @llvm.ppc.altivec.lvx
   7247 // CHECK: @llvm.ppc.altivec.lvsl
   7248 // CHECK: store <4 x i32> zeroinitializer
   7249 // CHECK: @llvm.ppc.altivec.vperm
   7250 // CHECK: @llvm.ppc.altivec.lvsr
   7251 // CHECK: @llvm.ppc.altivec.vperm
   7252 // CHECK: @llvm.ppc.altivec.stvx
   7253 // CHECK-LE: @llvm.ppc.altivec.lvx
   7254 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7255 // CHECK-LE: store <4 x i32> zeroinitializer
   7256 // CHECK-LE: @llvm.ppc.altivec.vperm
   7257 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7258 // CHECK-LE: @llvm.ppc.altivec.vperm
   7259 // CHECK-LE: @llvm.ppc.altivec.stvx
   7260 
   7261   vec_stvrx(vbi, 0, &vbi);
   7262 // CHECK: @llvm.ppc.altivec.lvx
   7263 // CHECK: store <4 x i32> zeroinitializer
   7264 // CHECK: @llvm.ppc.altivec.lvsl
   7265 // CHECK: @llvm.ppc.altivec.vperm
   7266 // CHECK: @llvm.ppc.altivec.lvsr
   7267 // CHECK: @llvm.ppc.altivec.vperm
   7268 // CHECK: @llvm.ppc.altivec.stvx
   7269 // CHECK-LE: @llvm.ppc.altivec.lvx
   7270 // CHECK-LE: store <4 x i32> zeroinitializer
   7271 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7272 // CHECK-LE: @llvm.ppc.altivec.vperm
   7273 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7274 // CHECK-LE: @llvm.ppc.altivec.vperm
   7275 // CHECK-LE: @llvm.ppc.altivec.stvx
   7276 
   7277   vec_stvrx(vf, 0, &vf);
   7278 // CHECK: @llvm.ppc.altivec.lvx
   7279 // CHECK: @llvm.ppc.altivec.lvsl
   7280 // CHECK: store <4 x float> zeroinitializer
   7281 // CHECK: @llvm.ppc.altivec.vperm
   7282 // CHECK: @llvm.ppc.altivec.lvsr
   7283 // CHECK: @llvm.ppc.altivec.vperm
   7284 // CHECK: @llvm.ppc.altivec.stvx
   7285 // CHECK-LE: @llvm.ppc.altivec.lvx
   7286 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7287 // CHECK-LE: store <4 x float> zeroinitializer
   7288 // CHECK-LE: @llvm.ppc.altivec.vperm
   7289 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7290 // CHECK-LE: @llvm.ppc.altivec.vperm
   7291 // CHECK-LE: @llvm.ppc.altivec.stvx
   7292 
   7293   /* vec_stvrxl */
   7294   vec_stvrxl(vsc, 0, &param_sc);
   7295 // CHECK: @llvm.ppc.altivec.lvx
   7296 // CHECK: @llvm.ppc.altivec.lvsl
   7297 // CHECK: store <16 x i8> zeroinitializer
   7298 // CHECK: @llvm.ppc.altivec.vperm
   7299 // CHECK: @llvm.ppc.altivec.lvsr
   7300 // CHECK: @llvm.ppc.altivec.vperm
   7301 // CHECK: @llvm.ppc.altivec.stvxl
   7302 // CHECK-LE: @llvm.ppc.altivec.lvx
   7303 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7304 // CHECK-LE: store <16 x i8> zeroinitializer
   7305 // CHECK-LE: @llvm.ppc.altivec.vperm
   7306 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7307 // CHECK-LE: @llvm.ppc.altivec.vperm
   7308 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7309 
   7310   vec_stvrxl(vsc, 0, &vsc);
   7311 // CHECK: @llvm.ppc.altivec.lvx
   7312 // CHECK: @llvm.ppc.altivec.lvsl
   7313 // CHECK: store <16 x i8> zeroinitializer
   7314 // CHECK: @llvm.ppc.altivec.vperm
   7315 // CHECK: @llvm.ppc.altivec.lvsr
   7316 // CHECK: @llvm.ppc.altivec.vperm
   7317 // CHECK: @llvm.ppc.altivec.stvxl
   7318 // CHECK-LE: @llvm.ppc.altivec.lvx
   7319 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7320 // CHECK-LE: store <16 x i8> zeroinitializer
   7321 // CHECK-LE: @llvm.ppc.altivec.vperm
   7322 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7323 // CHECK-LE: @llvm.ppc.altivec.vperm
   7324 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7325 
   7326   vec_stvrxl(vuc, 0, &param_uc);
   7327 // CHECK: @llvm.ppc.altivec.lvx
   7328 // CHECK: @llvm.ppc.altivec.lvsl
   7329 // CHECK: store <16 x i8> zeroinitializer
   7330 // CHECK: @llvm.ppc.altivec.vperm
   7331 // CHECK: @llvm.ppc.altivec.lvsr
   7332 // CHECK: @llvm.ppc.altivec.vperm
   7333 // CHECK: @llvm.ppc.altivec.stvxl
   7334 // CHECK-LE: @llvm.ppc.altivec.lvx
   7335 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7336 // CHECK-LE: store <16 x i8> zeroinitializer
   7337 // CHECK-LE: @llvm.ppc.altivec.vperm
   7338 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7339 // CHECK-LE: @llvm.ppc.altivec.vperm
   7340 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7341 
   7342   vec_stvrxl(vuc, 0, &vuc);
   7343 // CHECK: @llvm.ppc.altivec.lvx
   7344 // CHECK: @llvm.ppc.altivec.lvsl
   7345 // CHECK: store <16 x i8> zeroinitializer
   7346 // CHECK: @llvm.ppc.altivec.vperm
   7347 // CHECK: @llvm.ppc.altivec.lvsr
   7348 // CHECK: @llvm.ppc.altivec.vperm
   7349 // CHECK: @llvm.ppc.altivec.stvxl
   7350 // CHECK-LE: @llvm.ppc.altivec.lvx
   7351 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7352 // CHECK-LE: store <16 x i8> zeroinitializer
   7353 // CHECK-LE: @llvm.ppc.altivec.vperm
   7354 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7355 // CHECK-LE: @llvm.ppc.altivec.vperm
   7356 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7357 
   7358   vec_stvrxl(vbc, 0, &vbc);
   7359 // CHECK: @llvm.ppc.altivec.lvx
   7360 // CHECK: store <16 x i8> zeroinitializer
   7361 // CHECK: @llvm.ppc.altivec.lvsl
   7362 // CHECK: @llvm.ppc.altivec.vperm
   7363 // CHECK: @llvm.ppc.altivec.lvsr
   7364 // CHECK: @llvm.ppc.altivec.vperm
   7365 // CHECK: @llvm.ppc.altivec.stvxl
   7366 // CHECK-LE: @llvm.ppc.altivec.lvx
   7367 // CHECK-LE: store <16 x i8> zeroinitializer
   7368 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7369 // CHECK-LE: @llvm.ppc.altivec.vperm
   7370 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7371 // CHECK-LE: @llvm.ppc.altivec.vperm
   7372 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7373 
   7374   vec_stvrxl(vs, 0, &param_s);
   7375 // CHECK: @llvm.ppc.altivec.lvx
   7376 // CHECK: @llvm.ppc.altivec.lvsl
   7377 // CHECK: store <8 x i16> zeroinitializer
   7378 // CHECK: @llvm.ppc.altivec.vperm
   7379 // CHECK: @llvm.ppc.altivec.lvsr
   7380 // CHECK: @llvm.ppc.altivec.vperm
   7381 // CHECK: @llvm.ppc.altivec.stvxl
   7382 // CHECK-LE: @llvm.ppc.altivec.lvx
   7383 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7384 // CHECK-LE: store <8 x i16> zeroinitializer
   7385 // CHECK-LE: @llvm.ppc.altivec.vperm
   7386 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7387 // CHECK-LE: @llvm.ppc.altivec.vperm
   7388 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7389 
   7390   vec_stvrxl(vs, 0, &vs);
   7391 // CHECK: @llvm.ppc.altivec.lvx
   7392 // CHECK: @llvm.ppc.altivec.lvsl
   7393 // CHECK: store <8 x i16> zeroinitializer
   7394 // CHECK: @llvm.ppc.altivec.vperm
   7395 // CHECK: @llvm.ppc.altivec.lvsr
   7396 // CHECK: @llvm.ppc.altivec.vperm
   7397 // CHECK: @llvm.ppc.altivec.stvxl
   7398 // CHECK-LE: @llvm.ppc.altivec.lvx
   7399 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7400 // CHECK-LE: store <8 x i16> zeroinitializer
   7401 // CHECK-LE: @llvm.ppc.altivec.vperm
   7402 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7403 // CHECK-LE: @llvm.ppc.altivec.vperm
   7404 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7405 
   7406   vec_stvrxl(vus, 0, &param_us);
   7407 // CHECK: @llvm.ppc.altivec.lvx
   7408 // CHECK: @llvm.ppc.altivec.lvsl
   7409 // CHECK: store <8 x i16> zeroinitializer
   7410 // CHECK: @llvm.ppc.altivec.vperm
   7411 // CHECK: @llvm.ppc.altivec.lvsr
   7412 // CHECK: @llvm.ppc.altivec.vperm
   7413 // CHECK: @llvm.ppc.altivec.stvxl
   7414 // CHECK-LE: @llvm.ppc.altivec.lvx
   7415 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7416 // CHECK-LE: store <8 x i16> zeroinitializer
   7417 // CHECK-LE: @llvm.ppc.altivec.vperm
   7418 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7419 // CHECK-LE: @llvm.ppc.altivec.vperm
   7420 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7421 
   7422   vec_stvrxl(vus, 0, &vus);
   7423 // CHECK: @llvm.ppc.altivec.lvx
   7424 // CHECK: @llvm.ppc.altivec.lvsl
   7425 // CHECK: store <8 x i16> zeroinitializer
   7426 // CHECK: @llvm.ppc.altivec.vperm
   7427 // CHECK: @llvm.ppc.altivec.lvsr
   7428 // CHECK: @llvm.ppc.altivec.vperm
   7429 // CHECK: @llvm.ppc.altivec.stvxl
   7430 // CHECK-LE: @llvm.ppc.altivec.lvx
   7431 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7432 // CHECK-LE: store <8 x i16> zeroinitializer
   7433 // CHECK-LE: @llvm.ppc.altivec.vperm
   7434 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7435 // CHECK-LE: @llvm.ppc.altivec.vperm
   7436 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7437 
   7438   vec_stvrxl(vbs, 0, &vbs);
   7439 // CHECK: @llvm.ppc.altivec.lvx
   7440 // CHECK: store <8 x i16> zeroinitializer
   7441 // CHECK: @llvm.ppc.altivec.lvsl
   7442 // CHECK: @llvm.ppc.altivec.vperm
   7443 // CHECK: @llvm.ppc.altivec.lvsr
   7444 // CHECK: @llvm.ppc.altivec.vperm
   7445 // CHECK: @llvm.ppc.altivec.stvxl
   7446 // CHECK-LE: @llvm.ppc.altivec.lvx
   7447 // CHECK-LE: store <8 x i16> zeroinitializer
   7448 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7449 // CHECK-LE: @llvm.ppc.altivec.vperm
   7450 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7451 // CHECK-LE: @llvm.ppc.altivec.vperm
   7452 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7453 
   7454   vec_stvrxl(vp, 0, &vp);
   7455 // CHECK: @llvm.ppc.altivec.lvx
   7456 // CHECK: store <8 x i16> zeroinitializer
   7457 // CHECK: @llvm.ppc.altivec.lvsl
   7458 // CHECK: @llvm.ppc.altivec.vperm
   7459 // CHECK: @llvm.ppc.altivec.lvsr
   7460 // CHECK: @llvm.ppc.altivec.vperm
   7461 // CHECK: @llvm.ppc.altivec.stvxl
   7462 // CHECK-LE: @llvm.ppc.altivec.lvx
   7463 // CHECK-LE: store <8 x i16> zeroinitializer
   7464 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7465 // CHECK-LE: @llvm.ppc.altivec.vperm
   7466 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7467 // CHECK-LE: @llvm.ppc.altivec.vperm
   7468 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7469 
   7470   vec_stvrxl(vi, 0, &param_i);
   7471 // CHECK: @llvm.ppc.altivec.lvx
   7472 // CHECK: @llvm.ppc.altivec.lvsl
   7473 // CHECK: store <4 x i32> zeroinitializer
   7474 // CHECK: @llvm.ppc.altivec.vperm
   7475 // CHECK: @llvm.ppc.altivec.lvsr
   7476 // CHECK: @llvm.ppc.altivec.vperm
   7477 // CHECK: @llvm.ppc.altivec.stvxl
   7478 // CHECK-LE: @llvm.ppc.altivec.lvx
   7479 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7480 // CHECK-LE: store <4 x i32> zeroinitializer
   7481 // CHECK-LE: @llvm.ppc.altivec.vperm
   7482 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7483 // CHECK-LE: @llvm.ppc.altivec.vperm
   7484 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7485 
   7486   vec_stvrxl(vi, 0, &vi);
   7487 // CHECK: @llvm.ppc.altivec.lvx
   7488 // CHECK: @llvm.ppc.altivec.lvsl
   7489 // CHECK: store <4 x i32> zeroinitializer
   7490 // CHECK: @llvm.ppc.altivec.vperm
   7491 // CHECK: @llvm.ppc.altivec.lvsr
   7492 // CHECK: @llvm.ppc.altivec.vperm
   7493 // CHECK: @llvm.ppc.altivec.stvxl
   7494 // CHECK-LE: @llvm.ppc.altivec.lvx
   7495 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7496 // CHECK-LE: store <4 x i32> zeroinitializer
   7497 // CHECK-LE: @llvm.ppc.altivec.vperm
   7498 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7499 // CHECK-LE: @llvm.ppc.altivec.vperm
   7500 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7501 
   7502   vec_stvrxl(vui, 0, &param_ui);
   7503 // CHECK: @llvm.ppc.altivec.lvx
   7504 // CHECK: @llvm.ppc.altivec.lvsl
   7505 // CHECK: store <4 x i32> zeroinitializer
   7506 // CHECK: @llvm.ppc.altivec.vperm
   7507 // CHECK: @llvm.ppc.altivec.lvsr
   7508 // CHECK: @llvm.ppc.altivec.vperm
   7509 // CHECK: @llvm.ppc.altivec.stvxl
   7510 // CHECK-LE: @llvm.ppc.altivec.lvx
   7511 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7512 // CHECK-LE: store <4 x i32> zeroinitializer
   7513 // CHECK-LE: @llvm.ppc.altivec.vperm
   7514 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7515 // CHECK-LE: @llvm.ppc.altivec.vperm
   7516 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7517 
   7518   vec_stvrxl(vui, 0, &vui);
   7519 // CHECK: @llvm.ppc.altivec.lvx
   7520 // CHECK: @llvm.ppc.altivec.lvsl
   7521 // CHECK: store <4 x i32> zeroinitializer
   7522 // CHECK: @llvm.ppc.altivec.vperm
   7523 // CHECK: @llvm.ppc.altivec.lvsr
   7524 // CHECK: @llvm.ppc.altivec.vperm
   7525 // CHECK: @llvm.ppc.altivec.stvxl
   7526 // CHECK-LE: @llvm.ppc.altivec.lvx
   7527 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7528 // CHECK-LE: store <4 x i32> zeroinitializer
   7529 // CHECK-LE: @llvm.ppc.altivec.vperm
   7530 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7531 // CHECK-LE: @llvm.ppc.altivec.vperm
   7532 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7533 
   7534   vec_stvrxl(vbi, 0, &vbi);
   7535 // CHECK: @llvm.ppc.altivec.lvx
   7536 // CHECK: store <4 x i32> zeroinitializer
   7537 // CHECK: @llvm.ppc.altivec.lvsl
   7538 // CHECK: @llvm.ppc.altivec.vperm
   7539 // CHECK: @llvm.ppc.altivec.lvsr
   7540 // CHECK: @llvm.ppc.altivec.vperm
   7541 // CHECK: @llvm.ppc.altivec.stvxl
   7542 // CHECK-LE: @llvm.ppc.altivec.lvx
   7543 // CHECK-LE: store <4 x i32> zeroinitializer
   7544 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7545 // CHECK-LE: @llvm.ppc.altivec.vperm
   7546 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7547 // CHECK-LE: @llvm.ppc.altivec.vperm
   7548 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7549 
   7550   vec_stvrxl(vf, 0, &vf);
   7551 // CHECK: @llvm.ppc.altivec.lvx
   7552 // CHECK: @llvm.ppc.altivec.lvsl
   7553 // CHECK: store <4 x float> zeroinitializer
   7554 // CHECK: @llvm.ppc.altivec.vperm
   7555 // CHECK: @llvm.ppc.altivec.lvsr
   7556 // CHECK: @llvm.ppc.altivec.vperm
   7557 // CHECK: @llvm.ppc.altivec.stvxl
   7558 // CHECK-LE: @llvm.ppc.altivec.lvx
   7559 // CHECK-LE: @llvm.ppc.altivec.lvsl
   7560 // CHECK-LE: store <4 x float> zeroinitializer
   7561 // CHECK-LE: @llvm.ppc.altivec.vperm
   7562 // CHECK-LE: @llvm.ppc.altivec.lvsr
   7563 // CHECK-LE: @llvm.ppc.altivec.vperm
   7564 // CHECK-LE: @llvm.ppc.altivec.stvxl
   7565 
   7566   /* vec_promote */
   7567   res_vsc = vec_promote(param_sc, 0);
   7568 // CHECK: store <16 x i8> zeroinitializer
   7569 // CHECK: insertelement <16 x i8>
   7570 // CHECK-LE: store <16 x i8> zeroinitializer
   7571 // CHECK-LE: insertelement <16 x i8>
   7572 
   7573   res_vuc = vec_promote(param_uc, 0);
   7574 // CHECK: store <16 x i8> zeroinitializer
   7575 // CHECK: insertelement <16 x i8>
   7576 // CHECK-LE: store <16 x i8> zeroinitializer
   7577 // CHECK-LE: insertelement <16 x i8>
   7578 
   7579   res_vs  = vec_promote(param_s, 0);
   7580 // CHECK: store <8 x i16> zeroinitializer
   7581 // CHECK: insertelement <8 x i16>
   7582 // CHECK-LE: store <8 x i16> zeroinitializer
   7583 // CHECK-LE: insertelement <8 x i16>
   7584 
   7585   res_vus = vec_promote(param_us, 0);
   7586 // CHECK: store <8 x i16> zeroinitializer
   7587 // CHECK: insertelement <8 x i16>
   7588 // CHECK-LE: store <8 x i16> zeroinitializer
   7589 // CHECK-LE: insertelement <8 x i16>
   7590 
   7591   res_vi  = vec_promote(param_i, 0);
   7592 // CHECK: store <4 x i32> zeroinitializer
   7593 // CHECK: insertelement <4 x i32>
   7594 // CHECK-LE: store <4 x i32> zeroinitializer
   7595 // CHECK-LE: insertelement <4 x i32>
   7596 
   7597   res_vui = vec_promote(param_ui, 0);
   7598 // CHECK: store <4 x i32> zeroinitializer
   7599 // CHECK: insertelement <4 x i32>
   7600 // CHECK-LE: store <4 x i32> zeroinitializer
   7601 // CHECK-LE: insertelement <4 x i32>
   7602 
   7603   res_vf  = vec_promote(param_f, 0);
   7604 // CHECK: store <4 x float> zeroinitializer
   7605 // CHECK: insertelement <4 x float>
   7606 // CHECK-LE: store <4 x float> zeroinitializer
   7607 // CHECK-LE: insertelement <4 x float>
   7608 
   7609   /* vec_splats */
   7610   res_vsc = vec_splats(param_sc);
   7611 // CHECK: insertelement <16 x i8>
   7612 // CHECK-LE: insertelement <16 x i8>
   7613 
   7614   res_vuc = vec_splats(param_uc);
   7615 // CHECK: insertelement <16 x i8>
   7616 // CHECK-LE: insertelement <16 x i8>
   7617 
   7618   res_vs  = vec_splats(param_s);
   7619 // CHECK: insertelement <8 x i16>
   7620 // CHECK-LE: insertelement <8 x i16>
   7621 
   7622   res_vus = vec_splats(param_us);
   7623 // CHECK: insertelement <8 x i16>
   7624 // CHECK-LE: insertelement <8 x i16>
   7625 
   7626   res_vi  = vec_splats(param_i);
   7627 // CHECK: insertelement <4 x i32>
   7628 // CHECK-LE: insertelement <4 x i32>
   7629 
   7630   res_vui = vec_splats(param_ui);
   7631 // CHECK: insertelement <4 x i32>
   7632 // CHECK-LE: insertelement <4 x i32>
   7633 
   7634   res_vf  = vec_splats(param_f);
   7635 // CHECK: insertelement <4 x float>
   7636 // CHECK-LE: insertelement <4 x float>
   7637 
   7638   /* ------------------------------ predicates -------------------------------------- */
   7639 
   7640   /* vec_all_eq */
   7641   res_i = vec_all_eq(vsc, vsc);
   7642 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   7643 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   7644 
   7645   res_i = vec_all_eq(vsc, vbc);
   7646 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   7647 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   7648 
   7649   res_i = vec_all_eq(vuc, vuc);
   7650 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   7651 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   7652 
   7653   res_i = vec_all_eq(vuc, vbc);
   7654 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   7655 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   7656 
   7657   res_i = vec_all_eq(vbc, vsc);
   7658 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   7659 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   7660 
   7661   res_i = vec_all_eq(vbc, vuc);
   7662 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   7663 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   7664 
   7665   res_i = vec_all_eq(vbc, vbc);
   7666 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   7667 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   7668 
   7669   res_i = vec_all_eq(vs, vs);
   7670 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   7671 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   7672 
   7673   res_i = vec_all_eq(vs, vbs);
   7674 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   7675 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   7676 
   7677   res_i = vec_all_eq(vus, vus);
   7678 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   7679 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   7680 
   7681   res_i = vec_all_eq(vus, vbs);
   7682 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   7683 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   7684 
   7685   res_i = vec_all_eq(vbs, vs);
   7686 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   7687 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   7688 
   7689   res_i = vec_all_eq(vbs, vus);
   7690 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   7691 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   7692 
   7693   res_i = vec_all_eq(vbs, vbs);
   7694 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   7695 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   7696 
   7697   res_i = vec_all_eq(vp, vp);
   7698 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   7699 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   7700 
   7701   res_i = vec_all_eq(vi, vi);
   7702 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   7703 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   7704 
   7705   res_i = vec_all_eq(vi, vbi);
   7706 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   7707 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   7708 
   7709   res_i = vec_all_eq(vui, vui);
   7710 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   7711 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   7712 
   7713   res_i = vec_all_eq(vui, vbi);
   7714 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   7715 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   7716 
   7717   res_i = vec_all_eq(vbi, vi);
   7718 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   7719 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   7720 
   7721   res_i = vec_all_eq(vbi, vui);
   7722 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   7723 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   7724 
   7725   res_i = vec_all_eq(vbi, vbi);
   7726 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   7727 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   7728 
   7729   res_i = vec_all_eq(vf, vf);
   7730 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
   7731 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
   7732 
   7733   /* vec_all_ge */
   7734   res_i = vec_all_ge(vsc, vsc);
   7735 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
   7736 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
   7737 
   7738   res_i = vec_all_ge(vsc, vbc);
   7739 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
   7740 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
   7741 
   7742   res_i = vec_all_ge(vuc, vuc);
   7743 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   7744 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   7745 
   7746   res_i = vec_all_ge(vuc, vbc);
   7747 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   7748 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   7749 
   7750   res_i = vec_all_ge(vbc, vsc);
   7751 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   7752 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   7753 
   7754   res_i = vec_all_ge(vbc, vuc);
   7755 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   7756 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   7757 
   7758   res_i = vec_all_ge(vbc, vbc);
   7759 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   7760 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   7761 
   7762   res_i = vec_all_ge(vs, vs);
   7763 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
   7764 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
   7765 
   7766   res_i = vec_all_ge(vs, vbs);
   7767 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
   7768 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
   7769 
   7770   res_i = vec_all_ge(vus, vus);
   7771 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   7772 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   7773 
   7774   res_i = vec_all_ge(vus, vbs);
   7775 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   7776 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   7777 
   7778   res_i = vec_all_ge(vbs, vs);
   7779 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   7780 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   7781 
   7782   res_i = vec_all_ge(vbs, vus);
   7783 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   7784 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   7785 
   7786   res_i = vec_all_ge(vbs, vbs);
   7787 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   7788 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   7789 
   7790   res_i = vec_all_ge(vi, vi);
   7791 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
   7792 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
   7793 
   7794   res_i = vec_all_ge(vi, vbi);
   7795 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
   7796 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
   7797 
   7798   res_i = vec_all_ge(vui, vui);
   7799 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   7800 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   7801 
   7802   res_i = vec_all_ge(vui, vbi);
   7803 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   7804 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   7805 
   7806   res_i = vec_all_ge(vbi, vi);
   7807 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   7808 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   7809 
   7810   res_i = vec_all_ge(vbi, vui);
   7811 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   7812 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   7813 
   7814   res_i = vec_all_ge(vbi, vbi);
   7815 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   7816 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   7817 
   7818   res_i = vec_all_ge(vf, vf);
   7819 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
   7820 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
   7821 
   7822   /* vec_all_gt */
   7823   res_i = vec_all_gt(vsc, vsc);
   7824 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
   7825 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
   7826 
   7827   res_i = vec_all_gt(vsc, vbc);
   7828 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
   7829 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
   7830 
   7831   res_i = vec_all_gt(vuc, vuc);
   7832 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   7833 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   7834 
   7835   res_i = vec_all_gt(vuc, vbc);
   7836 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   7837 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   7838 
   7839   res_i = vec_all_gt(vbc, vsc);
   7840 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   7841 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   7842 
   7843   res_i = vec_all_gt(vbc, vuc);
   7844 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   7845 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   7846 
   7847   res_i = vec_all_gt(vbc, vbc);
   7848 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   7849 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   7850 
   7851   res_i = vec_all_gt(vs, vs);
   7852 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
   7853 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
   7854 
   7855   res_i = vec_all_gt(vs, vbs);
   7856 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
   7857 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
   7858 
   7859   res_i = vec_all_gt(vus, vus);
   7860 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   7861 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   7862 
   7863   res_i = vec_all_gt(vus, vbs);
   7864 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   7865 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   7866 
   7867   res_i = vec_all_gt(vbs, vs);
   7868 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   7869 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   7870 
   7871   res_i = vec_all_gt(vbs, vus);
   7872 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   7873 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   7874 
   7875   res_i = vec_all_gt(vbs, vbs);
   7876 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   7877 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   7878 
   7879   res_i = vec_all_gt(vi, vi);
   7880 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
   7881 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
   7882 
   7883   res_i = vec_all_gt(vi, vbi);
   7884 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
   7885 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
   7886 
   7887   res_i = vec_all_gt(vui, vui);
   7888 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   7889 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   7890 
   7891   res_i = vec_all_gt(vui, vbi);
   7892 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   7893 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   7894 
   7895   res_i = vec_all_gt(vbi, vi);
   7896 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   7897 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   7898 
   7899   res_i = vec_all_gt(vbi, vui);
   7900 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   7901 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   7902 
   7903   res_i = vec_all_gt(vbi, vbi);
   7904 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   7905 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   7906 
   7907   res_i = vec_all_gt(vf, vf);
   7908 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
   7909 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
   7910 
   7911   /* vec_all_in */
   7912   res_i = vec_all_in(vf, vf);
   7913 // CHECK: @llvm.ppc.altivec.vcmpbfp.p
   7914 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp.p
   7915 
   7916   /* vec_all_le */
   7917   res_i = vec_all_le(vsc, vsc);
   7918 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
   7919 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
   7920 
   7921   res_i = vec_all_le(vsc, vbc);
   7922 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
   7923 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
   7924 
   7925   res_i = vec_all_le(vuc, vuc);
   7926 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   7927 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   7928 
   7929   res_i = vec_all_le(vuc, vbc);
   7930 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   7931 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   7932 
   7933   res_i = vec_all_le(vbc, vsc);
   7934 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   7935 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   7936 
   7937   res_i = vec_all_le(vbc, vuc);
   7938 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   7939 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   7940 
   7941   res_i = vec_all_le(vbc, vbc);
   7942 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   7943 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   7944 
   7945   res_i = vec_all_le(vs, vs);
   7946 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
   7947 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
   7948 
   7949   res_i = vec_all_le(vs, vbs);
   7950 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
   7951 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
   7952 
   7953   res_i = vec_all_le(vus, vus);
   7954 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   7955 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   7956 
   7957   res_i = vec_all_le(vus, vbs);
   7958 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   7959 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   7960 
   7961   res_i = vec_all_le(vbs, vs);
   7962 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   7963 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   7964 
   7965   res_i = vec_all_le(vbs, vus);
   7966 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   7967 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   7968 
   7969   res_i = vec_all_le(vbs, vbs);
   7970 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   7971 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   7972 
   7973   res_i = vec_all_le(vi, vi);
   7974 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
   7975 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
   7976 
   7977   res_i = vec_all_le(vi, vbi);
   7978 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
   7979 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
   7980 
   7981   res_i = vec_all_le(vui, vui);
   7982 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   7983 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   7984 
   7985   res_i = vec_all_le(vui, vbi);
   7986 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   7987 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   7988 
   7989   res_i = vec_all_le(vbi, vi);
   7990 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   7991 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   7992 
   7993   res_i = vec_all_le(vbi, vui);
   7994 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   7995 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   7996 
   7997   res_i = vec_all_le(vbi, vbi);
   7998 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   7999 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8000 
   8001   res_i = vec_all_le(vf, vf);
   8002 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
   8003 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
   8004 
   8005   /* vec_all_lt */
   8006   res_i = vec_all_lt(vsc, vsc);
   8007 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
   8008 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
   8009 
   8010   res_i = vec_all_lt(vsc, vbc);
   8011 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
   8012 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
   8013 
   8014   res_i = vec_all_lt(vuc, vuc);
   8015 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8016 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8017 
   8018   res_i = vec_all_lt(vuc, vbc);
   8019 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8020 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8021 
   8022   res_i = vec_all_lt(vbc, vsc);
   8023 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8024 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8025 
   8026   res_i = vec_all_lt(vbc, vuc);
   8027 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8028 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8029 
   8030   res_i = vec_all_lt(vbc, vbc);
   8031 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8032 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8033 
   8034   res_i = vec_all_lt(vs, vs);
   8035 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
   8036 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
   8037 
   8038   res_i = vec_all_lt(vs, vbs);
   8039 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
   8040 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
   8041 
   8042   res_i = vec_all_lt(vus, vus);
   8043 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8044 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8045 
   8046   res_i = vec_all_lt(vus, vbs);
   8047 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8048 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8049 
   8050   res_i = vec_all_lt(vbs, vs);
   8051 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8052 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8053 
   8054   res_i = vec_all_lt(vbs, vus);
   8055 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8056 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8057 
   8058   res_i = vec_all_lt(vbs, vbs);
   8059 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8060 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8061 
   8062   res_i = vec_all_lt(vi, vi);
   8063 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
   8064 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
   8065 
   8066   res_i = vec_all_lt(vi, vbi);
   8067 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
   8068 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
   8069 
   8070   res_i = vec_all_lt(vui, vui);
   8071 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8072 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8073 
   8074   res_i = vec_all_lt(vui, vbi);
   8075 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8076 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8077 
   8078   res_i = vec_all_lt(vbi, vi);
   8079 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8080 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8081 
   8082   res_i = vec_all_lt(vbi, vui);
   8083 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8084 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8085 
   8086   res_i = vec_all_lt(vbi, vbi);
   8087 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8088 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8089 
   8090   res_i = vec_all_lt(vf, vf);
   8091 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
   8092 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
   8093 
   8094   /* vec_all_nan */
   8095   res_i = vec_all_nan(vf);
   8096 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
   8097 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
   8098 
   8099   /*  vec_all_ne */
   8100   res_i = vec_all_ne(vsc, vsc);
   8101 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8102 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8103 
   8104   res_i = vec_all_ne(vsc, vbc);
   8105 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8106 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8107 
   8108   res_i = vec_all_ne(vuc, vuc);
   8109 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8110 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8111 
   8112   res_i = vec_all_ne(vuc, vbc);
   8113 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8114 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8115 
   8116   res_i = vec_all_ne(vbc, vsc);
   8117 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8118 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8119 
   8120   res_i = vec_all_ne(vbc, vuc);
   8121 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8122 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8123 
   8124   res_i = vec_all_ne(vbc, vbc);
   8125 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8126 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8127 
   8128   res_i = vec_all_ne(vs, vs);
   8129 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8130 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8131 
   8132   res_i = vec_all_ne(vs, vbs);
   8133 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8134 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8135 
   8136   res_i = vec_all_ne(vus, vus);
   8137 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8138 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8139 
   8140   res_i = vec_all_ne(vus, vbs);
   8141 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8142 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8143 
   8144   res_i = vec_all_ne(vbs, vs);
   8145 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8146 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8147 
   8148   res_i = vec_all_ne(vbs, vus);
   8149 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8150 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8151 
   8152   res_i = vec_all_ne(vbs, vbs);
   8153 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8154 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8155 
   8156   res_i = vec_all_ne(vp, vp);
   8157 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8158 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8159 
   8160   res_i = vec_all_ne(vi, vi);
   8161 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8162 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8163 
   8164   res_i = vec_all_ne(vi, vbi);
   8165 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8166 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8167 
   8168   res_i = vec_all_ne(vui, vui);
   8169 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8170 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8171 
   8172   res_i = vec_all_ne(vui, vbi);
   8173 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8174 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8175 
   8176   res_i = vec_all_ne(vbi, vi);
   8177 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8178 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8179 
   8180   res_i = vec_all_ne(vbi, vui);
   8181 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8182 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8183 
   8184   res_i = vec_all_ne(vbi, vbi);
   8185 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8186 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8187 
   8188   res_i = vec_all_ne(vf, vf);
   8189 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
   8190 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
   8191 
   8192   /* vec_all_nge */
   8193   res_i = vec_all_nge(vf, vf);
   8194 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
   8195 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
   8196 
   8197   /* vec_all_ngt */
   8198   res_i = vec_all_ngt(vf, vf);
   8199 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
   8200 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
   8201 
   8202   /* vec_all_nle */
   8203   res_i = vec_all_nle(vf, vf);
   8204 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
   8205 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
   8206 
   8207   /* vec_all_nlt */
   8208   res_i = vec_all_nlt(vf, vf);
   8209 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
   8210 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
   8211 
   8212   /* vec_all_numeric */
   8213   res_i = vec_all_numeric(vf);
   8214 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
   8215 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
   8216 
   8217   /*  vec_any_eq */
   8218   res_i = vec_any_eq(vsc, vsc);
   8219 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8220 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8221 
   8222   res_i = vec_any_eq(vsc, vbc);
   8223 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8224 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8225 
   8226   res_i = vec_any_eq(vuc, vuc);
   8227 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8228 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8229 
   8230   res_i = vec_any_eq(vuc, vbc);
   8231 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8232 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8233 
   8234   res_i = vec_any_eq(vbc, vsc);
   8235 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8236 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8237 
   8238   res_i = vec_any_eq(vbc, vuc);
   8239 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8240 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8241 
   8242   res_i = vec_any_eq(vbc, vbc);
   8243 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8244 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8245 
   8246   res_i = vec_any_eq(vs, vs);
   8247 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8248 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8249 
   8250   res_i = vec_any_eq(vs, vbs);
   8251 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8252 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8253 
   8254   res_i = vec_any_eq(vus, vus);
   8255 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8256 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8257 
   8258   res_i = vec_any_eq(vus, vbs);
   8259 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8260 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8261 
   8262   res_i = vec_any_eq(vbs, vs);
   8263 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8264 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8265 
   8266   res_i = vec_any_eq(vbs, vus);
   8267 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8268 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8269 
   8270   res_i = vec_any_eq(vbs, vbs);
   8271 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8272 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8273 
   8274   res_i = vec_any_eq(vp, vp);
   8275 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8276 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8277 
   8278   res_i = vec_any_eq(vi, vi);
   8279 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8280 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8281 
   8282   res_i = vec_any_eq(vi, vbi);
   8283 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8284 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8285 
   8286   res_i = vec_any_eq(vui, vui);
   8287 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8288 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8289 
   8290   res_i = vec_any_eq(vui, vbi);
   8291 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8292 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8293 
   8294   res_i = vec_any_eq(vbi, vi);
   8295 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8296 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8297 
   8298   res_i = vec_any_eq(vbi, vui);
   8299 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8300 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8301 
   8302   res_i = vec_any_eq(vbi, vbi);
   8303 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8304 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8305 
   8306   res_i = vec_any_eq(vf, vf);
   8307 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
   8308 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
   8309 
   8310   /* vec_any_ge */
   8311   res_i = vec_any_ge(vsc, vsc);
   8312 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
   8313 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
   8314 
   8315   res_i = vec_any_ge(vsc, vbc);
   8316 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
   8317 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
   8318 
   8319   res_i = vec_any_ge(vuc, vuc);
   8320 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8321 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8322 
   8323   res_i = vec_any_ge(vuc, vbc);
   8324 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8325 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8326 
   8327   res_i = vec_any_ge(vbc, vsc);
   8328 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8329 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8330 
   8331   res_i = vec_any_ge(vbc, vuc);
   8332 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8333 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8334 
   8335   res_i = vec_any_ge(vbc, vbc);
   8336 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8337 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8338 
   8339   res_i = vec_any_ge(vs, vs);
   8340 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
   8341 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
   8342 
   8343   res_i = vec_any_ge(vs, vbs);
   8344 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
   8345 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
   8346 
   8347   res_i = vec_any_ge(vus, vus);
   8348 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8349 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8350 
   8351   res_i = vec_any_ge(vus, vbs);
   8352 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8353 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8354 
   8355   res_i = vec_any_ge(vbs, vs);
   8356 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8357 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8358 
   8359   res_i = vec_any_ge(vbs, vus);
   8360 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8361 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8362 
   8363   res_i = vec_any_ge(vbs, vbs);
   8364 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8365 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8366 
   8367   res_i = vec_any_ge(vi, vi);
   8368 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
   8369 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
   8370 
   8371   res_i = vec_any_ge(vi, vbi);
   8372 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
   8373 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
   8374 
   8375   res_i = vec_any_ge(vui, vui);
   8376 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8377 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8378 
   8379   res_i = vec_any_ge(vui, vbi);
   8380 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8381 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8382 
   8383   res_i = vec_any_ge(vbi, vi);
   8384 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8385 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8386 
   8387   res_i = vec_any_ge(vbi, vui);
   8388 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8389 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8390 
   8391   res_i = vec_any_ge(vbi, vbi);
   8392 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8393 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8394 
   8395   res_i = vec_any_ge(vf, vf);
   8396 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
   8397 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
   8398 
   8399   /* vec_any_gt */
   8400   res_i = vec_any_gt(vsc, vsc);
   8401 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
   8402 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
   8403 
   8404   res_i = vec_any_gt(vsc, vbc);
   8405 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
   8406 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
   8407 
   8408   res_i = vec_any_gt(vuc, vuc);
   8409 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8410 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8411 
   8412   res_i = vec_any_gt(vuc, vbc);
   8413 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8414 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8415 
   8416   res_i = vec_any_gt(vbc, vsc);
   8417 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8418 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8419 
   8420   res_i = vec_any_gt(vbc, vuc);
   8421 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8422 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8423 
   8424   res_i = vec_any_gt(vbc, vbc);
   8425 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8426 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8427 
   8428   res_i = vec_any_gt(vs, vs);
   8429 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
   8430 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
   8431 
   8432   res_i = vec_any_gt(vs, vbs);
   8433 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
   8434 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
   8435 
   8436   res_i = vec_any_gt(vus, vus);
   8437 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8438 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8439 
   8440   res_i = vec_any_gt(vus, vbs);
   8441 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8442 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8443 
   8444   res_i = vec_any_gt(vbs, vs);
   8445 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8446 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8447 
   8448   res_i = vec_any_gt(vbs, vus);
   8449 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8450 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8451 
   8452   res_i = vec_any_gt(vbs, vbs);
   8453 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8454 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8455 
   8456   res_i = vec_any_gt(vi, vi);
   8457 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
   8458 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
   8459 
   8460   res_i = vec_any_gt(vi, vbi);
   8461 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
   8462 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
   8463 
   8464   res_i = vec_any_gt(vui, vui);
   8465 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8466 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8467 
   8468   res_i = vec_any_gt(vui, vbi);
   8469 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8470 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8471 
   8472   res_i = vec_any_gt(vbi, vi);
   8473 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8474 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8475 
   8476   res_i = vec_any_gt(vbi, vui);
   8477 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8478 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8479 
   8480   res_i = vec_any_gt(vbi, vbi);
   8481 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8482 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8483 
   8484   res_i = vec_any_gt(vf, vf);
   8485 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
   8486 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
   8487 
   8488   /* vec_any_le */
   8489   res_i = vec_any_le(vsc, vsc);
   8490 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
   8491 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
   8492 
   8493   res_i = vec_any_le(vsc, vbc);
   8494 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
   8495 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
   8496 
   8497   res_i = vec_any_le(vuc, vuc);
   8498 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8499 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8500 
   8501   res_i = vec_any_le(vuc, vbc);
   8502 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8503 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8504 
   8505   res_i = vec_any_le(vbc, vsc);
   8506 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8507 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8508 
   8509   res_i = vec_any_le(vbc, vuc);
   8510 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8511 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8512 
   8513   res_i = vec_any_le(vbc, vbc);
   8514 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8515 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8516 
   8517   res_i = vec_any_le(vs, vs);
   8518 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
   8519 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
   8520 
   8521   res_i = vec_any_le(vs, vbs);
   8522 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
   8523 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
   8524 
   8525   res_i = vec_any_le(vus, vus);
   8526 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8527 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8528 
   8529   res_i = vec_any_le(vus, vbs);
   8530 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8531 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8532 
   8533   res_i = vec_any_le(vbs, vs);
   8534 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8535 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8536 
   8537   res_i = vec_any_le(vbs, vus);
   8538 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8539 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8540 
   8541   res_i = vec_any_le(vbs, vbs);
   8542 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8543 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8544 
   8545   res_i = vec_any_le(vi, vi);
   8546 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
   8547 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
   8548 
   8549   res_i = vec_any_le(vi, vbi);
   8550 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
   8551 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
   8552 
   8553   res_i = vec_any_le(vui, vui);
   8554 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8555 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8556 
   8557   res_i = vec_any_le(vui, vbi);
   8558 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8559 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8560 
   8561   res_i = vec_any_le(vbi, vi);
   8562 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8563 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8564 
   8565   res_i = vec_any_le(vbi, vui);
   8566 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8567 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8568 
   8569   res_i = vec_any_le(vbi, vbi);
   8570 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8571 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8572 
   8573   res_i = vec_any_le(vf, vf);
   8574 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
   8575 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
   8576 
   8577   /* vec_any_lt */
   8578   res_i = vec_any_lt(vsc, vsc);
   8579 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
   8580 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
   8581 
   8582   res_i = vec_any_lt(vsc, vbc);
   8583 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p
   8584 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p
   8585 
   8586   res_i = vec_any_lt(vuc, vuc);
   8587 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8588 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8589 
   8590   res_i = vec_any_lt(vuc, vbc);
   8591 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8592 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8593 
   8594   res_i = vec_any_lt(vbc, vsc);
   8595 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8596 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8597 
   8598   res_i = vec_any_lt(vbc, vuc);
   8599 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8600 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8601 
   8602   res_i = vec_any_lt(vbc, vbc);
   8603 // CHECK: @llvm.ppc.altivec.vcmpgtub.p
   8604 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p
   8605 
   8606   res_i = vec_any_lt(vs, vs);
   8607 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
   8608 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
   8609 
   8610   res_i = vec_any_lt(vs, vbs);
   8611 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p
   8612 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p
   8613 
   8614   res_i = vec_any_lt(vus, vus);
   8615 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8616 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8617 
   8618   res_i = vec_any_lt(vus, vbs);
   8619 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8620 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8621 
   8622   res_i = vec_any_lt(vbs, vs);
   8623 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8624 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8625 
   8626   res_i = vec_any_lt(vbs, vus);
   8627 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8628 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8629 
   8630   res_i = vec_any_lt(vbs, vbs);
   8631 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p
   8632 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p
   8633 
   8634   res_i = vec_any_lt(vi, vi);
   8635 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
   8636 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
   8637 
   8638   res_i = vec_any_lt(vi, vbi);
   8639 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p
   8640 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p
   8641 
   8642   res_i = vec_any_lt(vui, vui);
   8643 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8644 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8645 
   8646   res_i = vec_any_lt(vui, vbi);
   8647 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8648 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8649 
   8650   res_i = vec_any_lt(vbi, vi);
   8651 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8652 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8653 
   8654   res_i = vec_any_lt(vbi, vui);
   8655 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8656 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8657 
   8658   res_i = vec_any_lt(vbi, vbi);
   8659 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p
   8660 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p
   8661 
   8662   res_i = vec_any_lt(vf, vf);
   8663 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
   8664 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
   8665 
   8666   /* vec_any_nan */
   8667   res_i = vec_any_nan(vf);
   8668 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
   8669 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
   8670 
   8671   /* vec_any_ne */
   8672   res_i = vec_any_ne(vsc, vsc);
   8673 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8674 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8675 
   8676   res_i = vec_any_ne(vsc, vbc);
   8677 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8678 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8679 
   8680   res_i = vec_any_ne(vuc, vuc);
   8681 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8682 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8683 
   8684   res_i = vec_any_ne(vuc, vbc);
   8685 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8686 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8687 
   8688   res_i = vec_any_ne(vbc, vsc);
   8689 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8690 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8691 
   8692   res_i = vec_any_ne(vbc, vuc);
   8693 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8694 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8695 
   8696   res_i = vec_any_ne(vbc, vbc);
   8697 // CHECK: @llvm.ppc.altivec.vcmpequb.p
   8698 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p
   8699 
   8700   res_i = vec_any_ne(vs, vs);
   8701 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8702 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8703 
   8704   res_i = vec_any_ne(vs, vbs);
   8705 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8706 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8707 
   8708   res_i = vec_any_ne(vus, vus);
   8709 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8710 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8711 
   8712   res_i = vec_any_ne(vus, vbs);
   8713 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8714 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8715 
   8716   res_i = vec_any_ne(vbs, vs);
   8717 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8718 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8719 
   8720   res_i = vec_any_ne(vbs, vus);
   8721 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8722 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8723 
   8724   res_i = vec_any_ne(vbs, vbs);
   8725 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8726 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8727 
   8728   res_i = vec_any_ne(vp, vp);
   8729 // CHECK: @llvm.ppc.altivec.vcmpequh.p
   8730 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p
   8731 
   8732   res_i = vec_any_ne(vi, vi);
   8733 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8734 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8735 
   8736   res_i = vec_any_ne(vi, vbi);
   8737 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8738 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8739 
   8740   res_i = vec_any_ne(vui, vui);
   8741 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8742 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8743 
   8744   res_i = vec_any_ne(vui, vbi);
   8745 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8746 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8747 
   8748   res_i = vec_any_ne(vbi, vi);
   8749 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8750 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8751 
   8752   res_i = vec_any_ne(vbi, vui);
   8753 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8754 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8755 
   8756   res_i = vec_any_ne(vbi, vbi);
   8757 // CHECK: @llvm.ppc.altivec.vcmpequw.p
   8758 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p
   8759 
   8760   res_i = vec_any_ne(vf, vf);
   8761 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
   8762 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
   8763 
   8764   /* vec_any_nge */
   8765   res_i = vec_any_nge(vf, vf);
   8766 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
   8767 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
   8768 
   8769   /* vec_any_ngt */
   8770   res_i = vec_any_ngt(vf, vf);
   8771 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
   8772 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
   8773 
   8774   /* vec_any_nle */
   8775   res_i = vec_any_nle(vf, vf);
   8776 // CHECK: @llvm.ppc.altivec.vcmpgefp.p
   8777 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p
   8778 
   8779   /* vec_any_nlt */
   8780   res_i = vec_any_nlt(vf, vf);
   8781 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p
   8782 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p
   8783 
   8784   /* vec_any_numeric */
   8785   res_i = vec_any_numeric(vf);
   8786 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p
   8787 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p
   8788 
   8789   /* vec_any_out */
   8790   res_i = vec_any_out(vf, vf);
   8791 // CHECK: @llvm.ppc.altivec.vcmpbfp.p
   8792 // CHECK-LE: @llvm.ppc.altivec.vcmpbfp.p
   8793 }
   8794 
   8795 /* ------------------------------ Relational Operators ------------------------------ */
   8796 // CHECK-LABEL: define void @test7
   8797 void test7() {
   8798   vector signed char vsc1 = (vector signed char)(-1);
   8799   vector signed char vsc2 = (vector signed char)(-2);
   8800   res_i = (vsc1 == vsc2);
   8801 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 2
   8802 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 2
   8803 
   8804   res_i = (vsc1 != vsc2);
   8805 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 0
   8806 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 0
   8807 
   8808   res_i = (vsc1 <  vsc2);
   8809 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 2
   8810 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 2
   8811 
   8812   res_i = (vsc1 >  vsc2);
   8813 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 2
   8814 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 2
   8815 
   8816   res_i = (vsc1 <= vsc2);
   8817 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 0
   8818 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 0
   8819 
   8820   res_i = (vsc1 >= vsc2);
   8821 // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 0
   8822 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsb.p(i32 0
   8823 
   8824   vector unsigned char vuc1 = (vector unsigned char)(1);
   8825   vector unsigned char vuc2 = (vector unsigned char)(2);
   8826   res_i = (vuc1 == vuc2);
   8827 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 2
   8828 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 2
   8829 
   8830   res_i = (vuc1 != vuc2);
   8831 // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 0
   8832 // CHECK-LE: @llvm.ppc.altivec.vcmpequb.p(i32 0
   8833 
   8834   res_i = (vuc1 <  vuc2);
   8835 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 2
   8836 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 2
   8837 
   8838   res_i = (vuc1 >  vuc2);
   8839 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 2
   8840 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 2
   8841 
   8842   res_i = (vuc1 <= vuc2);
   8843 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 0
   8844 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 0
   8845 
   8846   res_i = (vuc1 >= vuc2);
   8847 // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 0
   8848 // CHECK-LE: @llvm.ppc.altivec.vcmpgtub.p(i32 0
   8849 
   8850   vector short vs1 = (vector short)(-1);
   8851   vector short vs2 = (vector short)(-2);
   8852   res_i = (vs1 == vs2);
   8853 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 2
   8854 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 2
   8855 
   8856   res_i = (vs1 != vs2);
   8857 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 0
   8858 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 0
   8859 
   8860   res_i = (vs1 <  vs2);
   8861 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 2
   8862 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 2
   8863 
   8864   res_i = (vs1 >  vs2);
   8865 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 2
   8866 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 2
   8867 
   8868   res_i = (vs1 <= vs2);
   8869 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 0
   8870 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 0
   8871 
   8872   res_i = (vs1 >= vs2);
   8873 // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 0
   8874 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsh.p(i32 0
   8875 
   8876   vector unsigned short vus1 = (vector unsigned short)(1);
   8877   vector unsigned short vus2 = (vector unsigned short)(2);
   8878   res_i = (vus1 == vus2);
   8879 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 2
   8880 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 2
   8881 
   8882   res_i = (vus1 != vus2);
   8883 // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 0
   8884 // CHECK-LE: @llvm.ppc.altivec.vcmpequh.p(i32 0
   8885 
   8886   res_i = (vus1 <  vus2);
   8887 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 2
   8888 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 2
   8889 
   8890   res_i = (vus1 >  vus2);
   8891 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 2
   8892 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 2
   8893 
   8894   res_i = (vus1 <= vus2);
   8895 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 0
   8896 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 0
   8897 
   8898   res_i = (vus1 >= vus2);
   8899 // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 0
   8900 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuh.p(i32 0
   8901 
   8902   vector int vi1 = (vector int)(-1);
   8903   vector int vi2 = (vector int)(-2);
   8904   res_i = (vi1 == vi2);
   8905 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 2
   8906 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 2
   8907 
   8908   res_i = (vi1 != vi2);
   8909 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 0
   8910 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 0
   8911 
   8912   res_i = (vi1 <  vi2);
   8913 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 2
   8914 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 2
   8915 
   8916   res_i = (vi1 >  vi2);
   8917 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 2
   8918 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 2
   8919 
   8920   res_i = (vi1 <= vi2);
   8921 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 0
   8922 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 0
   8923 
   8924   res_i = (vi1 >= vi2);
   8925 // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 0
   8926 // CHECK-LE: @llvm.ppc.altivec.vcmpgtsw.p(i32 0
   8927 
   8928   vector unsigned int vui1 = (vector unsigned int)(1);
   8929   vector unsigned int vui2 = (vector unsigned int)(2);
   8930   res_i = (vui1 == vui2);
   8931 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 2
   8932 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 2
   8933 
   8934   res_i = (vui1 != vui2);
   8935 // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 0
   8936 // CHECK-LE: @llvm.ppc.altivec.vcmpequw.p(i32 0
   8937 
   8938   res_i = (vui1 <  vui2);
   8939 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 2
   8940 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 2
   8941 
   8942   res_i = (vui1 >  vui2);
   8943 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 2
   8944 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 2
   8945 
   8946   res_i = (vui1 <= vui2);
   8947 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 0
   8948 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 0
   8949 
   8950   res_i = (vui1 >= vui2);
   8951 // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 0
   8952 // CHECK-LE: @llvm.ppc.altivec.vcmpgtuw.p(i32 0
   8953 
   8954   vector float vf1 = (vector float)(1.0);
   8955   vector float vf2 = (vector float)(2.0);
   8956   res_i = (vf1 == vf2);
   8957 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p(i32 2
   8958 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p(i32 2
   8959 
   8960   res_i = (vf1 != vf2);
   8961 // CHECK: @llvm.ppc.altivec.vcmpeqfp.p(i32 0
   8962 // CHECK-LE: @llvm.ppc.altivec.vcmpeqfp.p(i32 0
   8963 
   8964   res_i = (vf1 <  vf2);
   8965 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p(i32 2
   8966 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p(i32 2
   8967 
   8968   res_i = (vf1 >  vf2);
   8969 // CHECK: @llvm.ppc.altivec.vcmpgtfp.p(i32 2
   8970 // CHECK-LE: @llvm.ppc.altivec.vcmpgtfp.p(i32 2
   8971 
   8972   res_i = (vf1 <= vf2);
   8973 // CHECK: @llvm.ppc.altivec.vcmpgefp.p(i32 2
   8974 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p(i32 2
   8975 
   8976   res_i = (vf1 >= vf2);
   8977 // CHECK: @llvm.ppc.altivec.vcmpgefp.p(i32 2
   8978 // CHECK-LE: @llvm.ppc.altivec.vcmpgefp.p(i32 2
   8979 }
   8980