reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
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)));