builtins-ppc-altivec.c revision a2fc0f54d69461795433d42c46de337850be15cd
1// RUN: %clang_cc1 -faltivec -triple powerpc-unknown-unknown -emit-llvm %s -o - | FileCheck %s 2 3vector bool char vbc = { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0 }; 4vector signed char vsc = { 1, -2, 3, -4, 5, -6, 7, -8, 9, -10, 11, -12, 13, -14, 15, -16 }; 5vector unsigned char vuc = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 }; 6vector bool short vbs = { 1, 0, 1, 0, 1, 0, 1, 0 }; 7vector short vs = { -1, 2, -3, 4, -5, 6, -7, 8 }; 8vector unsigned short vus = { 1, 2, 3, 4, 5, 6, 7, 8 }; 9vector pixel vp = { 1, 2, 3, 4, 5, 6, 7, 8 }; 10vector bool int vbi = { 1, 0, 1, 0 }; 11vector int vi = { -1, 2, -3, 4 }; 12vector unsigned int vui = { 1, 2, 3, 4 }; 13vector float vf = { -1.5, 2.5, -3.5, 4.5 }; 14 15vector bool char res_vbc; 16vector signed char res_vsc; 17vector unsigned char res_vuc; 18vector bool short res_vbs; 19vector short res_vs; 20vector unsigned short res_vus; 21vector pixel res_vp; 22vector bool int res_vbi; 23vector int res_vi; 24vector unsigned int res_vui; 25vector float res_vf; 26 27signed char param_sc; 28unsigned char param_uc; 29short param_s; 30unsigned short param_us; 31int param_i; 32unsigned int param_ui; 33float param_f; 34 35int res_i; 36 37// CHECK: define void @test1 38void test1() { 39 40 /* vec_abs */ 41 vsc = vec_abs(vsc); // CHECK: sub nsw <16 x i8> zeroinitializer 42 // CHECK: @llvm.ppc.altivec.vmaxsb 43 44 vs = vec_abs(vs); // CHECK: sub nsw <8 x i16> zeroinitializer 45 // CHECK: @llvm.ppc.altivec.vmaxsh 46 47 vi = vec_abs(vi); // CHECK: sub nsw <4 x i32> zeroinitializer 48 // CHECK: @llvm.ppc.altivec.vmaxsw 49 50 vf = vec_abs(vf); // CHECK: and <4 x i32> 51 52 /* vec_abs */ 53 vsc = vec_abss(vsc); // CHECK: @llvm.ppc.altivec.vsubsbs 54 // CHECK: @llvm.ppc.altivec.vmaxsb 55 56 vs = vec_abss(vs); // CHECK: @llvm.ppc.altivec.vsubshs 57 // CHECK: @llvm.ppc.altivec.vmaxsh 58 59 vi = vec_abss(vi); // CHECK: @llvm.ppc.altivec.vsubsws 60 // CHECK: @llvm.ppc.altivec.vmaxsw 61 62 /* vec_add */ 63 res_vsc = vec_add(vsc, vsc); // CHECK: add nsw <16 x i8> 64 res_vsc = vec_add(vbc, vsc); // CHECK: add nsw <16 x i8> 65 res_vsc = vec_add(vsc, vbc); // CHECK: add nsw <16 x i8> 66 res_vuc = vec_add(vuc, vuc); // CHECK: add <16 x i8> 67 res_vuc = vec_add(vbc, vuc); // CHECK: add <16 x i8> 68 res_vuc = vec_add(vuc, vbc); // CHECK: add <16 x i8> 69 res_vs = vec_add(vs, vs); // CHECK: add nsw <8 x i16> 70 res_vs = vec_add(vbs, vs); // CHECK: add nsw <8 x i16> 71 res_vs = vec_add(vs, vbs); // CHECK: add nsw <8 x i16> 72 res_vus = vec_add(vus, vus); // CHECK: add <8 x i16> 73 res_vus = vec_add(vbs, vus); // CHECK: add <8 x i16> 74 res_vus = vec_add(vus, vbs); // CHECK: add <8 x i16> 75 res_vi = vec_add(vi, vi); // CHECK: add nsw <4 x i32> 76 res_vi = vec_add(vbi, vi); // CHECK: add nsw <4 x i32> 77 res_vi = vec_add(vi, vbi); // CHECK: add nsw <4 x i32> 78 res_vui = vec_add(vui, vui); // CHECK: add <4 x i32> 79 res_vui = vec_add(vbi, vui); // CHECK: add <4 x i32> 80 res_vui = vec_add(vui, vbi); // CHECK: add <4 x i32> 81 res_vf = vec_add(vf, vf); // CHECK: fadd <4 x float> 82 res_vsc = vec_vaddubm(vsc, vsc); // CHECK: add nsw <16 x i8> 83 res_vsc = vec_vaddubm(vbc, vsc); // CHECK: add nsw <16 x i8> 84 res_vsc = vec_vaddubm(vsc, vbc); // CHECK: add nsw <16 x i8> 85 res_vuc = vec_vaddubm(vuc, vuc); // CHECK: add <16 x i8> 86 res_vuc = vec_vaddubm(vbc, vuc); // CHECK: add <16 x i8> 87 res_vuc = vec_vaddubm(vuc, vbc); // CHECK: add <16 x i8> 88 res_vs = vec_vadduhm(vs, vs); // CHECK: add nsw <8 x i16> 89 res_vs = vec_vadduhm(vbs, vs); // CHECK: add nsw <8 x i16> 90 res_vs = vec_vadduhm(vs, vbs); // CHECK: add nsw <8 x i16> 91 res_vus = vec_vadduhm(vus, vus); // CHECK: add <8 x i16> 92 res_vus = vec_vadduhm(vbs, vus); // CHECK: add <8 x i16> 93 res_vus = vec_vadduhm(vus, vbs); // CHECK: add <8 x i16> 94 res_vi = vec_vadduwm(vi, vi); // CHECK: add nsw <4 x i32> 95 res_vi = vec_vadduwm(vbi, vi); // CHECK: add nsw <4 x i32> 96 res_vi = vec_vadduwm(vi, vbi); // CHECK: add nsw <4 x i32> 97 res_vui = vec_vadduwm(vui, vui); // CHECK: add <4 x i32> 98 res_vui = vec_vadduwm(vbi, vui); // CHECK: add <4 x i32> 99 res_vui = vec_vadduwm(vui, vbi); // CHECK: add <4 x i32> 100 res_vf = vec_vaddfp(vf, vf); // CHECK: fadd <4 x float> 101 102 /* vec_addc */ 103 res_vui = vec_addc(vui, vui); // HECK: @llvm.ppc.altivec.vaddcuw 104 res_vui = vec_vaddcuw(vui, vui); // HECK: @llvm.ppc.altivec.vaddcuw 105 106 /* vec_adds */ 107 res_vsc = vec_adds(vsc, vsc); // CHECK: @llvm.ppc.altivec.vaddsbs 108 res_vsc = vec_adds(vbc, vsc); // CHECK: @llvm.ppc.altivec.vaddsbs 109 res_vsc = vec_adds(vsc, vbc); // CHECK: @llvm.ppc.altivec.vaddsbs 110 res_vuc = vec_adds(vuc, vuc); // CHECK: @llvm.ppc.altivec.vaddubs 111 res_vuc = vec_adds(vbc, vuc); // CHECK: @llvm.ppc.altivec.vaddubs 112 res_vuc = vec_adds(vuc, vbc); // CHECK: @llvm.ppc.altivec.vaddubs 113 res_vs = vec_adds(vs, vs); // CHECK: @llvm.ppc.altivec.vaddshs 114 res_vs = vec_adds(vbs, vs); // CHECK: @llvm.ppc.altivec.vaddshs 115 res_vs = vec_adds(vs, vbs); // CHECK: @llvm.ppc.altivec.vaddshs 116 res_vus = vec_adds(vus, vus); // CHECK: @llvm.ppc.altivec.vadduhs 117 res_vus = vec_adds(vbs, vus); // CHECK: @llvm.ppc.altivec.vadduhs 118 res_vus = vec_adds(vus, vbs); // CHECK: @llvm.ppc.altivec.vadduhs 119 res_vi = vec_adds(vi, vi); // CHECK: @llvm.ppc.altivec.vaddsws 120 res_vi = vec_adds(vbi, vi); // CHECK: @llvm.ppc.altivec.vaddsws 121 res_vi = vec_adds(vi, vbi); // CHECK: @llvm.ppc.altivec.vaddsws 122 res_vui = vec_adds(vui, vui); // CHECK: @llvm.ppc.altivec.vadduws 123 res_vui = vec_adds(vbi, vui); // CHECK: @llvm.ppc.altivec.vadduws 124 res_vui = vec_adds(vui, vbi); // CHECK: @llvm.ppc.altivec.vadduws 125 res_vsc = vec_vaddsbs(vsc, vsc); // CHECK: @llvm.ppc.altivec.vaddsbs 126 res_vsc = vec_vaddsbs(vbc, vsc); // CHECK: @llvm.ppc.altivec.vaddsbs 127 res_vsc = vec_vaddsbs(vsc, vbc); // CHECK: @llvm.ppc.altivec.vaddsbs 128 res_vuc = vec_vaddubs(vuc, vuc); // CHECK: @llvm.ppc.altivec.vaddubs 129 res_vuc = vec_vaddubs(vbc, vuc); // CHECK: @llvm.ppc.altivec.vaddubs 130 res_vuc = vec_vaddubs(vuc, vbc); // CHECK: @llvm.ppc.altivec.vaddubs 131 res_vs = vec_vaddshs(vs, vs); // CHECK: @llvm.ppc.altivec.vaddshs 132 res_vs = vec_vaddshs(vbs, vs); // CHECK: @llvm.ppc.altivec.vaddshs 133 res_vs = vec_vaddshs(vs, vbs); // CHECK: @llvm.ppc.altivec.vaddshs 134 res_vus = vec_vadduhs(vus, vus); // CHECK: @llvm.ppc.altivec.vadduhs 135 res_vus = vec_vadduhs(vbs, vus); // CHECK: @llvm.ppc.altivec.vadduhs 136 res_vus = vec_vadduhs(vus, vbs); // CHECK: @llvm.ppc.altivec.vadduhs 137 res_vi = vec_vaddsws(vi, vi); // CHECK: @llvm.ppc.altivec.vaddsws 138 res_vi = vec_vaddsws(vbi, vi); // CHECK: @llvm.ppc.altivec.vaddsws 139 res_vi = vec_vaddsws(vi, vbi); // CHECK: @llvm.ppc.altivec.vaddsws 140 res_vui = vec_vadduws(vui, vui); // CHECK: @llvm.ppc.altivec.vadduws 141 res_vui = vec_vadduws(vbi, vui); // CHECK: @llvm.ppc.altivec.vadduws 142 res_vui = vec_vadduws(vui, vbi); // CHECK: @llvm.ppc.altivec.vadduws 143 144 /* vec_and */ 145 res_vsc = vec_and(vsc, vsc); // CHECK: and <16 x i8> 146 res_vsc = vec_and(vbc, vsc); // CHECK: and <16 x i8> 147 res_vsc = vec_and(vsc, vbc); // CHECK: and <16 x i8> 148 res_vuc = vec_and(vuc, vuc); // CHECK: and <16 x i8> 149 res_vuc = vec_and(vbc, vuc); // CHECK: and <16 x i8> 150 res_vuc = vec_and(vuc, vbc); // CHECK: and <16 x i8> 151 res_vbc = vec_and(vbc, vbc); // CHECK: and <16 x i8> 152 res_vs = vec_and(vs, vs); // CHECK: and <8 x i16> 153 res_vs = vec_and(vbs, vs); // CHECK: and <8 x i16> 154 res_vs = vec_and(vs, vbs); // CHECK: and <8 x i16> 155 res_vus = vec_and(vus, vus); // CHECK: and <8 x i16> 156 res_vus = vec_and(vbs, vus); // CHECK: and <8 x i16> 157 res_vus = vec_and(vus, vbs); // CHECK: and <8 x i16> 158 res_vbs = vec_and(vbs, vbs); // CHECK: and <8 x i16> 159 res_vi = vec_and(vi, vi); // CHECK: and <4 x i32> 160 res_vi = vec_and(vbi, vi); // CHECK: and <4 x i32> 161 res_vi = vec_and(vi, vbi); // CHECK: and <4 x i32> 162 res_vui = vec_and(vui, vui); // CHECK: and <4 x i32> 163 res_vui = vec_and(vbi, vui); // CHECK: and <4 x i32> 164 res_vui = vec_and(vui, vbi); // CHECK: and <4 x i32> 165 res_vbi = vec_and(vbi, vbi); // CHECK: and <4 x i32> 166 res_vsc = vec_vand(vsc, vsc); // CHECK: and <16 x i8> 167 res_vsc = vec_vand(vbc, vsc); // CHECK: and <16 x i8> 168 res_vsc = vec_vand(vsc, vbc); // CHECK: and <16 x i8> 169 res_vuc = vec_vand(vuc, vuc); // CHECK: and <16 x i8> 170 res_vuc = vec_vand(vbc, vuc); // CHECK: and <16 x i8> 171 res_vuc = vec_vand(vuc, vbc); // CHECK: and <16 x i8> 172 res_vbc = vec_vand(vbc, vbc); // CHECK: and <16 x i8> 173 res_vs = vec_vand(vs, vs); // CHECK: and <8 x i16> 174 res_vs = vec_vand(vbs, vs); // CHECK: and <8 x i16> 175 res_vs = vec_vand(vs, vbs); // CHECK: and <8 x i16> 176 res_vus = vec_vand(vus, vus); // CHECK: and <8 x i16> 177 res_vus = vec_vand(vbs, vus); // CHECK: and <8 x i16> 178 res_vus = vec_vand(vus, vbs); // CHECK: and <8 x i16> 179 res_vbs = vec_vand(vbs, vbs); // CHECK: and <8 x i16> 180 res_vi = vec_vand(vi, vi); // CHECK: and <4 x i32> 181 res_vi = vec_vand(vbi, vi); // CHECK: and <4 x i32> 182 res_vi = vec_vand(vi, vbi); // CHECK: and <4 x i32> 183 res_vui = vec_vand(vui, vui); // CHECK: and <4 x i32> 184 res_vui = vec_vand(vbi, vui); // CHECK: and <4 x i32> 185 res_vui = vec_vand(vui, vbi); // CHECK: and <4 x i32> 186 res_vbi = vec_vand(vbi, vbi); // CHECK: and <4 x i32> 187 188 /* vec_andc */ 189 res_vsc = vec_andc(vsc, vsc); // CHECK: xor <16 x i8> 190 // CHECK: and <16 x i8> 191 192 res_vsc = vec_andc(vbc, vsc); // CHECK: xor <16 x i8> 193 // CHECK: and <16 x i8> 194 195 res_vsc = vec_andc(vsc, vbc); // CHECK: xor <16 x i8> 196 // CHECK: and <16 x i8> 197 198 res_vuc = vec_andc(vuc, vuc); // CHECK: xor <16 x i8> 199 // CHECK: and <16 x i8> 200 201 res_vuc = vec_andc(vbc, vuc); // CHECK: xor <16 x i8> 202 // CHECK: and <16 x i8> 203 204 res_vuc = vec_andc(vuc, vbc); // CHECK: xor <16 x i8> 205 // CHECK: and <16 x i8> 206 207 res_vbc = vec_andc(vbc, vbc); // CHECK: xor <16 x i8> 208 // CHECK: and <16 x i8> 209 210 res_vs = vec_andc(vs, vs); // CHECK: xor <8 x i16> 211 // CHECK: and <8 x i16> 212 213 res_vs = vec_andc(vbs, vs); // CHECK: xor <8 x i16> 214 // CHECK: and <8 x i16> 215 216 res_vs = vec_andc(vs, vbs); // CHECK: xor <8 x i16> 217 // CHECK: and <8 x i16> 218 219 res_vus = vec_andc(vus, vus); // CHECK: xor <8 x i16> 220 // CHECK: and <8 x i16> 221 222 res_vus = vec_andc(vbs, vus); // CHECK: xor <8 x i16> 223 // CHECK: and <8 x i16> 224 225 res_vus = vec_andc(vus, vbs); // CHECK: xor <8 x i16> 226 // CHECK: and <8 x i16> 227 228 res_vbs = vec_andc(vbs, vbs); // CHECK: xor <8 x i16> 229 // CHECK: and <8 x i16> 230 231 res_vi = vec_andc(vi, vi); // CHECK: xor <4 x i32> 232 // CHECK: and <4 x i32> 233 234 res_vi = vec_andc(vbi, vi); // CHECK: xor <4 x i32> 235 // CHECK: and <4 x i32> 236 237 res_vi = vec_andc(vi, vbi); // CHECK: xor <4 x i32> 238 // CHECK: and <4 x i32> 239 240 res_vui = vec_andc(vui, vui); // CHECK: xor <4 x i32> 241 // CHECK: and <4 x i32> 242 243 res_vui = vec_andc(vbi, vui); // CHECK: xor <4 x i32> 244 // CHECK: and <4 x i32> 245 246 res_vui = vec_andc(vui, vbi); // CHECK: xor <4 x i32> 247 // CHECK: and <4 x i32> 248 249 res_vf = vec_andc(vf, vf); // CHECK: xor <4 x i32> 250 // CHECK: and <4 x i32> 251 252 res_vf = vec_andc(vbi, vf); // CHECK: xor <4 x i32> 253 // CHECK: and <4 x i32> 254 255 res_vf = vec_andc(vf, vbi); // CHECK: xor <4 x i32> 256 // CHECK: and <4 x i32> 257 258 res_vsc = vec_vandc(vsc, vsc); // CHECK: xor <16 x i8> 259 // CHECK: and <16 x i8> 260 261 res_vsc = vec_vandc(vbc, vsc); // CHECK: xor <16 x i8> 262 // CHECK: and <16 x i8> 263 264 res_vsc = vec_vandc(vsc, vbc); // CHECK: xor <16 x i8> 265 // CHECK: and <16 x i8> 266 267 res_vuc = vec_vandc(vuc, vuc); // CHECK: xor <16 x i8> 268 // CHECK: and <16 x i8> 269 270 res_vuc = vec_vandc(vbc, vuc); // CHECK: xor <16 x i8> 271 // CHECK: and <16 x i8> 272 273 res_vuc = vec_vandc(vuc, vbc); // CHECK: xor <16 x i8> 274 // CHECK: and <16 x i8> 275 276 res_vbc = vec_vandc(vbc, vbc); // CHECK: xor <16 x i8> 277 // CHECK: and <16 x i8> 278 279 res_vs = vec_vandc(vs, vs); // CHECK: xor <8 x i16> 280 // CHECK: and <8 x i16> 281 282 res_vs = vec_vandc(vbs, vs); // CHECK: xor <8 x i16> 283 // CHECK: and <8 x i16> 284 285 res_vs = vec_vandc(vs, vbs); // CHECK: xor <8 x i16> 286 // CHECK: and <8 x i16> 287 288 res_vus = vec_vandc(vus, vus); // CHECK: xor <8 x i16> 289 // CHECK: and <8 x i16> 290 291 res_vus = vec_vandc(vbs, vus); // CHECK: xor <8 x i16> 292 // CHECK: and <8 x i16> 293 294 res_vus = vec_vandc(vus, vbs); // CHECK: xor <8 x i16> 295 // CHECK: and <8 x i16> 296 297 res_vbs = vec_vandc(vbs, vbs); // CHECK: xor <8 x i16> 298 // CHECK: and <8 x i16> 299 300 res_vi = vec_vandc(vi, vi); // CHECK: xor <4 x i32> 301 // CHECK: and <4 x i32> 302 303 res_vi = vec_vandc(vbi, vi); // CHECK: xor <4 x i32> 304 // CHECK: and <4 x i32> 305 306 res_vi = vec_vandc(vi, vbi); // CHECK: xor <4 x i32> 307 // CHECK: and <4 x i32> 308 309 res_vui = vec_vandc(vui, vui); // CHECK: xor <4 x i32> 310 // CHECK: and <4 x i32> 311 312 res_vui = vec_vandc(vbi, vui); // CHECK: xor <4 x i32> 313 // CHECK: and <4 x i32> 314 315 res_vui = vec_vandc(vui, vbi); // CHECK: xor <4 x i32> 316 // CHECK: and <4 x i32> 317 318 res_vf = vec_vandc(vf, vf); // CHECK: xor <4 x i32> 319 // CHECK: and <4 x i32> 320 321 res_vf = vec_vandc(vbi, vf); // CHECK: xor <4 x i32> 322 // CHECK: and <4 x i32> 323 324 res_vf = vec_vandc(vf, vbi); // CHECK: xor <4 x i32> 325 // CHECK: and <4 x i32> 326 327} 328 329// CHECK: define void @test2 330void test2() { 331 /* vec_avg */ 332 res_vsc = vec_avg(vsc, vsc); // CHECK: @llvm.ppc.altivec.vavgsb 333 res_vuc = vec_avg(vuc, vuc); // CHECK: @llvm.ppc.altivec.vavgub 334 res_vs = vec_avg(vs, vs); // CHECK: @llvm.ppc.altivec.vavgsh 335 res_vus = vec_avg(vus, vus); // CHECK: @llvm.ppc.altivec.vavguh 336 res_vi = vec_avg(vi, vi); // CHECK: @llvm.ppc.altivec.vavgsw 337 res_vui = vec_avg(vui, vui); // CHECK: @llvm.ppc.altivec.vavguw 338 res_vsc = vec_vavgsb(vsc, vsc); // CHECK: @llvm.ppc.altivec.vavgsb 339 res_vuc = vec_vavgub(vuc, vuc); // CHECK: @llvm.ppc.altivec.vavgub 340 res_vs = vec_vavgsh(vs, vs); // CHECK: @llvm.ppc.altivec.vavgsh 341 res_vus = vec_vavguh(vus, vus); // CHECK: @llvm.ppc.altivec.vavguh 342 res_vi = vec_vavgsw(vi, vi); // CHECK: @llvm.ppc.altivec.vavgsw 343 res_vui = vec_vavguw(vui, vui); // CHECK: @llvm.ppc.altivec.vavguw 344 345 /* vec_ceil */ 346 res_vf = vec_ceil(vf); // CHECK: @llvm.ppc.altivec.vrfip 347 res_vf = vec_vrfip(vf); // CHECK: @llvm.ppc.altivec.vrfip 348 349 /* vec_cmpb */ 350 res_vi = vec_cmpb(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpbfp 351 res_vi = vec_vcmpbfp(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpbfp 352 353 /* vec_cmpeq */ 354 res_vbc = vec_cmpeq(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpequb 355 res_vbc = vec_cmpeq(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb 356 res_vbs = vec_cmpeq(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh 357 res_vbs = vec_cmpeq(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpequh 358 res_vbi = vec_cmpeq(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw 359 res_vbi = vec_cmpeq(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpequw 360 res_vbi = vec_cmpeq(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp 361 362 /* vec_cmpge */ 363 res_vbi = vec_cmpge(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp 364 res_vbi = vec_vcmpgefp(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp 365} 366 367// CHECK: define void @test5 368void test5() { 369 370 /* vec_cmpgt */ 371 res_vbc = vec_cmpgt(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb 372 res_vbc = vec_cmpgt(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub 373 res_vbs = vec_cmpgt(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh 374 res_vbs = vec_cmpgt(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh 375 res_vbi = vec_cmpgt(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw 376 res_vbi = vec_cmpgt(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw 377 res_vbi = vec_cmpgt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp 378 res_vbc = vec_vcmpgtsb(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb 379 res_vbc = vec_vcmpgtub(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub 380 res_vbs = vec_vcmpgtsh(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh 381 res_vbs = vec_vcmpgtuh(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh 382 res_vbi = vec_vcmpgtsw(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw 383 res_vbi = vec_vcmpgtuw(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw 384 res_vbi = vec_vcmpgtfp(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp 385 386 /* vec_cmple */ 387 res_vbi = vec_cmple(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp 388} 389 390// CHECK: define void @test6 391void test6() { 392 /* vec_cmplt */ 393 res_vbc = vec_cmplt(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb 394 res_vbc = vec_cmplt(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub 395 res_vbs = vec_cmplt(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh 396 res_vbs = vec_cmplt(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh 397 res_vbi = vec_cmplt(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw 398 res_vbi = vec_cmplt(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw 399 res_vbi = vec_cmplt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp 400 401 /* vec_ctf */ 402 res_vf = vec_ctf(vi, param_i); // CHECK: @llvm.ppc.altivec.vcfsx 403 res_vf = vec_ctf(vui, 0); // CHECK: @llvm.ppc.altivec.vcfux 404 res_vf = vec_vcfsx(vi, 0); // CHECK: @llvm.ppc.altivec.vcfsx 405 res_vf = vec_vcfux(vui, 0); // CHECK: @llvm.ppc.altivec.vcfux 406 407 /* vec_cts */ 408 res_vi = vec_cts(vf, 0); // CHECK: @llvm.ppc.altivec.vctsxs 409 res_vi = vec_vctsxs(vf, 0); // CHECK: @llvm.ppc.altivec.vctsxs 410 411 /* vec_ctu */ 412 res_vui = vec_ctu(vf, 0); // CHECK: @llvm.ppc.altivec.vctuxs 413 res_vui = vec_vctuxs(vf, 0); // CHECK: @llvm.ppc.altivec.vctuxs 414 415 /* vec_dss */ 416 vec_dss(param_i); // CHECK: @llvm.ppc.altivec.dss 417 418 /* vec_dssall */ 419 vec_dssall(); // CHECK: @llvm.ppc.altivec.dssall 420 421 /* vec_dst */ 422 vec_dst(&vsc, 0, 0); // CHECK: @llvm.ppc.altivec.dst 423 424 /* vec_dstst */ 425 vec_dstst(&vs, 0, 0); // CHECK: @llvm.ppc.altivec.dstst 426 427 /* vec_dststt */ 428 vec_dststt(¶m_i, 0, 0); // CHECK: @llvm.ppc.altivec.dststt 429 430 /* vec_dstt */ 431 vec_dstt(&vf, 0, 0); // CHECK: @llvm.ppc.altivec.dstt 432 433 /* vec_expte */ 434 res_vf = vec_expte(vf); // CHECK: @llvm.ppc.altivec.vexptefp 435 res_vf = vec_vexptefp(vf); // CHECK: @llvm.ppc.altivec.vexptefp 436 437 /* vec_floor */ 438 res_vf = vec_floor(vf); // CHECK: @llvm.ppc.altivec.vrfim 439 res_vf = vec_vrfim(vf); // CHECK: @llvm.ppc.altivec.vrfim 440 441 /* vec_ld */ 442 res_vsc = vec_ld(0, &vsc); // CHECK: @llvm.ppc.altivec.lvx 443 res_vsc = vec_ld(0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvx 444 res_vuc = vec_ld(0, &vuc); // CHECK: @llvm.ppc.altivec.lvx 445 res_vuc = vec_ld(0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvx 446 res_vbc = vec_ld(0, &vbc); // CHECK: @llvm.ppc.altivec.lvx 447 res_vs = vec_ld(0, &vs); // CHECK: @llvm.ppc.altivec.lvx 448 res_vs = vec_ld(0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvx 449 res_vus = vec_ld(0, &vus); // CHECK: @llvm.ppc.altivec.lvx 450 res_vus = vec_ld(0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvx 451 res_vbs = vec_ld(0, &vbs); // CHECK: @llvm.ppc.altivec.lvx 452 res_vp = vec_ld(0, &vp); // CHECK: @llvm.ppc.altivec.lvx 453 res_vi = vec_ld(0, &vi); // CHECK: @llvm.ppc.altivec.lvx 454 res_vi = vec_ld(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvx 455 res_vui = vec_ld(0, &vui); // CHECK: @llvm.ppc.altivec.lvx 456 res_vui = vec_ld(0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvx 457 res_vbi = vec_ld(0, &vbi); // CHECK: @llvm.ppc.altivec.lvx 458 res_vf = vec_ld(0, &vf); // CHECK: @llvm.ppc.altivec.lvx 459 res_vf = vec_ld(0, ¶m_f); // CHECK: @llvm.ppc.altivec.lvx 460 res_vsc = vec_lvx(0, &vsc); // CHECK: @llvm.ppc.altivec.lvx 461 res_vsc = vec_lvx(0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvx 462 res_vuc = vec_lvx(0, &vuc); // CHECK: @llvm.ppc.altivec.lvx 463 res_vuc = vec_lvx(0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvx 464 res_vbc = vec_lvx(0, &vbc); // CHECK: @llvm.ppc.altivec.lvx 465 res_vs = vec_lvx(0, &vs); // CHECK: @llvm.ppc.altivec.lvx 466 res_vs = vec_lvx(0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvx 467 res_vus = vec_lvx(0, &vus); // CHECK: @llvm.ppc.altivec.lvx 468 res_vus = vec_lvx(0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvx 469 res_vbs = vec_lvx(0, &vbs); // CHECK: @llvm.ppc.altivec.lvx 470 res_vp = vec_lvx(0, &vp); // CHECK: @llvm.ppc.altivec.lvx 471 res_vi = vec_lvx(0, &vi); // CHECK: @llvm.ppc.altivec.lvx 472 res_vi = vec_lvx(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvx 473 res_vui = vec_lvx(0, &vui); // CHECK: @llvm.ppc.altivec.lvx 474 res_vui = vec_lvx(0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvx 475 res_vbi = vec_lvx(0, &vbi); // CHECK: @llvm.ppc.altivec.lvx 476 res_vf = vec_lvx(0, &vf); // CHECK: @llvm.ppc.altivec.lvx 477 res_vf = vec_lvx(0, ¶m_f); // CHECK: @llvm.ppc.altivec.lvx 478 479 /* vec_lde */ 480 res_vsc = vec_lde(0, &vsc); // CHECK: @llvm.ppc.altivec.lvebx 481 res_vuc = vec_lde(0, &vuc); // CHECK: @llvm.ppc.altivec.lvebx 482 res_vs = vec_lde(0, &vs); // CHECK: @llvm.ppc.altivec.lvehx 483 res_vus = vec_lde(0, &vus); // CHECK: @llvm.ppc.altivec.lvehx 484 res_vi = vec_lde(0, &vi); // CHECK: @llvm.ppc.altivec.lvewx 485 res_vui = vec_lde(0, &vui); // CHECK: @llvm.ppc.altivec.lvewx 486 res_vf = vec_lde(0, &vf); // CHECK: @llvm.ppc.altivec.lvewx 487 res_vsc = vec_lvebx(0, &vsc); // CHECK: @llvm.ppc.altivec.lvebx 488 res_vuc = vec_lvebx(0, &vuc); // CHECK: @llvm.ppc.altivec.lvebx 489 res_vs = vec_lvehx(0, &vs); // CHECK: @llvm.ppc.altivec.lvehx 490 res_vus = vec_lvehx(0, &vus); // CHECK: @llvm.ppc.altivec.lvehx 491 res_vi = vec_lvewx(0, &vi); // CHECK: @llvm.ppc.altivec.lvewx 492 res_vui = vec_lvewx(0, &vui); // CHECK: @llvm.ppc.altivec.lvewx 493 res_vf = vec_lvewx(0, &vf); // CHECK: @llvm.ppc.altivec.lvewx 494 495 /* vec_ldl */ 496 res_vsc = vec_ldl(0, &vsc); // CHECK: @llvm.ppc.altivec.lvxl 497 res_vsc = vec_ldl(0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvxl 498 res_vuc = vec_ldl(0, &vuc); // CHECK: @llvm.ppc.altivec.lvxl 499 res_vuc = vec_ldl(0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvxl 500 res_vbc = vec_ldl(0, &vbc); // CHECK: @llvm.ppc.altivec.lvxl 501 res_vs = vec_ldl(0, &vs); // CHECK: @llvm.ppc.altivec.lvxl 502 res_vs = vec_ldl(0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvxl 503 res_vus = vec_ldl(0, &vus); // CHECK: @llvm.ppc.altivec.lvxl 504 res_vus = vec_ldl(0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvxl 505 res_vbs = vec_ldl(0, &vbs); // CHECK: @llvm.ppc.altivec.lvxl 506 res_vp = vec_ldl(0, &vp); // CHECK: @llvm.ppc.altivec.lvxl 507 res_vi = vec_ldl(0, &vi); // CHECK: @llvm.ppc.altivec.lvxl 508 res_vi = vec_ldl(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvxl 509 res_vui = vec_ldl(0, &vui); // CHECK: @llvm.ppc.altivec.lvxl 510 res_vui = vec_ldl(0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvxl 511 res_vbi = vec_ldl(0, &vbi); // CHECK: @llvm.ppc.altivec.lvxl 512 res_vf = vec_ldl(0, &vf); // CHECK: @llvm.ppc.altivec.lvxl 513 res_vf = vec_ldl(0, ¶m_f); // CHECK: @llvm.ppc.altivec.lvxl 514 res_vsc = vec_lvxl(0, &vsc); // CHECK: @llvm.ppc.altivec.lvxl 515 res_vsc = vec_lvxl(0, ¶m_sc); // CHECK: @llvm.ppc.altivec.lvxl 516 res_vuc = vec_lvxl(0, &vuc); // CHECK: @llvm.ppc.altivec.lvxl 517 res_vbc = vec_lvxl(0, &vbc); // CHECK: @llvm.ppc.altivec.lvxl 518 res_vuc = vec_lvxl(0, ¶m_uc); // CHECK: @llvm.ppc.altivec.lvxl 519 res_vs = vec_lvxl(0, &vs); // CHECK: @llvm.ppc.altivec.lvxl 520 res_vs = vec_lvxl(0, ¶m_s); // CHECK: @llvm.ppc.altivec.lvxl 521 res_vus = vec_lvxl(0, &vus); // CHECK: @llvm.ppc.altivec.lvxl 522 res_vus = vec_lvxl(0, ¶m_us); // CHECK: @llvm.ppc.altivec.lvxl 523 res_vbs = vec_lvxl(0, &vbs); // CHECK: @llvm.ppc.altivec.lvxl 524 res_vp = vec_lvxl(0, &vp); // CHECK: @llvm.ppc.altivec.lvxl 525 res_vi = vec_lvxl(0, &vi); // CHECK: @llvm.ppc.altivec.lvxl 526 res_vi = vec_lvxl(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvxl 527 res_vui = vec_lvxl(0, &vui); // CHECK: @llvm.ppc.altivec.lvxl 528 res_vui = vec_lvxl(0, ¶m_ui); // CHECK: @llvm.ppc.altivec.lvxl 529 res_vbi = vec_lvxl(0, &vbi); // CHECK: @llvm.ppc.altivec.lvxl 530 res_vf = vec_lvxl(0, &vf); // CHECK: @llvm.ppc.altivec.lvxl 531 res_vf = vec_lvxl(0, ¶m_f); // CHECK: @llvm.ppc.altivec.lvxl 532 533 /* vec_loge */ 534 res_vf = vec_loge(vf); // CHECK: @llvm.ppc.altivec.vlogefp 535 res_vf = vec_vlogefp(vf); // CHECK: @llvm.ppc.altivec.vlogefp 536 537 /* vec_lvsl */ 538 res_vuc = vec_lvsl(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvsl 539 540 /* vec_lvsr */ 541 res_vuc = vec_lvsr(0, ¶m_i); // CHECK: @llvm.ppc.altivec.lvsr 542 543 /* vec_madd */ 544 res_vf =vec_madd(vf, vf, vf); // CHECK: @llvm.ppc.altivec.vmaddfp 545 res_vf = vec_vmaddfp(vf, vf, vf); // CHECK: @llvm.ppc.altivec.vmaddfp 546 547 /* vec_madds */ 548 res_vs = vec_madds(vs, vs, vs); // CHECK: @llvm.ppc.altivec.vmhaddshs 549 res_vs = vec_vmhaddshs(vs, vs, vs); // CHECK: @llvm.ppc.altivec.vmhaddshs 550 551 /* vec_max */ 552 res_vsc = vec_max(vsc, vsc); // CHECK: @llvm.ppc.altivec.vmaxsb 553 res_vsc = vec_max(vbc, vsc); // CHECK: @llvm.ppc.altivec.vmaxsb 554 res_vsc = vec_max(vsc, vbc); // CHECK: @llvm.ppc.altivec.vmaxsb 555 res_vuc = vec_max(vuc, vuc); // CHECK: @llvm.ppc.altivec.vmaxub 556 res_vuc = vec_max(vbc, vuc); // CHECK: @llvm.ppc.altivec.vmaxub 557 res_vuc = vec_max(vuc, vbc); // CHECK: @llvm.ppc.altivec.vmaxub 558 res_vs = vec_max(vs, vs); // CHECK: @llvm.ppc.altivec.vmaxsh 559 res_vs = vec_max(vbs, vs); // CHECK: @llvm.ppc.altivec.vmaxsh 560 res_vs = vec_max(vs, vbs); // CHECK: @llvm.ppc.altivec.vmaxsh 561 res_vus = vec_max(vus, vus); // CHECK: @llvm.ppc.altivec.vmaxuh 562 res_vus = vec_max(vbs, vus); // CHECK: @llvm.ppc.altivec.vmaxuh 563 res_vus = vec_max(vus, vbs); // CHECK: @llvm.ppc.altivec.vmaxuh 564 res_vi = vec_max(vi, vi); // CHECK: @llvm.ppc.altivec.vmaxsw 565 res_vi = vec_max(vbi, vi); // CHECK: @llvm.ppc.altivec.vmaxsw 566 res_vi = vec_max(vi, vbi); // CHECK: @llvm.ppc.altivec.vmaxsw 567 res_vui = vec_max(vui, vui); // CHECK: @llvm.ppc.altivec.vmaxuw 568 res_vui = vec_max(vbi, vui); // CHECK: @llvm.ppc.altivec.vmaxuw 569 res_vui = vec_max(vui, vbi); // CHECK: @llvm.ppc.altivec.vmaxuw 570 res_vf = vec_max(vf, vf); // CHECK: @llvm.ppc.altivec.vmaxfp 571 res_vsc = vec_vmaxsb(vsc, vsc); // CHECK: @llvm.ppc.altivec.vmaxsb 572 res_vsc = vec_vmaxsb(vbc, vsc); // CHECK: @llvm.ppc.altivec.vmaxsb 573 res_vsc = vec_vmaxsb(vsc, vbc); // CHECK: @llvm.ppc.altivec.vmaxsb 574 res_vuc = vec_vmaxub(vuc, vuc); // CHECK: @llvm.ppc.altivec.vmaxub 575 res_vuc = vec_vmaxub(vbc, vuc); // CHECK: @llvm.ppc.altivec.vmaxub 576 res_vuc = vec_vmaxub(vuc, vbc); // CHECK: @llvm.ppc.altivec.vmaxub 577 res_vs = vec_vmaxsh(vs, vs); // CHECK: @llvm.ppc.altivec.vmaxsh 578 res_vs = vec_vmaxsh(vbs, vs); // CHECK: @llvm.ppc.altivec.vmaxsh 579 res_vs = vec_vmaxsh(vs, vbs); // CHECK: @llvm.ppc.altivec.vmaxsh 580 res_vus = vec_vmaxuh(vus, vus); // CHECK: @llvm.ppc.altivec.vmaxuh 581 res_vus = vec_vmaxuh(vbs, vus); // CHECK: @llvm.ppc.altivec.vmaxuh 582 res_vus = vec_vmaxuh(vus, vbs); // CHECK: @llvm.ppc.altivec.vmaxuh 583 res_vi = vec_vmaxsw(vi, vi); // CHECK: @llvm.ppc.altivec.vmaxsw 584 res_vi = vec_vmaxsw(vbi, vi); // CHECK: @llvm.ppc.altivec.vmaxsw 585 res_vi = vec_vmaxsw(vi, vbi); // CHECK: @llvm.ppc.altivec.vmaxsw 586 res_vui = vec_vmaxuw(vui, vui); // CHECK: @llvm.ppc.altivec.vmaxuw 587 res_vui = vec_vmaxuw(vbi, vui); // CHECK: @llvm.ppc.altivec.vmaxuw 588 res_vui = vec_vmaxuw(vui, vbi); // CHECK: @llvm.ppc.altivec.vmaxuw 589 res_vf = vec_vmaxfp(vf, vf); // CHECK: @llvm.ppc.altivec.vmaxfp 590 591 /* vec_mergeh */ 592 res_vsc = vec_mergeh(vsc, vsc); // CHECK: @llvm.ppc.altivec.vperm 593 res_vuc = vec_mergeh(vuc, vuc); // CHECK: @llvm.ppc.altivec.vperm 594 res_vbc = vec_mergeh(vbc, vbc); // CHECK: @llvm.ppc.altivec.vperm 595 res_vs = vec_mergeh(vs, vs); // CHECK: @llvm.ppc.altivec.vperm 596 res_vp = vec_mergeh(vp, vp); // CHECK: @llvm.ppc.altivec.vperm 597 res_vus = vec_mergeh(vus, vus); // CHECK: @llvm.ppc.altivec.vperm 598 res_vbs = vec_mergeh(vbs, vbs); // CHECK: @llvm.ppc.altivec.vperm 599 res_vi = vec_mergeh(vi, vi); // CHECK: @llvm.ppc.altivec.vperm 600 res_vui = vec_mergeh(vui, vui); // CHECK: @llvm.ppc.altivec.vperm 601 res_vbi = vec_mergeh(vbi, vbi); // CHECK: @llvm.ppc.altivec.vperm 602 res_vf = vec_mergeh(vf, vf); // CHECK: @llvm.ppc.altivec.vperm 603 res_vsc = vec_vmrghb(vsc, vsc); // CHECK: @llvm.ppc.altivec.vperm 604 res_vuc = vec_vmrghb(vuc, vuc); // CHECK: @llvm.ppc.altivec.vperm 605 res_vbc = vec_vmrghb(vbc, vbc); // CHECK: @llvm.ppc.altivec.vperm 606 res_vs = vec_vmrghh(vs, vs); // CHECK: @llvm.ppc.altivec.vperm 607 res_vp = vec_vmrghh(vp, vp); // CHECK: @llvm.ppc.altivec.vperm 608 res_vus = vec_vmrghh(vus, vus); // CHECK: @llvm.ppc.altivec.vperm 609 res_vbs = vec_vmrghh(vbs, vbs); // CHECK: @llvm.ppc.altivec.vperm 610 res_vi = vec_vmrghw(vi, vi); // CHECK: @llvm.ppc.altivec.vperm 611 res_vui = vec_vmrghw(vui, vui); // CHECK: @llvm.ppc.altivec.vperm 612 res_vbi = vec_vmrghw(vbi, vbi); // CHECK: @llvm.ppc.altivec.vperm 613 res_vf = vec_vmrghw(vf, vf); // CHECK: @llvm.ppc.altivec.vperm 614 615 /* vec_mergel */ 616 res_vsc = vec_mergel(vsc, vsc); // CHECK: @llvm.ppc.altivec.vperm 617 res_vuc = vec_mergel(vuc, vuc); // CHECK: @llvm.ppc.altivec.vperm 618 res_vbc = vec_mergel(vbc, vbc); // CHECK: @llvm.ppc.altivec.vperm 619 res_vs = vec_mergel(vs, vs); // CHECK: @llvm.ppc.altivec.vperm 620 res_vp = vec_mergeh(vp, vp); // CHECK: @llvm.ppc.altivec.vperm 621 res_vus = vec_mergel(vus, vus); // CHECK: @llvm.ppc.altivec.vperm 622 res_vbs = vec_mergel(vbs, vbs); // CHECK: @llvm.ppc.altivec.vperm 623 res_vi = vec_mergel(vi, vi); // CHECK: @llvm.ppc.altivec.vperm 624 res_vui = vec_mergel(vui, vui); // CHECK: @llvm.ppc.altivec.vperm 625 res_vbi = vec_mergel(vbi, vbi); // CHECK: @llvm.ppc.altivec.vperm 626 res_vf = vec_mergel(vf, vf); // CHECK: @llvm.ppc.altivec.vperm 627 res_vsc = vec_vmrglb(vsc, vsc); // CHECK: @llvm.ppc.altivec.vperm 628 res_vuc = vec_vmrglb(vuc, vuc); // CHECK: @llvm.ppc.altivec.vperm 629 res_vbc = vec_vmrglb(vbc, vbc); // CHECK: @llvm.ppc.altivec.vperm 630 res_vs = vec_vmrglh(vs, vs); // CHECK: @llvm.ppc.altivec.vperm 631 res_vp = vec_vmrglh(vp, vp); // CHECK: @llvm.ppc.altivec.vperm 632 res_vus = vec_vmrglh(vus, vus); // CHECK: @llvm.ppc.altivec.vperm 633 res_vbs = vec_vmrglh(vbs, vbs); // CHECK: @llvm.ppc.altivec.vperm 634 res_vi = vec_vmrglw(vi, vi); // CHECK: @llvm.ppc.altivec.vperm 635 res_vui = vec_vmrglw(vui, vui); // CHECK: @llvm.ppc.altivec.vperm 636 res_vbi = vec_vmrglw(vbi, vbi); // CHECK: @llvm.ppc.altivec.vperm 637 res_vf = vec_vmrglw(vf, vf); // CHECK: @llvm.ppc.altivec.vperm 638 639 /* vec_mfvscr */ 640 vus = vec_mfvscr(); // CHECK: @llvm.ppc.altivec.mfvscr 641 642 /* vec_min */ 643 res_vsc = vec_min(vsc, vsc); // CHECK: @llvm.ppc.altivec.vminsb 644 res_vsc = vec_min(vbc, vsc); // CHECK: @llvm.ppc.altivec.vminsb 645 res_vsc = vec_min(vsc, vbc); // CHECK: @llvm.ppc.altivec.vminsb 646 res_vuc = vec_min(vuc, vuc); // CHECK: @llvm.ppc.altivec.vminub 647 res_vuc = vec_min(vbc, vuc); // CHECK: @llvm.ppc.altivec.vminub 648 res_vuc = vec_min(vuc, vbc); // CHECK: @llvm.ppc.altivec.vminub 649 res_vs = vec_min(vs, vs); // CHECK: @llvm.ppc.altivec.vminsh 650 res_vs = vec_min(vbs, vs); // CHECK: @llvm.ppc.altivec.vminsh 651 res_vs = vec_min(vs, vbs); // CHECK: @llvm.ppc.altivec.vminsh 652 res_vus = vec_min(vus, vus); // CHECK: @llvm.ppc.altivec.vminuh 653 res_vus = vec_min(vbs, vus); // CHECK: @llvm.ppc.altivec.vminuh 654 res_vus = vec_min(vus, vbs); // CHECK: @llvm.ppc.altivec.vminuh 655 res_vi = vec_min(vi, vi); // CHECK: @llvm.ppc.altivec.vminsw 656 res_vi = vec_min(vbi, vi); // CHECK: @llvm.ppc.altivec.vminsw 657 res_vi = vec_min(vi, vbi); // CHECK: @llvm.ppc.altivec.vminsw 658 res_vui = vec_min(vui, vui); // CHECK: @llvm.ppc.altivec.vminuw 659 res_vui = vec_min(vbi, vui); // CHECK: @llvm.ppc.altivec.vminuw 660 res_vui = vec_min(vui, vbi); // CHECK: @llvm.ppc.altivec.vminuw 661 res_vf = vec_min(vf, vf); // CHECK: @llvm.ppc.altivec.vminfp 662 res_vsc = vec_vminsb(vsc, vsc); // CHECK: @llvm.ppc.altivec.vminsb 663 res_vsc = vec_vminsb(vbc, vsc); // CHECK: @llvm.ppc.altivec.vminsb 664 res_vsc = vec_vminsb(vsc, vbc); // CHECK: @llvm.ppc.altivec.vminsb 665 res_vuc = vec_vminub(vuc, vuc); // CHECK: @llvm.ppc.altivec.vminub 666 res_vuc = vec_vminub(vbc, vuc); // CHECK: @llvm.ppc.altivec.vminub 667 res_vuc = vec_vminub(vuc, vbc); // CHECK: @llvm.ppc.altivec.vminub 668 res_vs = vec_vminsh(vs, vs); // CHECK: @llvm.ppc.altivec.vminsh 669 res_vs = vec_vminsh(vbs, vs); // CHECK: @llvm.ppc.altivec.vminsh 670 res_vs = vec_vminsh(vs, vbs); // CHECK: @llvm.ppc.altivec.vminsh 671 res_vus = vec_vminuh(vus, vus); // CHECK: @llvm.ppc.altivec.vminuh 672 res_vus = vec_vminuh(vbs, vus); // CHECK: @llvm.ppc.altivec.vminuh 673 res_vus = vec_vminuh(vus, vbs); // CHECK: @llvm.ppc.altivec.vminuh 674 res_vi = vec_vminsw(vi, vi); // CHECK: @llvm.ppc.altivec.vminsw 675 res_vi = vec_vminsw(vbi, vi); // CHECK: @llvm.ppc.altivec.vminsw 676 res_vi = vec_vminsw(vi, vbi); // CHECK: @llvm.ppc.altivec.vminsw 677 res_vui = vec_vminuw(vui, vui); // CHECK: @llvm.ppc.altivec.vminuw 678 res_vui = vec_vminuw(vbi, vui); // CHECK: @llvm.ppc.altivec.vminuw 679 res_vui = vec_vminuw(vui, vbi); // CHECK: @llvm.ppc.altivec.vminuw 680 res_vf = vec_vminfp(vf, vf); // CHECK: @llvm.ppc.altivec.vminfp 681 682 /* vec_mladd */ 683 res_vus = vec_mladd(vus, vus, vus); // CHECK: mul <8 x i16> 684 // CHECK: add <8 x i16> 685 686 res_vs = vec_mladd(vus, vs, vs); // CHECK: mul nsw <8 x i16> 687 // CHECK: add nsw <8 x i16> 688 689 res_vs = vec_mladd(vs, vus, vus); // CHECK: mul nsw <8 x i16> 690 // CHECK: add nsw <8 x i16> 691 692 res_vs = vec_mladd(vs, vs, vs); // CHECK: mul nsw <8 x i16> 693 // CHECK: add nsw <8 x i16> 694 695 /* vec_mradds */ 696 res_vs = vec_mradds(vs, vs, vs); // CHECK: @llvm.ppc.altivec.vmhraddshs 697 res_vs = vec_vmhraddshs(vs, vs, vs); // CHECK: @llvm.ppc.altivec.vmhraddshs 698 699 /* vec_msum */ 700 res_vi = vec_msum(vsc, vuc, vi); // CHECK: @llvm.ppc.altivec.vmsummbm 701 res_vui = vec_msum(vuc, vuc, vui); // CHECK: @llvm.ppc.altivec.vmsumubm 702 res_vi = vec_msum(vs, vs, vi); // CHECK: @llvm.ppc.altivec.vmsumshm 703 res_vui = vec_msum(vus, vus, vui); // CHECK: @llvm.ppc.altivec.vmsumuhm 704 res_vi = vec_vmsummbm(vsc, vuc, vi); // CHECK: @llvm.ppc.altivec.vmsummbm 705 res_vui = vec_vmsumubm(vuc, vuc, vui); // CHECK: @llvm.ppc.altivec.vmsumubm 706 res_vi = vec_vmsumshm(vs, vs, vi); // CHECK: @llvm.ppc.altivec.vmsumshm 707 res_vui = vec_vmsumuhm(vus, vus, vui); // CHECK: @llvm.ppc.altivec.vmsumuhm 708 709 /* vec_msums */ 710 res_vi = vec_msums(vs, vs, vi); // CHECK: @llvm.ppc.altivec.vmsumshs 711 res_vui = vec_msums(vus, vus, vui); // CHECK: @llvm.ppc.altivec.vmsumuhs 712 res_vi = vec_vmsumshs(vs, vs, vi); // CHECK: @llvm.ppc.altivec.vmsumshs 713 res_vui = vec_vmsumuhs(vus, vus, vui); // CHECK: @llvm.ppc.altivec.vmsumuhs 714 715 /* vec_mtvscr */ 716 vec_mtvscr(vsc); // CHECK: @llvm.ppc.altivec.mtvscr 717 vec_mtvscr(vuc); // CHECK: @llvm.ppc.altivec.mtvscr 718 vec_mtvscr(vbc); // CHECK: @llvm.ppc.altivec.mtvscr 719 vec_mtvscr(vs); // CHECK: @llvm.ppc.altivec.mtvscr 720 vec_mtvscr(vus); // CHECK: @llvm.ppc.altivec.mtvscr 721 vec_mtvscr(vbs); // CHECK: @llvm.ppc.altivec.mtvscr 722 vec_mtvscr(vp); // CHECK: @llvm.ppc.altivec.mtvscr 723 vec_mtvscr(vi); // CHECK: @llvm.ppc.altivec.mtvscr 724 vec_mtvscr(vui); // CHECK: @llvm.ppc.altivec.mtvscr 725 vec_mtvscr(vbi); // CHECK: @llvm.ppc.altivec.mtvscr 726 727 /* vec_mule */ 728 res_vs = vec_mule(vsc, vsc); // CHECK: @llvm.ppc.altivec.vmulesb 729 res_vus = vec_mule(vuc, vuc); // CHECK: @llvm.ppc.altivec.vmuleub 730 res_vi = vec_mule(vs, vs); // CHECK: @llvm.ppc.altivec.vmulesh 731 res_vui = vec_mule(vus, vus); // CHECK: @llvm.ppc.altivec.vmuleuh 732 res_vs = vec_vmulesb(vsc, vsc); // CHECK: @llvm.ppc.altivec.vmulesb 733 res_vus = vec_vmuleub(vuc, vuc); // CHECK: @llvm.ppc.altivec.vmuleub 734 res_vi = vec_vmulesh(vs, vs); // CHECK: @llvm.ppc.altivec.vmulesh 735 res_vui = vec_vmuleuh(vus, vus); // CHECK: @llvm.ppc.altivec.vmuleuh 736 737 /* vec_mulo */ 738 res_vs = vec_mulo(vsc, vsc); // CHECK: @llvm.ppc.altivec.vmulosb 739 res_vus = vec_mulo(vuc, vuc); // CHECK: @llvm.ppc.altivec.vmuloub 740 res_vi = vec_mulo(vs, vs); // CHECK: @llvm.ppc.altivec.vmulosh 741 res_vui = vec_mulo(vus, vus); // CHECK: @llvm.ppc.altivec.vmulouh 742 res_vs = vec_vmulosb(vsc, vsc); // CHECK: @llvm.ppc.altivec.vmulosb 743 res_vus = vec_vmuloub(vuc, vuc); // CHECK: @llvm.ppc.altivec.vmuloub 744 res_vi = vec_vmulosh(vs, vs); // CHECK: @llvm.ppc.altivec.vmulosh 745 res_vui = vec_vmulouh(vus, vus); // CHECK: @llvm.ppc.altivec.vmulouh 746 747 /* vec_nmsub */ 748 res_vf = vec_nmsub(vf, vf, vf); // CHECK: @llvm.ppc.altivec.vnmsubfp 749 res_vf = vec_vnmsubfp(vf, vf, vf); // CHECK: @llvm.ppc.altivec.vnmsubfp 750 751 /* vec_nor */ 752 res_vsc = vec_nor(vsc, vsc); // CHECK: or <16 x i8> 753 // CHECK: xor <16 x i8> 754 755 res_vuc = vec_nor(vuc, vuc); // CHECK: or <16 x i8> 756 // CHECK: xor <16 x i8> 757 758 res_vuc = vec_nor(vbc, vbc); // CHECK: or <16 x i8> 759 // CHECK: xor <16 x i8> 760 761 res_vs = vec_nor(vs, vs); // CHECK: or <8 x i16> 762 // CHECK: xor <8 x i16> 763 764 res_vus = vec_nor(vus, vus); // CHECK: or <8 x i16> 765 // CHECK: xor <8 x i16> 766 767 res_vus = vec_nor(vbs, vbs); // CHECK: or <8 x i16> 768 // CHECK: xor <8 x i16> 769 770 res_vi = vec_nor(vi, vi); // CHECK: or <4 x i32> 771 // CHECK: xor <4 x i32> 772 773 res_vui = vec_nor(vui, vui); // CHECK: or <4 x i32> 774 // CHECK: xor <4 x i32> 775 776 res_vui = vec_nor(vbi, vbi); // CHECK: or <4 x i32> 777 // CHECK: xor <4 x i32> 778 779 res_vf = vec_nor(vf, vf); // CHECK: or <4 x i32> 780 // CHECK: xor <4 x i32> 781 782 res_vsc = vec_vnor(vsc, vsc); // CHECK: or <16 x i8> 783 // CHECK: xor <16 x i8> 784 785 res_vuc = vec_vnor(vuc, vuc); // CHECK: or <16 x i8> 786 // CHECK: xor <16 x i8> 787 788 res_vuc = vec_vnor(vbc, vbc); // CHECK: or <16 x i8> 789 // CHECK: xor <16 x i8> 790 791 res_vs = vec_vnor(vs, vs); // CHECK: or <8 x i16> 792 // CHECK: xor <8 x i16> 793 794 res_vus = vec_vnor(vus, vus); // CHECK: or <8 x i16> 795 // CHECK: xor <8 x i16> 796 797 res_vus = vec_vnor(vbs, vbs); // CHECK: or <8 x i16> 798 // CHECK: xor <8 x i16> 799 800 res_vi = vec_vnor(vi, vi); // CHECK: or <4 x i32> 801 // CHECK: xor <4 x i32> 802 803 res_vui = vec_vnor(vui, vui); // CHECK: or <4 x i32> 804 // CHECK: xor <4 x i32> 805 806 res_vui = vec_vnor(vbi, vbi); // CHECK: or <4 x i32> 807 // CHECK: xor <4 x i32> 808 809 res_vf = vec_vnor(vf, vf); // CHECK: or <4 x i32> 810 // CHECK: xor <4 x i32> 811 812 /* vec_or */ 813 res_vsc = vec_or(vsc, vsc); // CHECK: or <16 x i8> 814 res_vsc = vec_or(vbc, vsc); // CHECK: or <16 x i8> 815 res_vsc = vec_or(vsc, vbc); // CHECK: or <16 x i8> 816 res_vuc = vec_or(vuc, vuc); // CHECK: or <16 x i8> 817 res_vuc = vec_or(vbc, vuc); // CHECK: or <16 x i8> 818 res_vuc = vec_or(vuc, vbc); // CHECK: or <16 x i8> 819 res_vbc = vec_or(vbc, vbc); // CHECK: or <16 x i8> 820 res_vs = vec_or(vs, vs); // CHECK: or <8 x i16> 821 res_vs = vec_or(vbs, vs); // CHECK: or <8 x i16> 822 res_vs = vec_or(vs, vbs); // CHECK: or <8 x i16> 823 res_vus = vec_or(vus, vus); // CHECK: or <8 x i16> 824 res_vus = vec_or(vbs, vus); // CHECK: or <8 x i16> 825 res_vus = vec_or(vus, vbs); // CHECK: or <8 x i16> 826 res_vbs = vec_or(vbs, vbs); // CHECK: or <8 x i16> 827 res_vi = vec_or(vi, vi); // CHECK: or <4 x i32> 828 res_vi = vec_or(vbi, vi); // CHECK: or <4 x i32> 829 res_vi = vec_or(vi, vbi); // CHECK: or <4 x i32> 830 res_vui = vec_or(vui, vui); // CHECK: or <4 x i32> 831 res_vui = vec_or(vbi, vui); // CHECK: or <4 x i32> 832 res_vui = vec_or(vui, vbi); // CHECK: or <4 x i32> 833 res_vbi = vec_or(vbi, vbi); // CHECK: or <4 x i32> 834 res_vf = vec_or(vf, vf); // CHECK: or <4 x i32> 835 res_vf = vec_or(vbi, vf); // CHECK: or <4 x i32> 836 res_vf = vec_or(vf, vbi); // CHECK: or <4 x i32> 837 res_vsc = vec_vor(vsc, vsc); // CHECK: or <16 x i8> 838 res_vsc = vec_vor(vbc, vsc); // CHECK: or <16 x i8> 839 res_vsc = vec_vor(vsc, vbc); // CHECK: or <16 x i8> 840 res_vuc = vec_vor(vuc, vuc); // CHECK: or <16 x i8> 841 res_vuc = vec_vor(vbc, vuc); // CHECK: or <16 x i8> 842 res_vuc = vec_vor(vuc, vbc); // CHECK: or <16 x i8> 843 res_vbc = vec_vor(vbc, vbc); // CHECK: or <16 x i8> 844 res_vs = vec_vor(vs, vs); // CHECK: or <8 x i16> 845 res_vs = vec_vor(vbs, vs); // CHECK: or <8 x i16> 846 res_vs = vec_vor(vs, vbs); // CHECK: or <8 x i16> 847 res_vus = vec_vor(vus, vus); // CHECK: or <8 x i16> 848 res_vus = vec_vor(vbs, vus); // CHECK: or <8 x i16> 849 res_vus = vec_vor(vus, vbs); // CHECK: or <8 x i16> 850 res_vbs = vec_vor(vbs, vbs); // CHECK: or <8 x i16> 851 res_vi = vec_vor(vi, vi); // CHECK: or <4 x i32> 852 res_vi = vec_vor(vbi, vi); // CHECK: or <4 x i32> 853 res_vi = vec_vor(vi, vbi); // CHECK: or <4 x i32> 854 res_vui = vec_vor(vui, vui); // CHECK: or <4 x i32> 855 res_vui = vec_vor(vbi, vui); // CHECK: or <4 x i32> 856 res_vui = vec_vor(vui, vbi); // CHECK: or <4 x i32> 857 res_vbi = vec_vor(vbi, vbi); // CHECK: or <4 x i32> 858 res_vf = vec_vor(vf, vf); // CHECK: or <4 x i32> 859 res_vf = vec_vor(vbi, vf); // CHECK: or <4 x i32> 860 res_vf = vec_vor(vf, vbi); // CHECK: or <4 x i32> 861 862 /* vec_pack */ 863 res_vsc = vec_pack(vs, vs); // CHECK: @llvm.ppc.altivec.vperm 864 res_vuc = vec_pack(vus, vus); // CHECK: @llvm.ppc.altivec.vperm 865 res_vbc = vec_pack(vbs, vbs); // CHECK: @llvm.ppc.altivec.vperm 866 res_vs = vec_pack(vi, vi); // CHECK: @llvm.ppc.altivec.vperm 867 res_vus = vec_pack(vui, vui); // CHECK: @llvm.ppc.altivec.vperm 868 res_vbs = vec_pack(vbi, vbi); // CHECK: @llvm.ppc.altivec.vperm 869 res_vsc = vec_vpkuhum(vs, vs); // CHECK: @llvm.ppc.altivec.vperm 870 res_vuc = vec_vpkuhum(vus, vus); // CHECK: @llvm.ppc.altivec.vperm 871 res_vbc = vec_vpkuhum(vbs, vbs); // CHECK: @llvm.ppc.altivec.vperm 872 res_vs = vec_vpkuwum(vi, vi); // CHECK: @llvm.ppc.altivec.vperm 873 res_vus = vec_vpkuwum(vui, vui); // CHECK: @llvm.ppc.altivec.vperm 874 res_vbs = vec_vpkuwum(vbi, vbi); // CHECK: @llvm.ppc.altivec.vperm 875 876 /* vec_packpx */ 877 res_vp = vec_packpx(vui, vui); // CHECK: @llvm.ppc.altivec.vpkpx 878 res_vp = vec_vpkpx(vui, vui); // CHECK: @llvm.ppc.altivec.vpkpx 879 880 /* vec_packs */ 881 res_vsc = vec_packs(vs, vs); // CHECK: @llvm.ppc.altivec.vpkshss 882 res_vuc = vec_packs(vus, vus); // CHECK: @llvm.ppc.altivec.vpkuhus 883 res_vs = vec_packs(vi, vi); // CHECK: @llvm.ppc.altivec.vpkswss 884 res_vus = vec_packs(vui, vui); // CHECK: @llvm.ppc.altivec.vpkuwus 885 res_vsc = vec_vpkshss(vs, vs); // CHECK: @llvm.ppc.altivec.vpkshss 886 res_vuc = vec_vpkuhus(vus, vus); // CHECK: @llvm.ppc.altivec.vpkuhus 887 res_vs = vec_vpkswss(vi, vi); // CHECK: @llvm.ppc.altivec.vpkswss 888 res_vus = vec_vpkuwus(vui, vui); // CHECK: @llvm.ppc.altivec.vpkuwus 889 890 /* vec_packsu */ 891 res_vuc = vec_packsu(vs, vs); // CHECK: @llvm.ppc.altivec.vpkshus 892 res_vuc = vec_packsu(vus, vus); // CHECK: @llvm.ppc.altivec.vpkuhus 893 res_vus = vec_packsu(vi, vi); // CHECK: @llvm.ppc.altivec.vpkswus 894 res_vus = vec_packsu(vui, vui); // CHECK: @llvm.ppc.altivec.vpkuwus 895 res_vuc = vec_vpkshus(vs, vs); // CHECK: @llvm.ppc.altivec.vpkshus 896 res_vuc = vec_vpkshus(vus, vus); // CHECK: @llvm.ppc.altivec.vpkuhus 897 res_vus = vec_vpkswus(vi, vi); // CHECK: @llvm.ppc.altivec.vpkswus 898 res_vus = vec_vpkswus(vui, vui); // CHECK: @llvm.ppc.altivec.vpkuwus 899 900 /* vec_perm */ 901 res_vsc = vec_perm(vsc, vsc, vuc); // CHECK: @llvm.ppc.altivec.vperm 902 res_vuc = vec_perm(vuc, vuc, vuc); // CHECK: @llvm.ppc.altivec.vperm 903 res_vbc = vec_perm(vbc, vbc, vuc); // CHECK: @llvm.ppc.altivec.vperm 904 res_vs = vec_perm(vs, vs, vuc); // CHECK: @llvm.ppc.altivec.vperm 905 res_vus = vec_perm(vus, vus, vuc); // CHECK: @llvm.ppc.altivec.vperm 906 res_vbs = vec_perm(vbs, vbs, vuc); // CHECK: @llvm.ppc.altivec.vperm 907 res_vp = vec_perm(vp, vp, vuc); // CHECK: @llvm.ppc.altivec.vperm 908 res_vi = vec_perm(vi, vi, vuc); // CHECK: @llvm.ppc.altivec.vperm 909 res_vui = vec_perm(vui, vui, vuc); // CHECK: @llvm.ppc.altivec.vperm 910 res_vbi = vec_perm(vbi, vbi, vuc); // CHECK: @llvm.ppc.altivec.vperm 911 res_vf = vec_perm(vf, vf, vuc); // CHECK: @llvm.ppc.altivec.vperm 912 res_vsc = vec_vperm(vsc, vsc, vuc); // CHECK: @llvm.ppc.altivec.vperm 913 res_vuc = vec_vperm(vuc, vuc, vuc); // CHECK: @llvm.ppc.altivec.vperm 914 res_vbc = vec_vperm(vbc, vbc, vuc); // CHECK: @llvm.ppc.altivec.vperm 915 res_vs = vec_vperm(vs, vs, vuc); // CHECK: @llvm.ppc.altivec.vperm 916 res_vus = vec_vperm(vus, vus, vuc); // CHECK: @llvm.ppc.altivec.vperm 917 res_vbs = vec_vperm(vbs, vbs, vuc); // CHECK: @llvm.ppc.altivec.vperm 918 res_vp = vec_vperm(vp, vp, vuc); // CHECK: @llvm.ppc.altivec.vperm 919 res_vi = vec_vperm(vi, vi, vuc); // CHECK: @llvm.ppc.altivec.vperm 920 res_vui = vec_vperm(vui, vui, vuc); // CHECK: @llvm.ppc.altivec.vperm 921 res_vbi = vec_vperm(vbi, vbi, vuc); // CHECK: @llvm.ppc.altivec.vperm 922 res_vf = vec_vperm(vf, vf, vuc); // CHECK: @llvm.ppc.altivec.vperm 923 924 /* vec_re */ 925 res_vf = vec_re(vf); // CHECK: @llvm.ppc.altivec.vrefp 926 res_vf = vec_vrefp(vf); // CHECK: @llvm.ppc.altivec.vrefp 927 928 /* vec_rl */ 929 res_vsc = vec_rl(vsc, vuc); // CHECK: @llvm.ppc.altivec.vrlb 930 res_vuc = vec_rl(vuc, vuc); // CHECK: @llvm.ppc.altivec.vrlb 931 res_vs = vec_rl(vs, vus); // CHECK: @llvm.ppc.altivec.vrlh 932 res_vus = vec_rl(vus, vus); // CHECK: @llvm.ppc.altivec.vrlh 933 res_vi = vec_rl(vi, vui); // CHECK: @llvm.ppc.altivec.vrlw 934 res_vui = vec_rl(vui, vui); // CHECK: @llvm.ppc.altivec.vrlw 935 res_vsc = vec_vrlb(vsc, vuc); // CHECK: @llvm.ppc.altivec.vrlb 936 res_vuc = vec_vrlb(vuc, vuc); // CHECK: @llvm.ppc.altivec.vrlb 937 res_vs = vec_vrlh(vs, vus); // CHECK: @llvm.ppc.altivec.vrlh 938 res_vus = vec_vrlh(vus, vus); // CHECK: @llvm.ppc.altivec.vrlh 939 res_vi = vec_vrlw(vi, vui); // CHECK: @llvm.ppc.altivec.vrlw 940 res_vui = vec_vrlw(vui, vui); // CHECK: @llvm.ppc.altivec.vrlw 941 942 /* vec_round */ 943 res_vf = vec_round(vf); // CHECK: @llvm.ppc.altivec.vrfin 944 res_vf = vec_vrfin(vf); // CHECK: @llvm.ppc.altivec.vrfin 945 946 /* vec_rsqrte */ 947 res_vf = vec_rsqrte(vf); // CHECK: @llvm.ppc.altivec.vrsqrtefp 948 res_vf = vec_vrsqrtefp(vf); // CHECK: @llvm.ppc.altivec.vrsqrtefp 949 950 /* vec_sel */ 951 res_vsc = vec_sel(vsc, vsc, vuc); // CHECK: xor <16 x i8> 952 // CHECK: and <16 x i8> 953 // CHECK: and <16 x i8> 954 // CHECK: or <16 x i8> 955 956 res_vsc = vec_sel(vsc, vsc, vbc); // CHECK: xor <16 x i8> 957 // CHECK: and <16 x i8> 958 // CHECK: and <16 x i8> 959 // CHECK: or <16 x i8> 960 961 res_vuc = vec_sel(vuc, vuc, vuc); // CHECK: xor <16 x i8> 962 // CHECK: and <16 x i8> 963 // CHECK: and <16 x i8> 964 // CHECK: or <16 x i8> 965 966 res_vuc = vec_sel(vuc, vuc, vbc); // CHECK: xor <16 x i8> 967 // CHECK: and <16 x i8> 968 // CHECK: and <16 x i8> 969 // CHECK: or <16 x i8> 970 971 res_vbc = vec_sel(vbc, vbc, vuc); // CHECK: xor <16 x i8> 972 // CHECK: and <16 x i8> 973 // CHECK: and <16 x i8> 974 // CHECK: or <16 x i8> 975 976 res_vbc = vec_sel(vbc, vbc, vbc); // CHECK: xor <16 x i8> 977 // CHECK: and <16 x i8> 978 // CHECK: and <16 x i8> 979 // CHECK: or <16 x i8> 980 981 res_vs = vec_sel(vs, vs, vus); // CHECK: xor <8 x i16> 982 // CHECK: and <8 x i16> 983 // CHECK: and <8 x i16> 984 // CHECK: or <8 x i16> 985 986 res_vs = vec_sel(vs, vs, vbs); // CHECK: xor <8 x i16> 987 // CHECK: and <8 x i16> 988 // CHECK: and <8 x i16> 989 // CHECK: or <8 x i16> 990 991 res_vus = vec_sel(vus, vus, vus); // CHECK: xor <8 x i16> 992 // CHECK: and <8 x i16> 993 // CHECK: and <8 x i16> 994 // CHECK: or <8 x i16> 995 996 res_vus = vec_sel(vus, vus, vbs); // CHECK: xor <8 x i16> 997 // CHECK: and <8 x i16> 998 // CHECK: and <8 x i16> 999 // CHECK: or <8 x i16> 1000 1001 res_vbs = vec_sel(vbs, vbs, vus); // CHECK: xor <8 x i16> 1002 // CHECK: and <8 x i16> 1003 // CHECK: and <8 x i16> 1004 // CHECK: or <8 x i16> 1005 1006 res_vbs = vec_sel(vbs, vbs, vbs); // CHECK: xor <8 x i16> 1007 // CHECK: and <8 x i16> 1008 // CHECK: and <8 x i16> 1009 // CHECK: or <8 x i16> 1010 1011 res_vi = vec_sel(vi, vi, vui); // CHECK: xor <4 x i32> 1012 // CHECK: and <4 x i32> 1013 // CHECK: and <4 x i32> 1014 // CHECK: or <4 x i32> 1015 1016 res_vi = vec_sel(vi, vi, vbi); // CHECK: xor <4 x i32> 1017 // CHECK: and <4 x i32> 1018 // CHECK: and <4 x i32> 1019 // CHECK: or <4 x i32> 1020 1021 res_vui = vec_sel(vui, vui, vui); // CHECK: xor <4 x i32> 1022 // CHECK: and <4 x i32> 1023 // CHECK: and <4 x i32> 1024 // CHECK: or <4 x i32> 1025 1026 res_vui = vec_sel(vui, vui, vbi); // CHECK: xor <4 x i32> 1027 // CHECK: and <4 x i32> 1028 // CHECK: and <4 x i32> 1029 // CHECK: or <4 x i32> 1030 1031 res_vbi = vec_sel(vbi, vbi, vui); // CHECK: xor <4 x i32> 1032 // CHECK: and <4 x i32> 1033 // CHECK: and <4 x i32> 1034 // CHECK: or <4 x i32> 1035 1036 res_vbi = vec_sel(vbi, vbi, vbi); // CHECK: xor <4 x i32> 1037 // CHECK: and <4 x i32> 1038 // CHECK: and <4 x i32> 1039 // CHECK: or <4 x i32> 1040 1041 res_vf = vec_sel(vf, vf, vui); // CHECK: xor <4 x i32> 1042 // CHECK: and <4 x i32> 1043 // CHECK: and <4 x i32> 1044 // CHECK: or <4 x i32> 1045 1046 res_vf = vec_sel(vf, vf, vbi); // CHECK: xor <4 x i32> 1047 // CHECK: and <4 x i32> 1048 // CHECK: and <4 x i32> 1049 // CHECK: or <4 x i32> 1050 1051 res_vsc = vec_vsel(vsc, vsc, vuc); // CHECK: xor <16 x i8> 1052 // CHECK: and <16 x i8> 1053 // CHECK: and <16 x i8> 1054 // CHECK: or <16 x i8> 1055 1056 res_vsc = vec_vsel(vsc, vsc, vbc); // CHECK: xor <16 x i8> 1057 // CHECK: and <16 x i8> 1058 // CHECK: and <16 x i8> 1059 // CHECK: or <16 x i8> 1060 1061 res_vuc = vec_vsel(vuc, vuc, vuc); // CHECK: xor <16 x i8> 1062 // CHECK: and <16 x i8> 1063 // CHECK: and <16 x i8> 1064 // CHECK: or <16 x i8> 1065 1066 res_vuc = vec_vsel(vuc, vuc, vbc); // CHECK: xor <16 x i8> 1067 // CHECK: and <16 x i8> 1068 // CHECK: and <16 x i8> 1069 // CHECK: or <16 x i8> 1070 1071 res_vbc = vec_vsel(vbc, vbc, vuc); // CHECK: xor <16 x i8> 1072 // CHECK: and <16 x i8> 1073 // CHECK: and <16 x i8> 1074 // CHECK: or <16 x i8> 1075 1076 res_vbc = vec_vsel(vbc, vbc, vbc); // CHECK: xor <16 x i8> 1077 // CHECK: and <16 x i8> 1078 // CHECK: and <16 x i8> 1079 // CHECK: or <16 x i8> 1080 1081 res_vs = vec_vsel(vs, vs, vus); // CHECK: xor <8 x i16> 1082 // CHECK: and <8 x i16> 1083 // CHECK: and <8 x i16> 1084 // CHECK: or <8 x i16> 1085 1086 res_vs = vec_vsel(vs, vs, vbs); // CHECK: xor <8 x i16> 1087 // CHECK: and <8 x i16> 1088 // CHECK: and <8 x i16> 1089 // CHECK: or <8 x i16> 1090 1091 res_vus = vec_vsel(vus, vus, vus); // CHECK: xor <8 x i16> 1092 // CHECK: and <8 x i16> 1093 // CHECK: and <8 x i16> 1094 // CHECK: or <8 x i16> 1095 1096 res_vus = vec_vsel(vus, vus, vbs); // CHECK: xor <8 x i16> 1097 // CHECK: and <8 x i16> 1098 // CHECK: and <8 x i16> 1099 // CHECK: or <8 x i16> 1100 1101 res_vbs = vec_vsel(vbs, vbs, vus); // CHECK: xor <8 x i16> 1102 // CHECK: and <8 x i16> 1103 // CHECK: and <8 x i16> 1104 // CHECK: or <8 x i16> 1105 1106 res_vbs = vec_vsel(vbs, vbs, vbs); // CHECK: xor <8 x i16> 1107 // CHECK: and <8 x i16> 1108 // CHECK: and <8 x i16> 1109 // CHECK: or <8 x i16> 1110 1111 res_vi = vec_vsel(vi, vi, vui); // CHECK: xor <4 x i32> 1112 // CHECK: and <4 x i32> 1113 // CHECK: and <4 x i32> 1114 // CHECK: or <4 x i32> 1115 1116 res_vi = vec_vsel(vi, vi, vbi); // CHECK: xor <4 x i32> 1117 // CHECK: and <4 x i32> 1118 // CHECK: and <4 x i32> 1119 // CHECK: or <4 x i32> 1120 1121 res_vui = vec_vsel(vui, vui, vui); // CHECK: xor <4 x i32> 1122 // CHECK: and <4 x i32> 1123 // CHECK: and <4 x i32> 1124 // CHECK: or <4 x i32> 1125 1126 res_vui = vec_vsel(vui, vui, vbi); // CHECK: xor <4 x i32> 1127 // CHECK: and <4 x i32> 1128 // CHECK: and <4 x i32> 1129 // CHECK: or <4 x i32> 1130 1131 res_vbi = vec_vsel(vbi, vbi, vui); // CHECK: xor <4 x i32> 1132 // CHECK: and <4 x i32> 1133 // CHECK: and <4 x i32> 1134 // CHECK: or <4 x i32> 1135 1136 res_vbi = vec_vsel(vbi, vbi, vbi); // CHECK: xor <4 x i32> 1137 // CHECK: and <4 x i32> 1138 // CHECK: and <4 x i32> 1139 // CHECK: or <4 x i32> 1140 1141 res_vf = vec_vsel(vf, vf, vui); // CHECK: xor <4 x i32> 1142 // CHECK: and <4 x i32> 1143 // CHECK: and <4 x i32> 1144 // CHECK: or <4 x i32> 1145 1146 res_vf = vec_vsel(vf, vf, vbi); // CHECK: xor <4 x i32> 1147 // CHECK: and <4 x i32> 1148 // CHECK: and <4 x i32> 1149 // CHECK: or <4 x i32> 1150 1151 /* vec_sl */ 1152 res_vsc = vec_sl(vsc, vuc); // CHECK: shl <16 x i8> 1153 res_vuc = vec_sl(vuc, vuc); // CHECK: shl <16 x i8> 1154 res_vs = vec_sl(vs, vus); // CHECK: shl <8 x i16> 1155 res_vus = vec_sl(vus, vus); // CHECK: shl <8 x i16> 1156 res_vi = vec_sl(vi, vui); // CHECK: shl <4 x i32> 1157 res_vui = vec_sl(vui, vui); // CHECK: shl <4 x i32> 1158 res_vsc = vec_vslb(vsc, vuc); // CHECK: shl <16 x i8> 1159 res_vuc = vec_vslb(vuc, vuc); // CHECK: shl <16 x i8> 1160 res_vs = vec_vslh(vs, vus); // CHECK: shl <8 x i16> 1161 res_vus = vec_vslh(vus, vus); // CHECK: shl <8 x i16> 1162 res_vi = vec_vslw(vi, vui); // CHECK: shl <4 x i32> 1163 res_vui = vec_vslw(vui, vui); // CHECK: shl <4 x i32> 1164 1165 /* vec_sld */ 1166 res_vsc = vec_sld(vsc, vsc, 0); // CHECK: @llvm.ppc.altivec.vperm 1167 res_vuc = vec_sld(vuc, vuc, 0); // CHECK: @llvm.ppc.altivec.vperm 1168 res_vs = vec_sld(vs, vs, 0); // CHECK: @llvm.ppc.altivec.vperm 1169 res_vus = vec_sld(vus, vus, 0); // CHECK: @llvm.ppc.altivec.vperm 1170 res_vp = vec_sld(vp, vp, 0); // CHECK: @llvm.ppc.altivec.vperm 1171 res_vi = vec_sld(vi, vi, 0); // CHECK: @llvm.ppc.altivec.vperm 1172 res_vui = vec_sld(vui, vui, 0); // CHECK: @llvm.ppc.altivec.vperm 1173 res_vf = vec_sld(vf, vf, 0); // CHECK: @llvm.ppc.altivec.vperm 1174 res_vsc = vec_vsldoi(vsc, vsc, 0); // CHECK: @llvm.ppc.altivec.vperm 1175 res_vuc = vec_vsldoi(vuc, vuc, 0); // CHECK: @llvm.ppc.altivec.vperm 1176 res_vs = vec_vsldoi(vs, vs, 0); // CHECK: @llvm.ppc.altivec.vperm 1177 res_vus = vec_vsldoi(vus, vus, 0); // CHECK: @llvm.ppc.altivec.vperm 1178 res_vp = vec_vsldoi(vp, vp, 0); // CHECK: @llvm.ppc.altivec.vperm 1179 res_vi = vec_vsldoi(vi, vi, 0); // CHECK: @llvm.ppc.altivec.vperm 1180 res_vui = vec_vsldoi(vui, vui, 0); // CHECK: @llvm.ppc.altivec.vperm 1181 res_vf = vec_vsldoi(vf, vf, 0); // CHECK: @llvm.ppc.altivec.vperm 1182 1183 /* vec_sll */ 1184 res_vsc = vec_sll(vsc, vuc); // CHECK: @llvm.ppc.altivec.vsl 1185 res_vsc = vec_sll(vsc, vus); // CHECK: @llvm.ppc.altivec.vsl 1186 res_vsc = vec_sll(vsc, vui); // CHECK: @llvm.ppc.altivec.vsl 1187 res_vuc = vec_sll(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsl 1188 res_vuc = vec_sll(vuc, vus); // CHECK: @llvm.ppc.altivec.vsl 1189 res_vuc = vec_sll(vuc, vui); // CHECK: @llvm.ppc.altivec.vsl 1190 res_vbc = vec_sll(vbc, vuc); // CHECK: @llvm.ppc.altivec.vsl 1191 res_vbc = vec_sll(vbc, vus); // CHECK: @llvm.ppc.altivec.vsl 1192 res_vbc = vec_sll(vbc, vui); // CHECK: @llvm.ppc.altivec.vsl 1193 res_vs = vec_sll(vs, vuc); // CHECK: @llvm.ppc.altivec.vsl 1194 res_vs = vec_sll(vs, vus); // CHECK: @llvm.ppc.altivec.vsl 1195 res_vs = vec_sll(vs, vui); // CHECK: @llvm.ppc.altivec.vsl 1196 res_vus = vec_sll(vus, vuc); // CHECK: @llvm.ppc.altivec.vsl 1197 res_vus = vec_sll(vus, vus); // CHECK: @llvm.ppc.altivec.vsl 1198 res_vus = vec_sll(vus, vui); // CHECK: @llvm.ppc.altivec.vsl 1199 res_vbs = vec_sll(vbs, vuc); // CHECK: @llvm.ppc.altivec.vsl 1200 res_vbs = vec_sll(vbs, vus); // CHECK: @llvm.ppc.altivec.vsl 1201 res_vbs = vec_sll(vbs, vui); // CHECK: @llvm.ppc.altivec.vsl 1202 res_vp = vec_sll(vp, vuc); // CHECK: @llvm.ppc.altivec.vsl 1203 res_vp = vec_sll(vp, vus); // CHECK: @llvm.ppc.altivec.vsl 1204 res_vp = vec_sll(vp, vui); // CHECK: @llvm.ppc.altivec.vsl 1205 res_vi = vec_sll(vi, vuc); // CHECK: @llvm.ppc.altivec.vsl 1206 res_vi = vec_sll(vi, vus); // CHECK: @llvm.ppc.altivec.vsl 1207 res_vi = vec_sll(vi, vui); // CHECK: @llvm.ppc.altivec.vsl 1208 res_vui = vec_sll(vui, vuc); // CHECK: @llvm.ppc.altivec.vsl 1209 res_vui = vec_sll(vui, vus); // CHECK: @llvm.ppc.altivec.vsl 1210 res_vui = vec_sll(vui, vui); // CHECK: @llvm.ppc.altivec.vsl 1211 res_vbi = vec_sll(vbi, vuc); // CHECK: @llvm.ppc.altivec.vsl 1212 res_vbi = vec_sll(vbi, vus); // CHECK: @llvm.ppc.altivec.vsl 1213 res_vbi = vec_sll(vbi, vui); // CHECK: @llvm.ppc.altivec.vsl 1214 res_vsc = vec_vsl(vsc, vuc); // CHECK: @llvm.ppc.altivec.vsl 1215 res_vsc = vec_vsl(vsc, vus); // CHECK: @llvm.ppc.altivec.vsl 1216 res_vsc = vec_vsl(vsc, vui); // CHECK: @llvm.ppc.altivec.vsl 1217 res_vuc = vec_vsl(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsl 1218 res_vuc = vec_vsl(vuc, vus); // CHECK: @llvm.ppc.altivec.vsl 1219 res_vuc = vec_vsl(vuc, vui); // CHECK: @llvm.ppc.altivec.vsl 1220 res_vbc = vec_vsl(vbc, vuc); // CHECK: @llvm.ppc.altivec.vsl 1221 res_vbc = vec_vsl(vbc, vus); // CHECK: @llvm.ppc.altivec.vsl 1222 res_vbc = vec_vsl(vbc, vui); // CHECK: @llvm.ppc.altivec.vsl 1223 res_vs = vec_vsl(vs, vuc); // CHECK: @llvm.ppc.altivec.vsl 1224 res_vs = vec_vsl(vs, vus); // CHECK: @llvm.ppc.altivec.vsl 1225 res_vs = vec_vsl(vs, vui); // CHECK: @llvm.ppc.altivec.vsl 1226 res_vus = vec_vsl(vus, vuc); // CHECK: @llvm.ppc.altivec.vsl 1227 res_vus = vec_vsl(vus, vus); // CHECK: @llvm.ppc.altivec.vsl 1228 res_vus = vec_vsl(vus, vui); // CHECK: @llvm.ppc.altivec.vsl 1229 res_vbs = vec_vsl(vbs, vuc); // CHECK: @llvm.ppc.altivec.vsl 1230 res_vbs = vec_vsl(vbs, vus); // CHECK: @llvm.ppc.altivec.vsl 1231 res_vbs = vec_vsl(vbs, vui); // CHECK: @llvm.ppc.altivec.vsl 1232 res_vp = vec_vsl(vp, vuc); // CHECK: @llvm.ppc.altivec.vsl 1233 res_vp = vec_vsl(vp, vus); // CHECK: @llvm.ppc.altivec.vsl 1234 res_vp = vec_vsl(vp, vui); // CHECK: @llvm.ppc.altivec.vsl 1235 res_vi = vec_vsl(vi, vuc); // CHECK: @llvm.ppc.altivec.vsl 1236 res_vi = vec_vsl(vi, vus); // CHECK: @llvm.ppc.altivec.vsl 1237 res_vi = vec_vsl(vi, vui); // CHECK: @llvm.ppc.altivec.vsl 1238 res_vui = vec_vsl(vui, vuc); // CHECK: @llvm.ppc.altivec.vsl 1239 res_vui = vec_vsl(vui, vus); // CHECK: @llvm.ppc.altivec.vsl 1240 res_vui = vec_vsl(vui, vui); // CHECK: @llvm.ppc.altivec.vsl 1241 res_vbi = vec_vsl(vbi, vuc); // CHECK: @llvm.ppc.altivec.vsl 1242 res_vbi = vec_vsl(vbi, vus); // CHECK: @llvm.ppc.altivec.vsl 1243 res_vbi = vec_vsl(vbi, vui); // CHECK: @llvm.ppc.altivec.vsl 1244 1245 /* vec_slo */ 1246 res_vsc = vec_slo(vsc, vsc); // CHECK: @llvm.ppc.altivec.vslo 1247 res_vsc = vec_slo(vsc, vuc); // CHECK: @llvm.ppc.altivec.vslo 1248 res_vuc = vec_slo(vuc, vsc); // CHECK: @llvm.ppc.altivec.vslo 1249 res_vuc = vec_slo(vuc, vuc); // CHECK: @llvm.ppc.altivec.vslo 1250 res_vs = vec_slo(vs, vsc); // CHECK: @llvm.ppc.altivec.vslo 1251 res_vs = vec_slo(vs, vuc); // CHECK: @llvm.ppc.altivec.vslo 1252 res_vus = vec_slo(vus, vsc); // CHECK: @llvm.ppc.altivec.vslo 1253 res_vus = vec_slo(vus, vuc); // CHECK: @llvm.ppc.altivec.vslo 1254 res_vp = vec_slo(vp, vsc); // CHECK: @llvm.ppc.altivec.vslo 1255 res_vp = vec_slo(vp, vuc); // CHECK: @llvm.ppc.altivec.vslo 1256 res_vi = vec_slo(vi, vsc); // CHECK: @llvm.ppc.altivec.vslo 1257 res_vi = vec_slo(vi, vuc); // CHECK: @llvm.ppc.altivec.vslo 1258 res_vui = vec_slo(vui, vsc); // CHECK: @llvm.ppc.altivec.vslo 1259 res_vui = vec_slo(vui, vuc); // CHECK: @llvm.ppc.altivec.vslo 1260 res_vf = vec_slo(vf, vsc); // CHECK: @llvm.ppc.altivec.vslo 1261 res_vf = vec_slo(vf, vuc); // CHECK: @llvm.ppc.altivec.vslo 1262 res_vsc = vec_vslo(vsc, vsc); // CHECK: @llvm.ppc.altivec.vslo 1263 res_vsc = vec_vslo(vsc, vuc); // CHECK: @llvm.ppc.altivec.vslo 1264 res_vuc = vec_vslo(vuc, vsc); // CHECK: @llvm.ppc.altivec.vslo 1265 res_vuc = vec_vslo(vuc, vuc); // CHECK: @llvm.ppc.altivec.vslo 1266 res_vs = vec_vslo(vs, vsc); // CHECK: @llvm.ppc.altivec.vslo 1267 res_vs = vec_vslo(vs, vuc); // CHECK: @llvm.ppc.altivec.vslo 1268 res_vus = vec_vslo(vus, vsc); // CHECK: @llvm.ppc.altivec.vslo 1269 res_vus = vec_vslo(vus, vuc); // CHECK: @llvm.ppc.altivec.vslo 1270 res_vp = vec_vslo(vp, vsc); // CHECK: @llvm.ppc.altivec.vslo 1271 res_vp = vec_vslo(vp, vuc); // CHECK: @llvm.ppc.altivec.vslo 1272 res_vi = vec_vslo(vi, vsc); // CHECK: @llvm.ppc.altivec.vslo 1273 res_vi = vec_vslo(vi, vuc); // CHECK: @llvm.ppc.altivec.vslo 1274 res_vui = vec_vslo(vui, vsc); // CHECK: @llvm.ppc.altivec.vslo 1275 res_vui = vec_vslo(vui, vuc); // CHECK: @llvm.ppc.altivec.vslo 1276 res_vf = vec_vslo(vf, vsc); // CHECK: @llvm.ppc.altivec.vslo 1277 res_vf = vec_vslo(vf, vuc); // CHECK: @llvm.ppc.altivec.vslo 1278 1279 /* vec_splat */ 1280 res_vsc = vec_splat(vsc, 0); // CHECK: @llvm.ppc.altivec.vperm 1281 res_vuc = vec_splat(vuc, 0); // CHECK: @llvm.ppc.altivec.vperm 1282 res_vbc = vec_splat(vbc, 0); // CHECK: @llvm.ppc.altivec.vperm 1283 res_vs = vec_splat(vs, 0); // CHECK: @llvm.ppc.altivec.vperm 1284 res_vus = vec_splat(vus, 0); // CHECK: @llvm.ppc.altivec.vperm 1285 res_vbs = vec_splat(vbs, 0); // CHECK: @llvm.ppc.altivec.vperm 1286 res_vp = vec_splat(vp, 0); // CHECK: @llvm.ppc.altivec.vperm 1287 res_vi = vec_splat(vi, 0); // CHECK: @llvm.ppc.altivec.vperm 1288 res_vui = vec_splat(vui, 0); // CHECK: @llvm.ppc.altivec.vperm 1289 res_vbi = vec_splat(vbi, 0); // CHECK: @llvm.ppc.altivec.vperm 1290 res_vf = vec_splat(vf, 0); // CHECK: @llvm.ppc.altivec.vperm 1291 res_vsc = vec_vspltb(vsc, 0); // CHECK: @llvm.ppc.altivec.vperm 1292 res_vuc = vec_vspltb(vuc, 0); // CHECK: @llvm.ppc.altivec.vperm 1293 res_vbc = vec_vspltb(vbc, 0); // CHECK: @llvm.ppc.altivec.vperm 1294 res_vs = vec_vsplth(vs, 0); // CHECK: @llvm.ppc.altivec.vperm 1295 res_vus = vec_vsplth(vus, 0); // CHECK: @llvm.ppc.altivec.vperm 1296 res_vbs = vec_vsplth(vbs, 0); // CHECK: @llvm.ppc.altivec.vperm 1297 res_vp = vec_vsplth(vp, 0); // CHECK: @llvm.ppc.altivec.vperm 1298 res_vi = vec_vspltw(vi, 0); // CHECK: @llvm.ppc.altivec.vperm 1299 res_vui = vec_vspltw(vui, 0); // CHECK: @llvm.ppc.altivec.vperm 1300 res_vbi = vec_vspltw(vbi, 0); // CHECK: @llvm.ppc.altivec.vperm 1301 res_vf = vec_vspltw(vf, 0); // CHECK: @llvm.ppc.altivec.vperm 1302 1303 /* vec_splat_s8 */ 1304 res_vsc = vec_splat_s8(0x09); // TODO: add check 1305 res_vsc = vec_vspltisb(0x09); // TODO: add check 1306 1307 /* vec_splat_s16 */ 1308 res_vs = vec_splat_s16(0x09); // TODO: add check 1309 res_vs = vec_vspltish(0x09); // TODO: add check 1310 1311 /* vec_splat_s32 */ 1312 res_vi = vec_splat_s32(0x09); // TODO: add check 1313 res_vi = vec_vspltisw(0x09); // TODO: add check 1314 1315 /* vec_splat_u8 */ 1316 res_vuc = vec_splat_u8(0x09); // TODO: add check 1317 1318 /* vec_splat_u16 */ 1319 res_vus = vec_splat_u16(0x09); // TODO: add check 1320 1321 /* vec_splat_u32 */ 1322 res_vui = vec_splat_u32(0x09); // TODO: add check 1323 1324 /* vec_sr */ 1325 res_vsc = vec_sr(vsc, vuc); // CHECK: shr <16 x i8> 1326 res_vuc = vec_sr(vuc, vuc); // CHECK: shr <16 x i8> 1327 res_vs = vec_sr(vs, vus); // CHECK: shr <8 x i16> 1328 res_vus = vec_sr(vus, vus); // CHECK: shr <8 x i16> 1329 res_vi = vec_sr(vi, vui); // CHECK: shr <4 x i32> 1330 res_vui = vec_sr(vui, vui); // CHECK: shr <4 x i32> 1331 res_vsc = vec_vsrb(vsc, vuc); // CHECK: shr <16 x i8> 1332 res_vuc = vec_vsrb(vuc, vuc); // CHECK: shr <16 x i8> 1333 res_vs = vec_vsrh(vs, vus); // CHECK: shr <8 x i16> 1334 res_vus = vec_vsrh(vus, vus); // CHECK: shr <8 x i16> 1335 res_vi = vec_vsrw(vi, vui); // CHECK: shr <4 x i32> 1336 res_vui = vec_vsrw(vui, vui); // CHECK: shr <4 x i32> 1337 1338 /* vec_sra */ 1339 res_vsc = vec_sra(vsc, vuc); // CHECK: @llvm.ppc.altivec.vsrab 1340 res_vuc = vec_sra(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsrab 1341 res_vs = vec_sra(vs, vus); // CHECK: @llvm.ppc.altivec.vsrah 1342 res_vus = vec_sra(vus, vus); // CHECK: @llvm.ppc.altivec.vsrah 1343 res_vi = vec_sra(vi, vui); // CHECK: @llvm.ppc.altivec.vsraw 1344 res_vui = vec_sra(vui, vui); // CHECK: @llvm.ppc.altivec.vsraw 1345 res_vsc = vec_vsrab(vsc, vuc); // CHECK: @llvm.ppc.altivec.vsrab 1346 res_vuc = vec_vsrab(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsrab 1347 res_vs = vec_vsrah(vs, vus); // CHECK: @llvm.ppc.altivec.vsrah 1348 res_vus = vec_vsrah(vus, vus); // CHECK: @llvm.ppc.altivec.vsrah 1349 res_vi = vec_vsraw(vi, vui); // CHECK: @llvm.ppc.altivec.vsraw 1350 res_vui = vec_vsraw(vui, vui); // CHECK: @llvm.ppc.altivec.vsraw 1351 1352 /* vec_srl */ 1353 res_vsc = vec_srl(vsc, vuc); // CHECK: @llvm.ppc.altivec.vsr 1354 res_vsc = vec_srl(vsc, vus); // CHECK: @llvm.ppc.altivec.vsr 1355 res_vsc = vec_srl(vsc, vui); // CHECK: @llvm.ppc.altivec.vsr 1356 res_vuc = vec_srl(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsr 1357 res_vuc = vec_srl(vuc, vus); // CHECK: @llvm.ppc.altivec.vsr 1358 res_vuc = vec_srl(vuc, vui); // CHECK: @llvm.ppc.altivec.vsr 1359 res_vbc = vec_srl(vbc, vuc); // CHECK: @llvm.ppc.altivec.vsr 1360 res_vbc = vec_srl(vbc, vus); // CHECK: @llvm.ppc.altivec.vsr 1361 res_vbc = vec_srl(vbc, vui); // CHECK: @llvm.ppc.altivec.vsr 1362 res_vs = vec_srl(vs, vuc); // CHECK: @llvm.ppc.altivec.vsr 1363 res_vs = vec_srl(vs, vus); // CHECK: @llvm.ppc.altivec.vsr 1364 res_vs = vec_srl(vs, vui); // CHECK: @llvm.ppc.altivec.vsr 1365 res_vus = vec_srl(vus, vuc); // CHECK: @llvm.ppc.altivec.vsr 1366 res_vus = vec_srl(vus, vus); // CHECK: @llvm.ppc.altivec.vsr 1367 res_vus = vec_srl(vus, vui); // CHECK: @llvm.ppc.altivec.vsr 1368 res_vbs = vec_srl(vbs, vuc); // CHECK: @llvm.ppc.altivec.vsr 1369 res_vbs = vec_srl(vbs, vus); // CHECK: @llvm.ppc.altivec.vsr 1370 res_vbs = vec_srl(vbs, vui); // CHECK: @llvm.ppc.altivec.vsr 1371 res_vp = vec_srl(vp, vuc); // CHECK: @llvm.ppc.altivec.vsr 1372 res_vp = vec_srl(vp, vus); // CHECK: @llvm.ppc.altivec.vsr 1373 res_vp = vec_srl(vp, vui); // CHECK: @llvm.ppc.altivec.vsr 1374 res_vi = vec_srl(vi, vuc); // CHECK: @llvm.ppc.altivec.vsr 1375 res_vi = vec_srl(vi, vus); // CHECK: @llvm.ppc.altivec.vsr 1376 res_vi = vec_srl(vi, vui); // CHECK: @llvm.ppc.altivec.vsr 1377 res_vui = vec_srl(vui, vuc); // CHECK: @llvm.ppc.altivec.vsr 1378 res_vui = vec_srl(vui, vus); // CHECK: @llvm.ppc.altivec.vsr 1379 res_vui = vec_srl(vui, vui); // CHECK: @llvm.ppc.altivec.vsr 1380 res_vbi = vec_srl(vbi, vuc); // CHECK: @llvm.ppc.altivec.vsr 1381 res_vbi = vec_srl(vbi, vus); // CHECK: @llvm.ppc.altivec.vsr 1382 res_vbi = vec_srl(vbi, vui); // CHECK: @llvm.ppc.altivec.vsr 1383 res_vsc = vec_vsr(vsc, vuc); // CHECK: @llvm.ppc.altivec.vsr 1384 res_vsc = vec_vsr(vsc, vus); // CHECK: @llvm.ppc.altivec.vsr 1385 res_vsc = vec_vsr(vsc, vui); // CHECK: @llvm.ppc.altivec.vsr 1386 res_vuc = vec_vsr(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsr 1387 res_vuc = vec_vsr(vuc, vus); // CHECK: @llvm.ppc.altivec.vsr 1388 res_vuc = vec_vsr(vuc, vui); // CHECK: @llvm.ppc.altivec.vsr 1389 res_vbc = vec_vsr(vbc, vuc); // CHECK: @llvm.ppc.altivec.vsr 1390 res_vbc = vec_vsr(vbc, vus); // CHECK: @llvm.ppc.altivec.vsr 1391 res_vbc = vec_vsr(vbc, vui); // CHECK: @llvm.ppc.altivec.vsr 1392 res_vs = vec_vsr(vs, vuc); // CHECK: @llvm.ppc.altivec.vsr 1393 res_vs = vec_vsr(vs, vus); // CHECK: @llvm.ppc.altivec.vsr 1394 res_vs = vec_vsr(vs, vui); // CHECK: @llvm.ppc.altivec.vsr 1395 res_vus = vec_vsr(vus, vuc); // CHECK: @llvm.ppc.altivec.vsr 1396 res_vus = vec_vsr(vus, vus); // CHECK: @llvm.ppc.altivec.vsr 1397 res_vus = vec_vsr(vus, vui); // CHECK: @llvm.ppc.altivec.vsr 1398 res_vbs = vec_vsr(vbs, vuc); // CHECK: @llvm.ppc.altivec.vsr 1399 res_vbs = vec_vsr(vbs, vus); // CHECK: @llvm.ppc.altivec.vsr 1400 res_vbs = vec_vsr(vbs, vui); // CHECK: @llvm.ppc.altivec.vsr 1401 res_vp = vec_vsr(vp, vuc); // CHECK: @llvm.ppc.altivec.vsr 1402 res_vp = vec_vsr(vp, vus); // CHECK: @llvm.ppc.altivec.vsr 1403 res_vp = vec_vsr(vp, vui); // CHECK: @llvm.ppc.altivec.vsr 1404 res_vi = vec_vsr(vi, vuc); // CHECK: @llvm.ppc.altivec.vsr 1405 res_vi = vec_vsr(vi, vus); // CHECK: @llvm.ppc.altivec.vsr 1406 res_vi = vec_vsr(vi, vui); // CHECK: @llvm.ppc.altivec.vsr 1407 res_vui = vec_vsr(vui, vuc); // CHECK: @llvm.ppc.altivec.vsr 1408 res_vui = vec_vsr(vui, vus); // CHECK: @llvm.ppc.altivec.vsr 1409 res_vui = vec_vsr(vui, vui); // CHECK: @llvm.ppc.altivec.vsr 1410 res_vbi = vec_vsr(vbi, vuc); // CHECK: @llvm.ppc.altivec.vsr 1411 res_vbi = vec_vsr(vbi, vus); // CHECK: @llvm.ppc.altivec.vsr 1412 res_vbi = vec_vsr(vbi, vui); // CHECK: @llvm.ppc.altivec.vsr 1413 1414 /* vec_sro */ 1415 res_vsc = vec_sro(vsc, vsc); // CHECK: @llvm.ppc.altivec.vsro 1416 res_vsc = vec_sro(vsc, vuc); // CHECK: @llvm.ppc.altivec.vsro 1417 res_vuc = vec_sro(vuc, vsc); // CHECK: @llvm.ppc.altivec.vsro 1418 res_vuc = vec_sro(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsro 1419 res_vs = vec_sro(vs, vsc); // CHECK: @llvm.ppc.altivec.vsro 1420 res_vs = vec_sro(vs, vuc); // CHECK: @llvm.ppc.altivec.vsro 1421 res_vus = vec_sro(vus, vsc); // CHECK: @llvm.ppc.altivec.vsro 1422 res_vus = vec_sro(vus, vuc); // CHECK: @llvm.ppc.altivec.vsro 1423 res_vp = vec_sro(vp, vsc); // CHECK: @llvm.ppc.altivec.vsro 1424 res_vp = vec_sro(vp, vuc); // CHECK: @llvm.ppc.altivec.vsro 1425 res_vi = vec_sro(vi, vsc); // CHECK: @llvm.ppc.altivec.vsro 1426 res_vi = vec_sro(vi, vuc); // CHECK: @llvm.ppc.altivec.vsro 1427 res_vui = vec_sro(vui, vsc); // CHECK: @llvm.ppc.altivec.vsro 1428 res_vui = vec_sro(vui, vuc); // CHECK: @llvm.ppc.altivec.vsro 1429 res_vf = vec_sro(vf, vsc); // CHECK: @llvm.ppc.altivec.vsro 1430 res_vf = vec_sro(vf, vuc); // CHECK: @llvm.ppc.altivec.vsro 1431 res_vsc = vec_vsro(vsc, vsc); // CHECK: @llvm.ppc.altivec.vsro 1432 res_vsc = vec_vsro(vsc, vuc); // CHECK: @llvm.ppc.altivec.vsro 1433 res_vuc = vec_vsro(vuc, vsc); // CHECK: @llvm.ppc.altivec.vsro 1434 res_vuc = vec_vsro(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsro 1435 res_vs = vec_vsro(vs, vsc); // CHECK: @llvm.ppc.altivec.vsro 1436 res_vs = vec_vsro(vs, vuc); // CHECK: @llvm.ppc.altivec.vsro 1437 res_vus = vec_vsro(vus, vsc); // CHECK: @llvm.ppc.altivec.vsro 1438 res_vus = vec_vsro(vus, vuc); // CHECK: @llvm.ppc.altivec.vsro 1439 res_vp = vec_vsro(vp, vsc); // CHECK: @llvm.ppc.altivec.vsro 1440 res_vp = vec_vsro(vp, vuc); // CHECK: @llvm.ppc.altivec.vsro 1441 res_vi = vec_vsro(vi, vsc); // CHECK: @llvm.ppc.altivec.vsro 1442 res_vi = vec_vsro(vi, vuc); // CHECK: @llvm.ppc.altivec.vsro 1443 res_vui = vec_vsro(vui, vsc); // CHECK: @llvm.ppc.altivec.vsro 1444 res_vui = vec_vsro(vui, vuc); // CHECK: @llvm.ppc.altivec.vsro 1445 res_vf = vec_vsro(vf, vsc); // CHECK: @llvm.ppc.altivec.vsro 1446 res_vf = vec_vsro(vf, vuc); // CHECK: @llvm.ppc.altivec.vsro 1447 1448 /* vec_st */ 1449 vec_st(vsc, 0, &vsc); // CHECK: @llvm.ppc.altivec.stvx 1450 vec_st(vsc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvx 1451 vec_st(vuc, 0, &vuc); // CHECK: @llvm.ppc.altivec.stvx 1452 vec_st(vuc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvx 1453 vec_st(vbc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvx 1454 vec_st(vbc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvx 1455 vec_st(vbc, 0, &vbc); // CHECK: @llvm.ppc.altivec.stvx 1456 vec_st(vs, 0, &vs); // CHECK: @llvm.ppc.altivec.stvx 1457 vec_st(vs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvx 1458 vec_st(vus, 0, &vus); // CHECK: @llvm.ppc.altivec.stvx 1459 vec_st(vus, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvx 1460 vec_st(vbs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvx 1461 vec_st(vbs, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvx 1462 vec_st(vbs, 0, &vbs); // CHECK: @llvm.ppc.altivec.stvx 1463 vec_st(vp, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvx 1464 vec_st(vp, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvx 1465 vec_st(vp, 0, &vp); // CHECK: @llvm.ppc.altivec.stvx 1466 vec_st(vi, 0, &vi); // CHECK: @llvm.ppc.altivec.stvx 1467 vec_st(vi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvx 1468 vec_st(vui, 0, &vui); // CHECK: @llvm.ppc.altivec.stvx 1469 vec_st(vui, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvx 1470 vec_st(vbi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvx 1471 vec_st(vbi, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvx 1472 vec_st(vbi, 0, &vbi); // CHECK: @llvm.ppc.altivec.stvx 1473 vec_st(vf, 0, &vf); // CHECK: @llvm.ppc.altivec.stvx 1474 vec_st(vf, 0, ¶m_f); // CHECK: @llvm.ppc.altivec.stvx 1475 vec_stvx(vsc, 0, &vsc); // CHECK: @llvm.ppc.altivec.stvx 1476 vec_stvx(vsc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvx 1477 vec_stvx(vuc, 0, &vuc); // CHECK: @llvm.ppc.altivec.stvx 1478 vec_stvx(vuc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvx 1479 vec_stvx(vbc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvx 1480 vec_stvx(vbc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvx 1481 vec_stvx(vbc, 0, &vbc); // CHECK: @llvm.ppc.altivec.stvx 1482 vec_stvx(vs, 0, &vs); // CHECK: @llvm.ppc.altivec.stvx 1483 vec_stvx(vs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvx 1484 vec_stvx(vus, 0, &vus); // CHECK: @llvm.ppc.altivec.stvx 1485 vec_stvx(vus, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvx 1486 vec_stvx(vbs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvx 1487 vec_stvx(vbs, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvx 1488 vec_stvx(vbs, 0, &vbs); // CHECK: @llvm.ppc.altivec.stvx 1489 vec_stvx(vp, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvx 1490 vec_stvx(vp, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvx 1491 vec_stvx(vp, 0, &vp); // CHECK: @llvm.ppc.altivec.stvx 1492 vec_stvx(vi, 0, &vi); // CHECK: @llvm.ppc.altivec.stvx 1493 vec_stvx(vi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvx 1494 vec_stvx(vui, 0, &vui); // CHECK: @llvm.ppc.altivec.stvx 1495 vec_stvx(vui, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvx 1496 vec_stvx(vbi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvx 1497 vec_stvx(vbi, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvx 1498 vec_stvx(vbi, 0, &vbi); // CHECK: @llvm.ppc.altivec.stvx 1499 vec_stvx(vf, 0, &vf); // CHECK: @llvm.ppc.altivec.stvx 1500 vec_stvx(vf, 0, ¶m_f); // CHECK: @llvm.ppc.altivec.stvx 1501 1502 /* vec_ste */ 1503 vec_ste(vsc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvebx 1504 vec_ste(vuc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvebx 1505 vec_ste(vbc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvebx 1506 vec_ste(vbc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvebx 1507 vec_ste(vs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvehx 1508 vec_ste(vus, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvehx 1509 vec_ste(vbs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvehx 1510 vec_ste(vbs, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvehx 1511 vec_ste(vp, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvehx 1512 vec_ste(vp, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvehx 1513 vec_ste(vi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvewx 1514 vec_ste(vui, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvewx 1515 vec_ste(vbi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvewx 1516 vec_ste(vbi, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvewx 1517 vec_ste(vf, 0, ¶m_f); // CHECK: @llvm.ppc.altivec.stvewx 1518 vec_stvebx(vsc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvebx 1519 vec_stvebx(vuc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvebx 1520 vec_stvebx(vbc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvebx 1521 vec_stvebx(vbc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvebx 1522 vec_stvehx(vs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvehx 1523 vec_stvehx(vus, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvehx 1524 vec_stvehx(vbs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvehx 1525 vec_stvehx(vbs, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvehx 1526 vec_stvehx(vp, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvehx 1527 vec_stvehx(vp, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvehx 1528 vec_stvewx(vi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvewx 1529 vec_stvewx(vui, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvewx 1530 vec_stvewx(vbi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvewx 1531 vec_stvewx(vbi, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvewx 1532 vec_stvewx(vf, 0, ¶m_f); // CHECK: @llvm.ppc.altivec.stvewx 1533 1534 /* vec_stl */ 1535 vec_stl(vsc, 0, &vsc); // CHECK: @llvm.ppc.altivec.stvxl 1536 vec_stl(vsc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvxl 1537 vec_stl(vuc, 0, &vuc); // CHECK: @llvm.ppc.altivec.stvxl 1538 vec_stl(vuc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvxl 1539 vec_stl(vbc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvxl 1540 vec_stl(vbc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvxl 1541 vec_stl(vbc, 0, &vbc); // CHECK: @llvm.ppc.altivec.stvxl 1542 vec_stl(vs, 0, &vs); // CHECK: @llvm.ppc.altivec.stvxl 1543 vec_stl(vs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvxl 1544 vec_stl(vus, 0, &vus); // CHECK: @llvm.ppc.altivec.stvxl 1545 vec_stl(vus, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvxl 1546 vec_stl(vbs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvxl 1547 vec_stl(vbs, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvxl 1548 vec_stl(vbs, 0, &vbs); // CHECK: @llvm.ppc.altivec.stvxl 1549 vec_stl(vp, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvxl 1550 vec_stl(vp, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvxl 1551 vec_stl(vp, 0, &vp); // CHECK: @llvm.ppc.altivec.stvxl 1552 vec_stl(vi, 0, &vi); // CHECK: @llvm.ppc.altivec.stvxl 1553 vec_stl(vi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvxl 1554 vec_stl(vui, 0, &vui); // CHECK: @llvm.ppc.altivec.stvxl 1555 vec_stl(vui, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvxl 1556 vec_stl(vbi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvxl 1557 vec_stl(vbi, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvxl 1558 vec_stl(vbi, 0, &vbi); // CHECK: @llvm.ppc.altivec.stvxl 1559 vec_stl(vf, 0, &vf); // CHECK: @llvm.ppc.altivec.stvxl 1560 vec_stl(vf, 0, ¶m_f); // CHECK: @llvm.ppc.altivec.stvxl 1561 vec_stvxl(vsc, 0, &vsc); // CHECK: @llvm.ppc.altivec.stvxl 1562 vec_stvxl(vsc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvxl 1563 vec_stvxl(vuc, 0, &vuc); // CHECK: @llvm.ppc.altivec.stvxl 1564 vec_stvxl(vuc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvxl 1565 vec_stvxl(vbc, 0, ¶m_sc); // CHECK: @llvm.ppc.altivec.stvxl 1566 vec_stvxl(vbc, 0, ¶m_uc); // CHECK: @llvm.ppc.altivec.stvxl 1567 vec_stvxl(vbc, 0, &vbc); // CHECK: @llvm.ppc.altivec.stvxl 1568 vec_stvxl(vs, 0, &vs); // CHECK: @llvm.ppc.altivec.stvxl 1569 vec_stvxl(vs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvxl 1570 vec_stvxl(vus, 0, &vus); // CHECK: @llvm.ppc.altivec.stvxl 1571 vec_stvxl(vus, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvxl 1572 vec_stvxl(vbs, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvxl 1573 vec_stvxl(vbs, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvxl 1574 vec_stvxl(vbs, 0, &vbs); // CHECK: @llvm.ppc.altivec.stvxl 1575 vec_stvxl(vp, 0, ¶m_s); // CHECK: @llvm.ppc.altivec.stvxl 1576 vec_stvxl(vp, 0, ¶m_us); // CHECK: @llvm.ppc.altivec.stvxl 1577 vec_stvxl(vp, 0, &vp); // CHECK: @llvm.ppc.altivec.stvxl 1578 vec_stvxl(vi, 0, &vi); // CHECK: @llvm.ppc.altivec.stvxl 1579 vec_stvxl(vi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvxl 1580 vec_stvxl(vui, 0, &vui); // CHECK: @llvm.ppc.altivec.stvxl 1581 vec_stvxl(vui, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvxl 1582 vec_stvxl(vbi, 0, ¶m_i); // CHECK: @llvm.ppc.altivec.stvxl 1583 vec_stvxl(vbi, 0, ¶m_ui); // CHECK: @llvm.ppc.altivec.stvxl 1584 vec_stvxl(vbi, 0, &vbi); // CHECK: @llvm.ppc.altivec.stvxl 1585 vec_stvxl(vf, 0, &vf); // CHECK: @llvm.ppc.altivec.stvxl 1586 vec_stvxl(vf, 0, ¶m_f); // CHECK: @llvm.ppc.altivec.stvxl 1587 1588 /* vec_sub */ 1589 res_vsc = vec_sub(vsc, vsc); // CHECK: sub nsw <16 x i8> 1590 res_vsc = vec_sub(vbc, vsc); // CHECK: sub nsw <16 x i8> 1591 res_vsc = vec_sub(vsc, vbc); // CHECK: sub nsw <16 x i8> 1592 res_vuc = vec_sub(vuc, vuc); // CHECK: sub <16 x i8> 1593 res_vuc = vec_sub(vbc, vuc); // CHECK: sub <16 x i8> 1594 res_vuc = vec_sub(vuc, vbc); // CHECK: sub <16 x i8> 1595 res_vs = vec_sub(vs, vs); // CHECK: sub nsw <8 x i16> 1596 res_vs = vec_sub(vbs, vs); // CHECK: sub nsw <8 x i16> 1597 res_vs = vec_sub(vs, vbs); // CHECK: sub nsw <8 x i16> 1598 res_vus = vec_sub(vus, vus); // CHECK: sub <8 x i16> 1599 res_vus = vec_sub(vbs, vus); // CHECK: sub <8 x i16> 1600 res_vus = vec_sub(vus, vbs); // CHECK: sub <8 x i16> 1601 res_vi = vec_sub(vi, vi); // CHECK: sub nsw <4 x i32> 1602 res_vi = vec_sub(vbi, vi); // CHECK: sub nsw <4 x i32> 1603 res_vi = vec_sub(vi, vbi); // CHECK: sub nsw <4 x i32> 1604 res_vui = vec_sub(vui, vui); // CHECK: sub <4 x i32> 1605 res_vui = vec_sub(vbi, vui); // CHECK: sub <4 x i32> 1606 res_vui = vec_sub(vui, vbi); // CHECK: sub <4 x i32> 1607 res_vf = vec_sub(vf, vf); // CHECK: fsub <4 x float> 1608 res_vsc = vec_vsububm(vsc, vsc); // CHECK: sub nsw <16 x i8> 1609 res_vsc = vec_vsububm(vbc, vsc); // CHECK: sub nsw <16 x i8> 1610 res_vsc = vec_vsububm(vsc, vbc); // CHECK: sub nsw <16 x i8> 1611 res_vuc = vec_vsububm(vuc, vuc); // CHECK: sub <16 x i8> 1612 res_vuc = vec_vsububm(vbc, vuc); // CHECK: sub <16 x i8> 1613 res_vuc = vec_vsububm(vuc, vbc); // CHECK: sub <16 x i8> 1614 res_vs = vec_vsubuhm(vs, vs); // CHECK: sub nsw <8 x i16> 1615 res_vs = vec_vsubuhm(vbs, vus); // CHECK: sub <8 x i16> 1616 res_vs = vec_vsubuhm(vus, vbs); // CHECK: sub <8 x i16> 1617 res_vus = vec_vsubuhm(vus, vus); // CHECK: sub <8 x i16> 1618 res_vus = vec_vsubuhm(vbs, vus); // CHECK: sub <8 x i16> 1619 res_vus = vec_vsubuhm(vus, vbs); // CHECK: sub <8 x i16> 1620 res_vi = vec_vsubuwm(vi, vi); // CHECK: sub nsw <4 x i32> 1621 res_vi = vec_vsubuwm(vbi, vi); // CHECK: sub nsw <4 x i32> 1622 res_vi = vec_vsubuwm(vi, vbi); // CHECK: sub nsw <4 x i32> 1623 res_vui = vec_vsubuwm(vui, vui); // CHECK: sub <4 x i32> 1624 res_vui = vec_vsubuwm(vbi, vui); // CHECK: sub <4 x i32> 1625 res_vui = vec_vsubuwm(vui, vbi); // CHECK: sub <4 x i32> 1626 res_vf = vec_vsubfp(vf, vf); // CHECK: fsub <4 x float> 1627 1628 /* vec_subc */ 1629 res_vui = vec_subc(vui, vui); // CHECK: @llvm.ppc.altivec.vsubcuw 1630 res_vui = vec_vsubcuw(vui, vui); // CHECK: @llvm.ppc.altivec.vsubcuw 1631 1632 /* vec_subs */ 1633 res_vsc = vec_subs(vsc, vsc); // CHECK: @llvm.ppc.altivec.vsubsbs 1634 res_vsc = vec_subs(vbc, vsc); // CHECK: @llvm.ppc.altivec.vsubsbs 1635 res_vsc = vec_subs(vsc, vbc); // CHECK: @llvm.ppc.altivec.vsubsbs 1636 res_vuc = vec_subs(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsububs 1637 res_vuc = vec_subs(vbc, vuc); // CHECK: @llvm.ppc.altivec.vsububs 1638 res_vuc = vec_subs(vuc, vbc); // CHECK: @llvm.ppc.altivec.vsububs 1639 res_vs = vec_subs(vs, vs); // CHECK: @llvm.ppc.altivec.vsubshs 1640 res_vs = vec_subs(vbs, vs); // CHECK: @llvm.ppc.altivec.vsubshs 1641 res_vs = vec_subs(vs, vbs); // CHECK: @llvm.ppc.altivec.vsubshs 1642 res_vus = vec_subs(vus, vus); // CHECK: @llvm.ppc.altivec.vsubuhs 1643 res_vus = vec_subs(vbs, vus); // CHECK: @llvm.ppc.altivec.vsubuhs 1644 res_vus = vec_subs(vus, vbs); // CHECK: @llvm.ppc.altivec.vsubuhs 1645 res_vi = vec_subs(vi, vi); // CHECK: @llvm.ppc.altivec.vsubsws 1646 res_vi = vec_subs(vbi, vi); // CHECK: @llvm.ppc.altivec.vsubsws 1647 res_vi = vec_subs(vi, vbi); // CHECK: @llvm.ppc.altivec.vsubsws 1648 res_vui = vec_subs(vui, vui); // CHECK: @llvm.ppc.altivec.vsubuws 1649 res_vui = vec_subs(vbi, vui); // CHECK: @llvm.ppc.altivec.vsubuws 1650 res_vui = vec_subs(vui, vbi); // CHECK: @llvm.ppc.altivec.vsubuws 1651 res_vsc = vec_vsubsbs(vsc, vsc); // CHECK: @llvm.ppc.altivec.vsubsbs 1652 res_vsc = vec_vsubsbs(vbc, vsc); // CHECK: @llvm.ppc.altivec.vsubsbs 1653 res_vsc = vec_vsubsbs(vsc, vbc); // CHECK: @llvm.ppc.altivec.vsubsbs 1654 res_vuc = vec_vsububs(vuc, vuc); // CHECK: @llvm.ppc.altivec.vsububs 1655 res_vuc = vec_vsububs(vbc, vuc); // CHECK: @llvm.ppc.altivec.vsububs 1656 res_vuc = vec_vsububs(vuc, vbc); // CHECK: @llvm.ppc.altivec.vsububs 1657 res_vs = vec_vsubshs(vs, vs); // CHECK: @llvm.ppc.altivec.vsubshs 1658 res_vs = vec_vsubshs(vbs, vs); // CHECK: @llvm.ppc.altivec.vsubshs 1659 res_vs = vec_vsubshs(vs, vbs); // CHECK: @llvm.ppc.altivec.vsubshs 1660 res_vus = vec_vsubuhs(vus, vus); // CHECK: @llvm.ppc.altivec.vsubuhs 1661 res_vus = vec_vsubuhs(vbs, vus); // CHECK: @llvm.ppc.altivec.vsubuhs 1662 res_vus = vec_vsubuhs(vus, vbs); // CHECK: @llvm.ppc.altivec.vsubuhs 1663 res_vi = vec_vsubsws(vi, vi); // CHECK: @llvm.ppc.altivec.vsubsws 1664 res_vi = vec_vsubsws(vbi, vi); // CHECK: @llvm.ppc.altivec.vsubsws 1665 res_vi = vec_vsubsws(vi, vbi); // CHECK: @llvm.ppc.altivec.vsubsws 1666 res_vui = vec_vsubuws(vui, vui); // CHECK: @llvm.ppc.altivec.vsubuws 1667 res_vui = vec_vsubuws(vbi, vui); // CHECK: @llvm.ppc.altivec.vsubuws 1668 res_vui = vec_vsubuws(vui, vbi); // CHECK: @llvm.ppc.altivec.vsubuws 1669 1670 /* vec_sum4s */ 1671 res_vi = vec_sum4s(vsc, vi); // CHECK: @llvm.ppc.altivec.vsum4sbs 1672 res_vui = vec_sum4s(vuc, vui); // CHECK: @llvm.ppc.altivec.vsum4ubs 1673 res_vi = vec_sum4s(vs, vi); // CHECK: @llvm.ppc.altivec.vsum4shs 1674 res_vi = vec_vsum4sbs(vsc, vi); // CHECK: @llvm.ppc.altivec.vsum4sbs 1675 res_vui = vec_vsum4ubs(vuc, vui); // CHECK: @llvm.ppc.altivec.vsum4ubs 1676 res_vi = vec_vsum4shs(vs, vi); // CHECK: @llvm.ppc.altivec.vsum4shs 1677 1678 /* vec_sum2s */ 1679 res_vi = vec_sum2s(vi, vi); // CHECK: @llvm.ppc.altivec.vsum2sws 1680 res_vi = vec_vsum2sws(vi, vi); // CHECK: @llvm.ppc.altivec.vsum2sws 1681 1682 /* vec_sums */ 1683 res_vi = vec_sums(vi, vi); // CHECK: @llvm.ppc.altivec.vsumsws 1684 res_vi = vec_vsumsws(vi, vi); // CHECK: @llvm.ppc.altivec.vsumsws 1685 1686 /* vec_trunc */ 1687 res_vf = vec_trunc(vf); // CHECK: @llvm.ppc.altivec.vrfiz 1688 res_vf = vec_vrfiz(vf); // CHECK: @llvm.ppc.altivec.vrfiz 1689 1690 /* vec_unpackh */ 1691 res_vs = vec_unpackh(vsc); // CHECK: @llvm.ppc.altivec.vupkhsb 1692 res_vbs = vec_unpackh(vbc); // CHECK: @llvm.ppc.altivec.vupkhsb 1693 res_vi = vec_unpackh(vs); // CHECK: @llvm.ppc.altivec.vupkhsh 1694 res_vbi = vec_unpackh(vbs); // CHECK: @llvm.ppc.altivec.vupkhsh 1695 res_vui = vec_unpackh(vp); // CHECK: @llvm.ppc.altivec.vupkhsh 1696 res_vs = vec_vupkhsb(vsc); // CHECK: @llvm.ppc.altivec.vupkhsb 1697 res_vbs = vec_vupkhsb(vbc); // CHECK: @llvm.ppc.altivec.vupkhsb 1698 res_vi = vec_vupkhsh(vs); // CHECK: @llvm.ppc.altivec.vupkhsh 1699 res_vbi = vec_vupkhsh(vbs); // CHECK: @llvm.ppc.altivec.vupkhsh 1700 res_vui = vec_vupkhsh(vp); // CHECK: @llvm.ppc.altivec.vupkhsh 1701 1702 /* vec_unpackl */ 1703 res_vs = vec_unpackl(vsc); // CHECK: @llvm.ppc.altivec.vupklsb 1704 res_vbs = vec_unpackl(vbc); // CHECK: @llvm.ppc.altivec.vupklsb 1705 res_vi = vec_unpackl(vs); // CHECK: @llvm.ppc.altivec.vupklsh 1706 res_vbi = vec_unpackl(vbs); // CHECK: @llvm.ppc.altivec.vupklsh 1707 res_vui = vec_unpackl(vp); // CHECK: @llvm.ppc.altivec.vupklsh 1708 res_vs = vec_vupklsb(vsc); // CHECK: @llvm.ppc.altivec.vupklsb 1709 res_vbs = vec_vupklsb(vbc); // CHECK: @llvm.ppc.altivec.vupklsb 1710 res_vi = vec_vupklsh(vs); // CHECK: @llvm.ppc.altivec.vupklsh 1711 res_vbi = vec_vupklsh(vbs); // CHECK: @llvm.ppc.altivec.vupklsh 1712 res_vui = vec_vupklsh(vp); // CHECK: @llvm.ppc.altivec.vupklsh 1713 1714 /* vec_xor */ 1715 res_vsc = vec_xor(vsc, vsc); // CHECK: xor <16 x i8> 1716 res_vsc = vec_xor(vbc, vsc); // CHECK: xor <16 x i8> 1717 res_vsc = vec_xor(vsc, vbc); // CHECK: xor <16 x i8> 1718 res_vuc = vec_xor(vuc, vuc); // CHECK: xor <16 x i8> 1719 res_vuc = vec_xor(vbc, vuc); // CHECK: xor <16 x i8> 1720 res_vuc = vec_xor(vuc, vbc); // CHECK: xor <16 x i8> 1721 res_vbc = vec_xor(vbc, vbc); // CHECK: xor <16 x i8> 1722 res_vs = vec_xor(vs, vs); // CHECK: xor <8 x i16> 1723 res_vs = vec_xor(vbs, vs); // CHECK: xor <8 x i16> 1724 res_vs = vec_xor(vs, vbs); // CHECK: xor <8 x i16> 1725 res_vus = vec_xor(vus, vus); // CHECK: xor <8 x i16> 1726 res_vus = vec_xor(vbs, vus); // CHECK: xor <8 x i16> 1727 res_vus = vec_xor(vus, vbs); // CHECK: xor <8 x i16> 1728 res_vbs = vec_xor(vbs, vbs); // CHECK: xor <8 x i16> 1729 res_vi = vec_xor(vi, vi); // CHECK: xor <4 x i32> 1730 res_vi = vec_xor(vbi, vi); // CHECK: xor <4 x i32> 1731 res_vi = vec_xor(vi, vbi); // CHECK: xor <4 x i32> 1732 res_vui = vec_xor(vui, vui); // CHECK: xor <4 x i32> 1733 res_vui = vec_xor(vbi, vui); // CHECK: xor <4 x i32> 1734 res_vui = vec_xor(vui, vbi); // CHECK: xor <4 x i32> 1735 res_vbi = vec_xor(vbi, vbi); // CHECK: xor <4 x i32> 1736 res_vf = vec_xor(vf, vf); // CHECK: xor <4 x i32> 1737 res_vf = vec_xor(vbi, vf); // CHECK: xor <4 x i32> 1738 res_vf = vec_xor(vf, vbi); // CHECK: xor <4 x i32> 1739 res_vsc = vec_vxor(vsc, vsc); // CHECK: xor <16 x i8> 1740 res_vsc = vec_vxor(vbc, vsc); // CHECK: xor <16 x i8> 1741 res_vsc = vec_vxor(vsc, vbc); // CHECK: xor <16 x i8> 1742 res_vuc = vec_vxor(vuc, vuc); // CHECK: xor <16 x i8> 1743 res_vuc = vec_vxor(vbc, vuc); // CHECK: xor <16 x i8> 1744 res_vuc = vec_vxor(vuc, vbc); // CHECK: xor <16 x i8> 1745 res_vbc = vec_vxor(vbc, vbc); // CHECK: xor <16 x i8> 1746 res_vs = vec_vxor(vs, vs); // CHECK: xor <8 x i16> 1747 res_vs = vec_vxor(vbs, vs); // CHECK: xor <8 x i16> 1748 res_vs = vec_vxor(vs, vbs); // CHECK: xor <8 x i16> 1749 res_vus = vec_vxor(vus, vus); // CHECK: xor <8 x i16> 1750 res_vus = vec_vxor(vbs, vus); // CHECK: xor <8 x i16> 1751 res_vus = vec_vxor(vus, vbs); // CHECK: xor <8 x i16> 1752 res_vbs = vec_vxor(vbs, vbs); // CHECK: xor <8 x i16> 1753 res_vi = vec_vxor(vi, vi); // CHECK: xor <4 x i32> 1754 res_vi = vec_vxor(vbi, vi); // CHECK: xor <4 x i32> 1755 res_vi = vec_vxor(vi, vbi); // CHECK: xor <4 x i32> 1756 res_vui = vec_vxor(vui, vui); // CHECK: xor <4 x i32> 1757 res_vui = vec_vxor(vbi, vui); // CHECK: xor <4 x i32> 1758 res_vui = vec_vxor(vui, vbi); // CHECK: xor <4 x i32> 1759 res_vbi = vec_vxor(vbi, vbi); // CHECK: xor <4 x i32> 1760 res_vf = vec_vxor(vf, vf); // CHECK: xor <4 x i32> 1761 res_vf = vec_vxor(vbi, vf); // CHECK: xor <4 x i32> 1762 res_vf = vec_vxor(vf, vbi); // CHECK: xor <4 x i32> 1763 1764 /* ------------------------------ predicates -------------------------------------- */ 1765 1766 /* vec_all_eq */ 1767 res_i = vec_all_eq(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 1768 res_i = vec_all_eq(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 1769 res_i = vec_all_eq(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 1770 res_i = vec_all_eq(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpequh.p 1771 res_i = vec_all_eq(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 1772 res_i = vec_all_eq(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpequw.p 1773 res_i = vec_all_eq(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 1774 1775 /* vec_all_ge */ 1776 res_i = vec_all_ge(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 1777 res_i = vec_all_ge(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 1778 res_i = vec_all_ge(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 1779 res_i = vec_all_ge(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 1780 res_i = vec_all_ge(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 1781 res_i = vec_all_ge(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 1782 res_i = vec_all_ge(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p 1783 1784 /* vec_all_gt */ 1785 res_i = vec_all_gt(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 1786 res_i = vec_all_gt(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 1787 res_i = vec_all_gt(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 1788 res_i = vec_all_gt(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 1789 res_i = vec_all_gt(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 1790 res_i = vec_all_gt(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 1791 res_i = vec_all_gt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 1792 1793 /* vec_all_in */ 1794 res_i = vec_all_in(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpbfp.p 1795 1796 /* vec_all_le */ 1797 res_i = vec_all_le(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 1798 res_i = vec_all_le(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 1799 res_i = vec_all_le(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 1800 res_i = vec_all_le(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 1801 res_i = vec_all_le(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 1802 res_i = vec_all_le(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 1803 res_i = vec_all_le(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p 1804 1805 /* vec_all_nan */ 1806 res_i = vec_all_nan(vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 1807 1808 /* vec_all_ne */ 1809 res_i = vec_all_ne(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 1810 res_i = vec_all_ne(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 1811 res_i = vec_all_ne(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 1812 res_i = vec_all_ne(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpequh.p 1813 res_i = vec_all_ne(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 1814 res_i = vec_all_ne(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpequw.p 1815 res_i = vec_all_ne(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 1816 1817 /* vec_all_nge */ 1818 res_i = vec_all_nge(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p 1819 1820 /* vec_all_ngt */ 1821 res_i = vec_all_ngt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 1822 1823 /* vec_all_nle */ 1824 res_i = vec_all_nle(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p 1825 1826 /* vec_all_nlt */ 1827 res_i = vec_all_nlt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 1828 1829 /* vec_all_numeric */ 1830 res_i = vec_all_numeric(vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 1831 1832 /* vec_any_eq */ 1833 res_i = vec_any_eq(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 1834 res_i = vec_any_eq(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 1835 res_i = vec_any_eq(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 1836 res_i = vec_any_eq(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpequh.p 1837 res_i = vec_any_eq(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 1838 res_i = vec_any_eq(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpequw.p 1839 res_i = vec_any_eq(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 1840 1841 /* vec_any_ge */ 1842 res_i = vec_any_ge(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 1843 res_i = vec_any_ge(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 1844 res_i = vec_any_ge(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 1845 res_i = vec_any_ge(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 1846 res_i = vec_any_ge(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 1847 res_i = vec_any_ge(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 1848 res_i = vec_any_ge(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p 1849 1850 /* vec_any_gt */ 1851 res_i = vec_any_gt(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 1852 res_i = vec_any_gt(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 1853 res_i = vec_any_gt(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 1854 res_i = vec_any_gt(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 1855 res_i = vec_any_gt(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 1856 res_i = vec_any_gt(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 1857 res_i = vec_any_gt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 1858 1859 /* vec_any_le */ 1860 res_i = vec_any_le(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 1861 res_i = vec_any_le(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 1862 res_i = vec_any_le(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 1863 res_i = vec_any_le(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 1864 res_i = vec_any_le(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 1865 res_i = vec_any_le(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 1866 res_i = vec_any_le(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p 1867 1868 /* vec_any_lt */ 1869 res_i = vec_any_lt(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpgtsb.p 1870 res_i = vec_any_lt(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpgtub.p 1871 res_i = vec_any_lt(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpgtsh.p 1872 res_i = vec_any_lt(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpgtuh.p 1873 res_i = vec_any_lt(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpgtsw.p 1874 res_i = vec_any_lt(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpgtuw.p 1875 res_i = vec_any_lt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 1876 1877 /* vec_any_nan */ 1878 res_i = vec_any_nan(vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 1879 1880 /* vec_any_ne */ 1881 res_i = vec_any_ne(vsc, vsc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 1882 res_i = vec_any_ne(vuc, vuc); // CHECK: @llvm.ppc.altivec.vcmpequb.p 1883 res_i = vec_any_ne(vs, vs); // CHECK: @llvm.ppc.altivec.vcmpequh.p 1884 res_i = vec_any_ne(vus, vus); // CHECK: @llvm.ppc.altivec.vcmpequh.p 1885 res_i = vec_any_ne(vi, vi); // CHECK: @llvm.ppc.altivec.vcmpequw.p 1886 res_i = vec_any_ne(vui, vui); // CHECK: @llvm.ppc.altivec.vcmpequw.p 1887 res_i = vec_any_ne(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 1888 1889 /* vec_any_nge */ 1890 res_i = vec_any_nge(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p 1891 1892 /* vec_any_ngt */ 1893 res_i = vec_any_ngt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 1894 1895 /* vec_any_nle */ 1896 res_i = vec_any_nle(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgefp.p 1897 1898 /* vec_any_nlt */ 1899 res_i = vec_any_nlt(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpgtfp.p 1900 1901 /* vec_any_numeric */ 1902 res_i = vec_any_numeric(vf); // CHECK: @llvm.ppc.altivec.vcmpeqfp.p 1903 1904 /* vec_any_out */ 1905 res_i = vec_any_out(vf, vf); // CHECK: @llvm.ppc.altivec.vcmpbfp.p 1906} 1907