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

References

tools/clang/lib/CodeGen/CGBuiltin.cpp
 7084     Value *Address         = EmitScalarExpr(E->getArg(0));
 7085     Value *RW              = EmitScalarExpr(E->getArg(1));
 7086     Value *CacheLevel      = EmitScalarExpr(E->getArg(2));
 7087     Value *RetentionPolicy = EmitScalarExpr(E->getArg(3));
 7088     Value *IsData          = EmitScalarExpr(E->getArg(4));
 7107     assert((getContext().getTypeSize(E->getType()) == 32) &&
 7109     llvm::Value *Arg = EmitScalarExpr(E->getArg(0));
 7114     assert((getContext().getTypeSize(E->getType()) == 64) &&
 7116     llvm::Value *Arg = EmitScalarExpr(E->getArg(0));
 7122     llvm::Value *Arg = EmitScalarExpr(E->getArg(0));
 7127     llvm::Value *Arg = EmitScalarExpr(E->getArg(0));
 7133     assert((getContext().getTypeSize(E->getType()) == 32) &&
 7135     llvm::Value *Arg = EmitScalarExpr(E->getArg(0));
 7141     assert(E->getNumArgs() == 2 && "__clear_cache takes 2 arguments");
 7142     const FunctionDecl *FD = E->getDirectCallee();
 7145       Ops[i] = EmitScalarExpr(E->getArg(i));
 7154       getContext().getTypeSize(E->getType()) == 128) {
 7159     Value *LdPtr = EmitScalarExpr(E->getArg(0));
 7172     return Builder.CreateBitCast(Val, ConvertType(E->getType()));
 7175     Value *LoadAddr = EmitScalarExpr(E->getArg(0));
 7177     QualType Ty = E->getType();
 7200       getContext().getTypeSize(E->getArg(0)->getType()) == 128) {
 7206     Address Tmp = CreateMemTemp(E->getArg(0)->getType());
 7207     EmitAnyExprToMem(E->getArg(0), Tmp, Qualifiers(), /*init*/ true);
 7214     Value *StPtr = Builder.CreateBitCast(EmitScalarExpr(E->getArg(1)),
 7221     Value *StoreVal = EmitScalarExpr(E->getArg(0));
 7222     Value *StoreAddr = EmitScalarExpr(E->getArg(1));
 7224     QualType Ty = E->getArg(0)->getType();
 7248     if (!E->getArg(0)->EvaluateAsInt(Result, CGM.getContext()))
 7295     Value *Arg0 = EmitScalarExpr(E->getArg(0));
 7296     Value *Arg1 = EmitScalarExpr(E->getArg(1));
 7323     llvm::Type *T = ConvertType(E->getType());
 7326       Value *Pointer = EmitScalarExpr(E->getArg(0));
 7327       Value *Mask = EmitScalarExpr(E->getArg(1));
 7336       Value *Pointer = EmitScalarExpr(E->getArg(0));
 7337       Value *TagOffset = EmitScalarExpr(E->getArg(1));
 7346       Value *Pointer = EmitScalarExpr(E->getArg(0));
 7347       Value *ExcludedMask = EmitScalarExpr(E->getArg(1));
 7358       Value *TagAddress = EmitScalarExpr(E->getArg(0));
 7368         Value *TagAddress = EmitScalarExpr(E->getArg(0));
 7374       Value *PointerA = EmitScalarExpr(E->getArg(0));
 7375       Value *PointerB = EmitScalarExpr(E->getArg(1));
 7410     return EmitSpecialRegisterBuiltin(*this, E, RegisterType, ValueType, IsRead);
 7418       E->getArg(0)->EvaluateKnownConstInt(getContext()).getZExtValue();
 7442     llvm::Value *ArgValue = EmitScalarExpr(E->getArg(1));
 7466   for (unsigned i = 0, e = E->getNumArgs() - 1; i != e; i++) {
 7468       Ops.push_back(EmitScalarExpr(E->getArg(i)));
 7473       bool IsConst = E->getArg(i)->isIntegerConstantExpr(Result, getContext());
 7485     Ops.push_back(EmitScalarExpr(E->getArg(E->getNumArgs() - 1)));
 7485     Ops.push_back(EmitScalarExpr(E->getArg(E->getNumArgs() - 1)));
 7486     Value *Result = EmitCommonNeonSISDBuiltinExpr(*this, *Builtin, Ops, E);
 7492   const Expr *Arg = E->getArg(E->getNumArgs()-1);
 7492   const Expr *Arg = E->getArg(E->getNumArgs()-1);
 7505     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 7510     Value *Ptr = Builder.CreateBitCast(EmitScalarExpr(E->getArg(0)), Int128PTy);
 7517     return Builder.CreateDefaultAlignedStore(EmitScalarExpr(E->getArg(1)), Ptr);
 7525     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 7540     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 7557     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 7575     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 7585     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 7595     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 7613     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 7644     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 7665     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 7682     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 7698     Value *Vec = EmitScalarExpr(E->getArg(0));
 7711     Value *Vec = EmitScalarExpr(E->getArg(0));
 7724     Value *Vec = EmitScalarExpr(E->getArg(0));
 7738     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 7740         Ops[0], ConvertType(E->getCallReturnType(getContext())),
 7746     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 7748         Ops[0], ConvertType(E->getCallReturnType(getContext())),
 7754     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 7756         Ops[0], ConvertType(E->getCallReturnType(getContext())),
 7762     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 7764         Ops[0], ConvertType(E->getCallReturnType(getContext())),
 7770     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 7772         Ops[0], ConvertType(E->getCallReturnType(getContext())),
 7776     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 7796     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 7816     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 7836     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 7866     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 7874     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 7892     Ops.push_back(EmitScalarExpr(E->getArg(2)));
 7898     Ops.push_back(EmitScalarExpr(E->getArg(2)));
 7904     Ops.push_back(EmitScalarExpr(E->getArg(2)));
 7910     return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)),
 7915     return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)),
 7920     return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)),
 7925     return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)),
 7930     return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)),
 7935     return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)),
 7940     return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)),
 7945     return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)),
 7950     return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)),
 7955     return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)),
 7960     return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)),
 7965     return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)),
 7971     return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)),
 7977     return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)),
 7980     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 7983     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 7986     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 7989     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 7995       {EmitScalarExpr(E->getArg(1)), EmitScalarExpr(E->getArg(2)), Ops[0]});
 7995       {EmitScalarExpr(E->getArg(1)), EmitScalarExpr(E->getArg(2)), Ops[0]});
 8000     Value* Sub = Builder.CreateFSub(Zero, EmitScalarExpr(E->getArg(1)), "vsubh");
 8002     return Builder.CreateCall(F, {Sub, EmitScalarExpr(E->getArg(2)), Ops[0]});
 8006     return Builder.CreateAdd(Ops[0], EmitScalarExpr(E->getArg(1)), "vaddd");
 8009     return Builder.CreateSub(Ops[0], EmitScalarExpr(E->getArg(1)), "vsubd");
 8014     ProductOps.push_back(vectorWrapScalar16(EmitScalarExpr(E->getArg(2))));
 8027     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 8037     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 8046     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 8057     Ops.push_back(Builder.CreateNeg(EmitScalarExpr(E->getArg(2))));
 8064     llvm::ConstantInt *Amt = cast<ConstantInt>(EmitScalarExpr(E->getArg(1)));
 8069     llvm::ConstantInt *Amt = cast<ConstantInt>(EmitScalarExpr(E->getArg(1)));
 8076     llvm::ConstantInt *Amt = cast<ConstantInt>(EmitScalarExpr(E->getArg(1)));
 8085     llvm::ConstantInt *Amt = cast<ConstantInt>(EmitScalarExpr(E->getArg(2)));
 8093     llvm::ConstantInt *Amt = cast<ConstantInt>(EmitScalarExpr(E->getArg(2)));
 8107     Ops[2] = Builder.CreateExtractElement(Ops[2], EmitScalarExpr(E->getArg(3)),
 8129     ProductOps.push_back(EmitScalarExpr(E->getArg(2)));
 8143     Ops[2] = Builder.CreateExtractElement(Ops[2], EmitScalarExpr(E->getArg(3)),
 8160     return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)),
 8164     return Builder.CreateExtractElement(Ops[0], EmitScalarExpr(E->getArg(1)),
 8169     return EmitMSVCBuiltinExpr(MSVCIntrin::_BitScanForward, E);
 8172     return EmitMSVCBuiltinExpr(MSVCIntrin::_BitScanReverse, E);
 8174     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedAnd, E);
 8176     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchange, E);
 8178     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeAdd, E);
 8180     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeSub, E);
 8182     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedOr, E);
 8184     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedXor, E);
 8186     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedDecrement, E);
 8188     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedIncrement, E);
 8193     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeAdd_acq, E);
 8198     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeAdd_rel, E);
 8203     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchangeAdd_nf, E);
 8208     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchange_acq, E);
 8213     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchange_rel, E);
 8218     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedExchange_nf, E);
 8223     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedCompareExchange_acq, E);
 8228     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedCompareExchange_rel, E);
 8233     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedCompareExchange_nf, E);
 8238     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedOr_acq, E);
 8243     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedOr_rel, E);
 8248     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedOr_nf, E);
 8253     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedXor_acq, E);
 8258     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedXor_rel, E);
 8263     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedXor_nf, E);
 8268     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedAnd_acq, E);
 8273     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedAnd_rel, E);
 8278     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedAnd_nf, E);
 8282     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedIncrement_acq, E);
 8286     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedIncrement_rel, E);
 8290     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedIncrement_nf, E);
 8294     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedDecrement_acq, E);
 8298     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedDecrement_rel, E);
 8302     return EmitMSVCBuiltinExpr(MSVCIntrin::_InterlockedDecrement_nf, E);
 8305     Value *Arg0 = EmitScalarExpr(E->getArg(0));
 8306     Value *Arg1 = EmitScalarExpr(E->getArg(1));
 8327         Builtin->NameHint, Builtin->TypeModifier, E, Ops,
 8330   if (Value *V = EmitAArch64TblBuiltinExpr(*this, BuiltinID, E, Ops, Arch))
 8414     Ops.push_back(EmitScalarExpr(E->getArg(3)));
 8415     llvm::Type *Ty = ConvertType(E->getCallReturnType(getContext()));
 8432     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 8443     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 8486     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 8494     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 8498     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 8503     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 8507     Ops.push_back(EmitScalarExpr(E->getArg(1)));
 8526     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8536     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8541     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8551     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8561     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8566     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8576     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8586     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8707     Ops.push_back(EmitScalarExpr(E->getArg(2)));
 8728     return Builder.CreateNeg(EmitScalarExpr(E->getArg(0)), "vnegd");
 8730     return Builder.CreateFNeg(EmitScalarExpr(E->getArg(0)), "vnegh");
 8742     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8766     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8778     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8790     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8802     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8811     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8820     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8829     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8838     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8847     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8856     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8865     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8874     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8883     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8892     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8901     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8910     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8919     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8928     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8937     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8946     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8955     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8964     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8973     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8982     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 8991     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 9000     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 9009     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 9018     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 9024     Value *RHS = Builder.CreateBitCast(EmitScalarExpr(E->getArg(1)), DoubleTy);
 9032     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 9041     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 9049     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 9058     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 9066     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 9075     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 9083     Ops.push_back(EmitScalarExpr(E->getArg(0)));
 9092     Ops.push_back(EmitScalarExpr(E->getArg(0)));