Lines Matching defs:Ty

48   llvm::FunctionType *Ty =
51 return GetOrCreateLLVMFunction(Name, Ty, D, /*ForVTable=*/false);
407 Value *Ty = EmitScalarExpr(E->getArg(1));
408 ConstantInt *CI = dyn_cast<ConstantInt>(Ty);
550 llvm::Type *Ty = ConvertType(E->getArg(5)->getType());
562 Value *IsZero = Builder.CreateFCmpOEQ(V, Constant::getNullValue(Ty),
753 llvm::IntegerType *Ty
758 return RValue::get(llvm::UndefValue::get(Ty));
760 return RValue::get(llvm::ConstantInt::get(Ty, Column, true));
1655 Value *CodeGenFunction::EmitNeonShiftVector(Value *V, llvm::Type *Ty,
1659 llvm::VectorType *VTy = cast<llvm::VectorType>(Ty);
1666 llvm::Type *Ty, bool usgn,
1668 llvm::VectorType *VTy = cast<llvm::VectorType>(Ty);
1673 Vec = Builder.CreateBitCast(Vec, Ty);
1690 Shift = EmitNeonShiftVector(Shift, Ty, false);
1797 llvm::Type *Ty = CGF.ConvertType(E->getCallReturnType());
1800 return CGF.Builder.CreateBitCast(Result, Ty, s);
1818 llvm::Type *Ty = CGF.ConvertType(E->getArg(1)->getType());
1819 llvm::VectorType *OpVTy = llvm::VectorType::get(Ty, 1);
1820 Ty = CGF.ConvertType(E->getArg(0)->getType());
1821 llvm::VectorType *ResVTy = llvm::VectorType::get(Ty, 1);
1840 return CGF.Builder.CreateBitCast(AddRes, Ty);
1846 llvm::Type *Ty = CGF.ConvertType(E->getCallReturnType());
1847 Value *F = CGF.CGM.getIntrinsic(Intrinsic::fma, Ty);
1855 llvm::Type *Ty = CGF.ConvertType(E->getCallReturnType());
1856 return CGF.EmitNeonCall(CGF.CGM.getIntrinsic(Int, Ty), Ops, "vmulx");
2571 llvm::Type *Ty = CGF.ConvertType(Arg->getType());
2572 llvm::VectorType *VTy = cast<llvm::VectorType>(Ty);
2586 llvm::Type *Ty = CGF.ConvertType(E->getCallReturnType());
2587 llvm::VectorType *VTy = llvm::VectorType::get(Ty, 1);
2594 llvm::Type *Ty = CGF.ConvertType(Arg->getType());
2595 llvm::VectorType *VTy = llvm::VectorType::get(Ty, 1);
2604 llvm::Type *Ty = CGF.ConvertType(E->getCallReturnType());
2605 llvm::VectorType *VTy = llvm::VectorType::get(Ty, 1);
2607 Ty = CGF.ConvertType(Arg->getType());
2608 VTy = llvm::VectorType::get(Ty, 1);
2619 llvm::Type *Ty = CGF.ConvertType(E->getCallReturnType());
2620 llvm::VectorType *VTy = llvm::VectorType::get(Ty, 1);
2622 Ty = CGF.ConvertType(Arg->getType());
2623 VTy = llvm::VectorType::get(Ty, 1);
2638 Value *Op, llvm::Type *Ty, const CmpInst::Predicate Fp,
2642 OTy = Ty;
2649 return Builder.CreateZExt(Op, Ty, Name);
2746 llvm::Type *Ty = VTy;
2747 if (!Ty)
2758 llvm::Type *Tys[2] = { Ty, VTblTy };
2767 return packTBLDVectorList(CGF, TblOps, 0, Ops[1], Ty,
2773 return packTBLDVectorList(CGF, TblOps, 0, Ops[2], Ty,
2780 return packTBLDVectorList(CGF, TblOps, 0, Ops[3], Ty,
2788 return packTBLDVectorList(CGF, TblOps, 0, Ops[4], Ty,
2793 Value *TblRes = packTBLDVectorList(CGF, TblOps, 0, Ops[2], Ty,
2799 CmpRes = CGF.Builder.CreateSExt(CmpRes, Ty);
2805 Function *BslF = CGF.CGM.getIntrinsic(Intrinsic::arm_neon_vbsl, Ty);
2811 return packTBLDVectorList(CGF, TblOps, Ops[0], Ops[3], Ty,
2818 Value *TblRes = packTBLDVectorList(CGF, TblOps, 0, Ops[4], Ty,
2825 CmpRes = CGF.Builder.CreateSExt(CmpRes, Ty);
2831 Function *BslF = CGF.CGM.getIntrinsic(Intrinsic::arm_neon_vbsl, Ty);
2839 return packTBLDVectorList(CGF, TblOps, Ops[0], Ops[5], Ty,
2894 llvm::Type *Ty = CGM.getTypes().ConvertType(FD->getType());
2895 llvm::FunctionType *FTy = cast<llvm::FunctionType>(Ty);
2966 llvm::Type *Ty = VTy;
2967 if (!Ty)
3162 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrshr_n");
3180 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
3181 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
3184 Ops[1] = Builder.CreateCall2(CGM.getIntrinsic(Int, Ty), Ops[1], Ops[2]);
3198 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqshlu_n");
3202 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vsri_n");
3206 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vsli_n");
3225 return Builder.CreateTrunc(Ops[0], Ty, "vshrn_n");
3229 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqshrun_n");
3232 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrshrn_n");
3235 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqrshrun_n");
3239 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqshrn_n");
3243 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqrshrn_n");
3256 llvm::Type *Tys[2] = { FloatTy, Ty };
3276 llvm::Type *Tys[2] = { Ty, FloatTy };
3337 Function *F = CGM.getIntrinsic(Int, Ty);
3339 Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
3340 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
3365 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "");
3369 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
3370 Ty = llvm::PointerType::getUnqual(VTy->getElementType());
3371 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
3390 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
3392 Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
3394 Builder.CreateStore(Ops[1], Builder.CreateBitCast(Ops[0], Ty));
3436 Function *F = CGM.getIntrinsic(Int, Ty);
3438 Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
3439 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
3456 Function *F = CGM.getIntrinsic(Int, Ty);
3461 Args.append(STy->getNumElements(), UndefValue::get(Ty));
3471 Value *Elt = Builder.CreateBitCast(Val, Ty);
3476 Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
3477 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
3483 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_aese, Ty),
3486 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_aesd, Ty),
3489 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_aesmc, Ty),
3492 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_aesimc, Ty),
3495 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_sha1su1, Ty),
3498 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_sha256su0, Ty),
3501 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_sha1su0, Ty),
3504 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_sha256h, Ty),
3507 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_sha256h2, Ty),
3510 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_sha256su1, Ty),
3524 return Builder.CreateBitCast(Result, Ty);
3529 Value *F = CGM.getIntrinsic(Intrinsic::fma, Ty);
3530 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
3531 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
3533 Ops[2] = Builder.CreateBitCast(Ops[2], Ty);
3538 Value *F = CGM.getIntrinsic(Intrinsic::fma, Ty);
3539 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
3540 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
3542 llvm::VectorType *VTy = cast<llvm::VectorType>(Ty);
3553 llvm::VectorType *VTy = cast<llvm::VectorType>(Ty);
3564 return Builder.CreateBitCast(Result, Ty);
3566 Value *F = CGM.getIntrinsic(Intrinsic::fma, Ty);
3567 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
3568 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
3570 Ops[2] = Builder.CreateBitCast(Ops[2], Ty);
3575 llvm::VectorType *VTy = cast<llvm::VectorType>(Ty);
3586 return Builder.CreateBitCast(Result, Ty);
3588 Value *F = CGM.getIntrinsic(Intrinsic::fma, Ty);
3589 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
3590 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
3603 Value *F = CGM.getIntrinsic(Intrinsic::fma, Ty);
3604 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
3605 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
3607 Ops[2] = Builder.CreateBitCast(Ops[2], Ty);
3616 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vmaxnm");
3621 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vminnm");
3626 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vpmaxnm");
3631 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vpminnm");
3635 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vpmax");
3639 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vpmin");
3643 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vpadd");
3648 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vmulx");
3665 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::fabs, Ty), Ops, "vabs");
3672 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vsqadd");
3677 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vuqadd");
3691 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrbit");
3703 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
3704 Ty = GetNeonType(this, NeonTypeFlags(NeonTypeFlags::Float32, false, false));
3705 return Builder.CreateFPTrunc(Ops[0], Ty, "vcvt");
3710 llvm::Type *Tys[2] = { ResTy, Ty };
3718 return Builder.CreateFPExt(Ops[0], Ty, "vcvt");
3722 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
3723 Ty = GetNeonType(this, NeonTypeFlags(NeonTypeFlags::Float64, false, quad));
3724 return usgn ? Builder.CreateUIToFP(Ops[0], Ty, "vcvt")
3725 : Builder.CreateSIToFP(Ops[0], Ty, "vcvt");
3730 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrndn");
3735 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrnda");
3740 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrndp");
3745 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrndm");
3750 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrndx");
3755 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrnd");
3760 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrndi");
3774 return usgn ? Builder.CreateFPToUI(Ops[0], Ty, "vcvt")
3775 : Builder.CreateFPToSI(Ops[0], Ty, "vcvt");
3780 llvm::Type *Tys[2] = { Ty, OpTy };
3787 llvm::Type *Tys[2] = { Ty, OpTy };
3794 llvm::Type *Tys[2] = { Ty, OpTy };
3801 llvm::Type *Tys[2] = { Ty, OpTy };
3808 llvm::Type *Tys[2] = { Ty, OpTy };
3815 llvm::Type *Tys[2] = { Ty, OpTy };
3822 llvm::Type *Tys[2] = { Ty, OpTy };
3829 llvm::Type *Tys[2] = { Ty, OpTy };
3836 llvm::Type *Tys[2] = { Ty, OpTy };
3843 llvm::Type *Tys[2] = { Ty, OpTy };
3850 llvm::Type *Tys[2] = { Ty, OpTy };
3857 llvm::Type *Tys[2] = { Ty, OpTy };
3864 llvm::Type *Tys[2] = { Ty, OpTy };
3871 llvm::Type *Tys[2] = { Ty, OpTy };
3878 llvm::Type *Tys[2] = { Ty, OpTy };
3885 llvm::Type *Tys[2] = { Ty, OpTy };
3898 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vsqrt");
3905 return EmitAArch64CompareBuiltinExpr(Ops[0], Ty, ICmpInst::FCMP_OEQ,
3909 return EmitAArch64CompareBuiltinExpr(Ops[0], Ty, ICmpInst::FCMP_OGE,
3913 return EmitAArch64CompareBuiltinExpr(Ops[0], Ty, ICmpInst::FCMP_OLE,
3917 return EmitAArch64CompareBuiltinExpr(Ops[0], Ty, ICmpInst::FCMP_OGT,
3921 return EmitAArch64CompareBuiltinExpr(Ops[0], Ty, ICmpInst::FCMP_OLT,
3934 llvm::Type *Ty = CGM.getTypes().ConvertType(FD->getType());
3935 llvm::FunctionType *FTy = cast<llvm::FunctionType>(Ty);
3963 QualType Ty = E->getType();
3964 llvm::Type *RealResTy = ConvertType(Ty);
3966 getContext().getTypeSize(Ty));
4003 QualType Ty = E->getArg(0)->getType();
4005 getContext().getTypeSize(Ty));
4176 llvm::Type *Ty;
4178 Ty = FloatTy;
4180 Ty = DoubleTy;
4187 Function *F = CGM.getIntrinsic(Int, Ty);
4198 llvm::Type *Ty = VTy;
4199 if (!Ty)
4207 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vbsl, Ty),
4212 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vabd");
4215 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vabs, Ty),
4261 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vcls, Ty);
4268 Function *F = CGM.getIntrinsic(Intrinsic::ctlz, Ty);
4275 Function *F = CGM.getIntrinsic(Intrinsic::ctpop, Ty);
4292 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
4293 Ty = GetNeonType(this, NeonTypeFlags(NeonTypeFlags::Float32, false, quad));
4294 return usgn ? Builder.CreateUIToFP(Ops[0], Ty, "vcvt")
4295 : Builder.CreateSIToFP(Ops[0], Ty, "vcvt");
4303 return usgn ? Builder.CreateFPToUI(Ops[0], Ty, "vcvt")
4304 : Builder.CreateFPToSI(Ops[0], Ty, "vcvt");
4310 llvm::Type *Tys[2] = { FloatTy, Ty };
4322 llvm::Type *Tys[2] = { Ty, FloatTy };
4335 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
4336 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
4343 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vhadd");
4347 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vhsub");
4351 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vld1, Ty),
4358 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
4363 Ty = llvm::VectorType::get(VTy->getElementType(), 1);
4364 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vld1, Ty);
4375 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
4376 Ty = llvm::PointerType::getUnqual(VTy->getElementType());
4377 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
4384 Value *V = UndefValue::get(Ty);
4385 Ty = llvm::PointerType::getUnqual(VTy->getElementType());
4386 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
4395 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vld2, Ty);
4397 Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
4398 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
4403 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vld3, Ty);
4405 Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
4406 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
4411 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vld4, Ty);
4413 Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
4414 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
4419 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vld2lane, Ty);
4420 Ops[2] = Builder.CreateBitCast(Ops[2], Ty);
4421 Ops[3] = Builder.CreateBitCast(Ops[3], Ty);
4424 Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
4425 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
4430 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vld3lane, Ty);
4431 Ops[2] = Builder.CreateBitCast(Ops[2], Ty);
4432 Ops[3] = Builder.CreateBitCast(Ops[3], Ty);
4433 Ops[4] = Builder.CreateBitCast(Ops[4], Ty);
4436 Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
4437 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
4442 Function *F = CGM.getIntrinsic(Intrinsic::arm_neon_vld4lane, Ty);
4443 Ops[2] = Builder.CreateBitCast(Ops[2], Ty);
4444 Ops[3] = Builder.CreateBitCast(Ops[3], Ty);
4445 Ops[4] = Builder.CreateBitCast(Ops[4], Ty);
4446 Ops[5] = Builder.CreateBitCast(Ops[5], Ty);
4449 Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
4450 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
4470 Function *F = CGM.getIntrinsic(Int, Ty);
4472 Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
4473 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
4488 Function *F = CGM.getIntrinsic(Int, Ty);
4493 Args.append(STy->getNumElements(), UndefValue::get(Ty));
4503 Value *Elt = Builder.CreateBitCast(Val, Ty);
4508 Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
4509 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
4515 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vmax");
4519 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vmin");
4524 return Builder.CreateZExt(Ops[0], Ty, "vmovl");
4525 return Builder.CreateSExt(Ops[0], Ty, "vmovl");
4530 return Builder.CreateTrunc(Ops[0], Ty, "vmovn");
4535 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vmulp, Ty),
4545 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vmull");
4548 Value *F = CGM.getIntrinsic(Intrinsic::fma, Ty);
4549 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
4550 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
4551 Ops[2] = Builder.CreateBitCast(Ops[2], Ty);
4565 llvm::Type *Tys[2] = { Ty, NarrowTy };
4569 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vpadd, Ty),
4579 llvm::Type *Tys[2] = { Ty, NarrowTy };
4584 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vpmax");
4587 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vpmin");
4590 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqabs, Ty),
4595 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqadd");
4598 Value *Mul = EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqdmull, Ty),
4604 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqadds, Ty),
4609 Value *Mul = EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqdmull, Ty),
4615 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqsubs, Ty),
4620 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqdmulh, Ty),
4623 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqdmull, Ty),
4627 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqmovn");
4629 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqmovnsu, Ty),
4633 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqneg, Ty),
4637 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqrdmulh, Ty),
4642 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqrshl");
4646 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqrshrn_n",
4649 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqrshiftnsu, Ty),
4654 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqshl");
4658 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqshl_n",
4662 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqshiftsu, Ty),
4666 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqshrn_n",
4669 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vqshiftnsu, Ty),
4674 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqsub");
4676 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vraddhn, Ty),
4680 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vrecpe, Ty),
4684 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vrecps, Ty),
4689 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrhadd");
4693 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrshl");
4695 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vrshiftn, Ty),
4700 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrshr_n", 1, true);
4703 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vrsqrte, Ty),
4707 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vrsqrts, Ty),
4711 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
4712 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
4713 Ops[2] = EmitNeonShiftVector(Ops[2], Ty, true);
4715 Ops[1] = Builder.CreateCall2(CGM.getIntrinsic(Int, Ty), Ops[1], Ops[2]);
4718 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vrsubhn, Ty),
4723 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vshl");
4726 return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vshll", 1);
4729 Ops[1] = EmitNeonShiftVector(Ops[1], Ty, false);
4730 return Builder.CreateShl(Builder.CreateBitCast(Ops[0],Ty), Ops[1],
4733 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vshiftn, Ty),
4737 return EmitNeonRShiftImm(Ops[0], Ops[1], Ty, usgn, "vshr_n");
4743 Ops[2] = EmitNeonShiftVector(Ops[2], Ty, rightShift);
4744 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vshiftins, Ty),
4748 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
4749 Ops[1] = EmitNeonRShiftImm(Ops[1], Ops[2], Ty, usgn, "vsra_n");
4754 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst1, Ty),
4760 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
4769 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
4771 Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
4773 Builder.CreateBitCast(Ops[0], Ty));
4780 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst2, Ty),
4785 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst2lane, Ty),
4790 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst3, Ty),
4795 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst3lane, Ty),
4800 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst4, Ty),
4805 return EmitNeonCall(CGM.getIntrinsic(Intrinsic::arm_neon_vst4lane, Ty),
4851 Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
4852 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
4855 ConstantAggregateZero::get(Ty));
4856 return Builder.CreateSExt(Ops[0], Ty, "vtst");
4860 Ops[0] = Builder.CreateBitCast(Ops[0], llvm::PointerType::getUnqual(Ty));
4861 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
4862 Ops[2] = Builder.CreateBitCast(Ops[2], Ty);
4880 Ops[0] = Builder.CreateBitCast(Ops[0], llvm::PointerType::getUnqual(Ty));
4881 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
4882 Ops[2] = Builder.CreateBitCast(Ops[2], Ty);
4899 Ops[0] = Builder.CreateBitCast(Ops[0], llvm::PointerType::getUnqual(Ty));
4900 Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
4901 Ops[2] = Builder.CreateBitCast(Ops[2], Ty);