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