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