reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
3341 if (op.LHS->getType()->isPointerTy() || 3342 op.RHS->getType()->isPointerTy()) 3343 return emitPointerArithmetic(CGF, op, CodeGenFunction::NotSubtraction); 3345 if (op.Ty->isSignedIntegerOrEnumerationType()) { 3348 return Builder.CreateAdd(op.LHS, op.RHS, "add"); 3348 return Builder.CreateAdd(op.LHS, op.RHS, "add"); 3351 return Builder.CreateNSWAdd(op.LHS, op.RHS, "add"); 3351 return Builder.CreateNSWAdd(op.LHS, op.RHS, "add"); 3354 if (CanElideOverflowCheck(CGF.getContext(), op)) 3355 return Builder.CreateNSWAdd(op.LHS, op.RHS, "add"); 3355 return Builder.CreateNSWAdd(op.LHS, op.RHS, "add"); 3356 return EmitOverflowCheckedBinOp(op); 3360 if (op.Ty->isUnsignedIntegerType() && 3362 !CanElideOverflowCheck(CGF.getContext(), op)) 3363 return EmitOverflowCheckedBinOp(op); 3365 if (op.LHS->getType()->isFPOrFPVectorTy()) { 3367 if (Value *FMulAdd = tryEmitFMulAdd(op, CGF, Builder)) 3370 Value *V = Builder.CreateFAdd(op.LHS, op.RHS, "add"); 3370 Value *V = Builder.CreateFAdd(op.LHS, op.RHS, "add"); 3371 return propagateFMFlags(V, op); 3374 if (op.isFixedPointBinOp()) 3375 return EmitFixedPointBinOp(op); 3377 return Builder.CreateAdd(op.LHS, op.RHS, "add"); 3377 return Builder.CreateAdd(op.LHS, op.RHS, "add");