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