• Home
  • Raw
  • Download

Lines Matching refs:Ops

1629 Value *CodeGenFunction::EmitNeonCall(Function *F, SmallVectorImpl<Value*> &Ops,  in EmitNeonCall()  argument
1636 Ops[j] = EmitNeonShiftVector(Ops[j], ai->getType(), rightshift); in EmitNeonCall()
1638 Ops[j] = Builder.CreateBitCast(Ops[j], ai->getType(), name); in EmitNeonCall()
1640 return Builder.CreateCall(F, Ops, name); in EmitNeonCall()
1714 SmallVector<Value *, 2> Ops; in EmitAArch64BuiltinExpr() local
1716 Ops.push_back(EmitScalarExpr(E->getArg(i))); in EmitAArch64BuiltinExpr()
1720 return EmitNounwindRuntimeCall(CGM.CreateRuntimeFunction(FTy, Name), Ops); in EmitAArch64BuiltinExpr()
1723 SmallVector<Value *, 4> Ops; in EmitAArch64BuiltinExpr() local
1725 Ops.push_back(EmitScalarExpr(E->getArg(i))); in EmitAArch64BuiltinExpr()
1780 std::swap(Ops[0], Ops[1]); in EmitAArch64BuiltinExpr()
1787 return EmitNeonCall(F, Ops, "vcage"); in EmitAArch64BuiltinExpr()
1794 std::swap(Ops[0], Ops[1]); in EmitAArch64BuiltinExpr()
1801 return EmitNeonCall(F, Ops, "vcagt"); in EmitAArch64BuiltinExpr()
1870 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitAArch64BuiltinExpr()
1871 Ops[1] = Builder.CreateBitCast(Ops[1], Ty); in EmitAArch64BuiltinExpr()
1872 Ops[1] = Builder.CreateFNeg(Ops[1]); in EmitAArch64BuiltinExpr()
1873 Ops[2] = Builder.CreateBitCast(Ops[2], Ty); in EmitAArch64BuiltinExpr()
1877 return Builder.CreateCall3(F, Ops[1], Ops[2], Ops[0]); in EmitAArch64BuiltinExpr()
1882 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vmaxnm"); in EmitAArch64BuiltinExpr()
1887 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vminnm"); in EmitAArch64BuiltinExpr()
1892 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vpmaxnm"); in EmitAArch64BuiltinExpr()
1897 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vpminnm"); in EmitAArch64BuiltinExpr()
1901 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vpmax"); in EmitAArch64BuiltinExpr()
1905 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vpmin"); in EmitAArch64BuiltinExpr()
1909 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vpadd"); in EmitAArch64BuiltinExpr()
1914 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vmulx"); in EmitAArch64BuiltinExpr()
1924 SmallVector<Value*, 2> Ops; in EmitARMBuiltinExpr() local
1926 Ops.push_back(EmitScalarExpr(E->getArg(i))); in EmitARMBuiltinExpr()
1930 return EmitNounwindRuntimeCall(CGM.CreateRuntimeFunction(FTy, Name), Ops); in EmitARMBuiltinExpr()
2019 SmallVector<Value*, 4> Ops; in EmitARMBuiltinExpr() local
2050 Ops.push_back(Src.first); in EmitARMBuiltinExpr()
2076 Ops.push_back(Src.first); in EmitARMBuiltinExpr()
2081 Ops.push_back(EmitScalarExpr(E->getArg(i))); in EmitARMBuiltinExpr()
2098 return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)), in EmitARMBuiltinExpr()
2110 Ops.push_back(EmitScalarExpr(E->getArg(2))); in EmitARMBuiltinExpr()
2111 return Builder.CreateInsertElement(Ops[1], Ops[0], Ops[2], "vset_lane"); in EmitARMBuiltinExpr()
2135 return Builder.CreateCall(F, Ops, "vcvtr"); in EmitARMBuiltinExpr()
2155 Ops, "vbsl"); in EmitARMBuiltinExpr()
2159 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vabd"); in EmitARMBuiltinExpr()
2163 Ops, "vabs"); in EmitARMBuiltinExpr()
2166 Ops, "vaddhn"); in EmitARMBuiltinExpr()
2168 std::swap(Ops[0], Ops[1]); in EmitARMBuiltinExpr()
2171 return EmitNeonCall(F, Ops, "vcage"); in EmitARMBuiltinExpr()
2174 std::swap(Ops[0], Ops[1]); in EmitARMBuiltinExpr()
2177 return EmitNeonCall(F, Ops, "vcage"); in EmitARMBuiltinExpr()
2180 std::swap(Ops[0], Ops[1]); in EmitARMBuiltinExpr()
2183 return EmitNeonCall(F, Ops, "vcagt"); in EmitARMBuiltinExpr()
2186 std::swap(Ops[0], Ops[1]); in EmitARMBuiltinExpr()
2189 return EmitNeonCall(F, Ops, "vcagt"); in EmitARMBuiltinExpr()
2194 return EmitNeonCall(F, Ops, "vcls"); in EmitARMBuiltinExpr()
2201 Ops.push_back(Builder.getInt1(getTarget().isCLZForZeroUndef())); in EmitARMBuiltinExpr()
2202 return EmitNeonCall(F, Ops, "vclz"); in EmitARMBuiltinExpr()
2208 return EmitNeonCall(F, Ops, "vctpop"); in EmitARMBuiltinExpr()
2214 return EmitNeonCall(F, Ops, "vcvt"); in EmitARMBuiltinExpr()
2220 return EmitNeonCall(F, Ops, "vcvt"); in EmitARMBuiltinExpr()
2224 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2226 return usgn ? Builder.CreateUIToFP(Ops[0], Ty, "vcvt") in EmitARMBuiltinExpr()
2227 : Builder.CreateSIToFP(Ops[0], Ty, "vcvt"); in EmitARMBuiltinExpr()
2234 Ops[0] = Builder.CreateBitCast(Ops[0], FloatTy); in EmitARMBuiltinExpr()
2235 return usgn ? Builder.CreateFPToUI(Ops[0], Ty, "vcvt") in EmitARMBuiltinExpr()
2236 : Builder.CreateFPToSI(Ops[0], Ty, "vcvt"); in EmitARMBuiltinExpr()
2246 return EmitNeonCall(F, Ops, "vcvt_n"); in EmitARMBuiltinExpr()
2258 return EmitNeonCall(F, Ops, "vcvt_n"); in EmitARMBuiltinExpr()
2262 int CV = cast<ConstantInt>(Ops[2])->getSExtValue(); in EmitARMBuiltinExpr()
2267 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2268 Ops[1] = Builder.CreateBitCast(Ops[1], Ty); in EmitARMBuiltinExpr()
2270 return Builder.CreateShuffleVector(Ops[0], Ops[1], SV, "vext"); in EmitARMBuiltinExpr()
2275 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vhadd"); in EmitARMBuiltinExpr()
2279 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vhsub"); in EmitARMBuiltinExpr()
2282 Ops.push_back(Align); in EmitARMBuiltinExpr()
2284 Ops, "vld1"); in EmitARMBuiltinExpr()
2290 Ops[1] = Builder.CreateBitCast(Ops[1], Ty); in EmitARMBuiltinExpr()
2291 int Lane = cast<ConstantInt>(Ops[2])->getZExtValue(); in EmitARMBuiltinExpr()
2293 Ops[1] = Builder.CreateShuffleVector(Ops[1], Ops[1], SV); in EmitARMBuiltinExpr()
2297 Value *Ld = Builder.CreateCall2(F, Ops[0], Align); in EmitARMBuiltinExpr()
2303 return Builder.CreateShuffleVector(Ops[1], Ld, SV, "vld1q_lane"); in EmitARMBuiltinExpr()
2307 Ops[1] = Builder.CreateBitCast(Ops[1], Ty); in EmitARMBuiltinExpr()
2309 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2310 LoadInst *Ld = Builder.CreateLoad(Ops[0]); in EmitARMBuiltinExpr()
2312 return Builder.CreateInsertElement(Ops[1], Ld, Ops[2], "vld1_lane"); in EmitARMBuiltinExpr()
2318 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2319 LoadInst *Ld = Builder.CreateLoad(Ops[0]); in EmitARMBuiltinExpr()
2322 Ops[0] = Builder.CreateInsertElement(V, Ld, CI); in EmitARMBuiltinExpr()
2323 return EmitNeonSplat(Ops[0], CI); in EmitARMBuiltinExpr()
2328 Ops[1] = Builder.CreateCall2(F, Ops[1], Align, "vld2"); in EmitARMBuiltinExpr()
2329 Ty = llvm::PointerType::getUnqual(Ops[1]->getType()); in EmitARMBuiltinExpr()
2330 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2331 return Builder.CreateStore(Ops[1], Ops[0]); in EmitARMBuiltinExpr()
2336 Ops[1] = Builder.CreateCall2(F, Ops[1], Align, "vld3"); in EmitARMBuiltinExpr()
2337 Ty = llvm::PointerType::getUnqual(Ops[1]->getType()); in EmitARMBuiltinExpr()
2338 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2339 return Builder.CreateStore(Ops[1], Ops[0]); in EmitARMBuiltinExpr()
2344 Ops[1] = Builder.CreateCall2(F, Ops[1], Align, "vld4"); in EmitARMBuiltinExpr()
2345 Ty = llvm::PointerType::getUnqual(Ops[1]->getType()); in EmitARMBuiltinExpr()
2346 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2347 return Builder.CreateStore(Ops[1], Ops[0]); in EmitARMBuiltinExpr()
2352 Ops[2] = Builder.CreateBitCast(Ops[2], Ty); in EmitARMBuiltinExpr()
2353 Ops[3] = Builder.CreateBitCast(Ops[3], Ty); in EmitARMBuiltinExpr()
2354 Ops.push_back(Align); in EmitARMBuiltinExpr()
2355 Ops[1] = Builder.CreateCall(F, makeArrayRef(Ops).slice(1), "vld2_lane"); in EmitARMBuiltinExpr()
2356 Ty = llvm::PointerType::getUnqual(Ops[1]->getType()); in EmitARMBuiltinExpr()
2357 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2358 return Builder.CreateStore(Ops[1], Ops[0]); in EmitARMBuiltinExpr()
2363 Ops[2] = Builder.CreateBitCast(Ops[2], Ty); in EmitARMBuiltinExpr()
2364 Ops[3] = Builder.CreateBitCast(Ops[3], Ty); in EmitARMBuiltinExpr()
2365 Ops[4] = Builder.CreateBitCast(Ops[4], Ty); in EmitARMBuiltinExpr()
2366 Ops.push_back(Align); in EmitARMBuiltinExpr()
2367 Ops[1] = Builder.CreateCall(F, makeArrayRef(Ops).slice(1), "vld3_lane"); in EmitARMBuiltinExpr()
2368 Ty = llvm::PointerType::getUnqual(Ops[1]->getType()); in EmitARMBuiltinExpr()
2369 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2370 return Builder.CreateStore(Ops[1], Ops[0]); in EmitARMBuiltinExpr()
2375 Ops[2] = Builder.CreateBitCast(Ops[2], Ty); in EmitARMBuiltinExpr()
2376 Ops[3] = Builder.CreateBitCast(Ops[3], Ty); in EmitARMBuiltinExpr()
2377 Ops[4] = Builder.CreateBitCast(Ops[4], Ty); in EmitARMBuiltinExpr()
2378 Ops[5] = Builder.CreateBitCast(Ops[5], Ty); in EmitARMBuiltinExpr()
2379 Ops.push_back(Align); in EmitARMBuiltinExpr()
2380 Ops[1] = Builder.CreateCall(F, makeArrayRef(Ops).slice(1), "vld3_lane"); in EmitARMBuiltinExpr()
2381 Ty = llvm::PointerType::getUnqual(Ops[1]->getType()); in EmitARMBuiltinExpr()
2382 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2383 return Builder.CreateStore(Ops[1], Ops[0]); in EmitARMBuiltinExpr()
2403 Ops[1] = Builder.CreateCall2(F, Ops[1], Align, "vld_dup"); in EmitARMBuiltinExpr()
2404 Ty = llvm::PointerType::getUnqual(Ops[1]->getType()); in EmitARMBuiltinExpr()
2405 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2406 return Builder.CreateStore(Ops[1], Ops[0]); in EmitARMBuiltinExpr()
2424 Args.push_back(Ops[1]); in EmitARMBuiltinExpr()
2431 Ops[1] = Builder.CreateCall(F, Args, "vld_dup"); in EmitARMBuiltinExpr()
2434 Value *Val = Builder.CreateExtractValue(Ops[1], i); in EmitARMBuiltinExpr()
2438 Ops[1] = Builder.CreateInsertValue(Ops[1], Elt, i); in EmitARMBuiltinExpr()
2440 Ty = llvm::PointerType::getUnqual(Ops[1]->getType()); in EmitARMBuiltinExpr()
2441 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2442 return Builder.CreateStore(Ops[1], Ops[0]); in EmitARMBuiltinExpr()
2447 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vmax"); in EmitARMBuiltinExpr()
2451 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vmin"); in EmitARMBuiltinExpr()
2454 Ops[0] = Builder.CreateBitCast(Ops[0], DTy); in EmitARMBuiltinExpr()
2456 return Builder.CreateZExt(Ops[0], Ty, "vmovl"); in EmitARMBuiltinExpr()
2457 return Builder.CreateSExt(Ops[0], Ty, "vmovl"); in EmitARMBuiltinExpr()
2461 Ops[0] = Builder.CreateBitCast(Ops[0], QTy); in EmitARMBuiltinExpr()
2462 return Builder.CreateTrunc(Ops[0], Ty, "vmovn"); in EmitARMBuiltinExpr()
2468 Ops, "vmul"); in EmitARMBuiltinExpr()
2472 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vmull"); in EmitARMBuiltinExpr()
2476 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2477 Ops[1] = Builder.CreateBitCast(Ops[1], Ty); in EmitARMBuiltinExpr()
2478 Ops[2] = Builder.CreateBitCast(Ops[2], Ty); in EmitARMBuiltinExpr()
2481 return Builder.CreateCall3(F, Ops[1], Ops[2], Ops[0]); in EmitARMBuiltinExpr()
2493 return EmitNeonCall(CGM.getIntrinsic(Int, Tys), Ops, "vpadal"); in EmitARMBuiltinExpr()
2497 Ops, "vpadd"); in EmitARMBuiltinExpr()
2507 return EmitNeonCall(CGM.getIntrinsic(Int, Tys), Ops, "vpaddl"); in EmitARMBuiltinExpr()
2511 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vpmax"); in EmitARMBuiltinExpr()
2514 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vpmin"); in EmitARMBuiltinExpr()
2518 Ops, "vqabs"); in EmitARMBuiltinExpr()
2522 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqadd"); in EmitARMBuiltinExpr()
2525 Ops, "vqdmlal"); in EmitARMBuiltinExpr()
2528 Ops, "vqdmlsl"); in EmitARMBuiltinExpr()
2532 Ops, "vqdmulh"); in EmitARMBuiltinExpr()
2535 Ops, "vqdmull"); in EmitARMBuiltinExpr()
2538 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqmovn"); in EmitARMBuiltinExpr()
2541 Ops, "vqdmull"); in EmitARMBuiltinExpr()
2545 Ops, "vqneg"); in EmitARMBuiltinExpr()
2549 Ops, "vqrdmulh"); in EmitARMBuiltinExpr()
2553 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqrshl"); in EmitARMBuiltinExpr()
2557 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqrshrn_n", in EmitARMBuiltinExpr()
2561 Ops, "vqrshrun_n", 1, true); in EmitARMBuiltinExpr()
2565 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqshl"); in EmitARMBuiltinExpr()
2569 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqshl_n", in EmitARMBuiltinExpr()
2574 Ops, "vqshlu", 1, false); in EmitARMBuiltinExpr()
2577 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqshrn_n", in EmitARMBuiltinExpr()
2581 Ops, "vqshrun_n", 1, true); in EmitARMBuiltinExpr()
2585 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqsub"); in EmitARMBuiltinExpr()
2588 Ops, "vraddhn"); in EmitARMBuiltinExpr()
2592 Ops, "vrecpe"); in EmitARMBuiltinExpr()
2596 Ops, "vrecps"); in EmitARMBuiltinExpr()
2600 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrhadd"); in EmitARMBuiltinExpr()
2604 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrshl"); in EmitARMBuiltinExpr()
2607 Ops, "vrshrn_n", 1, true); in EmitARMBuiltinExpr()
2611 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrshr_n", 1, true); in EmitARMBuiltinExpr()
2615 Ops, "vrsqrte"); in EmitARMBuiltinExpr()
2619 Ops, "vrsqrts"); in EmitARMBuiltinExpr()
2622 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2623 Ops[1] = Builder.CreateBitCast(Ops[1], Ty); in EmitARMBuiltinExpr()
2624 Ops[2] = EmitNeonShiftVector(Ops[2], Ty, true); in EmitARMBuiltinExpr()
2626 Ops[1] = Builder.CreateCall2(CGM.getIntrinsic(Int, Ty), Ops[1], Ops[2]); in EmitARMBuiltinExpr()
2627 return Builder.CreateAdd(Ops[0], Ops[1], "vrsra_n"); in EmitARMBuiltinExpr()
2630 Ops, "vrsubhn"); in EmitARMBuiltinExpr()
2634 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vshl"); in EmitARMBuiltinExpr()
2637 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vshll", 1); in EmitARMBuiltinExpr()
2640 Ops[1] = EmitNeonShiftVector(Ops[1], Ty, false); in EmitARMBuiltinExpr()
2641 return Builder.CreateShl(Builder.CreateBitCast(Ops[0],Ty), Ops[1], in EmitARMBuiltinExpr()
2645 Ops, "vshrn_n", 1, true); in EmitARMBuiltinExpr()
2648 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2649 Ops[1] = EmitNeonShiftVector(Ops[1], Ty, false); in EmitARMBuiltinExpr()
2651 return Builder.CreateLShr(Ops[0], Ops[1], "vshr_n"); in EmitARMBuiltinExpr()
2653 return Builder.CreateAShr(Ops[0], Ops[1], "vshr_n"); in EmitARMBuiltinExpr()
2659 Ops[2] = EmitNeonShiftVector(Ops[2], Ty, rightShift); in EmitARMBuiltinExpr()
2661 Ops, "vsli_n"); in EmitARMBuiltinExpr()
2664 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2665 Ops[1] = Builder.CreateBitCast(Ops[1], Ty); in EmitARMBuiltinExpr()
2666 Ops[2] = EmitNeonShiftVector(Ops[2], Ty, false); in EmitARMBuiltinExpr()
2668 Ops[1] = Builder.CreateLShr(Ops[1], Ops[2], "vsra_n"); in EmitARMBuiltinExpr()
2670 Ops[1] = Builder.CreateAShr(Ops[1], Ops[2], "vsra_n"); in EmitARMBuiltinExpr()
2671 return Builder.CreateAdd(Ops[0], Ops[1]); in EmitARMBuiltinExpr()
2674 Ops.push_back(Align); in EmitARMBuiltinExpr()
2676 Ops, ""); in EmitARMBuiltinExpr()
2681 Ops[1] = Builder.CreateBitCast(Ops[1], Ty); in EmitARMBuiltinExpr()
2682 Value *SV = llvm::ConstantVector::get(cast<llvm::Constant>(Ops[2])); in EmitARMBuiltinExpr()
2683 Ops[1] = Builder.CreateShuffleVector(Ops[1], Ops[1], SV); in EmitARMBuiltinExpr()
2684 Ops[2] = Align; in EmitARMBuiltinExpr()
2686 Ops[1]->getType()), Ops); in EmitARMBuiltinExpr()
2690 Ops[1] = Builder.CreateBitCast(Ops[1], Ty); in EmitARMBuiltinExpr()
2691 Ops[1] = Builder.CreateExtractElement(Ops[1], Ops[2]); in EmitARMBuiltinExpr()
2692 Ty = llvm::PointerType::getUnqual(Ops[1]->getType()); in EmitARMBuiltinExpr()
2693 StoreInst *St = Builder.CreateStore(Ops[1], in EmitARMBuiltinExpr()
2694 Builder.CreateBitCast(Ops[0], Ty)); in EmitARMBuiltinExpr()
2700 Ops.push_back(Align); in EmitARMBuiltinExpr()
2702 Ops, ""); in EmitARMBuiltinExpr()
2705 Ops.push_back(Align); in EmitARMBuiltinExpr()
2707 Ops, ""); in EmitARMBuiltinExpr()
2710 Ops.push_back(Align); in EmitARMBuiltinExpr()
2712 Ops, ""); in EmitARMBuiltinExpr()
2715 Ops.push_back(Align); in EmitARMBuiltinExpr()
2717 Ops, ""); in EmitARMBuiltinExpr()
2720 Ops.push_back(Align); in EmitARMBuiltinExpr()
2722 Ops, ""); in EmitARMBuiltinExpr()
2725 Ops.push_back(Align); in EmitARMBuiltinExpr()
2727 Ops, ""); in EmitARMBuiltinExpr()
2730 Ops, "vsubhn"); in EmitARMBuiltinExpr()
2733 Ops, "vtbl1"); in EmitARMBuiltinExpr()
2736 Ops, "vtbl2"); in EmitARMBuiltinExpr()
2739 Ops, "vtbl3"); in EmitARMBuiltinExpr()
2742 Ops, "vtbl4"); in EmitARMBuiltinExpr()
2745 Ops, "vtbx1"); in EmitARMBuiltinExpr()
2748 Ops, "vtbx2"); in EmitARMBuiltinExpr()
2751 Ops, "vtbx3"); in EmitARMBuiltinExpr()
2754 Ops, "vtbx4"); in EmitARMBuiltinExpr()
2757 Ops[0] = Builder.CreateBitCast(Ops[0], Ty); in EmitARMBuiltinExpr()
2758 Ops[1] = Builder.CreateBitCast(Ops[1], Ty); in EmitARMBuiltinExpr()
2759 Ops[0] = Builder.CreateAnd(Ops[0], Ops[1]); in EmitARMBuiltinExpr()
2760 Ops[0] = Builder.CreateICmp(ICmpInst::ICMP_NE, Ops[0], in EmitARMBuiltinExpr()
2762 return Builder.CreateSExt(Ops[0], Ty, "vtst"); in EmitARMBuiltinExpr()
2766 Ops[0] = Builder.CreateBitCast(Ops[0], llvm::PointerType::getUnqual(Ty)); in EmitARMBuiltinExpr()
2767 Ops[1] = Builder.CreateBitCast(Ops[1], Ty); in EmitARMBuiltinExpr()
2768 Ops[2] = Builder.CreateBitCast(Ops[2], Ty); in EmitARMBuiltinExpr()
2777 Value *Addr = Builder.CreateConstInBoundsGEP1_32(Ops[0], vi); in EmitARMBuiltinExpr()
2779 SV = Builder.CreateShuffleVector(Ops[1], Ops[2], SV, "vtrn"); in EmitARMBuiltinExpr()
2786 Ops[0] = Builder.CreateBitCast(Ops[0], llvm::PointerType::getUnqual(Ty)); in EmitARMBuiltinExpr()
2787 Ops[1] = Builder.CreateBitCast(Ops[1], Ty); in EmitARMBuiltinExpr()
2788 Ops[2] = Builder.CreateBitCast(Ops[2], Ty); in EmitARMBuiltinExpr()
2796 Value *Addr = Builder.CreateConstInBoundsGEP1_32(Ops[0], vi); in EmitARMBuiltinExpr()
2798 SV = Builder.CreateShuffleVector(Ops[1], Ops[2], SV, "vuzp"); in EmitARMBuiltinExpr()
2805 Ops[0] = Builder.CreateBitCast(Ops[0], llvm::PointerType::getUnqual(Ty)); in EmitARMBuiltinExpr()
2806 Ops[1] = Builder.CreateBitCast(Ops[1], Ty); in EmitARMBuiltinExpr()
2807 Ops[2] = Builder.CreateBitCast(Ops[2], Ty); in EmitARMBuiltinExpr()
2816 Value *Addr = Builder.CreateConstInBoundsGEP1_32(Ops[0], vi); in EmitARMBuiltinExpr()
2818 SV = Builder.CreateShuffleVector(Ops[1], Ops[2], SV, "vzip"); in EmitARMBuiltinExpr()
2827 BuildVector(ArrayRef<llvm::Value*> Ops) { in BuildVector() argument
2828 assert((Ops.size() & (Ops.size() - 1)) == 0 && in BuildVector()
2831 for (unsigned i = 0, e = Ops.size(); i != e && AllConstants; ++i) in BuildVector()
2832 AllConstants &= isa<Constant>(Ops[i]); in BuildVector()
2837 for (unsigned i = 0, e = Ops.size(); i != e; ++i) in BuildVector()
2838 CstOps.push_back(cast<Constant>(Ops[i])); in BuildVector()
2844 llvm::UndefValue::get(llvm::VectorType::get(Ops[0]->getType(), Ops.size())); in BuildVector()
2846 for (unsigned i = 0, e = Ops.size(); i != e; ++i) in BuildVector()
2847 Result = Builder.CreateInsertElement(Result, Ops[i], Builder.getInt32(i)); in BuildVector()
2854 SmallVector<Value*, 4> Ops; in EmitX86BuiltinExpr() local
2865 Ops.push_back(EmitScalarExpr(E->getArg(i))); in EmitX86BuiltinExpr()
2874 Ops.push_back(llvm::ConstantInt::get(getLLVMContext(), Result)); in EmitX86BuiltinExpr()
2882 return Builder.CreateBitCast(BuildVector(Ops), in EmitX86BuiltinExpr()
2885 return Builder.CreateExtractElement(Ops[0], in EmitX86BuiltinExpr()
2886 llvm::ConstantInt::get(Ops[1]->getType(), 0)); in EmitX86BuiltinExpr()
2891 Builder.CreateStore(Ops[0], Tmp); in EmitX86BuiltinExpr()
2909 Ops[1] = Builder.CreateBitCast(Ops[1], VecTy, "cast"); in EmitX86BuiltinExpr()
2914 Ops[1] = Builder.CreateExtractElement(Ops[1], Idx, "extract"); in EmitX86BuiltinExpr()
2917 Ops[0] = Builder.CreateBitCast(Ops[0], PtrTy); in EmitX86BuiltinExpr()
2918 return Builder.CreateStore(Ops[1], Ops[0]); in EmitX86BuiltinExpr()
2921 unsigned shiftVal = cast<llvm::ConstantInt>(Ops[2])->getZExtValue(); in EmitX86BuiltinExpr()
2931 return Builder.CreateShuffleVector(Ops[1], Ops[0], SV, "palignr"); in EmitX86BuiltinExpr()
2940 Ops[0] = Builder.CreateBitCast(Ops[0], VecTy, "cast"); in EmitX86BuiltinExpr()
2941 Ops[1] = llvm::ConstantInt::get(VecTy, (shiftVal-8) * 8); in EmitX86BuiltinExpr()
2945 return Builder.CreateCall(F, makeArrayRef(&Ops[0], 2), "palignr"); in EmitX86BuiltinExpr()
2952 unsigned shiftVal = cast<llvm::ConstantInt>(Ops[2])->getZExtValue(); in EmitX86BuiltinExpr()
2962 return Builder.CreateShuffleVector(Ops[1], Ops[0], SV, "palignr"); in EmitX86BuiltinExpr()
2970 Ops[0] = Builder.CreateBitCast(Ops[0], VecTy, "cast"); in EmitX86BuiltinExpr()
2971 Ops[1] = llvm::ConstantInt::get(Int32Ty, (shiftVal-16) * 8); in EmitX86BuiltinExpr()
2975 return Builder.CreateCall(F, makeArrayRef(&Ops[0], 2), "palignr"); in EmitX86BuiltinExpr()
2982 unsigned shiftVal = cast<llvm::ConstantInt>(Ops[2])->getZExtValue(); in EmitX86BuiltinExpr()
3000 return Builder.CreateShuffleVector(Ops[1], Ops[0], SV, "palignr"); in EmitX86BuiltinExpr()
3008 Ops[0] = Builder.CreateBitCast(Ops[0], VecTy, "cast"); in EmitX86BuiltinExpr()
3009 Ops[1] = llvm::ConstantInt::get(Int32Ty, (shiftVal-16) * 8); in EmitX86BuiltinExpr()
3013 return Builder.CreateCall(F, makeArrayRef(&Ops[0], 2), "palignr"); in EmitX86BuiltinExpr()
3030 Value *BC = Builder.CreateBitCast(Ops[0], in EmitX86BuiltinExpr()
3031 llvm::PointerType::getUnqual(Ops[1]->getType()), in EmitX86BuiltinExpr()
3033 StoreInst *SI = Builder.CreateStore(Ops[1], BC); in EmitX86BuiltinExpr()
3052 Ops[0] = Builder.CreateBitCast(Ops[0], MMXTy, "cast"); in EmitX86BuiltinExpr()
3054 return Builder.CreateCall(F, Ops, name); in EmitX86BuiltinExpr()
3086 Builder.CreateStore(Builder.CreateExtractValue(Call, 0), Ops[0]); in EmitX86BuiltinExpr()
3095 SmallVector<Value*, 4> Ops; in EmitPPCBuiltinExpr() local
3098 Ops.push_back(EmitScalarExpr(E->getArg(i))); in EmitPPCBuiltinExpr()
3114 Ops[1] = Builder.CreateBitCast(Ops[1], Int8PtrTy); in EmitPPCBuiltinExpr()
3116 Ops[0] = Builder.CreateGEP(Ops[1], Ops[0]); in EmitPPCBuiltinExpr()
3117 Ops.pop_back(); in EmitPPCBuiltinExpr()
3144 return Builder.CreateCall(F, Ops, ""); in EmitPPCBuiltinExpr()
3154 Ops[2] = Builder.CreateBitCast(Ops[2], Int8PtrTy); in EmitPPCBuiltinExpr()
3155 Ops[1] = Builder.CreateGEP(Ops[2], Ops[1]); in EmitPPCBuiltinExpr()
3156 Ops.pop_back(); in EmitPPCBuiltinExpr()
3177 return Builder.CreateCall(F, Ops, ""); in EmitPPCBuiltinExpr()