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