1*f4a2713aSLionel Sambuc // REQUIRES: ppc32-registered-target 2*f4a2713aSLionel Sambuc // RUN: %clang_cc1 -faltivec -triple powerpc-unknown-unknown -emit-llvm %s -o - | FileCheck %s 3*f4a2713aSLionel Sambuc 4*f4a2713aSLionel Sambuc vector bool char vbc = { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 }; 5*f4a2713aSLionel Sambuc vector signed char vsc = { 1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16 }; 6*f4a2713aSLionel Sambuc vector unsigned char vuc = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; 7*f4a2713aSLionel Sambuc vector bool short vbs = { 1, 0, 1, 0, 1, 0, 1, 0 }; 8*f4a2713aSLionel Sambuc vector short vs = { -1, 2, -3, 4, -5, 6, -7, 8 }; 9*f4a2713aSLionel Sambuc vector unsigned short vus = { 1, 2, 3, 4, 5, 6, 7, 8 }; 10*f4a2713aSLionel Sambuc vector pixel vp = { 1, 2, 3, 4, 5, 6, 7, 8 }; 11*f4a2713aSLionel Sambuc vector bool int vbi = { 1, 0, 1, 0 }; 12*f4a2713aSLionel Sambuc vector int vi = { -1, 2, -3, 4 }; 13*f4a2713aSLionel Sambuc vector unsigned int vui = { 1, 2, 3, 4 }; 14*f4a2713aSLionel Sambuc vector float vf = { -1.5, 2.5, -3.5, 4.5 }; 15*f4a2713aSLionel Sambuc 16*f4a2713aSLionel Sambuc vector bool char res_vbc; 17*f4a2713aSLionel Sambuc vector signed char res_vsc; 18*f4a2713aSLionel Sambuc vector unsigned char res_vuc; 19*f4a2713aSLionel Sambuc vector bool short res_vbs; 20*f4a2713aSLionel Sambuc vector short res_vs; 21*f4a2713aSLionel Sambuc vector unsigned short res_vus; 22*f4a2713aSLionel Sambuc vector pixel res_vp; 23*f4a2713aSLionel Sambuc vector bool int res_vbi; 24*f4a2713aSLionel Sambuc vector int res_vi; 25*f4a2713aSLionel Sambuc vector unsigned int res_vui; 26*f4a2713aSLionel Sambuc vector float res_vf; 27*f4a2713aSLionel Sambuc 28*f4a2713aSLionel Sambuc signed char param_sc; 29*f4a2713aSLionel Sambuc unsigned char param_uc; 30*f4a2713aSLionel Sambuc short param_s; 31*f4a2713aSLionel Sambuc unsigned short param_us; 32*f4a2713aSLionel Sambuc int param_i; 33*f4a2713aSLionel Sambuc unsigned int param_ui; 34*f4a2713aSLionel Sambuc float param_f; 35*f4a2713aSLionel Sambuc 36*f4a2713aSLionel Sambuc int res_sc; 37*f4a2713aSLionel Sambuc int res_uc; 38*f4a2713aSLionel Sambuc int res_s; 39*f4a2713aSLionel Sambuc int res_us; 40*f4a2713aSLionel Sambuc int res_i; 41*f4a2713aSLionel Sambuc int res_ui; 42*f4a2713aSLionel Sambuc int res_f; 43*f4a2713aSLionel Sambuc 44*f4a2713aSLionel Sambuc // CHECK-LABEL: define void @test1 45*f4a2713aSLionel Sambuc void test1() { 46*f4a2713aSLionel Sambuc 47*f4a2713aSLionel Sambuc /* vec_abs */ 48*f4a2713aSLionel Sambuc vsc = vec_abs(vsc); // CHECK: sub <16 x i8> zeroinitializer 49*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vmaxsb 50*f4a2713aSLionel Sambuc 51*f4a2713aSLionel Sambuc vs = vec_abs(vs); // CHECK: sub <8 x i16> zeroinitializer 52*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vmaxsh 53*f4a2713aSLionel Sambuc 54*f4a2713aSLionel Sambuc vi = vec_abs(vi); // CHECK: sub <4 x i32> zeroinitializer 55*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vmaxsw 56*f4a2713aSLionel Sambuc 57*f4a2713aSLionel Sambuc vf = vec_abs(vf); // CHECK: and <4 x i32> 58*f4a2713aSLionel Sambuc 59*f4a2713aSLionel Sambuc /* vec_abs */ 60*f4a2713aSLionel Sambuc vsc = vec_abss(vsc); // CHECK: @llvm.ppc.altivec.vsubsbs 61*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vmaxsb 62*f4a2713aSLionel Sambuc 63*f4a2713aSLionel Sambuc vs = vec_abss(vs); // CHECK: @llvm.ppc.altivec.vsubshs 64*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vmaxsh 65*f4a2713aSLionel Sambuc 66*f4a2713aSLionel Sambuc vi = vec_abss(vi); // CHECK: @llvm.ppc.altivec.vsubsws 67*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vmaxsw 68*f4a2713aSLionel Sambuc 69*f4a2713aSLionel Sambuc /* vec_add */ 70*f4a2713aSLionel Sambuc res_vsc = vec_add(vsc, vsc); // CHECK: add <16 x i8> 71*f4a2713aSLionel Sambuc res_vsc = vec_add(vbc, vsc); // CHECK: add <16 x i8> 72*f4a2713aSLionel Sambuc res_vsc = vec_add(vsc, vbc); // CHECK: add <16 x i8> 73*f4a2713aSLionel Sambuc res_vuc = vec_add(vuc, vuc); // CHECK: add <16 x i8> 74*f4a2713aSLionel Sambuc res_vuc = vec_add(vbc, vuc); // CHECK: add <16 x i8> 75*f4a2713aSLionel Sambuc res_vuc = vec_add(vuc, vbc); // CHECK: add <16 x i8> 76*f4a2713aSLionel Sambuc res_vs = vec_add(vs, vs); // CHECK: add <8 x i16> 77*f4a2713aSLionel Sambuc res_vs = vec_add(vbs, vs); // CHECK: add <8 x i16> 78*f4a2713aSLionel Sambuc res_vs = vec_add(vs, vbs); // CHECK: add <8 x i16> 79*f4a2713aSLionel Sambuc res_vus = vec_add(vus, vus); // CHECK: add <8 x i16> 80*f4a2713aSLionel Sambuc res_vus = vec_add(vbs, vus); // CHECK: add <8 x i16> 81*f4a2713aSLionel Sambuc res_vus = vec_add(vus, vbs); // CHECK: add <8 x i16> 82*f4a2713aSLionel Sambuc res_vi = vec_add(vi, vi); // CHECK: add <4 x i32> 83*f4a2713aSLionel Sambuc res_vi = vec_add(vbi, vi); // CHECK: add <4 x i32> 84*f4a2713aSLionel Sambuc res_vi = vec_add(vi, vbi); // CHECK: add <4 x i32> 85*f4a2713aSLionel Sambuc res_vui = vec_add(vui, vui); // CHECK: add <4 x i32> 86*f4a2713aSLionel Sambuc res_vui = vec_add(vbi, vui); // CHECK: add <4 x i32> 87*f4a2713aSLionel Sambuc res_vui = vec_add(vui, vbi); // CHECK: add <4 x i32> 88*f4a2713aSLionel Sambuc res_vf = vec_add(vf, vf); // CHECK: fadd <4 x float> 89*f4a2713aSLionel Sambuc res_vsc = vec_vaddubm(vsc, vsc); // CHECK: add <16 x i8> 90*f4a2713aSLionel Sambuc res_vsc = vec_vaddubm(vbc, vsc); // CHECK: add <16 x i8> 91*f4a2713aSLionel Sambuc res_vsc = vec_vaddubm(vsc, vbc); // CHECK: add <16 x i8> 92*f4a2713aSLionel Sambuc res_vuc = vec_vaddubm(vuc, vuc); // CHECK: add <16 x i8> 93*f4a2713aSLionel Sambuc res_vuc = vec_vaddubm(vbc, vuc); // CHECK: add <16 x i8> 94*f4a2713aSLionel Sambuc res_vuc = vec_vaddubm(vuc, vbc); // CHECK: add <16 x i8> 95*f4a2713aSLionel Sambuc res_vs = vec_vadduhm(vs, vs); // CHECK: add <8 x i16> 96*f4a2713aSLionel Sambuc res_vs = vec_vadduhm(vbs, vs); // CHECK: add <8 x i16> 97*f4a2713aSLionel Sambuc res_vs = vec_vadduhm(vs, vbs); // CHECK: add <8 x i16> 98*f4a2713aSLionel Sambuc res_vus = vec_vadduhm(vus, vus); // CHECK: add <8 x i16> 99*f4a2713aSLionel Sambuc res_vus = vec_vadduhm(vbs, vus); // CHECK: add <8 x i16> 100*f4a2713aSLionel Sambuc res_vus = vec_vadduhm(vus, vbs); // CHECK: add <8 x i16> 101*f4a2713aSLionel Sambuc res_vi = vec_vadduwm(vi, vi); // CHECK: add <4 x i32> 102*f4a2713aSLionel Sambuc res_vi = vec_vadduwm(vbi, vi); // CHECK: add <4 x i32> 103*f4a2713aSLionel Sambuc res_vi = vec_vadduwm(vi, vbi); // CHECK: add <4 x i32> 104*f4a2713aSLionel Sambuc res_vui = vec_vadduwm(vui, vui); // CHECK: add <4 x i32> 105*f4a2713aSLionel Sambuc res_vui = vec_vadduwm(vbi, vui); // CHECK: add <4 x i32> 106*f4a2713aSLionel Sambuc res_vui = vec_vadduwm(vui, vbi); // CHECK: add <4 x i32> 107*f4a2713aSLionel Sambuc res_vf = vec_vaddfp(vf, vf); // CHECK: fadd <4 x float> 108*f4a2713aSLionel Sambuc 109*f4a2713aSLionel Sambuc /* vec_addc */ 110*f4a2713aSLionel Sambuc res_vui = vec_addc(vui, vui); // HECK: @llvm.ppc.altivec.vaddcuw 111*f4a2713aSLionel Sambuc res_vui = vec_vaddcuw(vui, vui); // HECK: @llvm.ppc.altivec.vaddcuw 112*f4a2713aSLionel Sambuc 113*f4a2713aSLionel Sambuc /* vec_adds */ 114*f4a2713aSLionel Sambuc res_vsc = vec_adds(vsc, vsc); // CHECK: @llvm.ppc.altivec.vaddsbs 115*f4a2713aSLionel Sambuc res_vsc = vec_adds(vbc, vsc); // CHECK: @llvm.ppc.altivec.vaddsbs 116*f4a2713aSLionel Sambuc res_vsc = vec_adds(vsc, vbc); // CHECK: @llvm.ppc.altivec.vaddsbs 117*f4a2713aSLionel Sambuc res_vuc = vec_adds(vuc, vuc); // CHECK: @llvm.ppc.altivec.vaddubs 118*f4a2713aSLionel Sambuc res_vuc = vec_adds(vbc, vuc); // CHECK: @llvm.ppc.altivec.vaddubs 119*f4a2713aSLionel Sambuc res_vuc = vec_adds(vuc, vbc); // CHECK: @llvm.ppc.altivec.vaddubs 120*f4a2713aSLionel Sambuc res_vs = vec_adds(vs, vs); // CHECK: @llvm.ppc.altivec.vaddshs 121*f4a2713aSLionel Sambuc res_vs = vec_adds(vbs, vs); // CHECK: @llvm.ppc.altivec.vaddshs 122*f4a2713aSLionel Sambuc res_vs = vec_adds(vs, vbs); // CHECK: @llvm.ppc.altivec.vaddshs 123*f4a2713aSLionel Sambuc res_vus = vec_adds(vus, vus); // CHECK: @llvm.ppc.altivec.vadduhs 124*f4a2713aSLionel Sambuc res_vus = vec_adds(vbs, vus); // CHECK: @llvm.ppc.altivec.vadduhs 125*f4a2713aSLionel Sambuc res_vus = vec_adds(vus, vbs); // CHECK: @llvm.ppc.altivec.vadduhs 126*f4a2713aSLionel Sambuc res_vi = vec_adds(vi, vi); // CHECK: @llvm.ppc.altivec.vaddsws 127*f4a2713aSLionel Sambuc res_vi = vec_adds(vbi, vi); // CHECK: @llvm.ppc.altivec.vaddsws 128*f4a2713aSLionel Sambuc res_vi = vec_adds(vi, vbi); // CHECK: @llvm.ppc.altivec.vaddsws 129*f4a2713aSLionel Sambuc res_vui = vec_adds(vui, vui); // CHECK: @llvm.ppc.altivec.vadduws 130*f4a2713aSLionel Sambuc res_vui = vec_adds(vbi, vui); // CHECK: @llvm.ppc.altivec.vadduws 131*f4a2713aSLionel Sambuc res_vui = vec_adds(vui, vbi); // CHECK: @llvm.ppc.altivec.vadduws 132*f4a2713aSLionel Sambuc res_vsc = vec_vaddsbs(vsc, vsc); // CHECK: @llvm.ppc.altivec.vaddsbs 133*f4a2713aSLionel Sambuc res_vsc = vec_vaddsbs(vbc, vsc); // CHECK: @llvm.ppc.altivec.vaddsbs 134*f4a2713aSLionel Sambuc res_vsc = vec_vaddsbs(vsc, vbc); // CHECK: @llvm.ppc.altivec.vaddsbs 135*f4a2713aSLionel Sambuc res_vuc = vec_vaddubs(vuc, vuc); // CHECK: @llvm.ppc.altivec.vaddubs 136*f4a2713aSLionel Sambuc res_vuc = vec_vaddubs(vbc, vuc); // CHECK: @llvm.ppc.altivec.vaddubs 137*f4a2713aSLionel Sambuc res_vuc = vec_vaddubs(vuc, vbc); // CHECK: @llvm.ppc.altivec.vaddubs 138*f4a2713aSLionel Sambuc res_vs = vec_vaddshs(vs, vs); // CHECK: @llvm.ppc.altivec.vaddshs 139*f4a2713aSLionel Sambuc res_vs = vec_vaddshs(vbs, vs); // CHECK: @llvm.ppc.altivec.vaddshs 140*f4a2713aSLionel Sambuc res_vs = vec_vaddshs(vs, vbs); // CHECK: @llvm.ppc.altivec.vaddshs 141*f4a2713aSLionel Sambuc res_vus = vec_vadduhs(vus, vus); // CHECK: @llvm.ppc.altivec.vadduhs 142*f4a2713aSLionel Sambuc res_vus = vec_vadduhs(vbs, vus); // CHECK: @llvm.ppc.altivec.vadduhs 143*f4a2713aSLionel Sambuc res_vus = vec_vadduhs(vus, vbs); // CHECK: @llvm.ppc.altivec.vadduhs 144*f4a2713aSLionel Sambuc res_vi = vec_vaddsws(vi, vi); // CHECK: @llvm.ppc.altivec.vaddsws 145*f4a2713aSLionel Sambuc res_vi = vec_vaddsws(vbi, vi); // CHECK: @llvm.ppc.altivec.vaddsws 146*f4a2713aSLionel Sambuc res_vi = vec_vaddsws(vi, vbi); // CHECK: @llvm.ppc.altivec.vaddsws 147*f4a2713aSLionel Sambuc res_vui = vec_vadduws(vui, vui); // CHECK: @llvm.ppc.altivec.vadduws 148*f4a2713aSLionel Sambuc res_vui = vec_vadduws(vbi, vui); // CHECK: @llvm.ppc.altivec.vadduws 149*f4a2713aSLionel Sambuc res_vui = vec_vadduws(vui, vbi); // CHECK: @llvm.ppc.altivec.vadduws 150*f4a2713aSLionel Sambuc 151*f4a2713aSLionel Sambuc /* vec_and */ 152*f4a2713aSLionel Sambuc res_vsc = vec_and(vsc, vsc); // CHECK: and <16 x i8> 153*f4a2713aSLionel Sambuc res_vsc = vec_and(vbc, vsc); // CHECK: and <16 x i8> 154*f4a2713aSLionel Sambuc res_vsc = vec_and(vsc, vbc); // CHECK: and <16 x i8> 155*f4a2713aSLionel Sambuc res_vuc = vec_and(vuc, vuc); // CHECK: and <16 x i8> 156*f4a2713aSLionel Sambuc res_vuc = vec_and(vbc, vuc); // CHECK: and <16 x i8> 157*f4a2713aSLionel Sambuc res_vuc = vec_and(vuc, vbc); // CHECK: and <16 x i8> 158*f4a2713aSLionel Sambuc res_vbc = vec_and(vbc, vbc); // CHECK: and <16 x i8> 159*f4a2713aSLionel Sambuc res_vs = vec_and(vs, vs); // CHECK: and <8 x i16> 160*f4a2713aSLionel Sambuc res_vs = vec_and(vbs, vs); // CHECK: and <8 x i16> 161*f4a2713aSLionel Sambuc res_vs = vec_and(vs, vbs); // CHECK: and <8 x i16> 162*f4a2713aSLionel Sambuc res_vus = vec_and(vus, vus); // CHECK: and <8 x i16> 163*f4a2713aSLionel Sambuc res_vus = vec_and(vbs, vus); // CHECK: and <8 x i16> 164*f4a2713aSLionel Sambuc res_vus = vec_and(vus, vbs); // CHECK: and <8 x i16> 165*f4a2713aSLionel Sambuc res_vbs = vec_and(vbs, vbs); // CHECK: and <8 x i16> 166*f4a2713aSLionel Sambuc res_vi = vec_and(vi, vi); // CHECK: and <4 x i32> 167*f4a2713aSLionel Sambuc res_vi = vec_and(vbi, vi); // CHECK: and <4 x i32> 168*f4a2713aSLionel Sambuc res_vi = vec_and(vi, vbi); // CHECK: and <4 x i32> 169*f4a2713aSLionel Sambuc res_vui = vec_and(vui, vui); // CHECK: and <4 x i32> 170*f4a2713aSLionel Sambuc res_vui = vec_and(vbi, vui); // CHECK: and <4 x i32> 171*f4a2713aSLionel Sambuc res_vui = vec_and(vui, vbi); // CHECK: and <4 x i32> 172*f4a2713aSLionel Sambuc res_vbi = vec_and(vbi, vbi); // CHECK: and <4 x i32> 173*f4a2713aSLionel Sambuc res_vsc = vec_vand(vsc, vsc); // CHECK: and <16 x i8> 174*f4a2713aSLionel Sambuc res_vsc = vec_vand(vbc, vsc); // CHECK: and <16 x i8> 175*f4a2713aSLionel Sambuc res_vsc = vec_vand(vsc, vbc); // CHECK: and <16 x i8> 176*f4a2713aSLionel Sambuc res_vuc = vec_vand(vuc, vuc); // CHECK: and <16 x i8> 177*f4a2713aSLionel Sambuc res_vuc = vec_vand(vbc, vuc); // CHECK: and <16 x i8> 178*f4a2713aSLionel Sambuc res_vuc = vec_vand(vuc, vbc); // CHECK: and <16 x i8> 179*f4a2713aSLionel Sambuc res_vbc = vec_vand(vbc, vbc); // CHECK: and <16 x i8> 180*f4a2713aSLionel Sambuc res_vs = vec_vand(vs, vs); // CHECK: and <8 x i16> 181*f4a2713aSLionel Sambuc res_vs = vec_vand(vbs, vs); // CHECK: and <8 x i16> 182*f4a2713aSLionel Sambuc res_vs = vec_vand(vs, vbs); // CHECK: and <8 x i16> 183*f4a2713aSLionel Sambuc res_vus = vec_vand(vus, vus); // CHECK: and <8 x i16> 184*f4a2713aSLionel Sambuc res_vus = vec_vand(vbs, vus); // CHECK: and <8 x i16> 185*f4a2713aSLionel Sambuc res_vus = vec_vand(vus, vbs); // CHECK: and <8 x i16> 186*f4a2713aSLionel Sambuc res_vbs = vec_vand(vbs, vbs); // CHECK: and <8 x i16> 187*f4a2713aSLionel Sambuc res_vi = vec_vand(vi, vi); // CHECK: and <4 x i32> 188*f4a2713aSLionel Sambuc res_vi = vec_vand(vbi, vi); // CHECK: and <4 x i32> 189*f4a2713aSLionel Sambuc res_vi = vec_vand(vi, vbi); // CHECK: and <4 x i32> 190*f4a2713aSLionel Sambuc res_vui = vec_vand(vui, vui); // CHECK: and <4 x i32> 191*f4a2713aSLionel Sambuc res_vui = vec_vand(vbi, vui); // CHECK: and <4 x i32> 192*f4a2713aSLionel Sambuc res_vui = vec_vand(vui, vbi); // CHECK: and <4 x i32> 193*f4a2713aSLionel Sambuc res_vbi = vec_vand(vbi, vbi); // CHECK: and <4 x i32> 194*f4a2713aSLionel Sambuc 195*f4a2713aSLionel Sambuc /* vec_andc */ 196*f4a2713aSLionel Sambuc res_vsc = vec_andc(vsc, vsc); // CHECK: xor <16 x i8> 197*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 198*f4a2713aSLionel Sambuc 199*f4a2713aSLionel Sambuc res_vsc = vec_andc(vbc, vsc); // CHECK: xor <16 x i8> 200*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 201*f4a2713aSLionel Sambuc 202*f4a2713aSLionel Sambuc res_vsc = vec_andc(vsc, vbc); // CHECK: xor <16 x i8> 203*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 204*f4a2713aSLionel Sambuc 205*f4a2713aSLionel Sambuc res_vuc = vec_andc(vuc, vuc); // CHECK: xor <16 x i8> 206*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 207*f4a2713aSLionel Sambuc 208*f4a2713aSLionel Sambuc res_vuc = vec_andc(vbc, vuc); // CHECK: xor <16 x i8> 209*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 210*f4a2713aSLionel Sambuc 211*f4a2713aSLionel Sambuc res_vuc = vec_andc(vuc, vbc); // CHECK: xor <16 x i8> 212*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 213*f4a2713aSLionel Sambuc 214*f4a2713aSLionel Sambuc res_vbc = vec_andc(vbc, vbc); // CHECK: xor <16 x i8> 215*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 216*f4a2713aSLionel Sambuc 217*f4a2713aSLionel Sambuc res_vs = vec_andc(vs, vs); // CHECK: xor <8 x i16> 218*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 219*f4a2713aSLionel Sambuc 220*f4a2713aSLionel Sambuc res_vs = vec_andc(vbs, vs); // CHECK: xor <8 x i16> 221*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 222*f4a2713aSLionel Sambuc 223*f4a2713aSLionel Sambuc res_vs = vec_andc(vs, vbs); // CHECK: xor <8 x i16> 224*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 225*f4a2713aSLionel Sambuc 226*f4a2713aSLionel Sambuc res_vus = vec_andc(vus, vus); // CHECK: xor <8 x i16> 227*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 228*f4a2713aSLionel Sambuc 229*f4a2713aSLionel Sambuc res_vus = vec_andc(vbs, vus); // CHECK: xor <8 x i16> 230*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 231*f4a2713aSLionel Sambuc 232*f4a2713aSLionel Sambuc res_vus = vec_andc(vus, vbs); // CHECK: xor <8 x i16> 233*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 234*f4a2713aSLionel Sambuc 235*f4a2713aSLionel Sambuc res_vbs = vec_andc(vbs, vbs); // CHECK: xor <8 x i16> 236*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 237*f4a2713aSLionel Sambuc 238*f4a2713aSLionel Sambuc res_vi = vec_andc(vi, vi); // CHECK: xor <4 x i32> 239*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 240*f4a2713aSLionel Sambuc 241*f4a2713aSLionel Sambuc res_vi = vec_andc(vbi, vi); // CHECK: xor <4 x i32> 242*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 243*f4a2713aSLionel Sambuc 244*f4a2713aSLionel Sambuc res_vi = vec_andc(vi, vbi); // CHECK: xor <4 x i32> 245*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 246*f4a2713aSLionel Sambuc 247*f4a2713aSLionel Sambuc res_vui = vec_andc(vui, vui); // CHECK: xor <4 x i32> 248*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 249*f4a2713aSLionel Sambuc 250*f4a2713aSLionel Sambuc res_vui = vec_andc(vbi, vui); // CHECK: xor <4 x i32> 251*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 252*f4a2713aSLionel Sambuc 253*f4a2713aSLionel Sambuc res_vui = vec_andc(vui, vbi); // CHECK: xor <4 x i32> 254*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 255*f4a2713aSLionel Sambuc 256*f4a2713aSLionel Sambuc res_vf = vec_andc(vf, vf); // CHECK: xor <4 x i32> 257*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 258*f4a2713aSLionel Sambuc 259*f4a2713aSLionel Sambuc res_vf = vec_andc(vbi, vf); // CHECK: xor <4 x i32> 260*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 261*f4a2713aSLionel Sambuc 262*f4a2713aSLionel Sambuc res_vf = vec_andc(vf, vbi); // CHECK: xor <4 x i32> 263*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 264*f4a2713aSLionel Sambuc 265*f4a2713aSLionel Sambuc res_vsc = vec_vandc(vsc, vsc); // CHECK: xor <16 x i8> 266*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 267*f4a2713aSLionel Sambuc 268*f4a2713aSLionel Sambuc res_vsc = vec_vandc(vbc, vsc); // CHECK: xor <16 x i8> 269*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 270*f4a2713aSLionel Sambuc 271*f4a2713aSLionel Sambuc res_vsc = vec_vandc(vsc, vbc); // CHECK: xor <16 x i8> 272*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 273*f4a2713aSLionel Sambuc 274*f4a2713aSLionel Sambuc res_vuc = vec_vandc(vuc, vuc); // CHECK: xor <16 x i8> 275*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 276*f4a2713aSLionel Sambuc 277*f4a2713aSLionel Sambuc res_vuc = vec_vandc(vbc, vuc); // CHECK: xor <16 x i8> 278*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 279*f4a2713aSLionel Sambuc 280*f4a2713aSLionel Sambuc res_vuc = vec_vandc(vuc, vbc); // CHECK: xor <16 x i8> 281*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 282*f4a2713aSLionel Sambuc 283*f4a2713aSLionel Sambuc res_vbc = vec_vandc(vbc, vbc); // CHECK: xor <16 x i8> 284*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 285*f4a2713aSLionel Sambuc 286*f4a2713aSLionel Sambuc res_vs = vec_vandc(vs, vs); // CHECK: xor <8 x i16> 287*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 288*f4a2713aSLionel Sambuc 289*f4a2713aSLionel Sambuc res_vs = vec_vandc(vbs, vs); // CHECK: xor <8 x i16> 290*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 291*f4a2713aSLionel Sambuc 292*f4a2713aSLionel Sambuc res_vs = vec_vandc(vs, vbs); // CHECK: xor <8 x i16> 293*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 294*f4a2713aSLionel Sambuc 295*f4a2713aSLionel Sambuc res_vus = vec_vandc(vus, vus); // CHECK: xor <8 x i16> 296*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 297*f4a2713aSLionel Sambuc 298*f4a2713aSLionel Sambuc res_vus = vec_vandc(vbs, vus); // CHECK: xor <8 x i16> 299*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 300*f4a2713aSLionel Sambuc 301*f4a2713aSLionel Sambuc res_vus = vec_vandc(vus, vbs); // CHECK: xor <8 x i16> 302*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 303*f4a2713aSLionel Sambuc 304*f4a2713aSLionel Sambuc res_vbs = vec_vandc(vbs, vbs); // CHECK: xor <8 x i16> 305*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 306*f4a2713aSLionel Sambuc 307*f4a2713aSLionel Sambuc res_vi = vec_vandc(vi, vi); // CHECK: xor <4 x i32> 308*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 309*f4a2713aSLionel Sambuc 310*f4a2713aSLionel Sambuc res_vi = vec_vandc(vbi, vi); // CHECK: xor <4 x i32> 311*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 312*f4a2713aSLionel Sambuc 313*f4a2713aSLionel Sambuc res_vi = vec_vandc(vi, vbi); // CHECK: xor <4 x i32> 314*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 315*f4a2713aSLionel Sambuc 316*f4a2713aSLionel Sambuc res_vui = vec_vandc(vui, vui); // CHECK: xor <4 x i32> 317*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 318*f4a2713aSLionel Sambuc 319*f4a2713aSLionel Sambuc res_vui = vec_vandc(vbi, vui); // CHECK: xor <4 x i32> 320*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 321*f4a2713aSLionel Sambuc 322*f4a2713aSLionel Sambuc res_vui = vec_vandc(vui, vbi); // CHECK: xor <4 x i32> 323*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 324*f4a2713aSLionel Sambuc 325*f4a2713aSLionel Sambuc res_vf = vec_vandc(vf, vf); // CHECK: xor <4 x i32> 326*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 327*f4a2713aSLionel Sambuc 328*f4a2713aSLionel Sambuc res_vf = vec_vandc(vbi, vf); // CHECK: xor <4 x i32> 329*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 330*f4a2713aSLionel Sambuc 331*f4a2713aSLionel Sambuc res_vf = vec_vandc(vf, vbi); // CHECK: xor <4 x i32> 332*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 333*f4a2713aSLionel Sambuc 334*f4a2713aSLionel Sambuc } 335*f4a2713aSLionel Sambuc 336*f4a2713aSLionel Sambuc // CHECK-LABEL: define void @test2 337*f4a2713aSLionel Sambuc void test2() { 338*f4a2713aSLionel Sambuc /* vec_avg */ 339*f4a2713aSLionel Sambuc res_vsc = vec_avg(vsc, vsc); // CHECK: @llvm.ppc.altivec.vavgsb 340*f4a2713aSLionel Sambuc res_vuc = vec_avg(vuc, vuc); // CHECK: @llvm.ppc.altivec.vavgub 341*f4a2713aSLionel Sambuc res_vs = vec_avg(vs, vs); // CHECK: @llvm.ppc.altivec.vavgsh 342*f4a2713aSLionel Sambuc res_vus = vec_avg(vus, vus); // CHECK: @llvm.ppc.altivec.vavguh 343*f4a2713aSLionel Sambuc res_vi = vec_avg(vi, vi); // CHECK: @llvm.ppc.altivec.vavgsw 344*f4a2713aSLionel Sambuc res_vui = vec_avg(vui, vui); // CHECK: @llvm.ppc.altivec.vavguw 345*f4a2713aSLionel Sambuc res_vsc = vec_vavgsb(vsc, vsc); // CHECK: @llvm.ppc.altivec.vavgsb 346*f4a2713aSLionel Sambuc res_vuc = vec_vavgub(vuc, vuc); // CHECK: @llvm.ppc.altivec.vavgub 347*f4a2713aSLionel Sambuc res_vs = vec_vavgsh(vs, vs); // CHECK: @llvm.ppc.altivec.vavgsh 348*f4a2713aSLionel Sambuc res_vus = vec_vavguh(vus, vus); // CHECK: @llvm.ppc.altivec.vavguh 349*f4a2713aSLionel Sambuc res_vi = vec_vavgsw(vi, vi); // CHECK: @llvm.ppc.altivec.vavgsw 350*f4a2713aSLionel Sambuc res_vui = vec_vavguw(vui, vui); // CHECK: @llvm.ppc.altivec.vavguw 351*f4a2713aSLionel Sambuc 352*f4a2713aSLionel Sambuc /* vec_ceil */ 353*f4a2713aSLionel Sambuc res_vf = vec_ceil(vf); // CHECK: @llvm.ppc.altivec.vrfip 354*f4a2713aSLionel Sambuc res_vf = vec_vrfip(vf); // CHECK: @llvm.ppc.altivec.vrfip 355*f4a2713aSLionel Sambuc 356*f4a2713aSLionel Sambuc /* vec_cmpb */ 357*f4a2713aSLionel Sambuc res_vi = vec_cmpb(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpbfp 358*f4a2713aSLionel Sambuc res_vi = vec_vcmpbfp(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpbfp 359*f4a2713aSLionel Sambuc 360*f4a2713aSLionel Sambuc /* vec_cmpeq */ 361*f4a2713aSLionel Sambuc res_vbc = vec_cmpeq(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpequb 362*f4a2713aSLionel Sambuc res_vbc = vec_cmpeq(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb 363*f4a2713aSLionel Sambuc res_vbs = vec_cmpeq(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh 364*f4a2713aSLionel Sambuc res_vbs = vec_cmpeq(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpequh 365*f4a2713aSLionel Sambuc res_vbi = vec_cmpeq(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw 366*f4a2713aSLionel Sambuc res_vbi = vec_cmpeq(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpequw 367*f4a2713aSLionel Sambuc res_vbi = vec_cmpeq(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp 368*f4a2713aSLionel Sambuc 369*f4a2713aSLionel Sambuc /* vec_cmpge */ 370*f4a2713aSLionel Sambuc res_vbi = vec_cmpge(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp 371*f4a2713aSLionel Sambuc res_vbi = vec_vcmpgefp(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp 372*f4a2713aSLionel Sambuc } 373*f4a2713aSLionel Sambuc 374*f4a2713aSLionel Sambuc // CHECK-LABEL: define void @test5 375*f4a2713aSLionel Sambuc void test5() { 376*f4a2713aSLionel Sambuc 377*f4a2713aSLionel Sambuc /* vec_cmpgt */ 378*f4a2713aSLionel Sambuc res_vbc = vec_cmpgt(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb 379*f4a2713aSLionel Sambuc res_vbc = vec_cmpgt(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub 380*f4a2713aSLionel Sambuc res_vbs = vec_cmpgt(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh 381*f4a2713aSLionel Sambuc res_vbs = vec_cmpgt(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh 382*f4a2713aSLionel Sambuc res_vbi = vec_cmpgt(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw 383*f4a2713aSLionel Sambuc res_vbi = vec_cmpgt(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw 384*f4a2713aSLionel Sambuc res_vbi = vec_cmpgt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp 385*f4a2713aSLionel Sambuc res_vbc = vec_vcmpgtsb(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb 386*f4a2713aSLionel Sambuc res_vbc = vec_vcmpgtub(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub 387*f4a2713aSLionel Sambuc res_vbs = vec_vcmpgtsh(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh 388*f4a2713aSLionel Sambuc res_vbs = vec_vcmpgtuh(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh 389*f4a2713aSLionel Sambuc res_vbi = vec_vcmpgtsw(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw 390*f4a2713aSLionel Sambuc res_vbi = vec_vcmpgtuw(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw 391*f4a2713aSLionel Sambuc res_vbi = vec_vcmpgtfp(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp 392*f4a2713aSLionel Sambuc 393*f4a2713aSLionel Sambuc /* vec_cmple */ 394*f4a2713aSLionel Sambuc res_vbi = vec_cmple(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp 395*f4a2713aSLionel Sambuc } 396*f4a2713aSLionel Sambuc 397*f4a2713aSLionel Sambuc // CHECK-LABEL: define void @test6 398*f4a2713aSLionel Sambuc void test6() { 399*f4a2713aSLionel Sambuc /* vec_cmplt */ 400*f4a2713aSLionel Sambuc res_vbc = vec_cmplt(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb 401*f4a2713aSLionel Sambuc res_vbc = vec_cmplt(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub 402*f4a2713aSLionel Sambuc res_vbs = vec_cmplt(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh 403*f4a2713aSLionel Sambuc res_vbs = vec_cmplt(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh 404*f4a2713aSLionel Sambuc res_vbi = vec_cmplt(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw 405*f4a2713aSLionel Sambuc res_vbi = vec_cmplt(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw 406*f4a2713aSLionel Sambuc res_vbi = vec_cmplt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp 407*f4a2713aSLionel Sambuc 408*f4a2713aSLionel Sambuc /* vec_ctf */ 409*f4a2713aSLionel Sambuc res_vf = vec_ctf(vi, param_i); // CHECK: @llvm.ppc.altivec.vcfsx 410*f4a2713aSLionel Sambuc res_vf = vec_ctf(vui, 0); // CHECK: @llvm.ppc.altivec.vcfux 411*f4a2713aSLionel Sambuc res_vf = vec_vcfsx(vi, 0); // CHECK: @llvm.ppc.altivec.vcfsx 412*f4a2713aSLionel Sambuc res_vf = vec_vcfux(vui, 0); // CHECK: @llvm.ppc.altivec.vcfux 413*f4a2713aSLionel Sambuc 414*f4a2713aSLionel Sambuc /* vec_cts */ 415*f4a2713aSLionel Sambuc res_vi = vec_cts(vf, 0); // CHECK: @llvm.ppc.altivec.vctsxs 416*f4a2713aSLionel Sambuc res_vi = vec_vctsxs(vf, 0); // CHECK: @llvm.ppc.altivec.vctsxs 417*f4a2713aSLionel Sambuc 418*f4a2713aSLionel Sambuc /* vec_ctu */ 419*f4a2713aSLionel Sambuc res_vui = vec_ctu(vf, 0); // CHECK: @llvm.ppc.altivec.vctuxs 420*f4a2713aSLionel Sambuc res_vui = vec_vctuxs(vf, 0); // CHECK: @llvm.ppc.altivec.vctuxs 421*f4a2713aSLionel Sambuc 422*f4a2713aSLionel Sambuc /* vec_dss */ 423*f4a2713aSLionel Sambuc vec_dss(param_i); // CHECK: @llvm.ppc.altivec.dss 424*f4a2713aSLionel Sambuc 425*f4a2713aSLionel Sambuc /* vec_dssall */ 426*f4a2713aSLionel Sambuc vec_dssall(); // CHECK: @llvm.ppc.altivec.dssall 427*f4a2713aSLionel Sambuc 428*f4a2713aSLionel Sambuc /* vec_dst */ 429*f4a2713aSLionel Sambuc vec_dst(&vsc, 0, 0); // CHECK: @llvm.ppc.altivec.dst 430*f4a2713aSLionel Sambuc 431*f4a2713aSLionel Sambuc /* vec_dstst */ 432*f4a2713aSLionel Sambuc vec_dstst(&vs, 0, 0); // CHECK: @llvm.ppc.altivec.dstst 433*f4a2713aSLionel Sambuc 434*f4a2713aSLionel Sambuc /* vec_dststt */ 435*f4a2713aSLionel Sambuc vec_dststt(¶m_i, 0, 0); // CHECK: @llvm.ppc.altivec.dststt 436*f4a2713aSLionel Sambuc 437*f4a2713aSLionel Sambuc /* vec_dstt */ 438*f4a2713aSLionel Sambuc vec_dstt(&vf, 0, 0); // CHECK: @llvm.ppc.altivec.dstt 439*f4a2713aSLionel Sambuc 440*f4a2713aSLionel Sambuc /* vec_expte */ 441*f4a2713aSLionel Sambuc res_vf = vec_expte(vf); // CHECK: @llvm.ppc.altivec.vexptefp 442*f4a2713aSLionel Sambuc res_vf = vec_vexptefp(vf); // CHECK: @llvm.ppc.altivec.vexptefp 443*f4a2713aSLionel Sambuc 444*f4a2713aSLionel Sambuc /* vec_floor */ 445*f4a2713aSLionel Sambuc res_vf = vec_floor(vf); // CHECK: @llvm.ppc.altivec.vrfim 446*f4a2713aSLionel Sambuc res_vf = vec_vrfim(vf); // CHECK: @llvm.ppc.altivec.vrfim 447*f4a2713aSLionel Sambuc 448*f4a2713aSLionel Sambuc /* vec_ld */ 449*f4a2713aSLionel Sambuc res_vsc = vec_ld(0, &vsc); // CHECK: @llvm.ppc.altivec.lvx 450*f4a2713aSLionel Sambuc res_vsc = vec_ld(0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvx 451*f4a2713aSLionel Sambuc res_vuc = vec_ld(0, &vuc); // CHECK: @llvm.ppc.altivec.lvx 452*f4a2713aSLionel Sambuc res_vuc = vec_ld(0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvx 453*f4a2713aSLionel Sambuc res_vbc = vec_ld(0, &vbc); // CHECK: @llvm.ppc.altivec.lvx 454*f4a2713aSLionel Sambuc res_vs = vec_ld(0, &vs); // CHECK: @llvm.ppc.altivec.lvx 455*f4a2713aSLionel Sambuc res_vs = vec_ld(0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvx 456*f4a2713aSLionel Sambuc res_vus = vec_ld(0, &vus); // CHECK: @llvm.ppc.altivec.lvx 457*f4a2713aSLionel Sambuc res_vus = vec_ld(0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvx 458*f4a2713aSLionel Sambuc res_vbs = vec_ld(0, &vbs); // CHECK: @llvm.ppc.altivec.lvx 459*f4a2713aSLionel Sambuc res_vp = vec_ld(0, &vp); // CHECK: @llvm.ppc.altivec.lvx 460*f4a2713aSLionel Sambuc res_vi = vec_ld(0, &vi); // CHECK: @llvm.ppc.altivec.lvx 461*f4a2713aSLionel Sambuc res_vi = vec_ld(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvx 462*f4a2713aSLionel Sambuc res_vui = vec_ld(0, &vui); // CHECK: @llvm.ppc.altivec.lvx 463*f4a2713aSLionel Sambuc res_vui = vec_ld(0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvx 464*f4a2713aSLionel Sambuc res_vbi = vec_ld(0, &vbi); // CHECK: @llvm.ppc.altivec.lvx 465*f4a2713aSLionel Sambuc res_vf = vec_ld(0, &vf); // CHECK: @llvm.ppc.altivec.lvx 466*f4a2713aSLionel Sambuc res_vf = vec_ld(0, ¶m_f); // CHECK: @llvm.ppc.altivec.lvx 467*f4a2713aSLionel Sambuc res_vsc = vec_lvx(0, &vsc); // CHECK: @llvm.ppc.altivec.lvx 468*f4a2713aSLionel Sambuc res_vsc = vec_lvx(0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvx 469*f4a2713aSLionel Sambuc res_vuc = vec_lvx(0, &vuc); // CHECK: @llvm.ppc.altivec.lvx 470*f4a2713aSLionel Sambuc res_vuc = vec_lvx(0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvx 471*f4a2713aSLionel Sambuc res_vbc = vec_lvx(0, &vbc); // CHECK: @llvm.ppc.altivec.lvx 472*f4a2713aSLionel Sambuc res_vs = vec_lvx(0, &vs); // CHECK: @llvm.ppc.altivec.lvx 473*f4a2713aSLionel Sambuc res_vs = vec_lvx(0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvx 474*f4a2713aSLionel Sambuc res_vus = vec_lvx(0, &vus); // CHECK: @llvm.ppc.altivec.lvx 475*f4a2713aSLionel Sambuc res_vus = vec_lvx(0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvx 476*f4a2713aSLionel Sambuc res_vbs = vec_lvx(0, &vbs); // CHECK: @llvm.ppc.altivec.lvx 477*f4a2713aSLionel Sambuc res_vp = vec_lvx(0, &vp); // CHECK: @llvm.ppc.altivec.lvx 478*f4a2713aSLionel Sambuc res_vi = vec_lvx(0, &vi); // CHECK: @llvm.ppc.altivec.lvx 479*f4a2713aSLionel Sambuc res_vi = vec_lvx(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvx 480*f4a2713aSLionel Sambuc res_vui = vec_lvx(0, &vui); // CHECK: @llvm.ppc.altivec.lvx 481*f4a2713aSLionel Sambuc res_vui = vec_lvx(0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvx 482*f4a2713aSLionel Sambuc res_vbi = vec_lvx(0, &vbi); // CHECK: @llvm.ppc.altivec.lvx 483*f4a2713aSLionel Sambuc res_vf = vec_lvx(0, &vf); // CHECK: @llvm.ppc.altivec.lvx 484*f4a2713aSLionel Sambuc res_vf = vec_lvx(0, ¶m_f); // CHECK: @llvm.ppc.altivec.lvx 485*f4a2713aSLionel Sambuc 486*f4a2713aSLionel Sambuc /* vec_lde */ 487*f4a2713aSLionel Sambuc res_vsc = vec_lde(0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvebx 488*f4a2713aSLionel Sambuc res_vuc = vec_lde(0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvebx 489*f4a2713aSLionel Sambuc res_vs = vec_lde(0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvehx 490*f4a2713aSLionel Sambuc res_vus = vec_lde(0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvehx 491*f4a2713aSLionel Sambuc res_vi = vec_lde(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvewx 492*f4a2713aSLionel Sambuc res_vui = vec_lde(0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvewx 493*f4a2713aSLionel Sambuc res_vf = vec_lde(0, ¶m_f); // CHECK: @llvm.ppc.altivec.lvewx 494*f4a2713aSLionel Sambuc res_vsc = vec_lvebx(0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvebx 495*f4a2713aSLionel Sambuc res_vuc = vec_lvebx(0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvebx 496*f4a2713aSLionel Sambuc res_vs = vec_lvehx(0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvehx 497*f4a2713aSLionel Sambuc res_vus = vec_lvehx(0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvehx 498*f4a2713aSLionel Sambuc res_vi = vec_lvewx(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvewx 499*f4a2713aSLionel Sambuc res_vui = vec_lvewx(0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvewx 500*f4a2713aSLionel Sambuc res_vf = vec_lvewx(0, ¶m_f); // CHECK: @llvm.ppc.altivec.lvewx 501*f4a2713aSLionel Sambuc 502*f4a2713aSLionel Sambuc /* vec_ldl */ 503*f4a2713aSLionel Sambuc res_vsc = vec_ldl(0, &vsc); // CHECK: @llvm.ppc.altivec.lvxl 504*f4a2713aSLionel Sambuc res_vsc = vec_ldl(0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvxl 505*f4a2713aSLionel Sambuc res_vuc = vec_ldl(0, &vuc); // CHECK: @llvm.ppc.altivec.lvxl 506*f4a2713aSLionel Sambuc res_vuc = vec_ldl(0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvxl 507*f4a2713aSLionel Sambuc res_vbc = vec_ldl(0, &vbc); // CHECK: @llvm.ppc.altivec.lvxl 508*f4a2713aSLionel Sambuc res_vs = vec_ldl(0, &vs); // CHECK: @llvm.ppc.altivec.lvxl 509*f4a2713aSLionel Sambuc res_vs = vec_ldl(0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvxl 510*f4a2713aSLionel Sambuc res_vus = vec_ldl(0, &vus); // CHECK: @llvm.ppc.altivec.lvxl 511*f4a2713aSLionel Sambuc res_vus = vec_ldl(0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvxl 512*f4a2713aSLionel Sambuc res_vbs = vec_ldl(0, &vbs); // CHECK: @llvm.ppc.altivec.lvxl 513*f4a2713aSLionel Sambuc res_vp = vec_ldl(0, &vp); // CHECK: @llvm.ppc.altivec.lvxl 514*f4a2713aSLionel Sambuc res_vi = vec_ldl(0, &vi); // CHECK: @llvm.ppc.altivec.lvxl 515*f4a2713aSLionel Sambuc res_vi = vec_ldl(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvxl 516*f4a2713aSLionel Sambuc res_vui = vec_ldl(0, &vui); // CHECK: @llvm.ppc.altivec.lvxl 517*f4a2713aSLionel Sambuc res_vui = vec_ldl(0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvxl 518*f4a2713aSLionel Sambuc res_vbi = vec_ldl(0, &vbi); // CHECK: @llvm.ppc.altivec.lvxl 519*f4a2713aSLionel Sambuc res_vf = vec_ldl(0, &vf); // CHECK: @llvm.ppc.altivec.lvxl 520*f4a2713aSLionel Sambuc res_vf = vec_ldl(0, ¶m_f); // CHECK: @llvm.ppc.altivec.lvxl 521*f4a2713aSLionel Sambuc res_vsc = vec_lvxl(0, &vsc); // CHECK: @llvm.ppc.altivec.lvxl 522*f4a2713aSLionel Sambuc res_vsc = vec_lvxl(0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvxl 523*f4a2713aSLionel Sambuc res_vuc = vec_lvxl(0, &vuc); // CHECK: @llvm.ppc.altivec.lvxl 524*f4a2713aSLionel Sambuc res_vbc = vec_lvxl(0, &vbc); // CHECK: @llvm.ppc.altivec.lvxl 525*f4a2713aSLionel Sambuc res_vuc = vec_lvxl(0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvxl 526*f4a2713aSLionel Sambuc res_vs = vec_lvxl(0, &vs); // CHECK: @llvm.ppc.altivec.lvxl 527*f4a2713aSLionel Sambuc res_vs = vec_lvxl(0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvxl 528*f4a2713aSLionel Sambuc res_vus = vec_lvxl(0, &vus); // CHECK: @llvm.ppc.altivec.lvxl 529*f4a2713aSLionel Sambuc res_vus = vec_lvxl(0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvxl 530*f4a2713aSLionel Sambuc res_vbs = vec_lvxl(0, &vbs); // CHECK: @llvm.ppc.altivec.lvxl 531*f4a2713aSLionel Sambuc res_vp = vec_lvxl(0, &vp); // CHECK: @llvm.ppc.altivec.lvxl 532*f4a2713aSLionel Sambuc res_vi = vec_lvxl(0, &vi); // CHECK: @llvm.ppc.altivec.lvxl 533*f4a2713aSLionel Sambuc res_vi = vec_lvxl(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvxl 534*f4a2713aSLionel Sambuc res_vui = vec_lvxl(0, &vui); // CHECK: @llvm.ppc.altivec.lvxl 535*f4a2713aSLionel Sambuc res_vui = vec_lvxl(0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvxl 536*f4a2713aSLionel Sambuc res_vbi = vec_lvxl(0, &vbi); // CHECK: @llvm.ppc.altivec.lvxl 537*f4a2713aSLionel Sambuc res_vf = vec_lvxl(0, &vf); // CHECK: @llvm.ppc.altivec.lvxl 538*f4a2713aSLionel Sambuc res_vf = vec_lvxl(0, ¶m_f); // CHECK: @llvm.ppc.altivec.lvxl 539*f4a2713aSLionel Sambuc 540*f4a2713aSLionel Sambuc /* vec_loge */ 541*f4a2713aSLionel Sambuc res_vf = vec_loge(vf); // CHECK: @llvm.ppc.altivec.vlogefp 542*f4a2713aSLionel Sambuc res_vf = vec_vlogefp(vf); // CHECK: @llvm.ppc.altivec.vlogefp 543*f4a2713aSLionel Sambuc 544*f4a2713aSLionel Sambuc /* vec_lvsl */ 545*f4a2713aSLionel Sambuc res_vuc = vec_lvsl(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvsl 546*f4a2713aSLionel Sambuc 547*f4a2713aSLionel Sambuc /* vec_lvsr */ 548*f4a2713aSLionel Sambuc res_vuc = vec_lvsr(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvsr 549*f4a2713aSLionel Sambuc 550*f4a2713aSLionel Sambuc /* vec_madd */ 551*f4a2713aSLionel Sambuc res_vf =vec_madd(vf, vf, vf); // CHECK: @llvm.ppc.altivec.vmaddfp 552*f4a2713aSLionel Sambuc res_vf = vec_vmaddfp(vf, vf, vf); // CHECK: @llvm.ppc.altivec.vmaddfp 553*f4a2713aSLionel Sambuc 554*f4a2713aSLionel Sambuc /* vec_madds */ 555*f4a2713aSLionel Sambuc res_vs = vec_madds(vs, vs, vs); // CHECK: @llvm.ppc.altivec.vmhaddshs 556*f4a2713aSLionel Sambuc res_vs = vec_vmhaddshs(vs, vs, vs); // CHECK: @llvm.ppc.altivec.vmhaddshs 557*f4a2713aSLionel Sambuc 558*f4a2713aSLionel Sambuc /* vec_max */ 559*f4a2713aSLionel Sambuc res_vsc = vec_max(vsc, vsc); // CHECK: @llvm.ppc.altivec.vmaxsb 560*f4a2713aSLionel Sambuc res_vsc = vec_max(vbc, vsc); // CHECK: @llvm.ppc.altivec.vmaxsb 561*f4a2713aSLionel Sambuc res_vsc = vec_max(vsc, vbc); // CHECK: @llvm.ppc.altivec.vmaxsb 562*f4a2713aSLionel Sambuc res_vuc = vec_max(vuc, vuc); // CHECK: @llvm.ppc.altivec.vmaxub 563*f4a2713aSLionel Sambuc res_vuc = vec_max(vbc, vuc); // CHECK: @llvm.ppc.altivec.vmaxub 564*f4a2713aSLionel Sambuc res_vuc = vec_max(vuc, vbc); // CHECK: @llvm.ppc.altivec.vmaxub 565*f4a2713aSLionel Sambuc res_vs = vec_max(vs, vs); // CHECK: @llvm.ppc.altivec.vmaxsh 566*f4a2713aSLionel Sambuc res_vs = vec_max(vbs, vs); // CHECK: @llvm.ppc.altivec.vmaxsh 567*f4a2713aSLionel Sambuc res_vs = vec_max(vs, vbs); // CHECK: @llvm.ppc.altivec.vmaxsh 568*f4a2713aSLionel Sambuc res_vus = vec_max(vus, vus); // CHECK: @llvm.ppc.altivec.vmaxuh 569*f4a2713aSLionel Sambuc res_vus = vec_max(vbs, vus); // CHECK: @llvm.ppc.altivec.vmaxuh 570*f4a2713aSLionel Sambuc res_vus = vec_max(vus, vbs); // CHECK: @llvm.ppc.altivec.vmaxuh 571*f4a2713aSLionel Sambuc res_vi = vec_max(vi, vi); // CHECK: @llvm.ppc.altivec.vmaxsw 572*f4a2713aSLionel Sambuc res_vi = vec_max(vbi, vi); // CHECK: @llvm.ppc.altivec.vmaxsw 573*f4a2713aSLionel Sambuc res_vi = vec_max(vi, vbi); // CHECK: @llvm.ppc.altivec.vmaxsw 574*f4a2713aSLionel Sambuc res_vui = vec_max(vui, vui); // CHECK: @llvm.ppc.altivec.vmaxuw 575*f4a2713aSLionel Sambuc res_vui = vec_max(vbi, vui); // CHECK: @llvm.ppc.altivec.vmaxuw 576*f4a2713aSLionel Sambuc res_vui = vec_max(vui, vbi); // CHECK: @llvm.ppc.altivec.vmaxuw 577*f4a2713aSLionel Sambuc res_vf = vec_max(vf, vf); // CHECK: @llvm.ppc.altivec.vmaxfp 578*f4a2713aSLionel Sambuc res_vsc = vec_vmaxsb(vsc, vsc); // CHECK: @llvm.ppc.altivec.vmaxsb 579*f4a2713aSLionel Sambuc res_vsc = vec_vmaxsb(vbc, vsc); // CHECK: @llvm.ppc.altivec.vmaxsb 580*f4a2713aSLionel Sambuc res_vsc = vec_vmaxsb(vsc, vbc); // CHECK: @llvm.ppc.altivec.vmaxsb 581*f4a2713aSLionel Sambuc res_vuc = vec_vmaxub(vuc, vuc); // CHECK: @llvm.ppc.altivec.vmaxub 582*f4a2713aSLionel Sambuc res_vuc = vec_vmaxub(vbc, vuc); // CHECK: @llvm.ppc.altivec.vmaxub 583*f4a2713aSLionel Sambuc res_vuc = vec_vmaxub(vuc, vbc); // CHECK: @llvm.ppc.altivec.vmaxub 584*f4a2713aSLionel Sambuc res_vs = vec_vmaxsh(vs, vs); // CHECK: @llvm.ppc.altivec.vmaxsh 585*f4a2713aSLionel Sambuc res_vs = vec_vmaxsh(vbs, vs); // CHECK: @llvm.ppc.altivec.vmaxsh 586*f4a2713aSLionel Sambuc res_vs = vec_vmaxsh(vs, vbs); // CHECK: @llvm.ppc.altivec.vmaxsh 587*f4a2713aSLionel Sambuc res_vus = vec_vmaxuh(vus, vus); // CHECK: @llvm.ppc.altivec.vmaxuh 588*f4a2713aSLionel Sambuc res_vus = vec_vmaxuh(vbs, vus); // CHECK: @llvm.ppc.altivec.vmaxuh 589*f4a2713aSLionel Sambuc res_vus = vec_vmaxuh(vus, vbs); // CHECK: @llvm.ppc.altivec.vmaxuh 590*f4a2713aSLionel Sambuc res_vi = vec_vmaxsw(vi, vi); // CHECK: @llvm.ppc.altivec.vmaxsw 591*f4a2713aSLionel Sambuc res_vi = vec_vmaxsw(vbi, vi); // CHECK: @llvm.ppc.altivec.vmaxsw 592*f4a2713aSLionel Sambuc res_vi = vec_vmaxsw(vi, vbi); // CHECK: @llvm.ppc.altivec.vmaxsw 593*f4a2713aSLionel Sambuc res_vui = vec_vmaxuw(vui, vui); // CHECK: @llvm.ppc.altivec.vmaxuw 594*f4a2713aSLionel Sambuc res_vui = vec_vmaxuw(vbi, vui); // CHECK: @llvm.ppc.altivec.vmaxuw 595*f4a2713aSLionel Sambuc res_vui = vec_vmaxuw(vui, vbi); // CHECK: @llvm.ppc.altivec.vmaxuw 596*f4a2713aSLionel Sambuc res_vf = vec_vmaxfp(vf, vf); // CHECK: @llvm.ppc.altivec.vmaxfp 597*f4a2713aSLionel Sambuc 598*f4a2713aSLionel Sambuc /* vec_mergeh */ 599*f4a2713aSLionel Sambuc res_vsc = vec_mergeh(vsc, vsc); // CHECK: @llvm.ppc.altivec.vperm 600*f4a2713aSLionel Sambuc res_vuc = vec_mergeh(vuc, vuc); // CHECK: @llvm.ppc.altivec.vperm 601*f4a2713aSLionel Sambuc res_vbc = vec_mergeh(vbc, vbc); // CHECK: @llvm.ppc.altivec.vperm 602*f4a2713aSLionel Sambuc res_vs = vec_mergeh(vs, vs); // CHECK: @llvm.ppc.altivec.vperm 603*f4a2713aSLionel Sambuc res_vp = vec_mergeh(vp, vp); // CHECK: @llvm.ppc.altivec.vperm 604*f4a2713aSLionel Sambuc res_vus = vec_mergeh(vus, vus); // CHECK: @llvm.ppc.altivec.vperm 605*f4a2713aSLionel Sambuc res_vbs = vec_mergeh(vbs, vbs); // CHECK: @llvm.ppc.altivec.vperm 606*f4a2713aSLionel Sambuc res_vi = vec_mergeh(vi, vi); // CHECK: @llvm.ppc.altivec.vperm 607*f4a2713aSLionel Sambuc res_vui = vec_mergeh(vui, vui); // CHECK: @llvm.ppc.altivec.vperm 608*f4a2713aSLionel Sambuc res_vbi = vec_mergeh(vbi, vbi); // CHECK: @llvm.ppc.altivec.vperm 609*f4a2713aSLionel Sambuc res_vf = vec_mergeh(vf, vf); // CHECK: @llvm.ppc.altivec.vperm 610*f4a2713aSLionel Sambuc res_vsc = vec_vmrghb(vsc, vsc); // CHECK: @llvm.ppc.altivec.vperm 611*f4a2713aSLionel Sambuc res_vuc = vec_vmrghb(vuc, vuc); // CHECK: @llvm.ppc.altivec.vperm 612*f4a2713aSLionel Sambuc res_vbc = vec_vmrghb(vbc, vbc); // CHECK: @llvm.ppc.altivec.vperm 613*f4a2713aSLionel Sambuc res_vs = vec_vmrghh(vs, vs); // CHECK: @llvm.ppc.altivec.vperm 614*f4a2713aSLionel Sambuc res_vp = vec_vmrghh(vp, vp); // CHECK: @llvm.ppc.altivec.vperm 615*f4a2713aSLionel Sambuc res_vus = vec_vmrghh(vus, vus); // CHECK: @llvm.ppc.altivec.vperm 616*f4a2713aSLionel Sambuc res_vbs = vec_vmrghh(vbs, vbs); // CHECK: @llvm.ppc.altivec.vperm 617*f4a2713aSLionel Sambuc res_vi = vec_vmrghw(vi, vi); // CHECK: @llvm.ppc.altivec.vperm 618*f4a2713aSLionel Sambuc res_vui = vec_vmrghw(vui, vui); // CHECK: @llvm.ppc.altivec.vperm 619*f4a2713aSLionel Sambuc res_vbi = vec_vmrghw(vbi, vbi); // CHECK: @llvm.ppc.altivec.vperm 620*f4a2713aSLionel Sambuc res_vf = vec_vmrghw(vf, vf); // CHECK: @llvm.ppc.altivec.vperm 621*f4a2713aSLionel Sambuc 622*f4a2713aSLionel Sambuc /* vec_mergel */ 623*f4a2713aSLionel Sambuc res_vsc = vec_mergel(vsc, vsc); // CHECK: @llvm.ppc.altivec.vperm 624*f4a2713aSLionel Sambuc res_vuc = vec_mergel(vuc, vuc); // CHECK: @llvm.ppc.altivec.vperm 625*f4a2713aSLionel Sambuc res_vbc = vec_mergel(vbc, vbc); // CHECK: @llvm.ppc.altivec.vperm 626*f4a2713aSLionel Sambuc res_vs = vec_mergel(vs, vs); // CHECK: @llvm.ppc.altivec.vperm 627*f4a2713aSLionel Sambuc res_vp = vec_mergeh(vp, vp); // CHECK: @llvm.ppc.altivec.vperm 628*f4a2713aSLionel Sambuc res_vus = vec_mergel(vus, vus); // CHECK: @llvm.ppc.altivec.vperm 629*f4a2713aSLionel Sambuc res_vbs = vec_mergel(vbs, vbs); // CHECK: @llvm.ppc.altivec.vperm 630*f4a2713aSLionel Sambuc res_vi = vec_mergel(vi, vi); // CHECK: @llvm.ppc.altivec.vperm 631*f4a2713aSLionel Sambuc res_vui = vec_mergel(vui, vui); // CHECK: @llvm.ppc.altivec.vperm 632*f4a2713aSLionel Sambuc res_vbi = vec_mergel(vbi, vbi); // CHECK: @llvm.ppc.altivec.vperm 633*f4a2713aSLionel Sambuc res_vf = vec_mergel(vf, vf); // CHECK: @llvm.ppc.altivec.vperm 634*f4a2713aSLionel Sambuc res_vsc = vec_vmrglb(vsc, vsc); // CHECK: @llvm.ppc.altivec.vperm 635*f4a2713aSLionel Sambuc res_vuc = vec_vmrglb(vuc, vuc); // CHECK: @llvm.ppc.altivec.vperm 636*f4a2713aSLionel Sambuc res_vbc = vec_vmrglb(vbc, vbc); // CHECK: @llvm.ppc.altivec.vperm 637*f4a2713aSLionel Sambuc res_vs = vec_vmrglh(vs, vs); // CHECK: @llvm.ppc.altivec.vperm 638*f4a2713aSLionel Sambuc res_vp = vec_vmrglh(vp, vp); // CHECK: @llvm.ppc.altivec.vperm 639*f4a2713aSLionel Sambuc res_vus = vec_vmrglh(vus, vus); // CHECK: @llvm.ppc.altivec.vperm 640*f4a2713aSLionel Sambuc res_vbs = vec_vmrglh(vbs, vbs); // CHECK: @llvm.ppc.altivec.vperm 641*f4a2713aSLionel Sambuc res_vi = vec_vmrglw(vi, vi); // CHECK: @llvm.ppc.altivec.vperm 642*f4a2713aSLionel Sambuc res_vui = vec_vmrglw(vui, vui); // CHECK: @llvm.ppc.altivec.vperm 643*f4a2713aSLionel Sambuc res_vbi = vec_vmrglw(vbi, vbi); // CHECK: @llvm.ppc.altivec.vperm 644*f4a2713aSLionel Sambuc res_vf = vec_vmrglw(vf, vf); // CHECK: @llvm.ppc.altivec.vperm 645*f4a2713aSLionel Sambuc 646*f4a2713aSLionel Sambuc /* vec_mfvscr */ 647*f4a2713aSLionel Sambuc vus = vec_mfvscr(); // CHECK: @llvm.ppc.altivec.mfvscr 648*f4a2713aSLionel Sambuc 649*f4a2713aSLionel Sambuc /* vec_min */ 650*f4a2713aSLionel Sambuc res_vsc = vec_min(vsc, vsc); // CHECK: @llvm.ppc.altivec.vminsb 651*f4a2713aSLionel Sambuc res_vsc = vec_min(vbc, vsc); // CHECK: @llvm.ppc.altivec.vminsb 652*f4a2713aSLionel Sambuc res_vsc = vec_min(vsc, vbc); // CHECK: @llvm.ppc.altivec.vminsb 653*f4a2713aSLionel Sambuc res_vuc = vec_min(vuc, vuc); // CHECK: @llvm.ppc.altivec.vminub 654*f4a2713aSLionel Sambuc res_vuc = vec_min(vbc, vuc); // CHECK: @llvm.ppc.altivec.vminub 655*f4a2713aSLionel Sambuc res_vuc = vec_min(vuc, vbc); // CHECK: @llvm.ppc.altivec.vminub 656*f4a2713aSLionel Sambuc res_vs = vec_min(vs, vs); // CHECK: @llvm.ppc.altivec.vminsh 657*f4a2713aSLionel Sambuc res_vs = vec_min(vbs, vs); // CHECK: @llvm.ppc.altivec.vminsh 658*f4a2713aSLionel Sambuc res_vs = vec_min(vs, vbs); // CHECK: @llvm.ppc.altivec.vminsh 659*f4a2713aSLionel Sambuc res_vus = vec_min(vus, vus); // CHECK: @llvm.ppc.altivec.vminuh 660*f4a2713aSLionel Sambuc res_vus = vec_min(vbs, vus); // CHECK: @llvm.ppc.altivec.vminuh 661*f4a2713aSLionel Sambuc res_vus = vec_min(vus, vbs); // CHECK: @llvm.ppc.altivec.vminuh 662*f4a2713aSLionel Sambuc res_vi = vec_min(vi, vi); // CHECK: @llvm.ppc.altivec.vminsw 663*f4a2713aSLionel Sambuc res_vi = vec_min(vbi, vi); // CHECK: @llvm.ppc.altivec.vminsw 664*f4a2713aSLionel Sambuc res_vi = vec_min(vi, vbi); // CHECK: @llvm.ppc.altivec.vminsw 665*f4a2713aSLionel Sambuc res_vui = vec_min(vui, vui); // CHECK: @llvm.ppc.altivec.vminuw 666*f4a2713aSLionel Sambuc res_vui = vec_min(vbi, vui); // CHECK: @llvm.ppc.altivec.vminuw 667*f4a2713aSLionel Sambuc res_vui = vec_min(vui, vbi); // CHECK: @llvm.ppc.altivec.vminuw 668*f4a2713aSLionel Sambuc res_vf = vec_min(vf, vf); // CHECK: @llvm.ppc.altivec.vminfp 669*f4a2713aSLionel Sambuc res_vsc = vec_vminsb(vsc, vsc); // CHECK: @llvm.ppc.altivec.vminsb 670*f4a2713aSLionel Sambuc res_vsc = vec_vminsb(vbc, vsc); // CHECK: @llvm.ppc.altivec.vminsb 671*f4a2713aSLionel Sambuc res_vsc = vec_vminsb(vsc, vbc); // CHECK: @llvm.ppc.altivec.vminsb 672*f4a2713aSLionel Sambuc res_vuc = vec_vminub(vuc, vuc); // CHECK: @llvm.ppc.altivec.vminub 673*f4a2713aSLionel Sambuc res_vuc = vec_vminub(vbc, vuc); // CHECK: @llvm.ppc.altivec.vminub 674*f4a2713aSLionel Sambuc res_vuc = vec_vminub(vuc, vbc); // CHECK: @llvm.ppc.altivec.vminub 675*f4a2713aSLionel Sambuc res_vs = vec_vminsh(vs, vs); // CHECK: @llvm.ppc.altivec.vminsh 676*f4a2713aSLionel Sambuc res_vs = vec_vminsh(vbs, vs); // CHECK: @llvm.ppc.altivec.vminsh 677*f4a2713aSLionel Sambuc res_vs = vec_vminsh(vs, vbs); // CHECK: @llvm.ppc.altivec.vminsh 678*f4a2713aSLionel Sambuc res_vus = vec_vminuh(vus, vus); // CHECK: @llvm.ppc.altivec.vminuh 679*f4a2713aSLionel Sambuc res_vus = vec_vminuh(vbs, vus); // CHECK: @llvm.ppc.altivec.vminuh 680*f4a2713aSLionel Sambuc res_vus = vec_vminuh(vus, vbs); // CHECK: @llvm.ppc.altivec.vminuh 681*f4a2713aSLionel Sambuc res_vi = vec_vminsw(vi, vi); // CHECK: @llvm.ppc.altivec.vminsw 682*f4a2713aSLionel Sambuc res_vi = vec_vminsw(vbi, vi); // CHECK: @llvm.ppc.altivec.vminsw 683*f4a2713aSLionel Sambuc res_vi = vec_vminsw(vi, vbi); // CHECK: @llvm.ppc.altivec.vminsw 684*f4a2713aSLionel Sambuc res_vui = vec_vminuw(vui, vui); // CHECK: @llvm.ppc.altivec.vminuw 685*f4a2713aSLionel Sambuc res_vui = vec_vminuw(vbi, vui); // CHECK: @llvm.ppc.altivec.vminuw 686*f4a2713aSLionel Sambuc res_vui = vec_vminuw(vui, vbi); // CHECK: @llvm.ppc.altivec.vminuw 687*f4a2713aSLionel Sambuc res_vf = vec_vminfp(vf, vf); // CHECK: @llvm.ppc.altivec.vminfp 688*f4a2713aSLionel Sambuc 689*f4a2713aSLionel Sambuc /* vec_mladd */ 690*f4a2713aSLionel Sambuc res_vus = vec_mladd(vus, vus, vus); // CHECK: mul <8 x i16> 691*f4a2713aSLionel Sambuc // CHECK: add <8 x i16> 692*f4a2713aSLionel Sambuc 693*f4a2713aSLionel Sambuc res_vs = vec_mladd(vus, vs, vs); // CHECK: mul <8 x i16> 694*f4a2713aSLionel Sambuc // CHECK: add <8 x i16> 695*f4a2713aSLionel Sambuc 696*f4a2713aSLionel Sambuc res_vs = vec_mladd(vs, vus, vus); // CHECK: mul <8 x i16> 697*f4a2713aSLionel Sambuc // CHECK: add <8 x i16> 698*f4a2713aSLionel Sambuc 699*f4a2713aSLionel Sambuc res_vs = vec_mladd(vs, vs, vs); // CHECK: mul <8 x i16> 700*f4a2713aSLionel Sambuc // CHECK: add <8 x i16> 701*f4a2713aSLionel Sambuc 702*f4a2713aSLionel Sambuc /* vec_mradds */ 703*f4a2713aSLionel Sambuc res_vs = vec_mradds(vs, vs, vs); // CHECK: @llvm.ppc.altivec.vmhraddshs 704*f4a2713aSLionel Sambuc res_vs = vec_vmhraddshs(vs, vs, vs); // CHECK: @llvm.ppc.altivec.vmhraddshs 705*f4a2713aSLionel Sambuc 706*f4a2713aSLionel Sambuc /* vec_msum */ 707*f4a2713aSLionel Sambuc res_vi = vec_msum(vsc, vuc, vi); // CHECK: @llvm.ppc.altivec.vmsummbm 708*f4a2713aSLionel Sambuc res_vui = vec_msum(vuc, vuc, vui); // CHECK: @llvm.ppc.altivec.vmsumubm 709*f4a2713aSLionel Sambuc res_vi = vec_msum(vs, vs, vi); // CHECK: @llvm.ppc.altivec.vmsumshm 710*f4a2713aSLionel Sambuc res_vui = vec_msum(vus, vus, vui); // CHECK: @llvm.ppc.altivec.vmsumuhm 711*f4a2713aSLionel Sambuc res_vi = vec_vmsummbm(vsc, vuc, vi); // CHECK: @llvm.ppc.altivec.vmsummbm 712*f4a2713aSLionel Sambuc res_vui = vec_vmsumubm(vuc, vuc, vui); // CHECK: @llvm.ppc.altivec.vmsumubm 713*f4a2713aSLionel Sambuc res_vi = vec_vmsumshm(vs, vs, vi); // CHECK: @llvm.ppc.altivec.vmsumshm 714*f4a2713aSLionel Sambuc res_vui = vec_vmsumuhm(vus, vus, vui); // CHECK: @llvm.ppc.altivec.vmsumuhm 715*f4a2713aSLionel Sambuc 716*f4a2713aSLionel Sambuc /* vec_msums */ 717*f4a2713aSLionel Sambuc res_vi = vec_msums(vs, vs, vi); // CHECK: @llvm.ppc.altivec.vmsumshs 718*f4a2713aSLionel Sambuc res_vui = vec_msums(vus, vus, vui); // CHECK: @llvm.ppc.altivec.vmsumuhs 719*f4a2713aSLionel Sambuc res_vi = vec_vmsumshs(vs, vs, vi); // CHECK: @llvm.ppc.altivec.vmsumshs 720*f4a2713aSLionel Sambuc res_vui = vec_vmsumuhs(vus, vus, vui); // CHECK: @llvm.ppc.altivec.vmsumuhs 721*f4a2713aSLionel Sambuc 722*f4a2713aSLionel Sambuc /* vec_mtvscr */ 723*f4a2713aSLionel Sambuc vec_mtvscr(vsc); // CHECK: @llvm.ppc.altivec.mtvscr 724*f4a2713aSLionel Sambuc vec_mtvscr(vuc); // CHECK: @llvm.ppc.altivec.mtvscr 725*f4a2713aSLionel Sambuc vec_mtvscr(vbc); // CHECK: @llvm.ppc.altivec.mtvscr 726*f4a2713aSLionel Sambuc vec_mtvscr(vs); // CHECK: @llvm.ppc.altivec.mtvscr 727*f4a2713aSLionel Sambuc vec_mtvscr(vus); // CHECK: @llvm.ppc.altivec.mtvscr 728*f4a2713aSLionel Sambuc vec_mtvscr(vbs); // CHECK: @llvm.ppc.altivec.mtvscr 729*f4a2713aSLionel Sambuc vec_mtvscr(vp); // CHECK: @llvm.ppc.altivec.mtvscr 730*f4a2713aSLionel Sambuc vec_mtvscr(vi); // CHECK: @llvm.ppc.altivec.mtvscr 731*f4a2713aSLionel Sambuc vec_mtvscr(vui); // CHECK: @llvm.ppc.altivec.mtvscr 732*f4a2713aSLionel Sambuc vec_mtvscr(vbi); // CHECK: @llvm.ppc.altivec.mtvscr 733*f4a2713aSLionel Sambuc 734*f4a2713aSLionel Sambuc /* vec_mule */ 735*f4a2713aSLionel Sambuc res_vs = vec_mule(vsc, vsc); // CHECK: @llvm.ppc.altivec.vmulesb 736*f4a2713aSLionel Sambuc res_vus = vec_mule(vuc, vuc); // CHECK: @llvm.ppc.altivec.vmuleub 737*f4a2713aSLionel Sambuc res_vi = vec_mule(vs, vs); // CHECK: @llvm.ppc.altivec.vmulesh 738*f4a2713aSLionel Sambuc res_vui = vec_mule(vus, vus); // CHECK: @llvm.ppc.altivec.vmuleuh 739*f4a2713aSLionel Sambuc res_vs = vec_vmulesb(vsc, vsc); // CHECK: @llvm.ppc.altivec.vmulesb 740*f4a2713aSLionel Sambuc res_vus = vec_vmuleub(vuc, vuc); // CHECK: @llvm.ppc.altivec.vmuleub 741*f4a2713aSLionel Sambuc res_vi = vec_vmulesh(vs, vs); // CHECK: @llvm.ppc.altivec.vmulesh 742*f4a2713aSLionel Sambuc res_vui = vec_vmuleuh(vus, vus); // CHECK: @llvm.ppc.altivec.vmuleuh 743*f4a2713aSLionel Sambuc 744*f4a2713aSLionel Sambuc /* vec_mulo */ 745*f4a2713aSLionel Sambuc res_vs = vec_mulo(vsc, vsc); // CHECK: @llvm.ppc.altivec.vmulosb 746*f4a2713aSLionel Sambuc res_vus = vec_mulo(vuc, vuc); // CHECK: @llvm.ppc.altivec.vmuloub 747*f4a2713aSLionel Sambuc res_vi = vec_mulo(vs, vs); // CHECK: @llvm.ppc.altivec.vmulosh 748*f4a2713aSLionel Sambuc res_vui = vec_mulo(vus, vus); // CHECK: @llvm.ppc.altivec.vmulouh 749*f4a2713aSLionel Sambuc res_vs = vec_vmulosb(vsc, vsc); // CHECK: @llvm.ppc.altivec.vmulosb 750*f4a2713aSLionel Sambuc res_vus = vec_vmuloub(vuc, vuc); // CHECK: @llvm.ppc.altivec.vmuloub 751*f4a2713aSLionel Sambuc res_vi = vec_vmulosh(vs, vs); // CHECK: @llvm.ppc.altivec.vmulosh 752*f4a2713aSLionel Sambuc res_vui = vec_vmulouh(vus, vus); // CHECK: @llvm.ppc.altivec.vmulouh 753*f4a2713aSLionel Sambuc 754*f4a2713aSLionel Sambuc /* vec_nmsub */ 755*f4a2713aSLionel Sambuc res_vf = vec_nmsub(vf, vf, vf); // CHECK: @llvm.ppc.altivec.vnmsubfp 756*f4a2713aSLionel Sambuc res_vf = vec_vnmsubfp(vf, vf, vf); // CHECK: @llvm.ppc.altivec.vnmsubfp 757*f4a2713aSLionel Sambuc 758*f4a2713aSLionel Sambuc /* vec_nor */ 759*f4a2713aSLionel Sambuc res_vsc = vec_nor(vsc, vsc); // CHECK: or <16 x i8> 760*f4a2713aSLionel Sambuc // CHECK: xor <16 x i8> 761*f4a2713aSLionel Sambuc 762*f4a2713aSLionel Sambuc res_vuc = vec_nor(vuc, vuc); // CHECK: or <16 x i8> 763*f4a2713aSLionel Sambuc // CHECK: xor <16 x i8> 764*f4a2713aSLionel Sambuc 765*f4a2713aSLionel Sambuc res_vuc = vec_nor(vbc, vbc); // CHECK: or <16 x i8> 766*f4a2713aSLionel Sambuc // CHECK: xor <16 x i8> 767*f4a2713aSLionel Sambuc 768*f4a2713aSLionel Sambuc res_vs = vec_nor(vs, vs); // CHECK: or <8 x i16> 769*f4a2713aSLionel Sambuc // CHECK: xor <8 x i16> 770*f4a2713aSLionel Sambuc 771*f4a2713aSLionel Sambuc res_vus = vec_nor(vus, vus); // CHECK: or <8 x i16> 772*f4a2713aSLionel Sambuc // CHECK: xor <8 x i16> 773*f4a2713aSLionel Sambuc 774*f4a2713aSLionel Sambuc res_vus = vec_nor(vbs, vbs); // CHECK: or <8 x i16> 775*f4a2713aSLionel Sambuc // CHECK: xor <8 x i16> 776*f4a2713aSLionel Sambuc 777*f4a2713aSLionel Sambuc res_vi = vec_nor(vi, vi); // CHECK: or <4 x i32> 778*f4a2713aSLionel Sambuc // CHECK: xor <4 x i32> 779*f4a2713aSLionel Sambuc 780*f4a2713aSLionel Sambuc res_vui = vec_nor(vui, vui); // CHECK: or <4 x i32> 781*f4a2713aSLionel Sambuc // CHECK: xor <4 x i32> 782*f4a2713aSLionel Sambuc 783*f4a2713aSLionel Sambuc res_vui = vec_nor(vbi, vbi); // CHECK: or <4 x i32> 784*f4a2713aSLionel Sambuc // CHECK: xor <4 x i32> 785*f4a2713aSLionel Sambuc 786*f4a2713aSLionel Sambuc res_vf = vec_nor(vf, vf); // CHECK: or <4 x i32> 787*f4a2713aSLionel Sambuc // CHECK: xor <4 x i32> 788*f4a2713aSLionel Sambuc 789*f4a2713aSLionel Sambuc res_vsc = vec_vnor(vsc, vsc); // CHECK: or <16 x i8> 790*f4a2713aSLionel Sambuc // CHECK: xor <16 x i8> 791*f4a2713aSLionel Sambuc 792*f4a2713aSLionel Sambuc res_vuc = vec_vnor(vuc, vuc); // CHECK: or <16 x i8> 793*f4a2713aSLionel Sambuc // CHECK: xor <16 x i8> 794*f4a2713aSLionel Sambuc 795*f4a2713aSLionel Sambuc res_vuc = vec_vnor(vbc, vbc); // CHECK: or <16 x i8> 796*f4a2713aSLionel Sambuc // CHECK: xor <16 x i8> 797*f4a2713aSLionel Sambuc 798*f4a2713aSLionel Sambuc res_vs = vec_vnor(vs, vs); // CHECK: or <8 x i16> 799*f4a2713aSLionel Sambuc // CHECK: xor <8 x i16> 800*f4a2713aSLionel Sambuc 801*f4a2713aSLionel Sambuc res_vus = vec_vnor(vus, vus); // CHECK: or <8 x i16> 802*f4a2713aSLionel Sambuc // CHECK: xor <8 x i16> 803*f4a2713aSLionel Sambuc 804*f4a2713aSLionel Sambuc res_vus = vec_vnor(vbs, vbs); // CHECK: or <8 x i16> 805*f4a2713aSLionel Sambuc // CHECK: xor <8 x i16> 806*f4a2713aSLionel Sambuc 807*f4a2713aSLionel Sambuc res_vi = vec_vnor(vi, vi); // CHECK: or <4 x i32> 808*f4a2713aSLionel Sambuc // CHECK: xor <4 x i32> 809*f4a2713aSLionel Sambuc 810*f4a2713aSLionel Sambuc res_vui = vec_vnor(vui, vui); // CHECK: or <4 x i32> 811*f4a2713aSLionel Sambuc // CHECK: xor <4 x i32> 812*f4a2713aSLionel Sambuc 813*f4a2713aSLionel Sambuc res_vui = vec_vnor(vbi, vbi); // CHECK: or <4 x i32> 814*f4a2713aSLionel Sambuc // CHECK: xor <4 x i32> 815*f4a2713aSLionel Sambuc 816*f4a2713aSLionel Sambuc res_vf = vec_vnor(vf, vf); // CHECK: or <4 x i32> 817*f4a2713aSLionel Sambuc // CHECK: xor <4 x i32> 818*f4a2713aSLionel Sambuc 819*f4a2713aSLionel Sambuc /* vec_or */ 820*f4a2713aSLionel Sambuc res_vsc = vec_or(vsc, vsc); // CHECK: or <16 x i8> 821*f4a2713aSLionel Sambuc res_vsc = vec_or(vbc, vsc); // CHECK: or <16 x i8> 822*f4a2713aSLionel Sambuc res_vsc = vec_or(vsc, vbc); // CHECK: or <16 x i8> 823*f4a2713aSLionel Sambuc res_vuc = vec_or(vuc, vuc); // CHECK: or <16 x i8> 824*f4a2713aSLionel Sambuc res_vuc = vec_or(vbc, vuc); // CHECK: or <16 x i8> 825*f4a2713aSLionel Sambuc res_vuc = vec_or(vuc, vbc); // CHECK: or <16 x i8> 826*f4a2713aSLionel Sambuc res_vbc = vec_or(vbc, vbc); // CHECK: or <16 x i8> 827*f4a2713aSLionel Sambuc res_vs = vec_or(vs, vs); // CHECK: or <8 x i16> 828*f4a2713aSLionel Sambuc res_vs = vec_or(vbs, vs); // CHECK: or <8 x i16> 829*f4a2713aSLionel Sambuc res_vs = vec_or(vs, vbs); // CHECK: or <8 x i16> 830*f4a2713aSLionel Sambuc res_vus = vec_or(vus, vus); // CHECK: or <8 x i16> 831*f4a2713aSLionel Sambuc res_vus = vec_or(vbs, vus); // CHECK: or <8 x i16> 832*f4a2713aSLionel Sambuc res_vus = vec_or(vus, vbs); // CHECK: or <8 x i16> 833*f4a2713aSLionel Sambuc res_vbs = vec_or(vbs, vbs); // CHECK: or <8 x i16> 834*f4a2713aSLionel Sambuc res_vi = vec_or(vi, vi); // CHECK: or <4 x i32> 835*f4a2713aSLionel Sambuc res_vi = vec_or(vbi, vi); // CHECK: or <4 x i32> 836*f4a2713aSLionel Sambuc res_vi = vec_or(vi, vbi); // CHECK: or <4 x i32> 837*f4a2713aSLionel Sambuc res_vui = vec_or(vui, vui); // CHECK: or <4 x i32> 838*f4a2713aSLionel Sambuc res_vui = vec_or(vbi, vui); // CHECK: or <4 x i32> 839*f4a2713aSLionel Sambuc res_vui = vec_or(vui, vbi); // CHECK: or <4 x i32> 840*f4a2713aSLionel Sambuc res_vbi = vec_or(vbi, vbi); // CHECK: or <4 x i32> 841*f4a2713aSLionel Sambuc res_vf = vec_or(vf, vf); // CHECK: or <4 x i32> 842*f4a2713aSLionel Sambuc res_vf = vec_or(vbi, vf); // CHECK: or <4 x i32> 843*f4a2713aSLionel Sambuc res_vf = vec_or(vf, vbi); // CHECK: or <4 x i32> 844*f4a2713aSLionel Sambuc res_vsc = vec_vor(vsc, vsc); // CHECK: or <16 x i8> 845*f4a2713aSLionel Sambuc res_vsc = vec_vor(vbc, vsc); // CHECK: or <16 x i8> 846*f4a2713aSLionel Sambuc res_vsc = vec_vor(vsc, vbc); // CHECK: or <16 x i8> 847*f4a2713aSLionel Sambuc res_vuc = vec_vor(vuc, vuc); // CHECK: or <16 x i8> 848*f4a2713aSLionel Sambuc res_vuc = vec_vor(vbc, vuc); // CHECK: or <16 x i8> 849*f4a2713aSLionel Sambuc res_vuc = vec_vor(vuc, vbc); // CHECK: or <16 x i8> 850*f4a2713aSLionel Sambuc res_vbc = vec_vor(vbc, vbc); // CHECK: or <16 x i8> 851*f4a2713aSLionel Sambuc res_vs = vec_vor(vs, vs); // CHECK: or <8 x i16> 852*f4a2713aSLionel Sambuc res_vs = vec_vor(vbs, vs); // CHECK: or <8 x i16> 853*f4a2713aSLionel Sambuc res_vs = vec_vor(vs, vbs); // CHECK: or <8 x i16> 854*f4a2713aSLionel Sambuc res_vus = vec_vor(vus, vus); // CHECK: or <8 x i16> 855*f4a2713aSLionel Sambuc res_vus = vec_vor(vbs, vus); // CHECK: or <8 x i16> 856*f4a2713aSLionel Sambuc res_vus = vec_vor(vus, vbs); // CHECK: or <8 x i16> 857*f4a2713aSLionel Sambuc res_vbs = vec_vor(vbs, vbs); // CHECK: or <8 x i16> 858*f4a2713aSLionel Sambuc res_vi = vec_vor(vi, vi); // CHECK: or <4 x i32> 859*f4a2713aSLionel Sambuc res_vi = vec_vor(vbi, vi); // CHECK: or <4 x i32> 860*f4a2713aSLionel Sambuc res_vi = vec_vor(vi, vbi); // CHECK: or <4 x i32> 861*f4a2713aSLionel Sambuc res_vui = vec_vor(vui, vui); // CHECK: or <4 x i32> 862*f4a2713aSLionel Sambuc res_vui = vec_vor(vbi, vui); // CHECK: or <4 x i32> 863*f4a2713aSLionel Sambuc res_vui = vec_vor(vui, vbi); // CHECK: or <4 x i32> 864*f4a2713aSLionel Sambuc res_vbi = vec_vor(vbi, vbi); // CHECK: or <4 x i32> 865*f4a2713aSLionel Sambuc res_vf = vec_vor(vf, vf); // CHECK: or <4 x i32> 866*f4a2713aSLionel Sambuc res_vf = vec_vor(vbi, vf); // CHECK: or <4 x i32> 867*f4a2713aSLionel Sambuc res_vf = vec_vor(vf, vbi); // CHECK: or <4 x i32> 868*f4a2713aSLionel Sambuc 869*f4a2713aSLionel Sambuc /* vec_pack */ 870*f4a2713aSLionel Sambuc res_vsc = vec_pack(vs, vs); // CHECK: @llvm.ppc.altivec.vperm 871*f4a2713aSLionel Sambuc res_vuc = vec_pack(vus, vus); // CHECK: @llvm.ppc.altivec.vperm 872*f4a2713aSLionel Sambuc res_vbc = vec_pack(vbs, vbs); // CHECK: @llvm.ppc.altivec.vperm 873*f4a2713aSLionel Sambuc res_vs = vec_pack(vi, vi); // CHECK: @llvm.ppc.altivec.vperm 874*f4a2713aSLionel Sambuc res_vus = vec_pack(vui, vui); // CHECK: @llvm.ppc.altivec.vperm 875*f4a2713aSLionel Sambuc res_vbs = vec_pack(vbi, vbi); // CHECK: @llvm.ppc.altivec.vperm 876*f4a2713aSLionel Sambuc res_vsc = vec_vpkuhum(vs, vs); // CHECK: @llvm.ppc.altivec.vperm 877*f4a2713aSLionel Sambuc res_vuc = vec_vpkuhum(vus, vus); // CHECK: @llvm.ppc.altivec.vperm 878*f4a2713aSLionel Sambuc res_vbc = vec_vpkuhum(vbs, vbs); // CHECK: @llvm.ppc.altivec.vperm 879*f4a2713aSLionel Sambuc res_vs = vec_vpkuwum(vi, vi); // CHECK: @llvm.ppc.altivec.vperm 880*f4a2713aSLionel Sambuc res_vus = vec_vpkuwum(vui, vui); // CHECK: @llvm.ppc.altivec.vperm 881*f4a2713aSLionel Sambuc res_vbs = vec_vpkuwum(vbi, vbi); // CHECK: @llvm.ppc.altivec.vperm 882*f4a2713aSLionel Sambuc 883*f4a2713aSLionel Sambuc /* vec_packpx */ 884*f4a2713aSLionel Sambuc res_vp = vec_packpx(vui, vui); // CHECK: @llvm.ppc.altivec.vpkpx 885*f4a2713aSLionel Sambuc res_vp = vec_vpkpx(vui, vui); // CHECK: @llvm.ppc.altivec.vpkpx 886*f4a2713aSLionel Sambuc 887*f4a2713aSLionel Sambuc /* vec_packs */ 888*f4a2713aSLionel Sambuc res_vsc = vec_packs(vs, vs); // CHECK: @llvm.ppc.altivec.vpkshss 889*f4a2713aSLionel Sambuc res_vuc = vec_packs(vus, vus); // CHECK: @llvm.ppc.altivec.vpkuhus 890*f4a2713aSLionel Sambuc res_vs = vec_packs(vi, vi); // CHECK: @llvm.ppc.altivec.vpkswss 891*f4a2713aSLionel Sambuc res_vus = vec_packs(vui, vui); // CHECK: @llvm.ppc.altivec.vpkuwus 892*f4a2713aSLionel Sambuc res_vsc = vec_vpkshss(vs, vs); // CHECK: @llvm.ppc.altivec.vpkshss 893*f4a2713aSLionel Sambuc res_vuc = vec_vpkuhus(vus, vus); // CHECK: @llvm.ppc.altivec.vpkuhus 894*f4a2713aSLionel Sambuc res_vs = vec_vpkswss(vi, vi); // CHECK: @llvm.ppc.altivec.vpkswss 895*f4a2713aSLionel Sambuc res_vus = vec_vpkuwus(vui, vui); // CHECK: @llvm.ppc.altivec.vpkuwus 896*f4a2713aSLionel Sambuc 897*f4a2713aSLionel Sambuc /* vec_packsu */ 898*f4a2713aSLionel Sambuc res_vuc = vec_packsu(vs, vs); // CHECK: @llvm.ppc.altivec.vpkshus 899*f4a2713aSLionel Sambuc res_vuc = vec_packsu(vus, vus); // CHECK: @llvm.ppc.altivec.vpkuhus 900*f4a2713aSLionel Sambuc res_vus = vec_packsu(vi, vi); // CHECK: @llvm.ppc.altivec.vpkswus 901*f4a2713aSLionel Sambuc res_vus = vec_packsu(vui, vui); // CHECK: @llvm.ppc.altivec.vpkuwus 902*f4a2713aSLionel Sambuc res_vuc = vec_vpkshus(vs, vs); // CHECK: @llvm.ppc.altivec.vpkshus 903*f4a2713aSLionel Sambuc res_vuc = vec_vpkshus(vus, vus); // CHECK: @llvm.ppc.altivec.vpkuhus 904*f4a2713aSLionel Sambuc res_vus = vec_vpkswus(vi, vi); // CHECK: @llvm.ppc.altivec.vpkswus 905*f4a2713aSLionel Sambuc res_vus = vec_vpkswus(vui, vui); // CHECK: @llvm.ppc.altivec.vpkuwus 906*f4a2713aSLionel Sambuc 907*f4a2713aSLionel Sambuc /* vec_perm */ 908*f4a2713aSLionel Sambuc res_vsc = vec_perm(vsc, vsc, vuc); // CHECK: @llvm.ppc.altivec.vperm 909*f4a2713aSLionel Sambuc res_vuc = vec_perm(vuc, vuc, vuc); // CHECK: @llvm.ppc.altivec.vperm 910*f4a2713aSLionel Sambuc res_vbc = vec_perm(vbc, vbc, vuc); // CHECK: @llvm.ppc.altivec.vperm 911*f4a2713aSLionel Sambuc res_vs = vec_perm(vs, vs, vuc); // CHECK: @llvm.ppc.altivec.vperm 912*f4a2713aSLionel Sambuc res_vus = vec_perm(vus, vus, vuc); // CHECK: @llvm.ppc.altivec.vperm 913*f4a2713aSLionel Sambuc res_vbs = vec_perm(vbs, vbs, vuc); // CHECK: @llvm.ppc.altivec.vperm 914*f4a2713aSLionel Sambuc res_vp = vec_perm(vp, vp, vuc); // CHECK: @llvm.ppc.altivec.vperm 915*f4a2713aSLionel Sambuc res_vi = vec_perm(vi, vi, vuc); // CHECK: @llvm.ppc.altivec.vperm 916*f4a2713aSLionel Sambuc res_vui = vec_perm(vui, vui, vuc); // CHECK: @llvm.ppc.altivec.vperm 917*f4a2713aSLionel Sambuc res_vbi = vec_perm(vbi, vbi, vuc); // CHECK: @llvm.ppc.altivec.vperm 918*f4a2713aSLionel Sambuc res_vf = vec_perm(vf, vf, vuc); // CHECK: @llvm.ppc.altivec.vperm 919*f4a2713aSLionel Sambuc res_vsc = vec_vperm(vsc, vsc, vuc); // CHECK: @llvm.ppc.altivec.vperm 920*f4a2713aSLionel Sambuc res_vuc = vec_vperm(vuc, vuc, vuc); // CHECK: @llvm.ppc.altivec.vperm 921*f4a2713aSLionel Sambuc res_vbc = vec_vperm(vbc, vbc, vuc); // CHECK: @llvm.ppc.altivec.vperm 922*f4a2713aSLionel Sambuc res_vs = vec_vperm(vs, vs, vuc); // CHECK: @llvm.ppc.altivec.vperm 923*f4a2713aSLionel Sambuc res_vus = vec_vperm(vus, vus, vuc); // CHECK: @llvm.ppc.altivec.vperm 924*f4a2713aSLionel Sambuc res_vbs = vec_vperm(vbs, vbs, vuc); // CHECK: @llvm.ppc.altivec.vperm 925*f4a2713aSLionel Sambuc res_vp = vec_vperm(vp, vp, vuc); // CHECK: @llvm.ppc.altivec.vperm 926*f4a2713aSLionel Sambuc res_vi = vec_vperm(vi, vi, vuc); // CHECK: @llvm.ppc.altivec.vperm 927*f4a2713aSLionel Sambuc res_vui = vec_vperm(vui, vui, vuc); // CHECK: @llvm.ppc.altivec.vperm 928*f4a2713aSLionel Sambuc res_vbi = vec_vperm(vbi, vbi, vuc); // CHECK: @llvm.ppc.altivec.vperm 929*f4a2713aSLionel Sambuc res_vf = vec_vperm(vf, vf, vuc); // CHECK: @llvm.ppc.altivec.vperm 930*f4a2713aSLionel Sambuc 931*f4a2713aSLionel Sambuc /* vec_re */ 932*f4a2713aSLionel Sambuc res_vf = vec_re(vf); // CHECK: @llvm.ppc.altivec.vrefp 933*f4a2713aSLionel Sambuc res_vf = vec_vrefp(vf); // CHECK: @llvm.ppc.altivec.vrefp 934*f4a2713aSLionel Sambuc 935*f4a2713aSLionel Sambuc /* vec_rl */ 936*f4a2713aSLionel Sambuc res_vsc = vec_rl(vsc, vuc); // CHECK: @llvm.ppc.altivec.vrlb 937*f4a2713aSLionel Sambuc res_vuc = vec_rl(vuc, vuc); // CHECK: @llvm.ppc.altivec.vrlb 938*f4a2713aSLionel Sambuc res_vs = vec_rl(vs, vus); // CHECK: @llvm.ppc.altivec.vrlh 939*f4a2713aSLionel Sambuc res_vus = vec_rl(vus, vus); // CHECK: @llvm.ppc.altivec.vrlh 940*f4a2713aSLionel Sambuc res_vi = vec_rl(vi, vui); // CHECK: @llvm.ppc.altivec.vrlw 941*f4a2713aSLionel Sambuc res_vui = vec_rl(vui, vui); // CHECK: @llvm.ppc.altivec.vrlw 942*f4a2713aSLionel Sambuc res_vsc = vec_vrlb(vsc, vuc); // CHECK: @llvm.ppc.altivec.vrlb 943*f4a2713aSLionel Sambuc res_vuc = vec_vrlb(vuc, vuc); // CHECK: @llvm.ppc.altivec.vrlb 944*f4a2713aSLionel Sambuc res_vs = vec_vrlh(vs, vus); // CHECK: @llvm.ppc.altivec.vrlh 945*f4a2713aSLionel Sambuc res_vus = vec_vrlh(vus, vus); // CHECK: @llvm.ppc.altivec.vrlh 946*f4a2713aSLionel Sambuc res_vi = vec_vrlw(vi, vui); // CHECK: @llvm.ppc.altivec.vrlw 947*f4a2713aSLionel Sambuc res_vui = vec_vrlw(vui, vui); // CHECK: @llvm.ppc.altivec.vrlw 948*f4a2713aSLionel Sambuc 949*f4a2713aSLionel Sambuc /* vec_round */ 950*f4a2713aSLionel Sambuc res_vf = vec_round(vf); // CHECK: @llvm.ppc.altivec.vrfin 951*f4a2713aSLionel Sambuc res_vf = vec_vrfin(vf); // CHECK: @llvm.ppc.altivec.vrfin 952*f4a2713aSLionel Sambuc 953*f4a2713aSLionel Sambuc /* vec_rsqrte */ 954*f4a2713aSLionel Sambuc res_vf = vec_rsqrte(vf); // CHECK: @llvm.ppc.altivec.vrsqrtefp 955*f4a2713aSLionel Sambuc res_vf = vec_vrsqrtefp(vf); // CHECK: @llvm.ppc.altivec.vrsqrtefp 956*f4a2713aSLionel Sambuc 957*f4a2713aSLionel Sambuc /* vec_sel */ 958*f4a2713aSLionel Sambuc res_vsc = vec_sel(vsc, vsc, vuc); // CHECK: xor <16 x i8> 959*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 960*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 961*f4a2713aSLionel Sambuc // CHECK: or <16 x i8> 962*f4a2713aSLionel Sambuc 963*f4a2713aSLionel Sambuc res_vsc = vec_sel(vsc, vsc, vbc); // CHECK: xor <16 x i8> 964*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 965*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 966*f4a2713aSLionel Sambuc // CHECK: or <16 x i8> 967*f4a2713aSLionel Sambuc 968*f4a2713aSLionel Sambuc res_vuc = vec_sel(vuc, vuc, vuc); // CHECK: xor <16 x i8> 969*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 970*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 971*f4a2713aSLionel Sambuc // CHECK: or <16 x i8> 972*f4a2713aSLionel Sambuc 973*f4a2713aSLionel Sambuc res_vuc = vec_sel(vuc, vuc, vbc); // CHECK: xor <16 x i8> 974*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 975*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 976*f4a2713aSLionel Sambuc // CHECK: or <16 x i8> 977*f4a2713aSLionel Sambuc 978*f4a2713aSLionel Sambuc res_vbc = vec_sel(vbc, vbc, vuc); // CHECK: xor <16 x i8> 979*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 980*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 981*f4a2713aSLionel Sambuc // CHECK: or <16 x i8> 982*f4a2713aSLionel Sambuc 983*f4a2713aSLionel Sambuc res_vbc = vec_sel(vbc, vbc, vbc); // CHECK: xor <16 x i8> 984*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 985*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 986*f4a2713aSLionel Sambuc // CHECK: or <16 x i8> 987*f4a2713aSLionel Sambuc 988*f4a2713aSLionel Sambuc res_vs = vec_sel(vs, vs, vus); // CHECK: xor <8 x i16> 989*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 990*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 991*f4a2713aSLionel Sambuc // CHECK: or <8 x i16> 992*f4a2713aSLionel Sambuc 993*f4a2713aSLionel Sambuc res_vs = vec_sel(vs, vs, vbs); // CHECK: xor <8 x i16> 994*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 995*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 996*f4a2713aSLionel Sambuc // CHECK: or <8 x i16> 997*f4a2713aSLionel Sambuc 998*f4a2713aSLionel Sambuc res_vus = vec_sel(vus, vus, vus); // CHECK: xor <8 x i16> 999*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1000*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1001*f4a2713aSLionel Sambuc // CHECK: or <8 x i16> 1002*f4a2713aSLionel Sambuc 1003*f4a2713aSLionel Sambuc res_vus = vec_sel(vus, vus, vbs); // CHECK: xor <8 x i16> 1004*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1005*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1006*f4a2713aSLionel Sambuc // CHECK: or <8 x i16> 1007*f4a2713aSLionel Sambuc 1008*f4a2713aSLionel Sambuc res_vbs = vec_sel(vbs, vbs, vus); // CHECK: xor <8 x i16> 1009*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1010*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1011*f4a2713aSLionel Sambuc // CHECK: or <8 x i16> 1012*f4a2713aSLionel Sambuc 1013*f4a2713aSLionel Sambuc res_vbs = vec_sel(vbs, vbs, vbs); // CHECK: xor <8 x i16> 1014*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1015*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1016*f4a2713aSLionel Sambuc // CHECK: or <8 x i16> 1017*f4a2713aSLionel Sambuc 1018*f4a2713aSLionel Sambuc res_vi = vec_sel(vi, vi, vui); // CHECK: xor <4 x i32> 1019*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1020*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1021*f4a2713aSLionel Sambuc // CHECK: or <4 x i32> 1022*f4a2713aSLionel Sambuc 1023*f4a2713aSLionel Sambuc res_vi = vec_sel(vi, vi, vbi); // CHECK: xor <4 x i32> 1024*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1025*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1026*f4a2713aSLionel Sambuc // CHECK: or <4 x i32> 1027*f4a2713aSLionel Sambuc 1028*f4a2713aSLionel Sambuc res_vui = vec_sel(vui, vui, vui); // CHECK: xor <4 x i32> 1029*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1030*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1031*f4a2713aSLionel Sambuc // CHECK: or <4 x i32> 1032*f4a2713aSLionel Sambuc 1033*f4a2713aSLionel Sambuc res_vui = vec_sel(vui, vui, vbi); // CHECK: xor <4 x i32> 1034*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1035*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1036*f4a2713aSLionel Sambuc // CHECK: or <4 x i32> 1037*f4a2713aSLionel Sambuc 1038*f4a2713aSLionel Sambuc res_vbi = vec_sel(vbi, vbi, vui); // CHECK: xor <4 x i32> 1039*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1040*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1041*f4a2713aSLionel Sambuc // CHECK: or <4 x i32> 1042*f4a2713aSLionel Sambuc 1043*f4a2713aSLionel Sambuc res_vbi = vec_sel(vbi, vbi, vbi); // CHECK: xor <4 x i32> 1044*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1045*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1046*f4a2713aSLionel Sambuc // CHECK: or <4 x i32> 1047*f4a2713aSLionel Sambuc 1048*f4a2713aSLionel Sambuc res_vf = vec_sel(vf, vf, vui); // CHECK: xor <4 x i32> 1049*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1050*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1051*f4a2713aSLionel Sambuc // CHECK: or <4 x i32> 1052*f4a2713aSLionel Sambuc 1053*f4a2713aSLionel Sambuc res_vf = vec_sel(vf, vf, vbi); // CHECK: xor <4 x i32> 1054*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1055*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1056*f4a2713aSLionel Sambuc // CHECK: or <4 x i32> 1057*f4a2713aSLionel Sambuc 1058*f4a2713aSLionel Sambuc res_vsc = vec_vsel(vsc, vsc, vuc); // CHECK: xor <16 x i8> 1059*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 1060*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 1061*f4a2713aSLionel Sambuc // CHECK: or <16 x i8> 1062*f4a2713aSLionel Sambuc 1063*f4a2713aSLionel Sambuc res_vsc = vec_vsel(vsc, vsc, vbc); // CHECK: xor <16 x i8> 1064*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 1065*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 1066*f4a2713aSLionel Sambuc // CHECK: or <16 x i8> 1067*f4a2713aSLionel Sambuc 1068*f4a2713aSLionel Sambuc res_vuc = vec_vsel(vuc, vuc, vuc); // CHECK: xor <16 x i8> 1069*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 1070*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 1071*f4a2713aSLionel Sambuc // CHECK: or <16 x i8> 1072*f4a2713aSLionel Sambuc 1073*f4a2713aSLionel Sambuc res_vuc = vec_vsel(vuc, vuc, vbc); // CHECK: xor <16 x i8> 1074*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 1075*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 1076*f4a2713aSLionel Sambuc // CHECK: or <16 x i8> 1077*f4a2713aSLionel Sambuc 1078*f4a2713aSLionel Sambuc res_vbc = vec_vsel(vbc, vbc, vuc); // CHECK: xor <16 x i8> 1079*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 1080*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 1081*f4a2713aSLionel Sambuc // CHECK: or <16 x i8> 1082*f4a2713aSLionel Sambuc 1083*f4a2713aSLionel Sambuc res_vbc = vec_vsel(vbc, vbc, vbc); // CHECK: xor <16 x i8> 1084*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 1085*f4a2713aSLionel Sambuc // CHECK: and <16 x i8> 1086*f4a2713aSLionel Sambuc // CHECK: or <16 x i8> 1087*f4a2713aSLionel Sambuc 1088*f4a2713aSLionel Sambuc res_vs = vec_vsel(vs, vs, vus); // CHECK: xor <8 x i16> 1089*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1090*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1091*f4a2713aSLionel Sambuc // CHECK: or <8 x i16> 1092*f4a2713aSLionel Sambuc 1093*f4a2713aSLionel Sambuc res_vs = vec_vsel(vs, vs, vbs); // CHECK: xor <8 x i16> 1094*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1095*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1096*f4a2713aSLionel Sambuc // CHECK: or <8 x i16> 1097*f4a2713aSLionel Sambuc 1098*f4a2713aSLionel Sambuc res_vus = vec_vsel(vus, vus, vus); // CHECK: xor <8 x i16> 1099*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1100*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1101*f4a2713aSLionel Sambuc // CHECK: or <8 x i16> 1102*f4a2713aSLionel Sambuc 1103*f4a2713aSLionel Sambuc res_vus = vec_vsel(vus, vus, vbs); // CHECK: xor <8 x i16> 1104*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1105*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1106*f4a2713aSLionel Sambuc // CHECK: or <8 x i16> 1107*f4a2713aSLionel Sambuc 1108*f4a2713aSLionel Sambuc res_vbs = vec_vsel(vbs, vbs, vus); // CHECK: xor <8 x i16> 1109*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1110*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1111*f4a2713aSLionel Sambuc // CHECK: or <8 x i16> 1112*f4a2713aSLionel Sambuc 1113*f4a2713aSLionel Sambuc res_vbs = vec_vsel(vbs, vbs, vbs); // CHECK: xor <8 x i16> 1114*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1115*f4a2713aSLionel Sambuc // CHECK: and <8 x i16> 1116*f4a2713aSLionel Sambuc // CHECK: or <8 x i16> 1117*f4a2713aSLionel Sambuc 1118*f4a2713aSLionel Sambuc res_vi = vec_vsel(vi, vi, vui); // CHECK: xor <4 x i32> 1119*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1120*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1121*f4a2713aSLionel Sambuc // CHECK: or <4 x i32> 1122*f4a2713aSLionel Sambuc 1123*f4a2713aSLionel Sambuc res_vi = vec_vsel(vi, vi, vbi); // CHECK: xor <4 x i32> 1124*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1125*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1126*f4a2713aSLionel Sambuc // CHECK: or <4 x i32> 1127*f4a2713aSLionel Sambuc 1128*f4a2713aSLionel Sambuc res_vui = vec_vsel(vui, vui, vui); // CHECK: xor <4 x i32> 1129*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1130*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1131*f4a2713aSLionel Sambuc // CHECK: or <4 x i32> 1132*f4a2713aSLionel Sambuc 1133*f4a2713aSLionel Sambuc res_vui = vec_vsel(vui, vui, vbi); // CHECK: xor <4 x i32> 1134*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1135*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1136*f4a2713aSLionel Sambuc // CHECK: or <4 x i32> 1137*f4a2713aSLionel Sambuc 1138*f4a2713aSLionel Sambuc res_vbi = vec_vsel(vbi, vbi, vui); // CHECK: xor <4 x i32> 1139*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1140*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1141*f4a2713aSLionel Sambuc // CHECK: or <4 x i32> 1142*f4a2713aSLionel Sambuc 1143*f4a2713aSLionel Sambuc res_vbi = vec_vsel(vbi, vbi, vbi); // CHECK: xor <4 x i32> 1144*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1145*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1146*f4a2713aSLionel Sambuc // CHECK: or <4 x i32> 1147*f4a2713aSLionel Sambuc 1148*f4a2713aSLionel Sambuc res_vf = vec_vsel(vf, vf, vui); // CHECK: xor <4 x i32> 1149*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1150*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1151*f4a2713aSLionel Sambuc // CHECK: or <4 x i32> 1152*f4a2713aSLionel Sambuc 1153*f4a2713aSLionel Sambuc res_vf = vec_vsel(vf, vf, vbi); // CHECK: xor <4 x i32> 1154*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1155*f4a2713aSLionel Sambuc // CHECK: and <4 x i32> 1156*f4a2713aSLionel Sambuc // CHECK: or <4 x i32> 1157*f4a2713aSLionel Sambuc 1158*f4a2713aSLionel Sambuc /* vec_sl */ 1159*f4a2713aSLionel Sambuc res_vsc = vec_sl(vsc, vuc); // CHECK: shl <16 x i8> 1160*f4a2713aSLionel Sambuc res_vuc = vec_sl(vuc, vuc); // CHECK: shl <16 x i8> 1161*f4a2713aSLionel Sambuc res_vs = vec_sl(vs, vus); // CHECK: shl <8 x i16> 1162*f4a2713aSLionel Sambuc res_vus = vec_sl(vus, vus); // CHECK: shl <8 x i16> 1163*f4a2713aSLionel Sambuc res_vi = vec_sl(vi, vui); // CHECK: shl <4 x i32> 1164*f4a2713aSLionel Sambuc res_vui = vec_sl(vui, vui); // CHECK: shl <4 x i32> 1165*f4a2713aSLionel Sambuc res_vsc = vec_vslb(vsc, vuc); // CHECK: shl <16 x i8> 1166*f4a2713aSLionel Sambuc res_vuc = vec_vslb(vuc, vuc); // CHECK: shl <16 x i8> 1167*f4a2713aSLionel Sambuc res_vs = vec_vslh(vs, vus); // CHECK: shl <8 x i16> 1168*f4a2713aSLionel Sambuc res_vus = vec_vslh(vus, vus); // CHECK: shl <8 x i16> 1169*f4a2713aSLionel Sambuc res_vi = vec_vslw(vi, vui); // CHECK: shl <4 x i32> 1170*f4a2713aSLionel Sambuc res_vui = vec_vslw(vui, vui); // CHECK: shl <4 x i32> 1171*f4a2713aSLionel Sambuc 1172*f4a2713aSLionel Sambuc /* vec_sld */ 1173*f4a2713aSLionel Sambuc res_vsc = vec_sld(vsc, vsc, 0); // CHECK: @llvm.ppc.altivec.vperm 1174*f4a2713aSLionel Sambuc res_vuc = vec_sld(vuc, vuc, 0); // CHECK: @llvm.ppc.altivec.vperm 1175*f4a2713aSLionel Sambuc res_vs = vec_sld(vs, vs, 0); // CHECK: @llvm.ppc.altivec.vperm 1176*f4a2713aSLionel Sambuc res_vus = vec_sld(vus, vus, 0); // CHECK: @llvm.ppc.altivec.vperm 1177*f4a2713aSLionel Sambuc res_vp = vec_sld(vp, vp, 0); // CHECK: @llvm.ppc.altivec.vperm 1178*f4a2713aSLionel Sambuc res_vi = vec_sld(vi, vi, 0); // CHECK: @llvm.ppc.altivec.vperm 1179*f4a2713aSLionel Sambuc res_vui = vec_sld(vui, vui, 0); // CHECK: @llvm.ppc.altivec.vperm 1180*f4a2713aSLionel Sambuc res_vf = vec_sld(vf, vf, 0); // CHECK: @llvm.ppc.altivec.vperm 1181*f4a2713aSLionel Sambuc res_vsc = vec_vsldoi(vsc, vsc, 0); // CHECK: @llvm.ppc.altivec.vperm 1182*f4a2713aSLionel Sambuc res_vuc = vec_vsldoi(vuc, vuc, 0); // CHECK: @llvm.ppc.altivec.vperm 1183*f4a2713aSLionel Sambuc res_vs = vec_vsldoi(vs, vs, 0); // CHECK: @llvm.ppc.altivec.vperm 1184*f4a2713aSLionel Sambuc res_vus = vec_vsldoi(vus, vus, 0); // CHECK: @llvm.ppc.altivec.vperm 1185*f4a2713aSLionel Sambuc res_vp = vec_vsldoi(vp, vp, 0); // CHECK: @llvm.ppc.altivec.vperm 1186*f4a2713aSLionel Sambuc res_vi = vec_vsldoi(vi, vi, 0); // CHECK: @llvm.ppc.altivec.vperm 1187*f4a2713aSLionel Sambuc res_vui = vec_vsldoi(vui, vui, 0); // CHECK: @llvm.ppc.altivec.vperm 1188*f4a2713aSLionel Sambuc res_vf = vec_vsldoi(vf, vf, 0); // CHECK: @llvm.ppc.altivec.vperm 1189*f4a2713aSLionel Sambuc 1190*f4a2713aSLionel Sambuc /* vec_sll */ 1191*f4a2713aSLionel Sambuc res_vsc = vec_sll(vsc, vuc); // CHECK: @llvm.ppc.altivec.vsl 1192*f4a2713aSLionel Sambuc res_vsc = vec_sll(vsc, vus); // CHECK: @llvm.ppc.altivec.vsl 1193*f4a2713aSLionel Sambuc res_vsc = vec_sll(vsc, vui); // CHECK: @llvm.ppc.altivec.vsl 1194*f4a2713aSLionel Sambuc res_vuc = vec_sll(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsl 1195*f4a2713aSLionel Sambuc res_vuc = vec_sll(vuc, vus); // CHECK: @llvm.ppc.altivec.vsl 1196*f4a2713aSLionel Sambuc res_vuc = vec_sll(vuc, vui); // CHECK: @llvm.ppc.altivec.vsl 1197*f4a2713aSLionel Sambuc res_vbc = vec_sll(vbc, vuc); // CHECK: @llvm.ppc.altivec.vsl 1198*f4a2713aSLionel Sambuc res_vbc = vec_sll(vbc, vus); // CHECK: @llvm.ppc.altivec.vsl 1199*f4a2713aSLionel Sambuc res_vbc = vec_sll(vbc, vui); // CHECK: @llvm.ppc.altivec.vsl 1200*f4a2713aSLionel Sambuc res_vs = vec_sll(vs, vuc); // CHECK: @llvm.ppc.altivec.vsl 1201*f4a2713aSLionel Sambuc res_vs = vec_sll(vs, vus); // CHECK: @llvm.ppc.altivec.vsl 1202*f4a2713aSLionel Sambuc res_vs = vec_sll(vs, vui); // CHECK: @llvm.ppc.altivec.vsl 1203*f4a2713aSLionel Sambuc res_vus = vec_sll(vus, vuc); // CHECK: @llvm.ppc.altivec.vsl 1204*f4a2713aSLionel Sambuc res_vus = vec_sll(vus, vus); // CHECK: @llvm.ppc.altivec.vsl 1205*f4a2713aSLionel Sambuc res_vus = vec_sll(vus, vui); // CHECK: @llvm.ppc.altivec.vsl 1206*f4a2713aSLionel Sambuc res_vbs = vec_sll(vbs, vuc); // CHECK: @llvm.ppc.altivec.vsl 1207*f4a2713aSLionel Sambuc res_vbs = vec_sll(vbs, vus); // CHECK: @llvm.ppc.altivec.vsl 1208*f4a2713aSLionel Sambuc res_vbs = vec_sll(vbs, vui); // CHECK: @llvm.ppc.altivec.vsl 1209*f4a2713aSLionel Sambuc res_vp = vec_sll(vp, vuc); // CHECK: @llvm.ppc.altivec.vsl 1210*f4a2713aSLionel Sambuc res_vp = vec_sll(vp, vus); // CHECK: @llvm.ppc.altivec.vsl 1211*f4a2713aSLionel Sambuc res_vp = vec_sll(vp, vui); // CHECK: @llvm.ppc.altivec.vsl 1212*f4a2713aSLionel Sambuc res_vi = vec_sll(vi, vuc); // CHECK: @llvm.ppc.altivec.vsl 1213*f4a2713aSLionel Sambuc res_vi = vec_sll(vi, vus); // CHECK: @llvm.ppc.altivec.vsl 1214*f4a2713aSLionel Sambuc res_vi = vec_sll(vi, vui); // CHECK: @llvm.ppc.altivec.vsl 1215*f4a2713aSLionel Sambuc res_vui = vec_sll(vui, vuc); // CHECK: @llvm.ppc.altivec.vsl 1216*f4a2713aSLionel Sambuc res_vui = vec_sll(vui, vus); // CHECK: @llvm.ppc.altivec.vsl 1217*f4a2713aSLionel Sambuc res_vui = vec_sll(vui, vui); // CHECK: @llvm.ppc.altivec.vsl 1218*f4a2713aSLionel Sambuc res_vbi = vec_sll(vbi, vuc); // CHECK: @llvm.ppc.altivec.vsl 1219*f4a2713aSLionel Sambuc res_vbi = vec_sll(vbi, vus); // CHECK: @llvm.ppc.altivec.vsl 1220*f4a2713aSLionel Sambuc res_vbi = vec_sll(vbi, vui); // CHECK: @llvm.ppc.altivec.vsl 1221*f4a2713aSLionel Sambuc res_vsc = vec_vsl(vsc, vuc); // CHECK: @llvm.ppc.altivec.vsl 1222*f4a2713aSLionel Sambuc res_vsc = vec_vsl(vsc, vus); // CHECK: @llvm.ppc.altivec.vsl 1223*f4a2713aSLionel Sambuc res_vsc = vec_vsl(vsc, vui); // CHECK: @llvm.ppc.altivec.vsl 1224*f4a2713aSLionel Sambuc res_vuc = vec_vsl(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsl 1225*f4a2713aSLionel Sambuc res_vuc = vec_vsl(vuc, vus); // CHECK: @llvm.ppc.altivec.vsl 1226*f4a2713aSLionel Sambuc res_vuc = vec_vsl(vuc, vui); // CHECK: @llvm.ppc.altivec.vsl 1227*f4a2713aSLionel Sambuc res_vbc = vec_vsl(vbc, vuc); // CHECK: @llvm.ppc.altivec.vsl 1228*f4a2713aSLionel Sambuc res_vbc = vec_vsl(vbc, vus); // CHECK: @llvm.ppc.altivec.vsl 1229*f4a2713aSLionel Sambuc res_vbc = vec_vsl(vbc, vui); // CHECK: @llvm.ppc.altivec.vsl 1230*f4a2713aSLionel Sambuc res_vs = vec_vsl(vs, vuc); // CHECK: @llvm.ppc.altivec.vsl 1231*f4a2713aSLionel Sambuc res_vs = vec_vsl(vs, vus); // CHECK: @llvm.ppc.altivec.vsl 1232*f4a2713aSLionel Sambuc res_vs = vec_vsl(vs, vui); // CHECK: @llvm.ppc.altivec.vsl 1233*f4a2713aSLionel Sambuc res_vus = vec_vsl(vus, vuc); // CHECK: @llvm.ppc.altivec.vsl 1234*f4a2713aSLionel Sambuc res_vus = vec_vsl(vus, vus); // CHECK: @llvm.ppc.altivec.vsl 1235*f4a2713aSLionel Sambuc res_vus = vec_vsl(vus, vui); // CHECK: @llvm.ppc.altivec.vsl 1236*f4a2713aSLionel Sambuc res_vbs = vec_vsl(vbs, vuc); // CHECK: @llvm.ppc.altivec.vsl 1237*f4a2713aSLionel Sambuc res_vbs = vec_vsl(vbs, vus); // CHECK: @llvm.ppc.altivec.vsl 1238*f4a2713aSLionel Sambuc res_vbs = vec_vsl(vbs, vui); // CHECK: @llvm.ppc.altivec.vsl 1239*f4a2713aSLionel Sambuc res_vp = vec_vsl(vp, vuc); // CHECK: @llvm.ppc.altivec.vsl 1240*f4a2713aSLionel Sambuc res_vp = vec_vsl(vp, vus); // CHECK: @llvm.ppc.altivec.vsl 1241*f4a2713aSLionel Sambuc res_vp = vec_vsl(vp, vui); // CHECK: @llvm.ppc.altivec.vsl 1242*f4a2713aSLionel Sambuc res_vi = vec_vsl(vi, vuc); // CHECK: @llvm.ppc.altivec.vsl 1243*f4a2713aSLionel Sambuc res_vi = vec_vsl(vi, vus); // CHECK: @llvm.ppc.altivec.vsl 1244*f4a2713aSLionel Sambuc res_vi = vec_vsl(vi, vui); // CHECK: @llvm.ppc.altivec.vsl 1245*f4a2713aSLionel Sambuc res_vui = vec_vsl(vui, vuc); // CHECK: @llvm.ppc.altivec.vsl 1246*f4a2713aSLionel Sambuc res_vui = vec_vsl(vui, vus); // CHECK: @llvm.ppc.altivec.vsl 1247*f4a2713aSLionel Sambuc res_vui = vec_vsl(vui, vui); // CHECK: @llvm.ppc.altivec.vsl 1248*f4a2713aSLionel Sambuc res_vbi = vec_vsl(vbi, vuc); // CHECK: @llvm.ppc.altivec.vsl 1249*f4a2713aSLionel Sambuc res_vbi = vec_vsl(vbi, vus); // CHECK: @llvm.ppc.altivec.vsl 1250*f4a2713aSLionel Sambuc res_vbi = vec_vsl(vbi, vui); // CHECK: @llvm.ppc.altivec.vsl 1251*f4a2713aSLionel Sambuc 1252*f4a2713aSLionel Sambuc /* vec_slo */ 1253*f4a2713aSLionel Sambuc res_vsc = vec_slo(vsc, vsc); // CHECK: @llvm.ppc.altivec.vslo 1254*f4a2713aSLionel Sambuc res_vsc = vec_slo(vsc, vuc); // CHECK: @llvm.ppc.altivec.vslo 1255*f4a2713aSLionel Sambuc res_vuc = vec_slo(vuc, vsc); // CHECK: @llvm.ppc.altivec.vslo 1256*f4a2713aSLionel Sambuc res_vuc = vec_slo(vuc, vuc); // CHECK: @llvm.ppc.altivec.vslo 1257*f4a2713aSLionel Sambuc res_vs = vec_slo(vs, vsc); // CHECK: @llvm.ppc.altivec.vslo 1258*f4a2713aSLionel Sambuc res_vs = vec_slo(vs, vuc); // CHECK: @llvm.ppc.altivec.vslo 1259*f4a2713aSLionel Sambuc res_vus = vec_slo(vus, vsc); // CHECK: @llvm.ppc.altivec.vslo 1260*f4a2713aSLionel Sambuc res_vus = vec_slo(vus, vuc); // CHECK: @llvm.ppc.altivec.vslo 1261*f4a2713aSLionel Sambuc res_vp = vec_slo(vp, vsc); // CHECK: @llvm.ppc.altivec.vslo 1262*f4a2713aSLionel Sambuc res_vp = vec_slo(vp, vuc); // CHECK: @llvm.ppc.altivec.vslo 1263*f4a2713aSLionel Sambuc res_vi = vec_slo(vi, vsc); // CHECK: @llvm.ppc.altivec.vslo 1264*f4a2713aSLionel Sambuc res_vi = vec_slo(vi, vuc); // CHECK: @llvm.ppc.altivec.vslo 1265*f4a2713aSLionel Sambuc res_vui = vec_slo(vui, vsc); // CHECK: @llvm.ppc.altivec.vslo 1266*f4a2713aSLionel Sambuc res_vui = vec_slo(vui, vuc); // CHECK: @llvm.ppc.altivec.vslo 1267*f4a2713aSLionel Sambuc res_vf = vec_slo(vf, vsc); // CHECK: @llvm.ppc.altivec.vslo 1268*f4a2713aSLionel Sambuc res_vf = vec_slo(vf, vuc); // CHECK: @llvm.ppc.altivec.vslo 1269*f4a2713aSLionel Sambuc res_vsc = vec_vslo(vsc, vsc); // CHECK: @llvm.ppc.altivec.vslo 1270*f4a2713aSLionel Sambuc res_vsc = vec_vslo(vsc, vuc); // CHECK: @llvm.ppc.altivec.vslo 1271*f4a2713aSLionel Sambuc res_vuc = vec_vslo(vuc, vsc); // CHECK: @llvm.ppc.altivec.vslo 1272*f4a2713aSLionel Sambuc res_vuc = vec_vslo(vuc, vuc); // CHECK: @llvm.ppc.altivec.vslo 1273*f4a2713aSLionel Sambuc res_vs = vec_vslo(vs, vsc); // CHECK: @llvm.ppc.altivec.vslo 1274*f4a2713aSLionel Sambuc res_vs = vec_vslo(vs, vuc); // CHECK: @llvm.ppc.altivec.vslo 1275*f4a2713aSLionel Sambuc res_vus = vec_vslo(vus, vsc); // CHECK: @llvm.ppc.altivec.vslo 1276*f4a2713aSLionel Sambuc res_vus = vec_vslo(vus, vuc); // CHECK: @llvm.ppc.altivec.vslo 1277*f4a2713aSLionel Sambuc res_vp = vec_vslo(vp, vsc); // CHECK: @llvm.ppc.altivec.vslo 1278*f4a2713aSLionel Sambuc res_vp = vec_vslo(vp, vuc); // CHECK: @llvm.ppc.altivec.vslo 1279*f4a2713aSLionel Sambuc res_vi = vec_vslo(vi, vsc); // CHECK: @llvm.ppc.altivec.vslo 1280*f4a2713aSLionel Sambuc res_vi = vec_vslo(vi, vuc); // CHECK: @llvm.ppc.altivec.vslo 1281*f4a2713aSLionel Sambuc res_vui = vec_vslo(vui, vsc); // CHECK: @llvm.ppc.altivec.vslo 1282*f4a2713aSLionel Sambuc res_vui = vec_vslo(vui, vuc); // CHECK: @llvm.ppc.altivec.vslo 1283*f4a2713aSLionel Sambuc res_vf = vec_vslo(vf, vsc); // CHECK: @llvm.ppc.altivec.vslo 1284*f4a2713aSLionel Sambuc res_vf = vec_vslo(vf, vuc); // CHECK: @llvm.ppc.altivec.vslo 1285*f4a2713aSLionel Sambuc 1286*f4a2713aSLionel Sambuc /* vec_splat */ 1287*f4a2713aSLionel Sambuc res_vsc = vec_splat(vsc, 0); // CHECK: @llvm.ppc.altivec.vperm 1288*f4a2713aSLionel Sambuc res_vuc = vec_splat(vuc, 0); // CHECK: @llvm.ppc.altivec.vperm 1289*f4a2713aSLionel Sambuc res_vbc = vec_splat(vbc, 0); // CHECK: @llvm.ppc.altivec.vperm 1290*f4a2713aSLionel Sambuc res_vs = vec_splat(vs, 0); // CHECK: @llvm.ppc.altivec.vperm 1291*f4a2713aSLionel Sambuc res_vus = vec_splat(vus, 0); // CHECK: @llvm.ppc.altivec.vperm 1292*f4a2713aSLionel Sambuc res_vbs = vec_splat(vbs, 0); // CHECK: @llvm.ppc.altivec.vperm 1293*f4a2713aSLionel Sambuc res_vp = vec_splat(vp, 0); // CHECK: @llvm.ppc.altivec.vperm 1294*f4a2713aSLionel Sambuc res_vi = vec_splat(vi, 0); // CHECK: @llvm.ppc.altivec.vperm 1295*f4a2713aSLionel Sambuc res_vui = vec_splat(vui, 0); // CHECK: @llvm.ppc.altivec.vperm 1296*f4a2713aSLionel Sambuc res_vbi = vec_splat(vbi, 0); // CHECK: @llvm.ppc.altivec.vperm 1297*f4a2713aSLionel Sambuc res_vf = vec_splat(vf, 0); // CHECK: @llvm.ppc.altivec.vperm 1298*f4a2713aSLionel Sambuc res_vsc = vec_vspltb(vsc, 0); // CHECK: @llvm.ppc.altivec.vperm 1299*f4a2713aSLionel Sambuc res_vuc = vec_vspltb(vuc, 0); // CHECK: @llvm.ppc.altivec.vperm 1300*f4a2713aSLionel Sambuc res_vbc = vec_vspltb(vbc, 0); // CHECK: @llvm.ppc.altivec.vperm 1301*f4a2713aSLionel Sambuc res_vs = vec_vsplth(vs, 0); // CHECK: @llvm.ppc.altivec.vperm 1302*f4a2713aSLionel Sambuc res_vus = vec_vsplth(vus, 0); // CHECK: @llvm.ppc.altivec.vperm 1303*f4a2713aSLionel Sambuc res_vbs = vec_vsplth(vbs, 0); // CHECK: @llvm.ppc.altivec.vperm 1304*f4a2713aSLionel Sambuc res_vp = vec_vsplth(vp, 0); // CHECK: @llvm.ppc.altivec.vperm 1305*f4a2713aSLionel Sambuc res_vi = vec_vspltw(vi, 0); // CHECK: @llvm.ppc.altivec.vperm 1306*f4a2713aSLionel Sambuc res_vui = vec_vspltw(vui, 0); // CHECK: @llvm.ppc.altivec.vperm 1307*f4a2713aSLionel Sambuc res_vbi = vec_vspltw(vbi, 0); // CHECK: @llvm.ppc.altivec.vperm 1308*f4a2713aSLionel Sambuc res_vf = vec_vspltw(vf, 0); // CHECK: @llvm.ppc.altivec.vperm 1309*f4a2713aSLionel Sambuc 1310*f4a2713aSLionel Sambuc /* vec_splat_s8 */ 1311*f4a2713aSLionel Sambuc res_vsc = vec_splat_s8(0x09); // TODO: add check 1312*f4a2713aSLionel Sambuc res_vsc = vec_vspltisb(0x09); // TODO: add check 1313*f4a2713aSLionel Sambuc 1314*f4a2713aSLionel Sambuc /* vec_splat_s16 */ 1315*f4a2713aSLionel Sambuc res_vs = vec_splat_s16(0x09); // TODO: add check 1316*f4a2713aSLionel Sambuc res_vs = vec_vspltish(0x09); // TODO: add check 1317*f4a2713aSLionel Sambuc 1318*f4a2713aSLionel Sambuc /* vec_splat_s32 */ 1319*f4a2713aSLionel Sambuc res_vi = vec_splat_s32(0x09); // TODO: add check 1320*f4a2713aSLionel Sambuc res_vi = vec_vspltisw(0x09); // TODO: add check 1321*f4a2713aSLionel Sambuc 1322*f4a2713aSLionel Sambuc /* vec_splat_u8 */ 1323*f4a2713aSLionel Sambuc res_vuc = vec_splat_u8(0x09); // TODO: add check 1324*f4a2713aSLionel Sambuc 1325*f4a2713aSLionel Sambuc /* vec_splat_u16 */ 1326*f4a2713aSLionel Sambuc res_vus = vec_splat_u16(0x09); // TODO: add check 1327*f4a2713aSLionel Sambuc 1328*f4a2713aSLionel Sambuc /* vec_splat_u32 */ 1329*f4a2713aSLionel Sambuc res_vui = vec_splat_u32(0x09); // TODO: add check 1330*f4a2713aSLionel Sambuc 1331*f4a2713aSLionel Sambuc /* vec_sr */ 1332*f4a2713aSLionel Sambuc res_vsc = vec_sr(vsc, vuc); // CHECK: shr <16 x i8> 1333*f4a2713aSLionel Sambuc res_vuc = vec_sr(vuc, vuc); // CHECK: shr <16 x i8> 1334*f4a2713aSLionel Sambuc res_vs = vec_sr(vs, vus); // CHECK: shr <8 x i16> 1335*f4a2713aSLionel Sambuc res_vus = vec_sr(vus, vus); // CHECK: shr <8 x i16> 1336*f4a2713aSLionel Sambuc res_vi = vec_sr(vi, vui); // CHECK: shr <4 x i32> 1337*f4a2713aSLionel Sambuc res_vui = vec_sr(vui, vui); // CHECK: shr <4 x i32> 1338*f4a2713aSLionel Sambuc res_vsc = vec_vsrb(vsc, vuc); // CHECK: shr <16 x i8> 1339*f4a2713aSLionel Sambuc res_vuc = vec_vsrb(vuc, vuc); // CHECK: shr <16 x i8> 1340*f4a2713aSLionel Sambuc res_vs = vec_vsrh(vs, vus); // CHECK: shr <8 x i16> 1341*f4a2713aSLionel Sambuc res_vus = vec_vsrh(vus, vus); // CHECK: shr <8 x i16> 1342*f4a2713aSLionel Sambuc res_vi = vec_vsrw(vi, vui); // CHECK: shr <4 x i32> 1343*f4a2713aSLionel Sambuc res_vui = vec_vsrw(vui, vui); // CHECK: shr <4 x i32> 1344*f4a2713aSLionel Sambuc 1345*f4a2713aSLionel Sambuc /* vec_sra */ 1346*f4a2713aSLionel Sambuc res_vsc = vec_sra(vsc, vuc); // CHECK: @llvm.ppc.altivec.vsrab 1347*f4a2713aSLionel Sambuc res_vuc = vec_sra(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsrab 1348*f4a2713aSLionel Sambuc res_vs = vec_sra(vs, vus); // CHECK: @llvm.ppc.altivec.vsrah 1349*f4a2713aSLionel Sambuc res_vus = vec_sra(vus, vus); // CHECK: @llvm.ppc.altivec.vsrah 1350*f4a2713aSLionel Sambuc res_vi = vec_sra(vi, vui); // CHECK: @llvm.ppc.altivec.vsraw 1351*f4a2713aSLionel Sambuc res_vui = vec_sra(vui, vui); // CHECK: @llvm.ppc.altivec.vsraw 1352*f4a2713aSLionel Sambuc res_vsc = vec_vsrab(vsc, vuc); // CHECK: @llvm.ppc.altivec.vsrab 1353*f4a2713aSLionel Sambuc res_vuc = vec_vsrab(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsrab 1354*f4a2713aSLionel Sambuc res_vs = vec_vsrah(vs, vus); // CHECK: @llvm.ppc.altivec.vsrah 1355*f4a2713aSLionel Sambuc res_vus = vec_vsrah(vus, vus); // CHECK: @llvm.ppc.altivec.vsrah 1356*f4a2713aSLionel Sambuc res_vi = vec_vsraw(vi, vui); // CHECK: @llvm.ppc.altivec.vsraw 1357*f4a2713aSLionel Sambuc res_vui = vec_vsraw(vui, vui); // CHECK: @llvm.ppc.altivec.vsraw 1358*f4a2713aSLionel Sambuc 1359*f4a2713aSLionel Sambuc /* vec_srl */ 1360*f4a2713aSLionel Sambuc res_vsc = vec_srl(vsc, vuc); // CHECK: @llvm.ppc.altivec.vsr 1361*f4a2713aSLionel Sambuc res_vsc = vec_srl(vsc, vus); // CHECK: @llvm.ppc.altivec.vsr 1362*f4a2713aSLionel Sambuc res_vsc = vec_srl(vsc, vui); // CHECK: @llvm.ppc.altivec.vsr 1363*f4a2713aSLionel Sambuc res_vuc = vec_srl(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsr 1364*f4a2713aSLionel Sambuc res_vuc = vec_srl(vuc, vus); // CHECK: @llvm.ppc.altivec.vsr 1365*f4a2713aSLionel Sambuc res_vuc = vec_srl(vuc, vui); // CHECK: @llvm.ppc.altivec.vsr 1366*f4a2713aSLionel Sambuc res_vbc = vec_srl(vbc, vuc); // CHECK: @llvm.ppc.altivec.vsr 1367*f4a2713aSLionel Sambuc res_vbc = vec_srl(vbc, vus); // CHECK: @llvm.ppc.altivec.vsr 1368*f4a2713aSLionel Sambuc res_vbc = vec_srl(vbc, vui); // CHECK: @llvm.ppc.altivec.vsr 1369*f4a2713aSLionel Sambuc res_vs = vec_srl(vs, vuc); // CHECK: @llvm.ppc.altivec.vsr 1370*f4a2713aSLionel Sambuc res_vs = vec_srl(vs, vus); // CHECK: @llvm.ppc.altivec.vsr 1371*f4a2713aSLionel Sambuc res_vs = vec_srl(vs, vui); // CHECK: @llvm.ppc.altivec.vsr 1372*f4a2713aSLionel Sambuc res_vus = vec_srl(vus, vuc); // CHECK: @llvm.ppc.altivec.vsr 1373*f4a2713aSLionel Sambuc res_vus = vec_srl(vus, vus); // CHECK: @llvm.ppc.altivec.vsr 1374*f4a2713aSLionel Sambuc res_vus = vec_srl(vus, vui); // CHECK: @llvm.ppc.altivec.vsr 1375*f4a2713aSLionel Sambuc res_vbs = vec_srl(vbs, vuc); // CHECK: @llvm.ppc.altivec.vsr 1376*f4a2713aSLionel Sambuc res_vbs = vec_srl(vbs, vus); // CHECK: @llvm.ppc.altivec.vsr 1377*f4a2713aSLionel Sambuc res_vbs = vec_srl(vbs, vui); // CHECK: @llvm.ppc.altivec.vsr 1378*f4a2713aSLionel Sambuc res_vp = vec_srl(vp, vuc); // CHECK: @llvm.ppc.altivec.vsr 1379*f4a2713aSLionel Sambuc res_vp = vec_srl(vp, vus); // CHECK: @llvm.ppc.altivec.vsr 1380*f4a2713aSLionel Sambuc res_vp = vec_srl(vp, vui); // CHECK: @llvm.ppc.altivec.vsr 1381*f4a2713aSLionel Sambuc res_vi = vec_srl(vi, vuc); // CHECK: @llvm.ppc.altivec.vsr 1382*f4a2713aSLionel Sambuc res_vi = vec_srl(vi, vus); // CHECK: @llvm.ppc.altivec.vsr 1383*f4a2713aSLionel Sambuc res_vi = vec_srl(vi, vui); // CHECK: @llvm.ppc.altivec.vsr 1384*f4a2713aSLionel Sambuc res_vui = vec_srl(vui, vuc); // CHECK: @llvm.ppc.altivec.vsr 1385*f4a2713aSLionel Sambuc res_vui = vec_srl(vui, vus); // CHECK: @llvm.ppc.altivec.vsr 1386*f4a2713aSLionel Sambuc res_vui = vec_srl(vui, vui); // CHECK: @llvm.ppc.altivec.vsr 1387*f4a2713aSLionel Sambuc res_vbi = vec_srl(vbi, vuc); // CHECK: @llvm.ppc.altivec.vsr 1388*f4a2713aSLionel Sambuc res_vbi = vec_srl(vbi, vus); // CHECK: @llvm.ppc.altivec.vsr 1389*f4a2713aSLionel Sambuc res_vbi = vec_srl(vbi, vui); // CHECK: @llvm.ppc.altivec.vsr 1390*f4a2713aSLionel Sambuc res_vsc = vec_vsr(vsc, vuc); // CHECK: @llvm.ppc.altivec.vsr 1391*f4a2713aSLionel Sambuc res_vsc = vec_vsr(vsc, vus); // CHECK: @llvm.ppc.altivec.vsr 1392*f4a2713aSLionel Sambuc res_vsc = vec_vsr(vsc, vui); // CHECK: @llvm.ppc.altivec.vsr 1393*f4a2713aSLionel Sambuc res_vuc = vec_vsr(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsr 1394*f4a2713aSLionel Sambuc res_vuc = vec_vsr(vuc, vus); // CHECK: @llvm.ppc.altivec.vsr 1395*f4a2713aSLionel Sambuc res_vuc = vec_vsr(vuc, vui); // CHECK: @llvm.ppc.altivec.vsr 1396*f4a2713aSLionel Sambuc res_vbc = vec_vsr(vbc, vuc); // CHECK: @llvm.ppc.altivec.vsr 1397*f4a2713aSLionel Sambuc res_vbc = vec_vsr(vbc, vus); // CHECK: @llvm.ppc.altivec.vsr 1398*f4a2713aSLionel Sambuc res_vbc = vec_vsr(vbc, vui); // CHECK: @llvm.ppc.altivec.vsr 1399*f4a2713aSLionel Sambuc res_vs = vec_vsr(vs, vuc); // CHECK: @llvm.ppc.altivec.vsr 1400*f4a2713aSLionel Sambuc res_vs = vec_vsr(vs, vus); // CHECK: @llvm.ppc.altivec.vsr 1401*f4a2713aSLionel Sambuc res_vs = vec_vsr(vs, vui); // CHECK: @llvm.ppc.altivec.vsr 1402*f4a2713aSLionel Sambuc res_vus = vec_vsr(vus, vuc); // CHECK: @llvm.ppc.altivec.vsr 1403*f4a2713aSLionel Sambuc res_vus = vec_vsr(vus, vus); // CHECK: @llvm.ppc.altivec.vsr 1404*f4a2713aSLionel Sambuc res_vus = vec_vsr(vus, vui); // CHECK: @llvm.ppc.altivec.vsr 1405*f4a2713aSLionel Sambuc res_vbs = vec_vsr(vbs, vuc); // CHECK: @llvm.ppc.altivec.vsr 1406*f4a2713aSLionel Sambuc res_vbs = vec_vsr(vbs, vus); // CHECK: @llvm.ppc.altivec.vsr 1407*f4a2713aSLionel Sambuc res_vbs = vec_vsr(vbs, vui); // CHECK: @llvm.ppc.altivec.vsr 1408*f4a2713aSLionel Sambuc res_vp = vec_vsr(vp, vuc); // CHECK: @llvm.ppc.altivec.vsr 1409*f4a2713aSLionel Sambuc res_vp = vec_vsr(vp, vus); // CHECK: @llvm.ppc.altivec.vsr 1410*f4a2713aSLionel Sambuc res_vp = vec_vsr(vp, vui); // CHECK: @llvm.ppc.altivec.vsr 1411*f4a2713aSLionel Sambuc res_vi = vec_vsr(vi, vuc); // CHECK: @llvm.ppc.altivec.vsr 1412*f4a2713aSLionel Sambuc res_vi = vec_vsr(vi, vus); // CHECK: @llvm.ppc.altivec.vsr 1413*f4a2713aSLionel Sambuc res_vi = vec_vsr(vi, vui); // CHECK: @llvm.ppc.altivec.vsr 1414*f4a2713aSLionel Sambuc res_vui = vec_vsr(vui, vuc); // CHECK: @llvm.ppc.altivec.vsr 1415*f4a2713aSLionel Sambuc res_vui = vec_vsr(vui, vus); // CHECK: @llvm.ppc.altivec.vsr 1416*f4a2713aSLionel Sambuc res_vui = vec_vsr(vui, vui); // CHECK: @llvm.ppc.altivec.vsr 1417*f4a2713aSLionel Sambuc res_vbi = vec_vsr(vbi, vuc); // CHECK: @llvm.ppc.altivec.vsr 1418*f4a2713aSLionel Sambuc res_vbi = vec_vsr(vbi, vus); // CHECK: @llvm.ppc.altivec.vsr 1419*f4a2713aSLionel Sambuc res_vbi = vec_vsr(vbi, vui); // CHECK: @llvm.ppc.altivec.vsr 1420*f4a2713aSLionel Sambuc 1421*f4a2713aSLionel Sambuc /* vec_sro */ 1422*f4a2713aSLionel Sambuc res_vsc = vec_sro(vsc, vsc); // CHECK: @llvm.ppc.altivec.vsro 1423*f4a2713aSLionel Sambuc res_vsc = vec_sro(vsc, vuc); // CHECK: @llvm.ppc.altivec.vsro 1424*f4a2713aSLionel Sambuc res_vuc = vec_sro(vuc, vsc); // CHECK: @llvm.ppc.altivec.vsro 1425*f4a2713aSLionel Sambuc res_vuc = vec_sro(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsro 1426*f4a2713aSLionel Sambuc res_vs = vec_sro(vs, vsc); // CHECK: @llvm.ppc.altivec.vsro 1427*f4a2713aSLionel Sambuc res_vs = vec_sro(vs, vuc); // CHECK: @llvm.ppc.altivec.vsro 1428*f4a2713aSLionel Sambuc res_vus = vec_sro(vus, vsc); // CHECK: @llvm.ppc.altivec.vsro 1429*f4a2713aSLionel Sambuc res_vus = vec_sro(vus, vuc); // CHECK: @llvm.ppc.altivec.vsro 1430*f4a2713aSLionel Sambuc res_vp = vec_sro(vp, vsc); // CHECK: @llvm.ppc.altivec.vsro 1431*f4a2713aSLionel Sambuc res_vp = vec_sro(vp, vuc); // CHECK: @llvm.ppc.altivec.vsro 1432*f4a2713aSLionel Sambuc res_vi = vec_sro(vi, vsc); // CHECK: @llvm.ppc.altivec.vsro 1433*f4a2713aSLionel Sambuc res_vi = vec_sro(vi, vuc); // CHECK: @llvm.ppc.altivec.vsro 1434*f4a2713aSLionel Sambuc res_vui = vec_sro(vui, vsc); // CHECK: @llvm.ppc.altivec.vsro 1435*f4a2713aSLionel Sambuc res_vui = vec_sro(vui, vuc); // CHECK: @llvm.ppc.altivec.vsro 1436*f4a2713aSLionel Sambuc res_vf = vec_sro(vf, vsc); // CHECK: @llvm.ppc.altivec.vsro 1437*f4a2713aSLionel Sambuc res_vf = vec_sro(vf, vuc); // CHECK: @llvm.ppc.altivec.vsro 1438*f4a2713aSLionel Sambuc res_vsc = vec_vsro(vsc, vsc); // CHECK: @llvm.ppc.altivec.vsro 1439*f4a2713aSLionel Sambuc res_vsc = vec_vsro(vsc, vuc); // CHECK: @llvm.ppc.altivec.vsro 1440*f4a2713aSLionel Sambuc res_vuc = vec_vsro(vuc, vsc); // CHECK: @llvm.ppc.altivec.vsro 1441*f4a2713aSLionel Sambuc res_vuc = vec_vsro(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsro 1442*f4a2713aSLionel Sambuc res_vs = vec_vsro(vs, vsc); // CHECK: @llvm.ppc.altivec.vsro 1443*f4a2713aSLionel Sambuc res_vs = vec_vsro(vs, vuc); // CHECK: @llvm.ppc.altivec.vsro 1444*f4a2713aSLionel Sambuc res_vus = vec_vsro(vus, vsc); // CHECK: @llvm.ppc.altivec.vsro 1445*f4a2713aSLionel Sambuc res_vus = vec_vsro(vus, vuc); // CHECK: @llvm.ppc.altivec.vsro 1446*f4a2713aSLionel Sambuc res_vp = vec_vsro(vp, vsc); // CHECK: @llvm.ppc.altivec.vsro 1447*f4a2713aSLionel Sambuc res_vp = vec_vsro(vp, vuc); // CHECK: @llvm.ppc.altivec.vsro 1448*f4a2713aSLionel Sambuc res_vi = vec_vsro(vi, vsc); // CHECK: @llvm.ppc.altivec.vsro 1449*f4a2713aSLionel Sambuc res_vi = vec_vsro(vi, vuc); // CHECK: @llvm.ppc.altivec.vsro 1450*f4a2713aSLionel Sambuc res_vui = vec_vsro(vui, vsc); // CHECK: @llvm.ppc.altivec.vsro 1451*f4a2713aSLionel Sambuc res_vui = vec_vsro(vui, vuc); // CHECK: @llvm.ppc.altivec.vsro 1452*f4a2713aSLionel Sambuc res_vf = vec_vsro(vf, vsc); // CHECK: @llvm.ppc.altivec.vsro 1453*f4a2713aSLionel Sambuc res_vf = vec_vsro(vf, vuc); // CHECK: @llvm.ppc.altivec.vsro 1454*f4a2713aSLionel Sambuc 1455*f4a2713aSLionel Sambuc /* vec_st */ 1456*f4a2713aSLionel Sambuc vec_st(vsc, 0, &vsc); // CHECK: @llvm.ppc.altivec.stvx 1457*f4a2713aSLionel Sambuc vec_st(vsc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvx 1458*f4a2713aSLionel Sambuc vec_st(vuc, 0, &vuc); // CHECK: @llvm.ppc.altivec.stvx 1459*f4a2713aSLionel Sambuc vec_st(vuc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvx 1460*f4a2713aSLionel Sambuc vec_st(vbc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvx 1461*f4a2713aSLionel Sambuc vec_st(vbc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvx 1462*f4a2713aSLionel Sambuc vec_st(vbc, 0, &vbc); // CHECK: @llvm.ppc.altivec.stvx 1463*f4a2713aSLionel Sambuc vec_st(vs, 0, &vs); // CHECK: @llvm.ppc.altivec.stvx 1464*f4a2713aSLionel Sambuc vec_st(vs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvx 1465*f4a2713aSLionel Sambuc vec_st(vus, 0, &vus); // CHECK: @llvm.ppc.altivec.stvx 1466*f4a2713aSLionel Sambuc vec_st(vus, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvx 1467*f4a2713aSLionel Sambuc vec_st(vbs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvx 1468*f4a2713aSLionel Sambuc vec_st(vbs, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvx 1469*f4a2713aSLionel Sambuc vec_st(vbs, 0, &vbs); // CHECK: @llvm.ppc.altivec.stvx 1470*f4a2713aSLionel Sambuc vec_st(vp, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvx 1471*f4a2713aSLionel Sambuc vec_st(vp, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvx 1472*f4a2713aSLionel Sambuc vec_st(vp, 0, &vp); // CHECK: @llvm.ppc.altivec.stvx 1473*f4a2713aSLionel Sambuc vec_st(vi, 0, &vi); // CHECK: @llvm.ppc.altivec.stvx 1474*f4a2713aSLionel Sambuc vec_st(vi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvx 1475*f4a2713aSLionel Sambuc vec_st(vui, 0, &vui); // CHECK: @llvm.ppc.altivec.stvx 1476*f4a2713aSLionel Sambuc vec_st(vui, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvx 1477*f4a2713aSLionel Sambuc vec_st(vbi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvx 1478*f4a2713aSLionel Sambuc vec_st(vbi, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvx 1479*f4a2713aSLionel Sambuc vec_st(vbi, 0, &vbi); // CHECK: @llvm.ppc.altivec.stvx 1480*f4a2713aSLionel Sambuc vec_st(vf, 0, &vf); // CHECK: @llvm.ppc.altivec.stvx 1481*f4a2713aSLionel Sambuc vec_st(vf, 0, ¶m_f); // CHECK: @llvm.ppc.altivec.stvx 1482*f4a2713aSLionel Sambuc vec_stvx(vsc, 0, &vsc); // CHECK: @llvm.ppc.altivec.stvx 1483*f4a2713aSLionel Sambuc vec_stvx(vsc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvx 1484*f4a2713aSLionel Sambuc vec_stvx(vuc, 0, &vuc); // CHECK: @llvm.ppc.altivec.stvx 1485*f4a2713aSLionel Sambuc vec_stvx(vuc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvx 1486*f4a2713aSLionel Sambuc vec_stvx(vbc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvx 1487*f4a2713aSLionel Sambuc vec_stvx(vbc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvx 1488*f4a2713aSLionel Sambuc vec_stvx(vbc, 0, &vbc); // CHECK: @llvm.ppc.altivec.stvx 1489*f4a2713aSLionel Sambuc vec_stvx(vs, 0, &vs); // CHECK: @llvm.ppc.altivec.stvx 1490*f4a2713aSLionel Sambuc vec_stvx(vs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvx 1491*f4a2713aSLionel Sambuc vec_stvx(vus, 0, &vus); // CHECK: @llvm.ppc.altivec.stvx 1492*f4a2713aSLionel Sambuc vec_stvx(vus, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvx 1493*f4a2713aSLionel Sambuc vec_stvx(vbs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvx 1494*f4a2713aSLionel Sambuc vec_stvx(vbs, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvx 1495*f4a2713aSLionel Sambuc vec_stvx(vbs, 0, &vbs); // CHECK: @llvm.ppc.altivec.stvx 1496*f4a2713aSLionel Sambuc vec_stvx(vp, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvx 1497*f4a2713aSLionel Sambuc vec_stvx(vp, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvx 1498*f4a2713aSLionel Sambuc vec_stvx(vp, 0, &vp); // CHECK: @llvm.ppc.altivec.stvx 1499*f4a2713aSLionel Sambuc vec_stvx(vi, 0, &vi); // CHECK: @llvm.ppc.altivec.stvx 1500*f4a2713aSLionel Sambuc vec_stvx(vi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvx 1501*f4a2713aSLionel Sambuc vec_stvx(vui, 0, &vui); // CHECK: @llvm.ppc.altivec.stvx 1502*f4a2713aSLionel Sambuc vec_stvx(vui, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvx 1503*f4a2713aSLionel Sambuc vec_stvx(vbi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvx 1504*f4a2713aSLionel Sambuc vec_stvx(vbi, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvx 1505*f4a2713aSLionel Sambuc vec_stvx(vbi, 0, &vbi); // CHECK: @llvm.ppc.altivec.stvx 1506*f4a2713aSLionel Sambuc vec_stvx(vf, 0, &vf); // CHECK: @llvm.ppc.altivec.stvx 1507*f4a2713aSLionel Sambuc vec_stvx(vf, 0, ¶m_f); // CHECK: @llvm.ppc.altivec.stvx 1508*f4a2713aSLionel Sambuc 1509*f4a2713aSLionel Sambuc /* vec_ste */ 1510*f4a2713aSLionel Sambuc vec_ste(vsc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvebx 1511*f4a2713aSLionel Sambuc vec_ste(vuc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvebx 1512*f4a2713aSLionel Sambuc vec_ste(vbc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvebx 1513*f4a2713aSLionel Sambuc vec_ste(vbc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvebx 1514*f4a2713aSLionel Sambuc vec_ste(vs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvehx 1515*f4a2713aSLionel Sambuc vec_ste(vus, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvehx 1516*f4a2713aSLionel Sambuc vec_ste(vbs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvehx 1517*f4a2713aSLionel Sambuc vec_ste(vbs, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvehx 1518*f4a2713aSLionel Sambuc vec_ste(vp, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvehx 1519*f4a2713aSLionel Sambuc vec_ste(vp, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvehx 1520*f4a2713aSLionel Sambuc vec_ste(vi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvewx 1521*f4a2713aSLionel Sambuc vec_ste(vui, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvewx 1522*f4a2713aSLionel Sambuc vec_ste(vbi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvewx 1523*f4a2713aSLionel Sambuc vec_ste(vbi, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvewx 1524*f4a2713aSLionel Sambuc vec_ste(vf, 0, ¶m_f); // CHECK: @llvm.ppc.altivec.stvewx 1525*f4a2713aSLionel Sambuc vec_stvebx(vsc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvebx 1526*f4a2713aSLionel Sambuc vec_stvebx(vuc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvebx 1527*f4a2713aSLionel Sambuc vec_stvebx(vbc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvebx 1528*f4a2713aSLionel Sambuc vec_stvebx(vbc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvebx 1529*f4a2713aSLionel Sambuc vec_stvehx(vs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvehx 1530*f4a2713aSLionel Sambuc vec_stvehx(vus, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvehx 1531*f4a2713aSLionel Sambuc vec_stvehx(vbs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvehx 1532*f4a2713aSLionel Sambuc vec_stvehx(vbs, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvehx 1533*f4a2713aSLionel Sambuc vec_stvehx(vp, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvehx 1534*f4a2713aSLionel Sambuc vec_stvehx(vp, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvehx 1535*f4a2713aSLionel Sambuc vec_stvewx(vi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvewx 1536*f4a2713aSLionel Sambuc vec_stvewx(vui, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvewx 1537*f4a2713aSLionel Sambuc vec_stvewx(vbi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvewx 1538*f4a2713aSLionel Sambuc vec_stvewx(vbi, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvewx 1539*f4a2713aSLionel Sambuc vec_stvewx(vf, 0, ¶m_f); // CHECK: @llvm.ppc.altivec.stvewx 1540*f4a2713aSLionel Sambuc 1541*f4a2713aSLionel Sambuc /* vec_stl */ 1542*f4a2713aSLionel Sambuc vec_stl(vsc, 0, &vsc); // CHECK: @llvm.ppc.altivec.stvxl 1543*f4a2713aSLionel Sambuc vec_stl(vsc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvxl 1544*f4a2713aSLionel Sambuc vec_stl(vuc, 0, &vuc); // CHECK: @llvm.ppc.altivec.stvxl 1545*f4a2713aSLionel Sambuc vec_stl(vuc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvxl 1546*f4a2713aSLionel Sambuc vec_stl(vbc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvxl 1547*f4a2713aSLionel Sambuc vec_stl(vbc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvxl 1548*f4a2713aSLionel Sambuc vec_stl(vbc, 0, &vbc); // CHECK: @llvm.ppc.altivec.stvxl 1549*f4a2713aSLionel Sambuc vec_stl(vs, 0, &vs); // CHECK: @llvm.ppc.altivec.stvxl 1550*f4a2713aSLionel Sambuc vec_stl(vs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvxl 1551*f4a2713aSLionel Sambuc vec_stl(vus, 0, &vus); // CHECK: @llvm.ppc.altivec.stvxl 1552*f4a2713aSLionel Sambuc vec_stl(vus, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvxl 1553*f4a2713aSLionel Sambuc vec_stl(vbs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvxl 1554*f4a2713aSLionel Sambuc vec_stl(vbs, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvxl 1555*f4a2713aSLionel Sambuc vec_stl(vbs, 0, &vbs); // CHECK: @llvm.ppc.altivec.stvxl 1556*f4a2713aSLionel Sambuc vec_stl(vp, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvxl 1557*f4a2713aSLionel Sambuc vec_stl(vp, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvxl 1558*f4a2713aSLionel Sambuc vec_stl(vp, 0, &vp); // CHECK: @llvm.ppc.altivec.stvxl 1559*f4a2713aSLionel Sambuc vec_stl(vi, 0, &vi); // CHECK: @llvm.ppc.altivec.stvxl 1560*f4a2713aSLionel Sambuc vec_stl(vi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvxl 1561*f4a2713aSLionel Sambuc vec_stl(vui, 0, &vui); // CHECK: @llvm.ppc.altivec.stvxl 1562*f4a2713aSLionel Sambuc vec_stl(vui, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvxl 1563*f4a2713aSLionel Sambuc vec_stl(vbi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvxl 1564*f4a2713aSLionel Sambuc vec_stl(vbi, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvxl 1565*f4a2713aSLionel Sambuc vec_stl(vbi, 0, &vbi); // CHECK: @llvm.ppc.altivec.stvxl 1566*f4a2713aSLionel Sambuc vec_stl(vf, 0, &vf); // CHECK: @llvm.ppc.altivec.stvxl 1567*f4a2713aSLionel Sambuc vec_stl(vf, 0, ¶m_f); // CHECK: @llvm.ppc.altivec.stvxl 1568*f4a2713aSLionel Sambuc vec_stvxl(vsc, 0, &vsc); // CHECK: @llvm.ppc.altivec.stvxl 1569*f4a2713aSLionel Sambuc vec_stvxl(vsc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvxl 1570*f4a2713aSLionel Sambuc vec_stvxl(vuc, 0, &vuc); // CHECK: @llvm.ppc.altivec.stvxl 1571*f4a2713aSLionel Sambuc vec_stvxl(vuc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvxl 1572*f4a2713aSLionel Sambuc vec_stvxl(vbc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvxl 1573*f4a2713aSLionel Sambuc vec_stvxl(vbc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvxl 1574*f4a2713aSLionel Sambuc vec_stvxl(vbc, 0, &vbc); // CHECK: @llvm.ppc.altivec.stvxl 1575*f4a2713aSLionel Sambuc vec_stvxl(vs, 0, &vs); // CHECK: @llvm.ppc.altivec.stvxl 1576*f4a2713aSLionel Sambuc vec_stvxl(vs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvxl 1577*f4a2713aSLionel Sambuc vec_stvxl(vus, 0, &vus); // CHECK: @llvm.ppc.altivec.stvxl 1578*f4a2713aSLionel Sambuc vec_stvxl(vus, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvxl 1579*f4a2713aSLionel Sambuc vec_stvxl(vbs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvxl 1580*f4a2713aSLionel Sambuc vec_stvxl(vbs, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvxl 1581*f4a2713aSLionel Sambuc vec_stvxl(vbs, 0, &vbs); // CHECK: @llvm.ppc.altivec.stvxl 1582*f4a2713aSLionel Sambuc vec_stvxl(vp, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvxl 1583*f4a2713aSLionel Sambuc vec_stvxl(vp, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvxl 1584*f4a2713aSLionel Sambuc vec_stvxl(vp, 0, &vp); // CHECK: @llvm.ppc.altivec.stvxl 1585*f4a2713aSLionel Sambuc vec_stvxl(vi, 0, &vi); // CHECK: @llvm.ppc.altivec.stvxl 1586*f4a2713aSLionel Sambuc vec_stvxl(vi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvxl 1587*f4a2713aSLionel Sambuc vec_stvxl(vui, 0, &vui); // CHECK: @llvm.ppc.altivec.stvxl 1588*f4a2713aSLionel Sambuc vec_stvxl(vui, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvxl 1589*f4a2713aSLionel Sambuc vec_stvxl(vbi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvxl 1590*f4a2713aSLionel Sambuc vec_stvxl(vbi, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvxl 1591*f4a2713aSLionel Sambuc vec_stvxl(vbi, 0, &vbi); // CHECK: @llvm.ppc.altivec.stvxl 1592*f4a2713aSLionel Sambuc vec_stvxl(vf, 0, &vf); // CHECK: @llvm.ppc.altivec.stvxl 1593*f4a2713aSLionel Sambuc vec_stvxl(vf, 0, ¶m_f); // CHECK: @llvm.ppc.altivec.stvxl 1594*f4a2713aSLionel Sambuc 1595*f4a2713aSLionel Sambuc /* vec_sub */ 1596*f4a2713aSLionel Sambuc res_vsc = vec_sub(vsc, vsc); // CHECK: sub <16 x i8> 1597*f4a2713aSLionel Sambuc res_vsc = vec_sub(vbc, vsc); // CHECK: sub <16 x i8> 1598*f4a2713aSLionel Sambuc res_vsc = vec_sub(vsc, vbc); // CHECK: sub <16 x i8> 1599*f4a2713aSLionel Sambuc res_vuc = vec_sub(vuc, vuc); // CHECK: sub <16 x i8> 1600*f4a2713aSLionel Sambuc res_vuc = vec_sub(vbc, vuc); // CHECK: sub <16 x i8> 1601*f4a2713aSLionel Sambuc res_vuc = vec_sub(vuc, vbc); // CHECK: sub <16 x i8> 1602*f4a2713aSLionel Sambuc res_vs = vec_sub(vs, vs); // CHECK: sub <8 x i16> 1603*f4a2713aSLionel Sambuc res_vs = vec_sub(vbs, vs); // CHECK: sub <8 x i16> 1604*f4a2713aSLionel Sambuc res_vs = vec_sub(vs, vbs); // CHECK: sub <8 x i16> 1605*f4a2713aSLionel Sambuc res_vus = vec_sub(vus, vus); // CHECK: sub <8 x i16> 1606*f4a2713aSLionel Sambuc res_vus = vec_sub(vbs, vus); // CHECK: sub <8 x i16> 1607*f4a2713aSLionel Sambuc res_vus = vec_sub(vus, vbs); // CHECK: sub <8 x i16> 1608*f4a2713aSLionel Sambuc res_vi = vec_sub(vi, vi); // CHECK: sub <4 x i32> 1609*f4a2713aSLionel Sambuc res_vi = vec_sub(vbi, vi); // CHECK: sub <4 x i32> 1610*f4a2713aSLionel Sambuc res_vi = vec_sub(vi, vbi); // CHECK: sub <4 x i32> 1611*f4a2713aSLionel Sambuc res_vui = vec_sub(vui, vui); // CHECK: sub <4 x i32> 1612*f4a2713aSLionel Sambuc res_vui = vec_sub(vbi, vui); // CHECK: sub <4 x i32> 1613*f4a2713aSLionel Sambuc res_vui = vec_sub(vui, vbi); // CHECK: sub <4 x i32> 1614*f4a2713aSLionel Sambuc res_vf = vec_sub(vf, vf); // CHECK: fsub <4 x float> 1615*f4a2713aSLionel Sambuc res_vsc = vec_vsububm(vsc, vsc); // CHECK: sub <16 x i8> 1616*f4a2713aSLionel Sambuc res_vsc = vec_vsububm(vbc, vsc); // CHECK: sub <16 x i8> 1617*f4a2713aSLionel Sambuc res_vsc = vec_vsububm(vsc, vbc); // CHECK: sub <16 x i8> 1618*f4a2713aSLionel Sambuc res_vuc = vec_vsububm(vuc, vuc); // CHECK: sub <16 x i8> 1619*f4a2713aSLionel Sambuc res_vuc = vec_vsububm(vbc, vuc); // CHECK: sub <16 x i8> 1620*f4a2713aSLionel Sambuc res_vuc = vec_vsububm(vuc, vbc); // CHECK: sub <16 x i8> 1621*f4a2713aSLionel Sambuc res_vs = vec_vsubuhm(vs, vs); // CHECK: sub <8 x i16> 1622*f4a2713aSLionel Sambuc res_vs = vec_vsubuhm(vbs, vus); // CHECK: sub <8 x i16> 1623*f4a2713aSLionel Sambuc res_vs = vec_vsubuhm(vus, vbs); // CHECK: sub <8 x i16> 1624*f4a2713aSLionel Sambuc res_vus = vec_vsubuhm(vus, vus); // CHECK: sub <8 x i16> 1625*f4a2713aSLionel Sambuc res_vus = vec_vsubuhm(vbs, vus); // CHECK: sub <8 x i16> 1626*f4a2713aSLionel Sambuc res_vus = vec_vsubuhm(vus, vbs); // CHECK: sub <8 x i16> 1627*f4a2713aSLionel Sambuc res_vi = vec_vsubuwm(vi, vi); // CHECK: sub <4 x i32> 1628*f4a2713aSLionel Sambuc res_vi = vec_vsubuwm(vbi, vi); // CHECK: sub <4 x i32> 1629*f4a2713aSLionel Sambuc res_vi = vec_vsubuwm(vi, vbi); // CHECK: sub <4 x i32> 1630*f4a2713aSLionel Sambuc res_vui = vec_vsubuwm(vui, vui); // CHECK: sub <4 x i32> 1631*f4a2713aSLionel Sambuc res_vui = vec_vsubuwm(vbi, vui); // CHECK: sub <4 x i32> 1632*f4a2713aSLionel Sambuc res_vui = vec_vsubuwm(vui, vbi); // CHECK: sub <4 x i32> 1633*f4a2713aSLionel Sambuc res_vf = vec_vsubfp(vf, vf); // CHECK: fsub <4 x float> 1634*f4a2713aSLionel Sambuc 1635*f4a2713aSLionel Sambuc /* vec_subc */ 1636*f4a2713aSLionel Sambuc res_vui = vec_subc(vui, vui); // CHECK: @llvm.ppc.altivec.vsubcuw 1637*f4a2713aSLionel Sambuc res_vui = vec_vsubcuw(vui, vui); // CHECK: @llvm.ppc.altivec.vsubcuw 1638*f4a2713aSLionel Sambuc 1639*f4a2713aSLionel Sambuc /* vec_subs */ 1640*f4a2713aSLionel Sambuc res_vsc = vec_subs(vsc, vsc); // CHECK: @llvm.ppc.altivec.vsubsbs 1641*f4a2713aSLionel Sambuc res_vsc = vec_subs(vbc, vsc); // CHECK: @llvm.ppc.altivec.vsubsbs 1642*f4a2713aSLionel Sambuc res_vsc = vec_subs(vsc, vbc); // CHECK: @llvm.ppc.altivec.vsubsbs 1643*f4a2713aSLionel Sambuc res_vuc = vec_subs(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsububs 1644*f4a2713aSLionel Sambuc res_vuc = vec_subs(vbc, vuc); // CHECK: @llvm.ppc.altivec.vsububs 1645*f4a2713aSLionel Sambuc res_vuc = vec_subs(vuc, vbc); // CHECK: @llvm.ppc.altivec.vsububs 1646*f4a2713aSLionel Sambuc res_vs = vec_subs(vs, vs); // CHECK: @llvm.ppc.altivec.vsubshs 1647*f4a2713aSLionel Sambuc res_vs = vec_subs(vbs, vs); // CHECK: @llvm.ppc.altivec.vsubshs 1648*f4a2713aSLionel Sambuc res_vs = vec_subs(vs, vbs); // CHECK: @llvm.ppc.altivec.vsubshs 1649*f4a2713aSLionel Sambuc res_vus = vec_subs(vus, vus); // CHECK: @llvm.ppc.altivec.vsubuhs 1650*f4a2713aSLionel Sambuc res_vus = vec_subs(vbs, vus); // CHECK: @llvm.ppc.altivec.vsubuhs 1651*f4a2713aSLionel Sambuc res_vus = vec_subs(vus, vbs); // CHECK: @llvm.ppc.altivec.vsubuhs 1652*f4a2713aSLionel Sambuc res_vi = vec_subs(vi, vi); // CHECK: @llvm.ppc.altivec.vsubsws 1653*f4a2713aSLionel Sambuc res_vi = vec_subs(vbi, vi); // CHECK: @llvm.ppc.altivec.vsubsws 1654*f4a2713aSLionel Sambuc res_vi = vec_subs(vi, vbi); // CHECK: @llvm.ppc.altivec.vsubsws 1655*f4a2713aSLionel Sambuc res_vui = vec_subs(vui, vui); // CHECK: @llvm.ppc.altivec.vsubuws 1656*f4a2713aSLionel Sambuc res_vui = vec_subs(vbi, vui); // CHECK: @llvm.ppc.altivec.vsubuws 1657*f4a2713aSLionel Sambuc res_vui = vec_subs(vui, vbi); // CHECK: @llvm.ppc.altivec.vsubuws 1658*f4a2713aSLionel Sambuc res_vsc = vec_vsubsbs(vsc, vsc); // CHECK: @llvm.ppc.altivec.vsubsbs 1659*f4a2713aSLionel Sambuc res_vsc = vec_vsubsbs(vbc, vsc); // CHECK: @llvm.ppc.altivec.vsubsbs 1660*f4a2713aSLionel Sambuc res_vsc = vec_vsubsbs(vsc, vbc); // CHECK: @llvm.ppc.altivec.vsubsbs 1661*f4a2713aSLionel Sambuc res_vuc = vec_vsububs(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsububs 1662*f4a2713aSLionel Sambuc res_vuc = vec_vsububs(vbc, vuc); // CHECK: @llvm.ppc.altivec.vsububs 1663*f4a2713aSLionel Sambuc res_vuc = vec_vsububs(vuc, vbc); // CHECK: @llvm.ppc.altivec.vsububs 1664*f4a2713aSLionel Sambuc res_vs = vec_vsubshs(vs, vs); // CHECK: @llvm.ppc.altivec.vsubshs 1665*f4a2713aSLionel Sambuc res_vs = vec_vsubshs(vbs, vs); // CHECK: @llvm.ppc.altivec.vsubshs 1666*f4a2713aSLionel Sambuc res_vs = vec_vsubshs(vs, vbs); // CHECK: @llvm.ppc.altivec.vsubshs 1667*f4a2713aSLionel Sambuc res_vus = vec_vsubuhs(vus, vus); // CHECK: @llvm.ppc.altivec.vsubuhs 1668*f4a2713aSLionel Sambuc res_vus = vec_vsubuhs(vbs, vus); // CHECK: @llvm.ppc.altivec.vsubuhs 1669*f4a2713aSLionel Sambuc res_vus = vec_vsubuhs(vus, vbs); // CHECK: @llvm.ppc.altivec.vsubuhs 1670*f4a2713aSLionel Sambuc res_vi = vec_vsubsws(vi, vi); // CHECK: @llvm.ppc.altivec.vsubsws 1671*f4a2713aSLionel Sambuc res_vi = vec_vsubsws(vbi, vi); // CHECK: @llvm.ppc.altivec.vsubsws 1672*f4a2713aSLionel Sambuc res_vi = vec_vsubsws(vi, vbi); // CHECK: @llvm.ppc.altivec.vsubsws 1673*f4a2713aSLionel Sambuc res_vui = vec_vsubuws(vui, vui); // CHECK: @llvm.ppc.altivec.vsubuws 1674*f4a2713aSLionel Sambuc res_vui = vec_vsubuws(vbi, vui); // CHECK: @llvm.ppc.altivec.vsubuws 1675*f4a2713aSLionel Sambuc res_vui = vec_vsubuws(vui, vbi); // CHECK: @llvm.ppc.altivec.vsubuws 1676*f4a2713aSLionel Sambuc 1677*f4a2713aSLionel Sambuc /* vec_sum4s */ 1678*f4a2713aSLionel Sambuc res_vi = vec_sum4s(vsc, vi); // CHECK: @llvm.ppc.altivec.vsum4sbs 1679*f4a2713aSLionel Sambuc res_vui = vec_sum4s(vuc, vui); // CHECK: @llvm.ppc.altivec.vsum4ubs 1680*f4a2713aSLionel Sambuc res_vi = vec_sum4s(vs, vi); // CHECK: @llvm.ppc.altivec.vsum4shs 1681*f4a2713aSLionel Sambuc res_vi = vec_vsum4sbs(vsc, vi); // CHECK: @llvm.ppc.altivec.vsum4sbs 1682*f4a2713aSLionel Sambuc res_vui = vec_vsum4ubs(vuc, vui); // CHECK: @llvm.ppc.altivec.vsum4ubs 1683*f4a2713aSLionel Sambuc res_vi = vec_vsum4shs(vs, vi); // CHECK: @llvm.ppc.altivec.vsum4shs 1684*f4a2713aSLionel Sambuc 1685*f4a2713aSLionel Sambuc /* vec_sum2s */ 1686*f4a2713aSLionel Sambuc res_vi = vec_sum2s(vi, vi); // CHECK: @llvm.ppc.altivec.vsum2sws 1687*f4a2713aSLionel Sambuc res_vi = vec_vsum2sws(vi, vi); // CHECK: @llvm.ppc.altivec.vsum2sws 1688*f4a2713aSLionel Sambuc 1689*f4a2713aSLionel Sambuc /* vec_sums */ 1690*f4a2713aSLionel Sambuc res_vi = vec_sums(vi, vi); // CHECK: @llvm.ppc.altivec.vsumsws 1691*f4a2713aSLionel Sambuc res_vi = vec_vsumsws(vi, vi); // CHECK: @llvm.ppc.altivec.vsumsws 1692*f4a2713aSLionel Sambuc 1693*f4a2713aSLionel Sambuc /* vec_trunc */ 1694*f4a2713aSLionel Sambuc res_vf = vec_trunc(vf); // CHECK: @llvm.ppc.altivec.vrfiz 1695*f4a2713aSLionel Sambuc res_vf = vec_vrfiz(vf); // CHECK: @llvm.ppc.altivec.vrfiz 1696*f4a2713aSLionel Sambuc 1697*f4a2713aSLionel Sambuc /* vec_unpackh */ 1698*f4a2713aSLionel Sambuc res_vs = vec_unpackh(vsc); // CHECK: @llvm.ppc.altivec.vupkhsb 1699*f4a2713aSLionel Sambuc res_vbs = vec_unpackh(vbc); // CHECK: @llvm.ppc.altivec.vupkhsb 1700*f4a2713aSLionel Sambuc res_vi = vec_unpackh(vs); // CHECK: @llvm.ppc.altivec.vupkhsh 1701*f4a2713aSLionel Sambuc res_vbi = vec_unpackh(vbs); // CHECK: @llvm.ppc.altivec.vupkhsh 1702*f4a2713aSLionel Sambuc res_vui = vec_unpackh(vp); // CHECK: @llvm.ppc.altivec.vupkhsh 1703*f4a2713aSLionel Sambuc res_vs = vec_vupkhsb(vsc); // CHECK: @llvm.ppc.altivec.vupkhsb 1704*f4a2713aSLionel Sambuc res_vbs = vec_vupkhsb(vbc); // CHECK: @llvm.ppc.altivec.vupkhsb 1705*f4a2713aSLionel Sambuc res_vi = vec_vupkhsh(vs); // CHECK: @llvm.ppc.altivec.vupkhsh 1706*f4a2713aSLionel Sambuc res_vbi = vec_vupkhsh(vbs); // CHECK: @llvm.ppc.altivec.vupkhsh 1707*f4a2713aSLionel Sambuc res_vui = vec_vupkhsh(vp); // CHECK: @llvm.ppc.altivec.vupkhsh 1708*f4a2713aSLionel Sambuc 1709*f4a2713aSLionel Sambuc /* vec_unpackl */ 1710*f4a2713aSLionel Sambuc res_vs = vec_unpackl(vsc); // CHECK: @llvm.ppc.altivec.vupklsb 1711*f4a2713aSLionel Sambuc res_vbs = vec_unpackl(vbc); // CHECK: @llvm.ppc.altivec.vupklsb 1712*f4a2713aSLionel Sambuc res_vi = vec_unpackl(vs); // CHECK: @llvm.ppc.altivec.vupklsh 1713*f4a2713aSLionel Sambuc res_vbi = vec_unpackl(vbs); // CHECK: @llvm.ppc.altivec.vupklsh 1714*f4a2713aSLionel Sambuc res_vui = vec_unpackl(vp); // CHECK: @llvm.ppc.altivec.vupklsh 1715*f4a2713aSLionel Sambuc res_vs = vec_vupklsb(vsc); // CHECK: @llvm.ppc.altivec.vupklsb 1716*f4a2713aSLionel Sambuc res_vbs = vec_vupklsb(vbc); // CHECK: @llvm.ppc.altivec.vupklsb 1717*f4a2713aSLionel Sambuc res_vi = vec_vupklsh(vs); // CHECK: @llvm.ppc.altivec.vupklsh 1718*f4a2713aSLionel Sambuc res_vbi = vec_vupklsh(vbs); // CHECK: @llvm.ppc.altivec.vupklsh 1719*f4a2713aSLionel Sambuc res_vui = vec_vupklsh(vp); // CHECK: @llvm.ppc.altivec.vupklsh 1720*f4a2713aSLionel Sambuc 1721*f4a2713aSLionel Sambuc /* vec_xor */ 1722*f4a2713aSLionel Sambuc res_vsc = vec_xor(vsc, vsc); // CHECK: xor <16 x i8> 1723*f4a2713aSLionel Sambuc res_vsc = vec_xor(vbc, vsc); // CHECK: xor <16 x i8> 1724*f4a2713aSLionel Sambuc res_vsc = vec_xor(vsc, vbc); // CHECK: xor <16 x i8> 1725*f4a2713aSLionel Sambuc res_vuc = vec_xor(vuc, vuc); // CHECK: xor <16 x i8> 1726*f4a2713aSLionel Sambuc res_vuc = vec_xor(vbc, vuc); // CHECK: xor <16 x i8> 1727*f4a2713aSLionel Sambuc res_vuc = vec_xor(vuc, vbc); // CHECK: xor <16 x i8> 1728*f4a2713aSLionel Sambuc res_vbc = vec_xor(vbc, vbc); // CHECK: xor <16 x i8> 1729*f4a2713aSLionel Sambuc res_vs = vec_xor(vs, vs); // CHECK: xor <8 x i16> 1730*f4a2713aSLionel Sambuc res_vs = vec_xor(vbs, vs); // CHECK: xor <8 x i16> 1731*f4a2713aSLionel Sambuc res_vs = vec_xor(vs, vbs); // CHECK: xor <8 x i16> 1732*f4a2713aSLionel Sambuc res_vus = vec_xor(vus, vus); // CHECK: xor <8 x i16> 1733*f4a2713aSLionel Sambuc res_vus = vec_xor(vbs, vus); // CHECK: xor <8 x i16> 1734*f4a2713aSLionel Sambuc res_vus = vec_xor(vus, vbs); // CHECK: xor <8 x i16> 1735*f4a2713aSLionel Sambuc res_vbs = vec_xor(vbs, vbs); // CHECK: xor <8 x i16> 1736*f4a2713aSLionel Sambuc res_vi = vec_xor(vi, vi); // CHECK: xor <4 x i32> 1737*f4a2713aSLionel Sambuc res_vi = vec_xor(vbi, vi); // CHECK: xor <4 x i32> 1738*f4a2713aSLionel Sambuc res_vi = vec_xor(vi, vbi); // CHECK: xor <4 x i32> 1739*f4a2713aSLionel Sambuc res_vui = vec_xor(vui, vui); // CHECK: xor <4 x i32> 1740*f4a2713aSLionel Sambuc res_vui = vec_xor(vbi, vui); // CHECK: xor <4 x i32> 1741*f4a2713aSLionel Sambuc res_vui = vec_xor(vui, vbi); // CHECK: xor <4 x i32> 1742*f4a2713aSLionel Sambuc res_vbi = vec_xor(vbi, vbi); // CHECK: xor <4 x i32> 1743*f4a2713aSLionel Sambuc res_vf = vec_xor(vf, vf); // CHECK: xor <4 x i32> 1744*f4a2713aSLionel Sambuc res_vf = vec_xor(vbi, vf); // CHECK: xor <4 x i32> 1745*f4a2713aSLionel Sambuc res_vf = vec_xor(vf, vbi); // CHECK: xor <4 x i32> 1746*f4a2713aSLionel Sambuc res_vsc = vec_vxor(vsc, vsc); // CHECK: xor <16 x i8> 1747*f4a2713aSLionel Sambuc res_vsc = vec_vxor(vbc, vsc); // CHECK: xor <16 x i8> 1748*f4a2713aSLionel Sambuc res_vsc = vec_vxor(vsc, vbc); // CHECK: xor <16 x i8> 1749*f4a2713aSLionel Sambuc res_vuc = vec_vxor(vuc, vuc); // CHECK: xor <16 x i8> 1750*f4a2713aSLionel Sambuc res_vuc = vec_vxor(vbc, vuc); // CHECK: xor <16 x i8> 1751*f4a2713aSLionel Sambuc res_vuc = vec_vxor(vuc, vbc); // CHECK: xor <16 x i8> 1752*f4a2713aSLionel Sambuc res_vbc = vec_vxor(vbc, vbc); // CHECK: xor <16 x i8> 1753*f4a2713aSLionel Sambuc res_vs = vec_vxor(vs, vs); // CHECK: xor <8 x i16> 1754*f4a2713aSLionel Sambuc res_vs = vec_vxor(vbs, vs); // CHECK: xor <8 x i16> 1755*f4a2713aSLionel Sambuc res_vs = vec_vxor(vs, vbs); // CHECK: xor <8 x i16> 1756*f4a2713aSLionel Sambuc res_vus = vec_vxor(vus, vus); // CHECK: xor <8 x i16> 1757*f4a2713aSLionel Sambuc res_vus = vec_vxor(vbs, vus); // CHECK: xor <8 x i16> 1758*f4a2713aSLionel Sambuc res_vus = vec_vxor(vus, vbs); // CHECK: xor <8 x i16> 1759*f4a2713aSLionel Sambuc res_vbs = vec_vxor(vbs, vbs); // CHECK: xor <8 x i16> 1760*f4a2713aSLionel Sambuc res_vi = vec_vxor(vi, vi); // CHECK: xor <4 x i32> 1761*f4a2713aSLionel Sambuc res_vi = vec_vxor(vbi, vi); // CHECK: xor <4 x i32> 1762*f4a2713aSLionel Sambuc res_vi = vec_vxor(vi, vbi); // CHECK: xor <4 x i32> 1763*f4a2713aSLionel Sambuc res_vui = vec_vxor(vui, vui); // CHECK: xor <4 x i32> 1764*f4a2713aSLionel Sambuc res_vui = vec_vxor(vbi, vui); // CHECK: xor <4 x i32> 1765*f4a2713aSLionel Sambuc res_vui = vec_vxor(vui, vbi); // CHECK: xor <4 x i32> 1766*f4a2713aSLionel Sambuc res_vbi = vec_vxor(vbi, vbi); // CHECK: xor <4 x i32> 1767*f4a2713aSLionel Sambuc res_vf = vec_vxor(vf, vf); // CHECK: xor <4 x i32> 1768*f4a2713aSLionel Sambuc res_vf = vec_vxor(vbi, vf); // CHECK: xor <4 x i32> 1769*f4a2713aSLionel Sambuc res_vf = vec_vxor(vf, vbi); // CHECK: xor <4 x i32> 1770*f4a2713aSLionel Sambuc 1771*f4a2713aSLionel Sambuc /* ------------------------------ extensions -------------------------------------- */ 1772*f4a2713aSLionel Sambuc 1773*f4a2713aSLionel Sambuc /* vec_extract */ 1774*f4a2713aSLionel Sambuc res_sc = vec_extract(vsc, param_i); // CHECK: extractelement <16 x i8> 1775*f4a2713aSLionel Sambuc res_uc = vec_extract(vuc, param_i); // CHECK: extractelement <16 x i8> 1776*f4a2713aSLionel Sambuc res_s = vec_extract(vs, param_i); // CHECK: extractelement <8 x i16> 1777*f4a2713aSLionel Sambuc res_us = vec_extract(vus, param_i); // CHECK: extractelement <8 x i16> 1778*f4a2713aSLionel Sambuc res_i = vec_extract(vi, param_i); // CHECK: extractelement <4 x i32> 1779*f4a2713aSLionel Sambuc res_ui = vec_extract(vui, param_i); // CHECK: extractelement <4 x i32> 1780*f4a2713aSLionel Sambuc res_f = vec_extract(vf, param_i); // CHECK: extractelement <4 x float> 1781*f4a2713aSLionel Sambuc 1782*f4a2713aSLionel Sambuc /* vec_insert */ 1783*f4a2713aSLionel Sambuc res_vsc = vec_insert(param_sc, vsc, param_i); // CHECK: insertelement <16 x i8> 1784*f4a2713aSLionel Sambuc res_vuc = vec_insert(param_uc, vuc, param_i); // CHECK: insertelement <16 x i8> 1785*f4a2713aSLionel Sambuc res_vs = vec_insert(param_s, vs, param_i); // CHECK: insertelement <8 x i16> 1786*f4a2713aSLionel Sambuc res_vus = vec_insert(param_us, vus, param_i); // CHECK: insertelement <8 x i16> 1787*f4a2713aSLionel Sambuc res_vi = vec_insert(param_i, vi, param_i); // CHECK: insertelement <4 x i32> 1788*f4a2713aSLionel Sambuc res_vui = vec_insert(param_ui, vui, param_i); // CHECK: insertelement <4 x i32> 1789*f4a2713aSLionel Sambuc res_vf = vec_insert(param_f, vf, param_i); // CHECK: insertelement <4 x float> 1790*f4a2713aSLionel Sambuc 1791*f4a2713aSLionel Sambuc /* vec_lvlx */ 1792*f4a2713aSLionel Sambuc res_vsc = vec_lvlx(0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvx 1793*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1794*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 1795*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1796*f4a2713aSLionel Sambuc 1797*f4a2713aSLionel Sambuc res_vsc = vec_lvlx(0, &vsc); // CHECK: @llvm.ppc.altivec.lvx 1798*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1799*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 1800*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1801*f4a2713aSLionel Sambuc 1802*f4a2713aSLionel Sambuc res_vuc = vec_lvlx(0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvx 1803*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1804*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 1805*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1806*f4a2713aSLionel Sambuc 1807*f4a2713aSLionel Sambuc res_vuc = vec_lvlx(0, &vuc); // CHECK: @llvm.ppc.altivec.lvx 1808*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1809*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 1810*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1811*f4a2713aSLionel Sambuc 1812*f4a2713aSLionel Sambuc res_vbc = vec_lvlx(0, &vbc); // CHECK: @llvm.ppc.altivec.lvx 1813*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 1814*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1815*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1816*f4a2713aSLionel Sambuc 1817*f4a2713aSLionel Sambuc res_vs = vec_lvlx(0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvx 1818*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1819*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 1820*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1821*f4a2713aSLionel Sambuc 1822*f4a2713aSLionel Sambuc res_vs = vec_lvlx(0, &vs); // CHECK: @llvm.ppc.altivec.lvx 1823*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1824*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 1825*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1826*f4a2713aSLionel Sambuc 1827*f4a2713aSLionel Sambuc res_vus = vec_lvlx(0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvx 1828*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1829*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 1830*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1831*f4a2713aSLionel Sambuc 1832*f4a2713aSLionel Sambuc res_vus = vec_lvlx(0, &vus); // CHECK: @llvm.ppc.altivec.lvx 1833*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1834*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 1835*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1836*f4a2713aSLionel Sambuc 1837*f4a2713aSLionel Sambuc res_vbs = vec_lvlx(0, &vbs); // CHECK: @llvm.ppc.altivec.lvx 1838*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 1839*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1840*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1841*f4a2713aSLionel Sambuc 1842*f4a2713aSLionel Sambuc res_vp = vec_lvlx(0, &vp); // CHECK: @llvm.ppc.altivec.lvx 1843*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 1844*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1845*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1846*f4a2713aSLionel Sambuc 1847*f4a2713aSLionel Sambuc res_vi = vec_lvlx(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvx 1848*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1849*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 1850*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1851*f4a2713aSLionel Sambuc 1852*f4a2713aSLionel Sambuc res_vi = vec_lvlx(0, &vi); // CHECK: @llvm.ppc.altivec.lvx 1853*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1854*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 1855*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1856*f4a2713aSLionel Sambuc 1857*f4a2713aSLionel Sambuc res_vui = vec_lvlx(0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvx 1858*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1859*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 1860*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1861*f4a2713aSLionel Sambuc 1862*f4a2713aSLionel Sambuc res_vui = vec_lvlx(0, &vui); // CHECK: @llvm.ppc.altivec.lvx 1863*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1864*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 1865*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1866*f4a2713aSLionel Sambuc 1867*f4a2713aSLionel Sambuc res_vbi = vec_lvlx(0, &vbi); // CHECK: @llvm.ppc.altivec.lvx 1868*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 1869*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1870*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1871*f4a2713aSLionel Sambuc 1872*f4a2713aSLionel Sambuc res_vf = vec_lvlx(0, &vf); // CHECK: @llvm.ppc.altivec.lvx 1873*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1874*f4a2713aSLionel Sambuc // CHECK: store <4 x float> zeroinitializer 1875*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1876*f4a2713aSLionel Sambuc 1877*f4a2713aSLionel Sambuc /* vec_lvlxl */ 1878*f4a2713aSLionel Sambuc res_vsc = vec_lvlxl(0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvxl 1879*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1880*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 1881*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1882*f4a2713aSLionel Sambuc 1883*f4a2713aSLionel Sambuc res_vsc = vec_lvlxl(0, &vsc); // CHECK: @llvm.ppc.altivec.lvxl 1884*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1885*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 1886*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1887*f4a2713aSLionel Sambuc 1888*f4a2713aSLionel Sambuc res_vuc = vec_lvlxl(0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvxl 1889*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1890*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 1891*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1892*f4a2713aSLionel Sambuc 1893*f4a2713aSLionel Sambuc res_vuc = vec_lvlxl(0, &vuc); // CHECK: @llvm.ppc.altivec.lvxl 1894*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1895*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 1896*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1897*f4a2713aSLionel Sambuc 1898*f4a2713aSLionel Sambuc res_vbc = vec_lvlxl(0, &vbc); // CHECK: @llvm.ppc.altivec.lvxl 1899*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 1900*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1901*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1902*f4a2713aSLionel Sambuc 1903*f4a2713aSLionel Sambuc res_vs = vec_lvlxl(0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvxl 1904*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1905*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 1906*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1907*f4a2713aSLionel Sambuc 1908*f4a2713aSLionel Sambuc res_vs = vec_lvlxl(0, &vs); // CHECK: @llvm.ppc.altivec.lvxl 1909*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1910*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 1911*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1912*f4a2713aSLionel Sambuc 1913*f4a2713aSLionel Sambuc res_vus = vec_lvlxl(0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvxl 1914*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1915*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 1916*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1917*f4a2713aSLionel Sambuc 1918*f4a2713aSLionel Sambuc res_vus = vec_lvlxl(0, &vus); // CHECK: @llvm.ppc.altivec.lvxl 1919*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1920*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 1921*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1922*f4a2713aSLionel Sambuc 1923*f4a2713aSLionel Sambuc res_vbs = vec_lvlxl(0, &vbs); // CHECK: @llvm.ppc.altivec.lvxl 1924*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 1925*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1926*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1927*f4a2713aSLionel Sambuc 1928*f4a2713aSLionel Sambuc res_vp = vec_lvlxl(0, &vp); // CHECK: @llvm.ppc.altivec.lvxl 1929*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 1930*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1931*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1932*f4a2713aSLionel Sambuc 1933*f4a2713aSLionel Sambuc res_vi = vec_lvlxl(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvxl 1934*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1935*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 1936*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1937*f4a2713aSLionel Sambuc 1938*f4a2713aSLionel Sambuc res_vi = vec_lvlxl(0, &vi); // CHECK: @llvm.ppc.altivec.lvxl 1939*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1940*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 1941*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1942*f4a2713aSLionel Sambuc 1943*f4a2713aSLionel Sambuc res_vui = vec_lvlxl(0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvxl 1944*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1945*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 1946*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1947*f4a2713aSLionel Sambuc 1948*f4a2713aSLionel Sambuc res_vui = vec_lvlxl(0, &vui); // CHECK: @llvm.ppc.altivec.lvxl 1949*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1950*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 1951*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1952*f4a2713aSLionel Sambuc 1953*f4a2713aSLionel Sambuc res_vbi = vec_lvlxl(0, &vbi); // CHECK: @llvm.ppc.altivec.lvxl 1954*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 1955*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1956*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1957*f4a2713aSLionel Sambuc 1958*f4a2713aSLionel Sambuc res_vf = vec_lvlxl(0, &vf); // CHECK: @llvm.ppc.altivec.lvxl 1959*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1960*f4a2713aSLionel Sambuc // CHECK: store <4 x float> zeroinitializer 1961*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1962*f4a2713aSLionel Sambuc 1963*f4a2713aSLionel Sambuc /* vec_lvrx */ 1964*f4a2713aSLionel Sambuc res_vsc = vec_lvrx(0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvx 1965*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1966*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 1967*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1968*f4a2713aSLionel Sambuc 1969*f4a2713aSLionel Sambuc res_vsc = vec_lvrx(0, &vsc); // CHECK: @llvm.ppc.altivec.lvx 1970*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1971*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 1972*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1973*f4a2713aSLionel Sambuc 1974*f4a2713aSLionel Sambuc res_vuc = vec_lvrx(0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvx 1975*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1976*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 1977*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1978*f4a2713aSLionel Sambuc 1979*f4a2713aSLionel Sambuc res_vuc = vec_lvrx(0, &vuc); // CHECK: @llvm.ppc.altivec.lvx 1980*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1981*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 1982*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1983*f4a2713aSLionel Sambuc 1984*f4a2713aSLionel Sambuc res_vbc = vec_lvrx(0, &vbc); // CHECK: store <16 x i8> zeroinitializer 1985*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvx 1986*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1987*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1988*f4a2713aSLionel Sambuc 1989*f4a2713aSLionel Sambuc res_vs = vec_lvrx(0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvx 1990*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1991*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 1992*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1993*f4a2713aSLionel Sambuc 1994*f4a2713aSLionel Sambuc res_vs = vec_lvrx(0, &vs); // CHECK: @llvm.ppc.altivec.lvx 1995*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 1996*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 1997*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 1998*f4a2713aSLionel Sambuc 1999*f4a2713aSLionel Sambuc res_vus = vec_lvrx(0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvx 2000*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2001*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2002*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2003*f4a2713aSLionel Sambuc 2004*f4a2713aSLionel Sambuc res_vus = vec_lvrx(0, &vus); // CHECK: @llvm.ppc.altivec.lvx 2005*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2006*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2007*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2008*f4a2713aSLionel Sambuc 2009*f4a2713aSLionel Sambuc res_vbs = vec_lvrx(0, &vbs); // CHECK: store <8 x i16> zeroinitializer 2010*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvx 2011*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2012*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2013*f4a2713aSLionel Sambuc 2014*f4a2713aSLionel Sambuc res_vp = vec_lvrx(0, &vp); // CHECK: store <8 x i16> zeroinitializer 2015*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvx 2016*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2017*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2018*f4a2713aSLionel Sambuc 2019*f4a2713aSLionel Sambuc res_vi = vec_lvrx(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvx 2020*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2021*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2022*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2023*f4a2713aSLionel Sambuc 2024*f4a2713aSLionel Sambuc res_vi = vec_lvrx(0, &vi); // CHECK: @llvm.ppc.altivec.lvx 2025*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2026*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2027*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2028*f4a2713aSLionel Sambuc 2029*f4a2713aSLionel Sambuc res_vui = vec_lvrx(0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvx 2030*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2031*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2032*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2033*f4a2713aSLionel Sambuc 2034*f4a2713aSLionel Sambuc res_vui = vec_lvrx(0, &vui); // CHECK: @llvm.ppc.altivec.lvx 2035*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2036*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2037*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2038*f4a2713aSLionel Sambuc 2039*f4a2713aSLionel Sambuc res_vbi = vec_lvrx(0, &vbi); // CHECK: store <4 x i32> zeroinitializer 2040*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvx 2041*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2042*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2043*f4a2713aSLionel Sambuc 2044*f4a2713aSLionel Sambuc res_vf = vec_lvrx(0, &vf); // CHECK: @llvm.ppc.altivec.lvx 2045*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2046*f4a2713aSLionel Sambuc // CHECK: store <4 x float> zeroinitializer 2047*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2048*f4a2713aSLionel Sambuc 2049*f4a2713aSLionel Sambuc /* vec_lvrxl */ 2050*f4a2713aSLionel Sambuc res_vsc = vec_lvrxl(0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvxl 2051*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2052*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2053*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2054*f4a2713aSLionel Sambuc 2055*f4a2713aSLionel Sambuc res_vsc = vec_lvrxl(0, &vsc); // CHECK: @llvm.ppc.altivec.lvxl 2056*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2057*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2058*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2059*f4a2713aSLionel Sambuc 2060*f4a2713aSLionel Sambuc res_vuc = vec_lvrxl(0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvxl 2061*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2062*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2063*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2064*f4a2713aSLionel Sambuc 2065*f4a2713aSLionel Sambuc res_vuc = vec_lvrxl(0, &vuc); // CHECK: @llvm.ppc.altivec.lvxl 2066*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2067*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2068*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2069*f4a2713aSLionel Sambuc 2070*f4a2713aSLionel Sambuc res_vbc = vec_lvrxl(0, &vbc); // CHECK: store <16 x i8> zeroinitializer 2071*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvxl 2072*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2073*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2074*f4a2713aSLionel Sambuc 2075*f4a2713aSLionel Sambuc res_vs = vec_lvrxl(0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvxl 2076*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2077*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2078*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2079*f4a2713aSLionel Sambuc 2080*f4a2713aSLionel Sambuc res_vs = vec_lvrxl(0, &vs); // CHECK: @llvm.ppc.altivec.lvxl 2081*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2082*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2083*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2084*f4a2713aSLionel Sambuc 2085*f4a2713aSLionel Sambuc res_vus = vec_lvrxl(0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvxl 2086*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2087*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2088*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2089*f4a2713aSLionel Sambuc 2090*f4a2713aSLionel Sambuc res_vus = vec_lvrxl(0, &vus); // CHECK: @llvm.ppc.altivec.lvxl 2091*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2092*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2093*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2094*f4a2713aSLionel Sambuc 2095*f4a2713aSLionel Sambuc res_vbs = vec_lvrxl(0, &vbs); // CHECK: store <8 x i16> zeroinitializer 2096*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvxl 2097*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2098*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2099*f4a2713aSLionel Sambuc 2100*f4a2713aSLionel Sambuc res_vp = vec_lvrxl(0, &vp); // CHECK: store <8 x i16> zeroinitializer 2101*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvxl 2102*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2103*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2104*f4a2713aSLionel Sambuc 2105*f4a2713aSLionel Sambuc res_vi = vec_lvrxl(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvxl 2106*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2107*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2108*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2109*f4a2713aSLionel Sambuc 2110*f4a2713aSLionel Sambuc res_vi = vec_lvrxl(0, &vi); // CHECK: @llvm.ppc.altivec.lvxl 2111*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2112*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2113*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2114*f4a2713aSLionel Sambuc 2115*f4a2713aSLionel Sambuc res_vui = vec_lvrxl(0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvxl 2116*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2117*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2118*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2119*f4a2713aSLionel Sambuc 2120*f4a2713aSLionel Sambuc res_vui = vec_lvrxl(0, &vui); // CHECK: @llvm.ppc.altivec.lvxl 2121*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2122*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2123*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2124*f4a2713aSLionel Sambuc 2125*f4a2713aSLionel Sambuc res_vbi = vec_lvrxl(0, &vbi); // CHECK: store <4 x i32> zeroinitializer 2126*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvxl 2127*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2128*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2129*f4a2713aSLionel Sambuc 2130*f4a2713aSLionel Sambuc res_vf = vec_lvrxl(0, &vf); // CHECK: @llvm.ppc.altivec.lvxl 2131*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2132*f4a2713aSLionel Sambuc // CHECK: store <4 x float> zeroinitializer 2133*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2134*f4a2713aSLionel Sambuc 2135*f4a2713aSLionel Sambuc /* vec_stvlx */ 2136*f4a2713aSLionel Sambuc vec_stvlx(vsc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvx 2137*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2138*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2139*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2140*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2141*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2142*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2143*f4a2713aSLionel Sambuc 2144*f4a2713aSLionel Sambuc vec_stvlx(vsc, 0, &vsc); // CHECK: @llvm.ppc.altivec.lvx 2145*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2146*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2147*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2148*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2149*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2150*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2151*f4a2713aSLionel Sambuc 2152*f4a2713aSLionel Sambuc vec_stvlx(vuc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvx 2153*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2154*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2155*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2156*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2157*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2158*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2159*f4a2713aSLionel Sambuc 2160*f4a2713aSLionel Sambuc vec_stvlx(vuc, 0, &vuc); // CHECK: @llvm.ppc.altivec.lvx 2161*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2162*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2163*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2164*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2165*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2166*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2167*f4a2713aSLionel Sambuc 2168*f4a2713aSLionel Sambuc vec_stvlx(vbc, 0, &vbc); // CHECK: store <16 x i8> zeroinitializer 2169*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvx 2170*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2171*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2172*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2173*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2174*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2175*f4a2713aSLionel Sambuc 2176*f4a2713aSLionel Sambuc vec_stvlx(vs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvx 2177*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2178*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2179*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2180*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2181*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2182*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2183*f4a2713aSLionel Sambuc 2184*f4a2713aSLionel Sambuc vec_stvlx(vs, 0, &vs); // CHECK: @llvm.ppc.altivec.lvx 2185*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2186*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2187*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2188*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2189*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2190*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2191*f4a2713aSLionel Sambuc 2192*f4a2713aSLionel Sambuc vec_stvlx(vus, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvx 2193*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2194*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2195*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2196*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2197*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2198*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2199*f4a2713aSLionel Sambuc 2200*f4a2713aSLionel Sambuc vec_stvlx(vus, 0, &vus); // CHECK: @llvm.ppc.altivec.lvx 2201*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2202*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2203*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2204*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2205*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2206*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2207*f4a2713aSLionel Sambuc 2208*f4a2713aSLionel Sambuc vec_stvlx(vbs, 0, &vbs); // CHECK: store <8 x i16> zeroinitializer 2209*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvx 2210*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2211*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2212*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2213*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2214*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2215*f4a2713aSLionel Sambuc 2216*f4a2713aSLionel Sambuc vec_stvlx(vp, 0, &vp); // CHECK: store <8 x i16> zeroinitializer 2217*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvx 2218*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2219*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2220*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2221*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2222*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2223*f4a2713aSLionel Sambuc 2224*f4a2713aSLionel Sambuc vec_stvlx(vi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvx 2225*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2226*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2227*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2228*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2229*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2230*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2231*f4a2713aSLionel Sambuc 2232*f4a2713aSLionel Sambuc vec_stvlx(vi, 0, &vi); // CHECK: @llvm.ppc.altivec.lvx 2233*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2234*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2235*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2236*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2237*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2238*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2239*f4a2713aSLionel Sambuc 2240*f4a2713aSLionel Sambuc vec_stvlx(vui, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvx 2241*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2242*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2243*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2244*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2245*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2246*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2247*f4a2713aSLionel Sambuc 2248*f4a2713aSLionel Sambuc vec_stvlx(vui, 0, &vui); // CHECK: @llvm.ppc.altivec.lvx 2249*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2250*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2251*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2252*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2253*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2254*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2255*f4a2713aSLionel Sambuc 2256*f4a2713aSLionel Sambuc vec_stvlx(vbi, 0, &vbi); // CHECK: store <4 x i32> zeroinitializer 2257*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvx 2258*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2259*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2260*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2261*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2262*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2263*f4a2713aSLionel Sambuc 2264*f4a2713aSLionel Sambuc vec_stvlx(vf, 0, &vf); // CHECK: @llvm.ppc.altivec.lvx 2265*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2266*f4a2713aSLionel Sambuc // CHECK: store <4 x float> zeroinitializer 2267*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2268*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2269*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2270*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2271*f4a2713aSLionel Sambuc 2272*f4a2713aSLionel Sambuc /* vec_stvlxl */ 2273*f4a2713aSLionel Sambuc vec_stvlxl(vsc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvx 2274*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2275*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2276*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2277*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2278*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2279*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2280*f4a2713aSLionel Sambuc 2281*f4a2713aSLionel Sambuc vec_stvlxl(vsc, 0, &vsc); // CHECK: @llvm.ppc.altivec.lvx 2282*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2283*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2284*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2285*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2286*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2287*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2288*f4a2713aSLionel Sambuc 2289*f4a2713aSLionel Sambuc vec_stvlxl(vuc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvx 2290*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2291*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2292*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2293*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2294*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2295*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2296*f4a2713aSLionel Sambuc 2297*f4a2713aSLionel Sambuc vec_stvlxl(vuc, 0, &vuc); // CHECK: @llvm.ppc.altivec.lvx 2298*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2299*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2300*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2301*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2302*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2303*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2304*f4a2713aSLionel Sambuc 2305*f4a2713aSLionel Sambuc vec_stvlxl(vbc, 0, &vbc); // CHECK: store <16 x i8> zeroinitializer 2306*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvx 2307*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2308*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2309*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2310*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2311*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2312*f4a2713aSLionel Sambuc 2313*f4a2713aSLionel Sambuc vec_stvlxl(vs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvx 2314*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2315*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2316*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2317*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2318*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2319*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2320*f4a2713aSLionel Sambuc 2321*f4a2713aSLionel Sambuc vec_stvlxl(vs, 0, &vs); // CHECK: @llvm.ppc.altivec.lvx 2322*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2323*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2324*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2325*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2326*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2327*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2328*f4a2713aSLionel Sambuc 2329*f4a2713aSLionel Sambuc vec_stvlxl(vus, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvx 2330*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2331*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2332*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2333*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2334*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2335*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2336*f4a2713aSLionel Sambuc 2337*f4a2713aSLionel Sambuc vec_stvlxl(vus, 0, &vus); // CHECK: @llvm.ppc.altivec.lvx 2338*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2339*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2340*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2341*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2342*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2343*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2344*f4a2713aSLionel Sambuc 2345*f4a2713aSLionel Sambuc vec_stvlxl(vbs, 0, &vbs); // CHECK: store <8 x i16> zeroinitializer 2346*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvx 2347*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2348*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2349*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2350*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2351*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2352*f4a2713aSLionel Sambuc 2353*f4a2713aSLionel Sambuc vec_stvlxl(vp, 0, &vp); // CHECK: store <8 x i16> zeroinitializer 2354*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvx 2355*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2356*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2357*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2358*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2359*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2360*f4a2713aSLionel Sambuc 2361*f4a2713aSLionel Sambuc vec_stvlxl(vi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvx 2362*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2363*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2364*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2365*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2366*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2367*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2368*f4a2713aSLionel Sambuc 2369*f4a2713aSLionel Sambuc vec_stvlxl(vi, 0, &vi); // CHECK: @llvm.ppc.altivec.lvx 2370*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2371*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2372*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2373*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2374*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2375*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2376*f4a2713aSLionel Sambuc 2377*f4a2713aSLionel Sambuc vec_stvlxl(vui, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvx 2378*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2379*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2380*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2381*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2382*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2383*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2384*f4a2713aSLionel Sambuc 2385*f4a2713aSLionel Sambuc vec_stvlxl(vui, 0, &vui); // CHECK: @llvm.ppc.altivec.lvx 2386*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2387*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2388*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2389*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2390*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2391*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2392*f4a2713aSLionel Sambuc 2393*f4a2713aSLionel Sambuc vec_stvlxl(vbi, 0, &vbi); // CHECK: store <4 x i32> zeroinitializer 2394*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvx 2395*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2396*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2397*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2398*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2399*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2400*f4a2713aSLionel Sambuc 2401*f4a2713aSLionel Sambuc vec_stvlxl(vf, 0, &vf); // CHECK: @llvm.ppc.altivec.lvx 2402*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2403*f4a2713aSLionel Sambuc // CHECK: store <4 x float> zeroinitializer 2404*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2405*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2406*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2407*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2408*f4a2713aSLionel Sambuc 2409*f4a2713aSLionel Sambuc /* vec_stvrx */ 2410*f4a2713aSLionel Sambuc vec_stvrx(vsc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvx 2411*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2412*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2413*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2414*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2415*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2416*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2417*f4a2713aSLionel Sambuc 2418*f4a2713aSLionel Sambuc vec_stvrx(vsc, 0, &vsc); // CHECK: @llvm.ppc.altivec.lvx 2419*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2420*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2421*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2422*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2423*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2424*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2425*f4a2713aSLionel Sambuc 2426*f4a2713aSLionel Sambuc vec_stvrx(vuc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvx 2427*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2428*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2429*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2430*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2431*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2432*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2433*f4a2713aSLionel Sambuc 2434*f4a2713aSLionel Sambuc vec_stvrx(vuc, 0, &vuc); // CHECK: @llvm.ppc.altivec.lvx 2435*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2436*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2437*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2438*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2439*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2440*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2441*f4a2713aSLionel Sambuc 2442*f4a2713aSLionel Sambuc vec_stvrx(vbc, 0, &vbc); // CHECK: @llvm.ppc.altivec.lvx 2443*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2444*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2445*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2446*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2447*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2448*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2449*f4a2713aSLionel Sambuc 2450*f4a2713aSLionel Sambuc vec_stvrx(vs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvx 2451*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2452*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2453*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2454*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2455*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2456*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2457*f4a2713aSLionel Sambuc 2458*f4a2713aSLionel Sambuc vec_stvrx(vs, 0, &vs); // CHECK: @llvm.ppc.altivec.lvx 2459*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2460*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2461*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2462*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2463*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2464*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2465*f4a2713aSLionel Sambuc 2466*f4a2713aSLionel Sambuc vec_stvrx(vus, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvx 2467*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2468*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2469*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2470*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2471*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2472*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2473*f4a2713aSLionel Sambuc 2474*f4a2713aSLionel Sambuc vec_stvrx(vus, 0, &vus); // CHECK: @llvm.ppc.altivec.lvx 2475*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2476*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2477*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2478*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2479*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2480*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2481*f4a2713aSLionel Sambuc 2482*f4a2713aSLionel Sambuc vec_stvrx(vbs, 0, &vbs); // CHECK: @llvm.ppc.altivec.lvx 2483*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2484*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2485*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2486*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2487*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2488*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2489*f4a2713aSLionel Sambuc 2490*f4a2713aSLionel Sambuc vec_stvrx(vp, 0, &vp); // CHECK: @llvm.ppc.altivec.lvx 2491*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2492*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2493*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2494*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2495*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2496*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2497*f4a2713aSLionel Sambuc 2498*f4a2713aSLionel Sambuc vec_stvrx(vi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvx 2499*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2500*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2501*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2502*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2503*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2504*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2505*f4a2713aSLionel Sambuc 2506*f4a2713aSLionel Sambuc vec_stvrx(vi, 0, &vi); // CHECK: @llvm.ppc.altivec.lvx 2507*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2508*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2509*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2510*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2511*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2512*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2513*f4a2713aSLionel Sambuc 2514*f4a2713aSLionel Sambuc vec_stvrx(vui, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvx 2515*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2516*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2517*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2518*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2519*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2520*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2521*f4a2713aSLionel Sambuc 2522*f4a2713aSLionel Sambuc vec_stvrx(vui, 0, &vui); // CHECK: @llvm.ppc.altivec.lvx 2523*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2524*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2525*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2526*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2527*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2528*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2529*f4a2713aSLionel Sambuc 2530*f4a2713aSLionel Sambuc vec_stvrx(vbi, 0, &vbi); // CHECK: @llvm.ppc.altivec.lvx 2531*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2532*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2533*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2534*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2535*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2536*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2537*f4a2713aSLionel Sambuc 2538*f4a2713aSLionel Sambuc vec_stvrx(vf, 0, &vf); // CHECK: @llvm.ppc.altivec.lvx 2539*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2540*f4a2713aSLionel Sambuc // CHECK: store <4 x float> zeroinitializer 2541*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2542*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2543*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2544*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvx 2545*f4a2713aSLionel Sambuc 2546*f4a2713aSLionel Sambuc /* vec_stvrxl */ 2547*f4a2713aSLionel Sambuc vec_stvrxl(vsc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvx 2548*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2549*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2550*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2551*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2552*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2553*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2554*f4a2713aSLionel Sambuc 2555*f4a2713aSLionel Sambuc vec_stvrxl(vsc, 0, &vsc); // CHECK: @llvm.ppc.altivec.lvx 2556*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2557*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2558*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2559*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2560*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2561*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2562*f4a2713aSLionel Sambuc 2563*f4a2713aSLionel Sambuc vec_stvrxl(vuc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvx 2564*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2565*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2566*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2567*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2568*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2569*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2570*f4a2713aSLionel Sambuc 2571*f4a2713aSLionel Sambuc vec_stvrxl(vuc, 0, &vuc); // CHECK: @llvm.ppc.altivec.lvx 2572*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2573*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2574*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2575*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2576*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2577*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2578*f4a2713aSLionel Sambuc 2579*f4a2713aSLionel Sambuc vec_stvrxl(vbc, 0, &vbc); // CHECK: @llvm.ppc.altivec.lvx 2580*f4a2713aSLionel Sambuc // CHECK: store <16 x i8> zeroinitializer 2581*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2582*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2583*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2584*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2585*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2586*f4a2713aSLionel Sambuc 2587*f4a2713aSLionel Sambuc vec_stvrxl(vs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvx 2588*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2589*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2590*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2591*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2592*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2593*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2594*f4a2713aSLionel Sambuc 2595*f4a2713aSLionel Sambuc vec_stvrxl(vs, 0, &vs); // CHECK: @llvm.ppc.altivec.lvx 2596*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2597*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2598*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2599*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2600*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2601*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2602*f4a2713aSLionel Sambuc 2603*f4a2713aSLionel Sambuc vec_stvrxl(vus, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvx 2604*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2605*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2606*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2607*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2608*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2609*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2610*f4a2713aSLionel Sambuc 2611*f4a2713aSLionel Sambuc vec_stvrxl(vus, 0, &vus); // CHECK: @llvm.ppc.altivec.lvx 2612*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2613*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2614*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2615*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2616*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2617*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2618*f4a2713aSLionel Sambuc 2619*f4a2713aSLionel Sambuc vec_stvrxl(vbs, 0, &vbs); // CHECK: @llvm.ppc.altivec.lvx 2620*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2621*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2622*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2623*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2624*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2625*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2626*f4a2713aSLionel Sambuc 2627*f4a2713aSLionel Sambuc vec_stvrxl(vp, 0, &vp); // CHECK: @llvm.ppc.altivec.lvx 2628*f4a2713aSLionel Sambuc // CHECK: store <8 x i16> zeroinitializer 2629*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2630*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2631*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2632*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2633*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2634*f4a2713aSLionel Sambuc 2635*f4a2713aSLionel Sambuc vec_stvrxl(vi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvx 2636*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2637*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2638*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2639*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2640*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2641*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2642*f4a2713aSLionel Sambuc 2643*f4a2713aSLionel Sambuc vec_stvrxl(vi, 0, &vi); // CHECK: @llvm.ppc.altivec.lvx 2644*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2645*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2646*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2647*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2648*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2649*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2650*f4a2713aSLionel Sambuc 2651*f4a2713aSLionel Sambuc vec_stvrxl(vui, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvx 2652*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2653*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2654*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2655*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2656*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2657*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2658*f4a2713aSLionel Sambuc 2659*f4a2713aSLionel Sambuc vec_stvrxl(vui, 0, &vui); // CHECK: @llvm.ppc.altivec.lvx 2660*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2661*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2662*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2663*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2664*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2665*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2666*f4a2713aSLionel Sambuc 2667*f4a2713aSLionel Sambuc vec_stvrxl(vbi, 0, &vbi); // CHECK: @llvm.ppc.altivec.lvx 2668*f4a2713aSLionel Sambuc // CHECK: store <4 x i32> zeroinitializer 2669*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2670*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2671*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2672*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2673*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2674*f4a2713aSLionel Sambuc 2675*f4a2713aSLionel Sambuc vec_stvrxl(vf, 0, &vf); // CHECK: @llvm.ppc.altivec.lvx 2676*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsl 2677*f4a2713aSLionel Sambuc // CHECK: store <4 x float> zeroinitializer 2678*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2679*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.lvsr 2680*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.vperm 2681*f4a2713aSLionel Sambuc // CHECK: @llvm.ppc.altivec.stvxl 2682*f4a2713aSLionel Sambuc 2683*f4a2713aSLionel Sambuc /* vec_promote */ 2684*f4a2713aSLionel Sambuc res_vsc = vec_promote(param_sc, 0); // CHECK: store <16 x i8> zeroinitializer 2685*f4a2713aSLionel Sambuc // CHECK: insertelement <16 x i8> 2686*f4a2713aSLionel Sambuc 2687*f4a2713aSLionel Sambuc res_vuc = vec_promote(param_uc, 0); // CHECK: store <16 x i8> zeroinitializer 2688*f4a2713aSLionel Sambuc // CHECK: insertelement <16 x i8> 2689*f4a2713aSLionel Sambuc 2690*f4a2713aSLionel Sambuc res_vs = vec_promote(param_s, 0); // CHECK: store <8 x i16> zeroinitializer 2691*f4a2713aSLionel Sambuc // CHECK: insertelement <8 x i16> 2692*f4a2713aSLionel Sambuc 2693*f4a2713aSLionel Sambuc res_vus = vec_promote(param_us, 0); // CHECK: store <8 x i16> zeroinitializer 2694*f4a2713aSLionel Sambuc // CHECK: insertelement <8 x i16> 2695*f4a2713aSLionel Sambuc 2696*f4a2713aSLionel Sambuc res_vi = vec_promote(param_i, 0); // CHECK: store <4 x i32> zeroinitializer 2697*f4a2713aSLionel Sambuc // CHECK: insertelement <4 x i32> 2698*f4a2713aSLionel Sambuc 2699*f4a2713aSLionel Sambuc res_vui = vec_promote(param_ui, 0); // CHECK: store <4 x i32> zeroinitializer 2700*f4a2713aSLionel Sambuc // CHECK: insertelement <4 x i32> 2701*f4a2713aSLionel Sambuc 2702*f4a2713aSLionel Sambuc res_vf = vec_promote(param_f, 0); // CHECK: store <4 x float> zeroinitializer 2703*f4a2713aSLionel Sambuc // CHECK: insertelement <4 x float> 2704*f4a2713aSLionel Sambuc 2705*f4a2713aSLionel Sambuc /* vec_splats */ 2706*f4a2713aSLionel Sambuc res_vsc = vec_splats(param_sc); // CHECK: insertelement <16 x i8> 2707*f4a2713aSLionel Sambuc 2708*f4a2713aSLionel Sambuc res_vuc = vec_splats(param_uc); // CHECK: insertelement <16 x i8> 2709*f4a2713aSLionel Sambuc 2710*f4a2713aSLionel Sambuc res_vs = vec_splats(param_s); // CHECK: insertelement <8 x i16> 2711*f4a2713aSLionel Sambuc 2712*f4a2713aSLionel Sambuc res_vus = vec_splats(param_us); // CHECK: insertelement <8 x i16> 2713*f4a2713aSLionel Sambuc 2714*f4a2713aSLionel Sambuc res_vi = vec_splats(param_i); // CHECK: insertelement <4 x i32> 2715*f4a2713aSLionel Sambuc 2716*f4a2713aSLionel Sambuc res_vui = vec_splats(param_ui); // CHECK: insertelement <4 x i32> 2717*f4a2713aSLionel Sambuc 2718*f4a2713aSLionel Sambuc res_vf = vec_splats(param_f); // CHECK: insertelement <4 x float> 2719*f4a2713aSLionel Sambuc 2720*f4a2713aSLionel Sambuc /* ------------------------------ predicates -------------------------------------- */ 2721*f4a2713aSLionel Sambuc 2722*f4a2713aSLionel Sambuc /* vec_all_eq */ 2723*f4a2713aSLionel Sambuc res_i = vec_all_eq(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2724*f4a2713aSLionel Sambuc res_i = vec_all_eq(vsc, vbc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2725*f4a2713aSLionel Sambuc res_i = vec_all_eq(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2726*f4a2713aSLionel Sambuc res_i = vec_all_eq(vuc, vbc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2727*f4a2713aSLionel Sambuc res_i = vec_all_eq(vbc, vsc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2728*f4a2713aSLionel Sambuc res_i = vec_all_eq(vbc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2729*f4a2713aSLionel Sambuc res_i = vec_all_eq(vbc, vbc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2730*f4a2713aSLionel Sambuc res_i = vec_all_eq(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2731*f4a2713aSLionel Sambuc res_i = vec_all_eq(vs, vbs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2732*f4a2713aSLionel Sambuc res_i = vec_all_eq(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2733*f4a2713aSLionel Sambuc res_i = vec_all_eq(vus, vbs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2734*f4a2713aSLionel Sambuc res_i = vec_all_eq(vbs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2735*f4a2713aSLionel Sambuc res_i = vec_all_eq(vbs, vus); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2736*f4a2713aSLionel Sambuc res_i = vec_all_eq(vbs, vbs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2737*f4a2713aSLionel Sambuc res_i = vec_all_eq(vp, vp); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2738*f4a2713aSLionel Sambuc res_i = vec_all_eq(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2739*f4a2713aSLionel Sambuc res_i = vec_all_eq(vi, vbi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2740*f4a2713aSLionel Sambuc res_i = vec_all_eq(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2741*f4a2713aSLionel Sambuc res_i = vec_all_eq(vui, vbi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2742*f4a2713aSLionel Sambuc res_i = vec_all_eq(vbi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2743*f4a2713aSLionel Sambuc res_i = vec_all_eq(vbi, vui); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2744*f4a2713aSLionel Sambuc res_i = vec_all_eq(vbi, vbi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2745*f4a2713aSLionel Sambuc res_i = vec_all_eq(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 2746*f4a2713aSLionel Sambuc 2747*f4a2713aSLionel Sambuc /* vec_all_ge */ 2748*f4a2713aSLionel Sambuc res_i = vec_all_ge(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 2749*f4a2713aSLionel Sambuc res_i = vec_all_ge(vsc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 2750*f4a2713aSLionel Sambuc res_i = vec_all_ge(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2751*f4a2713aSLionel Sambuc res_i = vec_all_ge(vuc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2752*f4a2713aSLionel Sambuc res_i = vec_all_ge(vbc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2753*f4a2713aSLionel Sambuc res_i = vec_all_ge(vbc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2754*f4a2713aSLionel Sambuc res_i = vec_all_ge(vbc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2755*f4a2713aSLionel Sambuc res_i = vec_all_ge(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 2756*f4a2713aSLionel Sambuc res_i = vec_all_ge(vs, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 2757*f4a2713aSLionel Sambuc res_i = vec_all_ge(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2758*f4a2713aSLionel Sambuc res_i = vec_all_ge(vus, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2759*f4a2713aSLionel Sambuc res_i = vec_all_ge(vbs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2760*f4a2713aSLionel Sambuc res_i = vec_all_ge(vbs, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2761*f4a2713aSLionel Sambuc res_i = vec_all_ge(vbs, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2762*f4a2713aSLionel Sambuc res_i = vec_all_ge(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 2763*f4a2713aSLionel Sambuc res_i = vec_all_ge(vi, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 2764*f4a2713aSLionel Sambuc res_i = vec_all_ge(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2765*f4a2713aSLionel Sambuc res_i = vec_all_ge(vui, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2766*f4a2713aSLionel Sambuc res_i = vec_all_ge(vbi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2767*f4a2713aSLionel Sambuc res_i = vec_all_ge(vbi, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2768*f4a2713aSLionel Sambuc res_i = vec_all_ge(vbi, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2769*f4a2713aSLionel Sambuc res_i = vec_all_ge(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p 2770*f4a2713aSLionel Sambuc 2771*f4a2713aSLionel Sambuc /* vec_all_gt */ 2772*f4a2713aSLionel Sambuc res_i = vec_all_gt(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 2773*f4a2713aSLionel Sambuc res_i = vec_all_gt(vsc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 2774*f4a2713aSLionel Sambuc res_i = vec_all_gt(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2775*f4a2713aSLionel Sambuc res_i = vec_all_gt(vuc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2776*f4a2713aSLionel Sambuc res_i = vec_all_gt(vbc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2777*f4a2713aSLionel Sambuc res_i = vec_all_gt(vbc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2778*f4a2713aSLionel Sambuc res_i = vec_all_gt(vbc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2779*f4a2713aSLionel Sambuc res_i = vec_all_gt(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 2780*f4a2713aSLionel Sambuc res_i = vec_all_gt(vs, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 2781*f4a2713aSLionel Sambuc res_i = vec_all_gt(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2782*f4a2713aSLionel Sambuc res_i = vec_all_gt(vus, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2783*f4a2713aSLionel Sambuc res_i = vec_all_gt(vbs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2784*f4a2713aSLionel Sambuc res_i = vec_all_gt(vbs, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2785*f4a2713aSLionel Sambuc res_i = vec_all_gt(vbs, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2786*f4a2713aSLionel Sambuc res_i = vec_all_gt(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 2787*f4a2713aSLionel Sambuc res_i = vec_all_gt(vi, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 2788*f4a2713aSLionel Sambuc res_i = vec_all_gt(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2789*f4a2713aSLionel Sambuc res_i = vec_all_gt(vui, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2790*f4a2713aSLionel Sambuc res_i = vec_all_gt(vbi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2791*f4a2713aSLionel Sambuc res_i = vec_all_gt(vbi, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2792*f4a2713aSLionel Sambuc res_i = vec_all_gt(vbi, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2793*f4a2713aSLionel Sambuc res_i = vec_all_gt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 2794*f4a2713aSLionel Sambuc 2795*f4a2713aSLionel Sambuc /* vec_all_in */ 2796*f4a2713aSLionel Sambuc res_i = vec_all_in(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpbfp.p 2797*f4a2713aSLionel Sambuc 2798*f4a2713aSLionel Sambuc /* vec_all_le */ 2799*f4a2713aSLionel Sambuc res_i = vec_all_le(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 2800*f4a2713aSLionel Sambuc res_i = vec_all_le(vsc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 2801*f4a2713aSLionel Sambuc res_i = vec_all_le(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2802*f4a2713aSLionel Sambuc res_i = vec_all_le(vuc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2803*f4a2713aSLionel Sambuc res_i = vec_all_le(vbc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2804*f4a2713aSLionel Sambuc res_i = vec_all_le(vbc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2805*f4a2713aSLionel Sambuc res_i = vec_all_le(vbc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2806*f4a2713aSLionel Sambuc res_i = vec_all_le(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 2807*f4a2713aSLionel Sambuc res_i = vec_all_le(vs, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 2808*f4a2713aSLionel Sambuc res_i = vec_all_le(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2809*f4a2713aSLionel Sambuc res_i = vec_all_le(vus, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2810*f4a2713aSLionel Sambuc res_i = vec_all_le(vbs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2811*f4a2713aSLionel Sambuc res_i = vec_all_le(vbs, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2812*f4a2713aSLionel Sambuc res_i = vec_all_le(vbs, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2813*f4a2713aSLionel Sambuc res_i = vec_all_le(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 2814*f4a2713aSLionel Sambuc res_i = vec_all_le(vi, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 2815*f4a2713aSLionel Sambuc res_i = vec_all_le(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2816*f4a2713aSLionel Sambuc res_i = vec_all_le(vui, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2817*f4a2713aSLionel Sambuc res_i = vec_all_le(vbi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2818*f4a2713aSLionel Sambuc res_i = vec_all_le(vbi, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2819*f4a2713aSLionel Sambuc res_i = vec_all_le(vbi, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2820*f4a2713aSLionel Sambuc res_i = vec_all_le(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p 2821*f4a2713aSLionel Sambuc 2822*f4a2713aSLionel Sambuc /* vec_all_lt */ 2823*f4a2713aSLionel Sambuc res_i = vec_all_lt(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 2824*f4a2713aSLionel Sambuc res_i = vec_all_lt(vsc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 2825*f4a2713aSLionel Sambuc res_i = vec_all_lt(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2826*f4a2713aSLionel Sambuc res_i = vec_all_lt(vuc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2827*f4a2713aSLionel Sambuc res_i = vec_all_lt(vbc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2828*f4a2713aSLionel Sambuc res_i = vec_all_lt(vbc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2829*f4a2713aSLionel Sambuc res_i = vec_all_lt(vbc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2830*f4a2713aSLionel Sambuc res_i = vec_all_lt(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 2831*f4a2713aSLionel Sambuc res_i = vec_all_lt(vs, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 2832*f4a2713aSLionel Sambuc res_i = vec_all_lt(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2833*f4a2713aSLionel Sambuc res_i = vec_all_lt(vus, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2834*f4a2713aSLionel Sambuc res_i = vec_all_lt(vbs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2835*f4a2713aSLionel Sambuc res_i = vec_all_lt(vbs, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2836*f4a2713aSLionel Sambuc res_i = vec_all_lt(vbs, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2837*f4a2713aSLionel Sambuc res_i = vec_all_lt(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 2838*f4a2713aSLionel Sambuc res_i = vec_all_lt(vi, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 2839*f4a2713aSLionel Sambuc res_i = vec_all_lt(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2840*f4a2713aSLionel Sambuc res_i = vec_all_lt(vui, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2841*f4a2713aSLionel Sambuc res_i = vec_all_lt(vbi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2842*f4a2713aSLionel Sambuc res_i = vec_all_lt(vbi, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2843*f4a2713aSLionel Sambuc res_i = vec_all_lt(vbi, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2844*f4a2713aSLionel Sambuc res_i = vec_all_lt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 2845*f4a2713aSLionel Sambuc 2846*f4a2713aSLionel Sambuc /* vec_all_nan */ 2847*f4a2713aSLionel Sambuc res_i = vec_all_nan(vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 2848*f4a2713aSLionel Sambuc 2849*f4a2713aSLionel Sambuc /* vec_all_ne */ 2850*f4a2713aSLionel Sambuc res_i = vec_all_ne(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2851*f4a2713aSLionel Sambuc res_i = vec_all_ne(vsc, vbc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2852*f4a2713aSLionel Sambuc res_i = vec_all_ne(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2853*f4a2713aSLionel Sambuc res_i = vec_all_ne(vuc, vbc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2854*f4a2713aSLionel Sambuc res_i = vec_all_ne(vbc, vsc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2855*f4a2713aSLionel Sambuc res_i = vec_all_ne(vbc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2856*f4a2713aSLionel Sambuc res_i = vec_all_ne(vbc, vbc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2857*f4a2713aSLionel Sambuc res_i = vec_all_ne(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2858*f4a2713aSLionel Sambuc res_i = vec_all_ne(vs, vbs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2859*f4a2713aSLionel Sambuc res_i = vec_all_ne(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2860*f4a2713aSLionel Sambuc res_i = vec_all_ne(vus, vbs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2861*f4a2713aSLionel Sambuc res_i = vec_all_ne(vbs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2862*f4a2713aSLionel Sambuc res_i = vec_all_ne(vbs, vus); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2863*f4a2713aSLionel Sambuc res_i = vec_all_ne(vbs, vbs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2864*f4a2713aSLionel Sambuc res_i = vec_all_ne(vp, vp); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2865*f4a2713aSLionel Sambuc res_i = vec_all_ne(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2866*f4a2713aSLionel Sambuc res_i = vec_all_ne(vi, vbi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2867*f4a2713aSLionel Sambuc res_i = vec_all_ne(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2868*f4a2713aSLionel Sambuc res_i = vec_all_ne(vui, vbi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2869*f4a2713aSLionel Sambuc res_i = vec_all_ne(vbi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2870*f4a2713aSLionel Sambuc res_i = vec_all_ne(vbi, vui); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2871*f4a2713aSLionel Sambuc res_i = vec_all_ne(vbi, vbi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2872*f4a2713aSLionel Sambuc res_i = vec_all_ne(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 2873*f4a2713aSLionel Sambuc 2874*f4a2713aSLionel Sambuc /* vec_all_nge */ 2875*f4a2713aSLionel Sambuc res_i = vec_all_nge(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p 2876*f4a2713aSLionel Sambuc 2877*f4a2713aSLionel Sambuc /* vec_all_ngt */ 2878*f4a2713aSLionel Sambuc res_i = vec_all_ngt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 2879*f4a2713aSLionel Sambuc 2880*f4a2713aSLionel Sambuc /* vec_all_nle */ 2881*f4a2713aSLionel Sambuc res_i = vec_all_nle(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p 2882*f4a2713aSLionel Sambuc 2883*f4a2713aSLionel Sambuc /* vec_all_nlt */ 2884*f4a2713aSLionel Sambuc res_i = vec_all_nlt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 2885*f4a2713aSLionel Sambuc 2886*f4a2713aSLionel Sambuc /* vec_all_numeric */ 2887*f4a2713aSLionel Sambuc res_i = vec_all_numeric(vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 2888*f4a2713aSLionel Sambuc 2889*f4a2713aSLionel Sambuc /* vec_any_eq */ 2890*f4a2713aSLionel Sambuc res_i = vec_any_eq(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2891*f4a2713aSLionel Sambuc res_i = vec_any_eq(vsc, vbc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2892*f4a2713aSLionel Sambuc res_i = vec_any_eq(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2893*f4a2713aSLionel Sambuc res_i = vec_any_eq(vuc, vbc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2894*f4a2713aSLionel Sambuc res_i = vec_any_eq(vbc, vsc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2895*f4a2713aSLionel Sambuc res_i = vec_any_eq(vbc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2896*f4a2713aSLionel Sambuc res_i = vec_any_eq(vbc, vbc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 2897*f4a2713aSLionel Sambuc res_i = vec_any_eq(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2898*f4a2713aSLionel Sambuc res_i = vec_any_eq(vs, vbs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2899*f4a2713aSLionel Sambuc res_i = vec_any_eq(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2900*f4a2713aSLionel Sambuc res_i = vec_any_eq(vus, vbs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2901*f4a2713aSLionel Sambuc res_i = vec_any_eq(vbs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2902*f4a2713aSLionel Sambuc res_i = vec_any_eq(vbs, vus); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2903*f4a2713aSLionel Sambuc res_i = vec_any_eq(vbs, vbs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2904*f4a2713aSLionel Sambuc res_i = vec_any_eq(vp, vp); // CHECK: @llvm.ppc.altivec.vcmpequh.p 2905*f4a2713aSLionel Sambuc res_i = vec_any_eq(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2906*f4a2713aSLionel Sambuc res_i = vec_any_eq(vi, vbi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2907*f4a2713aSLionel Sambuc res_i = vec_any_eq(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2908*f4a2713aSLionel Sambuc res_i = vec_any_eq(vui, vbi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2909*f4a2713aSLionel Sambuc res_i = vec_any_eq(vbi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2910*f4a2713aSLionel Sambuc res_i = vec_any_eq(vbi, vui); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2911*f4a2713aSLionel Sambuc res_i = vec_any_eq(vbi, vbi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 2912*f4a2713aSLionel Sambuc res_i = vec_any_eq(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 2913*f4a2713aSLionel Sambuc 2914*f4a2713aSLionel Sambuc /* vec_any_ge */ 2915*f4a2713aSLionel Sambuc res_i = vec_any_ge(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 2916*f4a2713aSLionel Sambuc res_i = vec_any_ge(vsc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 2917*f4a2713aSLionel Sambuc res_i = vec_any_ge(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2918*f4a2713aSLionel Sambuc res_i = vec_any_ge(vuc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2919*f4a2713aSLionel Sambuc res_i = vec_any_ge(vbc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2920*f4a2713aSLionel Sambuc res_i = vec_any_ge(vbc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2921*f4a2713aSLionel Sambuc res_i = vec_any_ge(vbc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2922*f4a2713aSLionel Sambuc res_i = vec_any_ge(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 2923*f4a2713aSLionel Sambuc res_i = vec_any_ge(vs, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 2924*f4a2713aSLionel Sambuc res_i = vec_any_ge(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2925*f4a2713aSLionel Sambuc res_i = vec_any_ge(vus, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2926*f4a2713aSLionel Sambuc res_i = vec_any_ge(vbs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2927*f4a2713aSLionel Sambuc res_i = vec_any_ge(vbs, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2928*f4a2713aSLionel Sambuc res_i = vec_any_ge(vbs, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2929*f4a2713aSLionel Sambuc res_i = vec_any_ge(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 2930*f4a2713aSLionel Sambuc res_i = vec_any_ge(vi, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 2931*f4a2713aSLionel Sambuc res_i = vec_any_ge(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2932*f4a2713aSLionel Sambuc res_i = vec_any_ge(vui, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2933*f4a2713aSLionel Sambuc res_i = vec_any_ge(vbi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2934*f4a2713aSLionel Sambuc res_i = vec_any_ge(vbi, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2935*f4a2713aSLionel Sambuc res_i = vec_any_ge(vbi, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2936*f4a2713aSLionel Sambuc res_i = vec_any_ge(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p 2937*f4a2713aSLionel Sambuc 2938*f4a2713aSLionel Sambuc /* vec_any_gt */ 2939*f4a2713aSLionel Sambuc res_i = vec_any_gt(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 2940*f4a2713aSLionel Sambuc res_i = vec_any_gt(vsc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 2941*f4a2713aSLionel Sambuc res_i = vec_any_gt(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2942*f4a2713aSLionel Sambuc res_i = vec_any_gt(vuc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2943*f4a2713aSLionel Sambuc res_i = vec_any_gt(vbc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2944*f4a2713aSLionel Sambuc res_i = vec_any_gt(vbc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2945*f4a2713aSLionel Sambuc res_i = vec_any_gt(vbc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2946*f4a2713aSLionel Sambuc res_i = vec_any_gt(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 2947*f4a2713aSLionel Sambuc res_i = vec_any_gt(vs, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 2948*f4a2713aSLionel Sambuc res_i = vec_any_gt(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2949*f4a2713aSLionel Sambuc res_i = vec_any_gt(vus, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2950*f4a2713aSLionel Sambuc res_i = vec_any_gt(vbs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2951*f4a2713aSLionel Sambuc res_i = vec_any_gt(vbs, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2952*f4a2713aSLionel Sambuc res_i = vec_any_gt(vbs, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2953*f4a2713aSLionel Sambuc res_i = vec_any_gt(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 2954*f4a2713aSLionel Sambuc res_i = vec_any_gt(vi, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 2955*f4a2713aSLionel Sambuc res_i = vec_any_gt(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2956*f4a2713aSLionel Sambuc res_i = vec_any_gt(vui, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2957*f4a2713aSLionel Sambuc res_i = vec_any_gt(vbi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2958*f4a2713aSLionel Sambuc res_i = vec_any_gt(vbi, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2959*f4a2713aSLionel Sambuc res_i = vec_any_gt(vbi, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2960*f4a2713aSLionel Sambuc res_i = vec_any_gt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 2961*f4a2713aSLionel Sambuc 2962*f4a2713aSLionel Sambuc /* vec_any_le */ 2963*f4a2713aSLionel Sambuc res_i = vec_any_le(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 2964*f4a2713aSLionel Sambuc res_i = vec_any_le(vsc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 2965*f4a2713aSLionel Sambuc res_i = vec_any_le(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2966*f4a2713aSLionel Sambuc res_i = vec_any_le(vuc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2967*f4a2713aSLionel Sambuc res_i = vec_any_le(vbc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2968*f4a2713aSLionel Sambuc res_i = vec_any_le(vbc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2969*f4a2713aSLionel Sambuc res_i = vec_any_le(vbc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2970*f4a2713aSLionel Sambuc res_i = vec_any_le(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 2971*f4a2713aSLionel Sambuc res_i = vec_any_le(vs, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 2972*f4a2713aSLionel Sambuc res_i = vec_any_le(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2973*f4a2713aSLionel Sambuc res_i = vec_any_le(vus, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2974*f4a2713aSLionel Sambuc res_i = vec_any_le(vbs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2975*f4a2713aSLionel Sambuc res_i = vec_any_le(vbs, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2976*f4a2713aSLionel Sambuc res_i = vec_any_le(vbs, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2977*f4a2713aSLionel Sambuc res_i = vec_any_le(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 2978*f4a2713aSLionel Sambuc res_i = vec_any_le(vi, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 2979*f4a2713aSLionel Sambuc res_i = vec_any_le(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2980*f4a2713aSLionel Sambuc res_i = vec_any_le(vui, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2981*f4a2713aSLionel Sambuc res_i = vec_any_le(vbi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2982*f4a2713aSLionel Sambuc res_i = vec_any_le(vbi, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2983*f4a2713aSLionel Sambuc res_i = vec_any_le(vbi, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 2984*f4a2713aSLionel Sambuc res_i = vec_any_le(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p 2985*f4a2713aSLionel Sambuc 2986*f4a2713aSLionel Sambuc /* vec_any_lt */ 2987*f4a2713aSLionel Sambuc res_i = vec_any_lt(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 2988*f4a2713aSLionel Sambuc res_i = vec_any_lt(vsc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 2989*f4a2713aSLionel Sambuc res_i = vec_any_lt(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2990*f4a2713aSLionel Sambuc res_i = vec_any_lt(vuc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2991*f4a2713aSLionel Sambuc res_i = vec_any_lt(vbc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2992*f4a2713aSLionel Sambuc res_i = vec_any_lt(vbc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2993*f4a2713aSLionel Sambuc res_i = vec_any_lt(vbc, vbc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 2994*f4a2713aSLionel Sambuc res_i = vec_any_lt(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 2995*f4a2713aSLionel Sambuc res_i = vec_any_lt(vs, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 2996*f4a2713aSLionel Sambuc res_i = vec_any_lt(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2997*f4a2713aSLionel Sambuc res_i = vec_any_lt(vus, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2998*f4a2713aSLionel Sambuc res_i = vec_any_lt(vbs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 2999*f4a2713aSLionel Sambuc res_i = vec_any_lt(vbs, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 3000*f4a2713aSLionel Sambuc res_i = vec_any_lt(vbs, vbs); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 3001*f4a2713aSLionel Sambuc res_i = vec_any_lt(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 3002*f4a2713aSLionel Sambuc res_i = vec_any_lt(vi, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 3003*f4a2713aSLionel Sambuc res_i = vec_any_lt(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 3004*f4a2713aSLionel Sambuc res_i = vec_any_lt(vui, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 3005*f4a2713aSLionel Sambuc res_i = vec_any_lt(vbi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 3006*f4a2713aSLionel Sambuc res_i = vec_any_lt(vbi, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 3007*f4a2713aSLionel Sambuc res_i = vec_any_lt(vbi, vbi); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 3008*f4a2713aSLionel Sambuc res_i = vec_any_lt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 3009*f4a2713aSLionel Sambuc 3010*f4a2713aSLionel Sambuc /* vec_any_nan */ 3011*f4a2713aSLionel Sambuc res_i = vec_any_nan(vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 3012*f4a2713aSLionel Sambuc 3013*f4a2713aSLionel Sambuc /* vec_any_ne */ 3014*f4a2713aSLionel Sambuc res_i = vec_any_ne(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 3015*f4a2713aSLionel Sambuc res_i = vec_any_ne(vsc, vbc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 3016*f4a2713aSLionel Sambuc res_i = vec_any_ne(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 3017*f4a2713aSLionel Sambuc res_i = vec_any_ne(vuc, vbc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 3018*f4a2713aSLionel Sambuc res_i = vec_any_ne(vbc, vsc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 3019*f4a2713aSLionel Sambuc res_i = vec_any_ne(vbc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 3020*f4a2713aSLionel Sambuc res_i = vec_any_ne(vbc, vbc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 3021*f4a2713aSLionel Sambuc res_i = vec_any_ne(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 3022*f4a2713aSLionel Sambuc res_i = vec_any_ne(vs, vbs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 3023*f4a2713aSLionel Sambuc res_i = vec_any_ne(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpequh.p 3024*f4a2713aSLionel Sambuc res_i = vec_any_ne(vus, vbs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 3025*f4a2713aSLionel Sambuc res_i = vec_any_ne(vbs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 3026*f4a2713aSLionel Sambuc res_i = vec_any_ne(vbs, vus); // CHECK: @llvm.ppc.altivec.vcmpequh.p 3027*f4a2713aSLionel Sambuc res_i = vec_any_ne(vbs, vbs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 3028*f4a2713aSLionel Sambuc res_i = vec_any_ne(vp, vp); // CHECK: @llvm.ppc.altivec.vcmpequh.p 3029*f4a2713aSLionel Sambuc res_i = vec_any_ne(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 3030*f4a2713aSLionel Sambuc res_i = vec_any_ne(vi, vbi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 3031*f4a2713aSLionel Sambuc res_i = vec_any_ne(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpequw.p 3032*f4a2713aSLionel Sambuc res_i = vec_any_ne(vui, vbi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 3033*f4a2713aSLionel Sambuc res_i = vec_any_ne(vbi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 3034*f4a2713aSLionel Sambuc res_i = vec_any_ne(vbi, vui); // CHECK: @llvm.ppc.altivec.vcmpequw.p 3035*f4a2713aSLionel Sambuc res_i = vec_any_ne(vbi, vbi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 3036*f4a2713aSLionel Sambuc res_i = vec_any_ne(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 3037*f4a2713aSLionel Sambuc 3038*f4a2713aSLionel Sambuc /* vec_any_nge */ 3039*f4a2713aSLionel Sambuc res_i = vec_any_nge(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p 3040*f4a2713aSLionel Sambuc 3041*f4a2713aSLionel Sambuc /* vec_any_ngt */ 3042*f4a2713aSLionel Sambuc res_i = vec_any_ngt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 3043*f4a2713aSLionel Sambuc 3044*f4a2713aSLionel Sambuc /* vec_any_nle */ 3045*f4a2713aSLionel Sambuc res_i = vec_any_nle(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p 3046*f4a2713aSLionel Sambuc 3047*f4a2713aSLionel Sambuc /* vec_any_nlt */ 3048*f4a2713aSLionel Sambuc res_i = vec_any_nlt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 3049*f4a2713aSLionel Sambuc 3050*f4a2713aSLionel Sambuc /* vec_any_numeric */ 3051*f4a2713aSLionel Sambuc res_i = vec_any_numeric(vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 3052*f4a2713aSLionel Sambuc 3053*f4a2713aSLionel Sambuc /* vec_any_out */ 3054*f4a2713aSLionel Sambuc res_i = vec_any_out(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpbfp.p 3055*f4a2713aSLionel Sambuc } 3056*f4a2713aSLionel Sambuc 3057*f4a2713aSLionel Sambuc /* ------------------------------ Relational Operators ------------------------------ */ 3058*f4a2713aSLionel Sambuc // CHECK-LABEL: define void @test7 3059*f4a2713aSLionel Sambuc void test7() { 3060*f4a2713aSLionel Sambuc vector signed char vsc1 = (vector signed char)(-1); 3061*f4a2713aSLionel Sambuc vector signed char vsc2 = (vector signed char)(-2); 3062*f4a2713aSLionel Sambuc res_i = (vsc1 == vsc2); // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 2 3063*f4a2713aSLionel Sambuc res_i = (vsc1 != vsc2); // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 0 3064*f4a2713aSLionel Sambuc res_i = (vsc1 < vsc2); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 2 3065*f4a2713aSLionel Sambuc res_i = (vsc1 > vsc2); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 2 3066*f4a2713aSLionel Sambuc res_i = (vsc1 <= vsc2); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 0 3067*f4a2713aSLionel Sambuc res_i = (vsc1 >= vsc2); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p(i32 0 3068*f4a2713aSLionel Sambuc vector unsigned char vuc1 = (vector unsigned char)(1); 3069*f4a2713aSLionel Sambuc vector unsigned char vuc2 = (vector unsigned char)(2); 3070*f4a2713aSLionel Sambuc res_i = (vuc1 == vuc2); // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 2 3071*f4a2713aSLionel Sambuc res_i = (vuc1 != vuc2); // CHECK: @llvm.ppc.altivec.vcmpequb.p(i32 0 3072*f4a2713aSLionel Sambuc res_i = (vuc1 < vuc2); // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 2 3073*f4a2713aSLionel Sambuc res_i = (vuc1 > vuc2); // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 2 3074*f4a2713aSLionel Sambuc res_i = (vuc1 <= vuc2); // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 0 3075*f4a2713aSLionel Sambuc res_i = (vuc1 >= vuc2); // CHECK: @llvm.ppc.altivec.vcmpgtub.p(i32 0 3076*f4a2713aSLionel Sambuc vector short vs1 = (vector short)(-1); 3077*f4a2713aSLionel Sambuc vector short vs2 = (vector short)(-2); 3078*f4a2713aSLionel Sambuc res_i = (vs1 == vs2); // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 2 3079*f4a2713aSLionel Sambuc res_i = (vs1 != vs2); // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 0 3080*f4a2713aSLionel Sambuc res_i = (vs1 < vs2); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 2 3081*f4a2713aSLionel Sambuc res_i = (vs1 > vs2); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 2 3082*f4a2713aSLionel Sambuc res_i = (vs1 <= vs2); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 0 3083*f4a2713aSLionel Sambuc res_i = (vs1 >= vs2); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p(i32 0 3084*f4a2713aSLionel Sambuc vector unsigned short vus1 = (vector unsigned short)(1); 3085*f4a2713aSLionel Sambuc vector unsigned short vus2 = (vector unsigned short)(2); 3086*f4a2713aSLionel Sambuc res_i = (vus1 == vus2); // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 2 3087*f4a2713aSLionel Sambuc res_i = (vus1 != vus2); // CHECK: @llvm.ppc.altivec.vcmpequh.p(i32 0 3088*f4a2713aSLionel Sambuc res_i = (vus1 < vus2); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 2 3089*f4a2713aSLionel Sambuc res_i = (vus1 > vus2); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 2 3090*f4a2713aSLionel Sambuc res_i = (vus1 <= vus2); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 0 3091*f4a2713aSLionel Sambuc res_i = (vus1 >= vus2); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p(i32 0 3092*f4a2713aSLionel Sambuc vector int vi1 = (vector int)(-1); 3093*f4a2713aSLionel Sambuc vector int vi2 = (vector int)(-2); 3094*f4a2713aSLionel Sambuc res_i = (vi1 == vi2); // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 2 3095*f4a2713aSLionel Sambuc res_i = (vi1 != vi2); // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 0 3096*f4a2713aSLionel Sambuc res_i = (vi1 < vi2); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 2 3097*f4a2713aSLionel Sambuc res_i = (vi1 > vi2); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 2 3098*f4a2713aSLionel Sambuc res_i = (vi1 <= vi2); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 0 3099*f4a2713aSLionel Sambuc res_i = (vi1 >= vi2); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p(i32 0 3100*f4a2713aSLionel Sambuc vector unsigned int vui1 = (vector unsigned int)(1); 3101*f4a2713aSLionel Sambuc vector unsigned int vui2 = (vector unsigned int)(2); 3102*f4a2713aSLionel Sambuc res_i = (vui1 == vui2); // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 2 3103*f4a2713aSLionel Sambuc res_i = (vui1 != vui2); // CHECK: @llvm.ppc.altivec.vcmpequw.p(i32 0 3104*f4a2713aSLionel Sambuc res_i = (vui1 < vui2); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 2 3105*f4a2713aSLionel Sambuc res_i = (vui1 > vui2); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 2 3106*f4a2713aSLionel Sambuc res_i = (vui1 <= vui2); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 0 3107*f4a2713aSLionel Sambuc res_i = (vui1 >= vui2); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p(i32 0 3108*f4a2713aSLionel Sambuc vector float vf1 = (vector float)(1.0); 3109*f4a2713aSLionel Sambuc vector float vf2 = (vector float)(2.0); 3110*f4a2713aSLionel Sambuc res_i = (vf1 == vf2); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p(i32 2 3111*f4a2713aSLionel Sambuc res_i = (vf1 != vf2); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p(i32 0 3112*f4a2713aSLionel Sambuc res_i = (vf1 < vf2); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p(i32 2 3113*f4a2713aSLionel Sambuc res_i = (vf1 > vf2); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p(i32 2 3114*f4a2713aSLionel Sambuc res_i = (vf1 <= vf2); // CHECK: @llvm.ppc.altivec.vcmpgefp.p(i32 2 3115*f4a2713aSLionel Sambuc res_i = (vf1 >= vf2); // CHECK: @llvm.ppc.altivec.vcmpgefp.p(i32 2 3116*f4a2713aSLionel Sambuc } 3117