reference, declarationdefinition
definition → references, declarations, derived classes, virtual overrides
reference to multiple definitions → definitions
unreferenced

References

tools/clang/lib/CodeGen/CGBuiltin.cpp
 5254   if (!Ty)
 5277       return EmitNeonCall(CGM.getIntrinsic(Intrinsic::fabs, Ty), Ops, "vabs");
 5278     return EmitNeonCall(CGM.getIntrinsic(LLVMIntrinsic, Ty), Ops, "vabs");
 5326     return EmitAArch64CompareBuiltinExpr(Ops[0], Ty, ICmpInst::FCMP_OEQ,
 5330     return EmitAArch64CompareBuiltinExpr(Ops[0], Ty, ICmpInst::FCMP_OGE,
 5334     return EmitAArch64CompareBuiltinExpr(Ops[0], Ty, ICmpInst::FCMP_OLE,
 5338     return EmitAArch64CompareBuiltinExpr(Ops[0], Ty, ICmpInst::FCMP_OGT,
 5342     return EmitAArch64CompareBuiltinExpr(Ops[0], Ty, ICmpInst::FCMP_OLT,
 5352     Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
 5353     Ty = GetNeonType(this, NeonTypeFlags(NeonTypeFlags::Float32, false, Quad),
 5355     return Usgn ? Builder.CreateUIToFP(Ops[0], Ty, "vcvt")
 5356                 : Builder.CreateSIToFP(Ops[0], Ty, "vcvt");
 5359     Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
 5360     Ty = GetNeonType(this, NeonTypeFlags(NeonTypeFlags::Float16, false, Quad),
 5362     return Usgn ? Builder.CreateUIToFP(Ops[0], Ty, "vcvt")
 5363                 : Builder.CreateSIToFP(Ops[0], Ty, "vcvt");
 5370     llvm::Type *Tys[2] = { GetFloatNeonType(this, Type), Ty };
 5387     llvm::Type *Tys[2] = { Ty, GetFloatNeonType(this, Type) };
 5404     return Usgn ? Builder.CreateFPToUI(Ops[0], Ty, "vcvt")
 5405                 : Builder.CreateFPToSI(Ops[0], Ty, "vcvt");
 5455     llvm::Type *Tys[2] = { Ty, GetFloatNeonType(this, Type) };
 5465     Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
 5466     Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
 5471     Function *F = CGM.getIntrinsic(Intrinsic::fma, Ty);
 5472     Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
 5473     Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
 5474     Ops[2] = Builder.CreateBitCast(Ops[2], Ty);
 5481     llvm::Type *Tys[] = {Ty, Int8PtrTy};
 5496     Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
 5497     Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
 5512     llvm::Type *Tys[] = {Ty, Int8PtrTy};
 5516     Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
 5517     Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
 5522     Value *V = UndefValue::get(Ty);
 5523     Ty = llvm::PointerType::getUnqual(VTy->getElementType());
 5524     PtrOp0 = Builder.CreateBitCast(PtrOp0, Ty);
 5536     llvm::Type *Tys[] = {Ty, Int8PtrTy};
 5539       Ops[I] = Builder.CreateBitCast(Ops[I], Ty);
 5542     Ty = llvm::PointerType::getUnqual(Ops[1]->getType());
 5543     Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
 5550       return Builder.CreateZExt(Ops[0], Ty, "vmovl");
 5551     return Builder.CreateSExt(Ops[0], Ty, "vmovl");
 5556     return Builder.CreateTrunc(Ops[0], Ty, "vmovn");
 5566     return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vmull");
 5575     llvm::Type *Tys[2] = { Ty, NarrowTy };
 5585     llvm::Type *Tys[2] = { Ty, NarrowTy };
 5592         EmitNeonCall(CGM.getIntrinsic(LLVMIntrinsic, Ty), MulOps, "vqdmlal");
 5594     return EmitNeonCall(CGM.getIntrinsic(AltLLVMIntrinsic, Ty), Ops, NameHint);
 5598     return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqshl_n",
 5602     return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vqshlu_n",
 5608     Int = Ty->isFPOrFPVectorTy() ? LLVMIntrinsic : AltLLVMIntrinsic;
 5609     return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, NameHint);
 5613     return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, NameHint);
 5616     return EmitNeonCall(CGM.getIntrinsic(Int, Ty), Ops, "vrshr_n",
 5620     Ops[1] = EmitNeonShiftVector(Ops[1], Ty, false);
 5621     return Builder.CreateShl(Builder.CreateBitCast(Ops[0],Ty), Ops[1],
 5641     return Builder.CreateTrunc(Ops[0], Ty, "vshrn_n");
 5645     return EmitNeonRShiftImm(Ops[0], Ops[1], Ty, Usgn, "vshr_n");
 5660     llvm::Type *Tys[] = {Int8PtrTy, Ty};
 5700     Ops[0] = Builder.CreateBitCast(Ops[0], llvm::PointerType::getUnqual(Ty));
 5701     Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
 5702     Ops[2] = Builder.CreateBitCast(Ops[2], Ty);
 5711       Value *Addr = Builder.CreateConstInBoundsGEP1_32(Ty, Ops[0], vi);
 5719     Ops[0] = Builder.CreateBitCast(Ops[0], Ty);
 5720     Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
 5723                                 ConstantAggregateZero::get(Ty));
 5724     return Builder.CreateSExt(Ops[0], Ty, "vtst");
 5728     Ops[0] = Builder.CreateBitCast(Ops[0], llvm::PointerType::getUnqual(Ty));
 5729     Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
 5730     Ops[2] = Builder.CreateBitCast(Ops[2], Ty);
 5738       Value *Addr = Builder.CreateConstInBoundsGEP1_32(Ty, Ops[0], vi);
 5746     Ops[0] = Builder.CreateBitCast(Ops[0], llvm::PointerType::getUnqual(Ty));
 5747     Ops[1] = Builder.CreateBitCast(Ops[1], Ty);
 5748     Ops[2] = Builder.CreateBitCast(Ops[2], Ty);
 5757       Value *Addr = Builder.CreateConstInBoundsGEP1_32(Ty, Ops[0], vi);
 5766         llvm::VectorType::get(Int8Ty, Ty->getPrimitiveSizeInBits() / 8);
 5767     llvm::Type *Tys[2] = { Ty, InputTy };
 5774         llvm::VectorType::get(HalfTy, Ty->getPrimitiveSizeInBits() / 16);
 5775     llvm::Type *Tys[2] = { Ty, InputTy };
 5781         llvm::VectorType::get(HalfTy, Ty->getPrimitiveSizeInBits() / 16);
 5782     llvm::Type *Tys[2] = { Ty, InputTy };
 5788            llvm::VectorType::get(HalfTy, Ty->getPrimitiveSizeInBits() / 16);
 5789     llvm::Type *Tys[2] = { Ty, InputTy };
 5795            llvm::VectorType::get(HalfTy, Ty->getPrimitiveSizeInBits() / 16);
 5796     llvm::Type *Tys[2] = { Ty, InputTy };
 5804   Function *F = LookupNeonLLVMIntrinsic(Int, Modifier, Ty, E);