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

References

tools/clang/lib/CodeGen/CGBuiltin.cpp
 1321   llvm::Value *Signed = CGF.EmitScalarExpr(SignedOp);
 1322   llvm::Value *Unsigned = CGF.EmitScalarExpr(UnsignedOp);
 1328     Signed = CGF.Builder.CreateSExt(Signed, Unsigned->getType(), "op.sext");
 1330     Unsigned = CGF.Builder.CreateZExt(Unsigned, Signed->getType(), "op.zext");
 1334   Address ResultPtr = CGF.EmitPointerWithAlignment(ResultArg);
 1339   llvm::Value *IsNegative = CGF.Builder.CreateICmpSLT(Signed, Zero);
 1340   llvm::Value *AbsOfNegative = CGF.Builder.CreateSub(Zero, Signed);
 1342       CGF.Builder.CreateSelect(IsNegative, AbsOfNegative, Signed);
 1347       EmitOverflowIntrinsic(CGF, llvm::Intrinsic::umul_with_overflow, AbsSigned,
 1357         CGF.Builder.CreateAdd(llvm::ConstantInt::get(OpTy, IntMax),
 1358                               CGF.Builder.CreateZExt(IsNegative, OpTy));
 1360         CGF.Builder.CreateICmpUGT(UnsignedResult, MaxResult);
 1361     Overflow = CGF.Builder.CreateOr(UnsignedOverflow, SignedOverflow);
 1364     llvm::Value *NegativeResult = CGF.Builder.CreateNeg(UnsignedResult);
 1366         CGF.Builder.CreateSelect(IsNegative, NegativeResult, UnsignedResult);
 1367     Result = CGF.Builder.CreateTrunc(SignedResult, ResTy);
 1370     llvm::Value *Underflow = CGF.Builder.CreateAnd(
 1371         IsNegative, CGF.Builder.CreateIsNotNull(UnsignedResult));
 1372     Overflow = CGF.Builder.CreateOr(UnsignedOverflow, Underflow);
 1376       llvm::Value *TruncOverflow = CGF.Builder.CreateICmpUGT(
 1378       Overflow = CGF.Builder.CreateOr(Overflow, TruncOverflow);
 1382     Result = CGF.Builder.CreateSelect(
 1383         IsNegative, CGF.Builder.CreateNeg(UnsignedResult), UnsignedResult);
 1385     Result = CGF.Builder.CreateTrunc(Result, ResTy);
 1391   CGF.Builder.CreateStore(CGF.EmitToMemory(Result, ResultQTy), ResultPtr,
 1391   CGF.Builder.CreateStore(CGF.EmitToMemory(Result, ResultQTy), ResultPtr,