Lines Matching refs:Op
140 ComplexPairTy EmitCast(CastExpr::CastKind CK, Expr *Op, QualType DestTy);
219 ComplexPairTy EmitBinAdd(const BinOpInfo &Op);
220 ComplexPairTy EmitBinSub(const BinOpInfo &Op);
221 ComplexPairTy EmitBinMul(const BinOpInfo &Op);
222 ComplexPairTy EmitBinDiv(const BinOpInfo &Op);
376 ComplexPairTy ComplexExprEmitter::EmitCast(CastExpr::CastKind CK, Expr *Op, in EmitCast() argument
388 return Visit(Op); in EmitCast()
391 LValue origLV = CGF.EmitLValue(Op); in EmitCast()
444 llvm::Value *Elt = CGF.EmitScalarExpr(Op); in EmitCast()
448 Elt = CGF.EmitScalarConversion(Elt, Op->getType(), DestTy); in EmitCast()
458 return EmitComplexToComplexCast(Visit(Op), Op->getType(), DestTy); in EmitCast()
467 ComplexPairTy Op = Visit(E->getSubExpr()); in VisitUnaryMinus() local
470 if (Op.first->getType()->isFloatingPointTy()) { in VisitUnaryMinus()
471 ResR = Builder.CreateFNeg(Op.first, "neg.r"); in VisitUnaryMinus()
472 ResI = Builder.CreateFNeg(Op.second, "neg.i"); in VisitUnaryMinus()
474 ResR = Builder.CreateNeg(Op.first, "neg.r"); in VisitUnaryMinus()
475 ResI = Builder.CreateNeg(Op.second, "neg.i"); in VisitUnaryMinus()
484 ComplexPairTy Op = Visit(E->getSubExpr()); in VisitUnaryNot() local
486 if (Op.second->getType()->isFloatingPointTy()) in VisitUnaryNot()
487 ResI = Builder.CreateFNeg(Op.second, "conj.i"); in VisitUnaryNot()
489 ResI = Builder.CreateNeg(Op.second, "conj.i"); in VisitUnaryNot()
491 return ComplexPairTy(Op.first, ResI); in VisitUnaryNot()
494 ComplexPairTy ComplexExprEmitter::EmitBinAdd(const BinOpInfo &Op) { in EmitBinAdd() argument
497 if (Op.LHS.first->getType()->isFloatingPointTy()) { in EmitBinAdd()
498 ResR = Builder.CreateFAdd(Op.LHS.first, Op.RHS.first, "add.r"); in EmitBinAdd()
499 ResI = Builder.CreateFAdd(Op.LHS.second, Op.RHS.second, "add.i"); in EmitBinAdd()
501 ResR = Builder.CreateAdd(Op.LHS.first, Op.RHS.first, "add.r"); in EmitBinAdd()
502 ResI = Builder.CreateAdd(Op.LHS.second, Op.RHS.second, "add.i"); in EmitBinAdd()
507 ComplexPairTy ComplexExprEmitter::EmitBinSub(const BinOpInfo &Op) { in EmitBinSub() argument
509 if (Op.LHS.first->getType()->isFloatingPointTy()) { in EmitBinSub()
510 ResR = Builder.CreateFSub(Op.LHS.first, Op.RHS.first, "sub.r"); in EmitBinSub()
511 ResI = Builder.CreateFSub(Op.LHS.second, Op.RHS.second, "sub.i"); in EmitBinSub()
513 ResR = Builder.CreateSub(Op.LHS.first, Op.RHS.first, "sub.r"); in EmitBinSub()
514 ResI = Builder.CreateSub(Op.LHS.second, Op.RHS.second, "sub.i"); in EmitBinSub()
520 ComplexPairTy ComplexExprEmitter::EmitBinMul(const BinOpInfo &Op) { in EmitBinMul() argument
524 if (Op.LHS.first->getType()->isFloatingPointTy()) { in EmitBinMul()
525 Value *ResRl = Builder.CreateFMul(Op.LHS.first, Op.RHS.first, "mul.rl"); in EmitBinMul()
526 Value *ResRr = Builder.CreateFMul(Op.LHS.second, Op.RHS.second,"mul.rr"); in EmitBinMul()
529 Value *ResIl = Builder.CreateFMul(Op.LHS.second, Op.RHS.first, "mul.il"); in EmitBinMul()
530 Value *ResIr = Builder.CreateFMul(Op.LHS.first, Op.RHS.second, "mul.ir"); in EmitBinMul()
533 Value *ResRl = Builder.CreateMul(Op.LHS.first, Op.RHS.first, "mul.rl"); in EmitBinMul()
534 Value *ResRr = Builder.CreateMul(Op.LHS.second, Op.RHS.second,"mul.rr"); in EmitBinMul()
537 Value *ResIl = Builder.CreateMul(Op.LHS.second, Op.RHS.first, "mul.il"); in EmitBinMul()
538 Value *ResIr = Builder.CreateMul(Op.LHS.first, Op.RHS.second, "mul.ir"); in EmitBinMul()
544 ComplexPairTy ComplexExprEmitter::EmitBinDiv(const BinOpInfo &Op) { in EmitBinDiv() argument
545 llvm::Value *LHSr = Op.LHS.first, *LHSi = Op.LHS.second; in EmitBinDiv()
546 llvm::Value *RHSr = Op.RHS.first, *RHSi = Op.RHS.second; in EmitBinDiv()
550 if (Op.LHS.first->getType()->isFloatingPointTy()) { in EmitBinDiv()
580 if (Op.Ty->castAs<ComplexType>()->getElementType()->isUnsignedIntegerType()) { in EmitBinDiv()
831 ComplexPairTy(ComplexExprEmitter::*Op)(const ComplexExprEmitter::BinOpInfo &); in EmitComplexCompoundAssignmentLValue() local
833 case BO_MulAssign: Op = &ComplexExprEmitter::EmitBinMul; break; in EmitComplexCompoundAssignmentLValue()
834 case BO_DivAssign: Op = &ComplexExprEmitter::EmitBinDiv; break; in EmitComplexCompoundAssignmentLValue()
835 case BO_SubAssign: Op = &ComplexExprEmitter::EmitBinSub; break; in EmitComplexCompoundAssignmentLValue()
836 case BO_AddAssign: Op = &ComplexExprEmitter::EmitBinAdd; break; in EmitComplexCompoundAssignmentLValue()
843 return ComplexExprEmitter(*this).EmitCompoundAssignLValue(E, Op, Val); in EmitComplexCompoundAssignmentLValue()