mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-09-25 17:20:48 +00:00
Rewrite sqrt and powi to use anyfloat. By popular demand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42537 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -329,16 +329,8 @@ Constant *llvm::ConstantFoldLoadThroughGEPConstantExpr(Constant *C,
|
||||
bool
|
||||
llvm::canConstantFoldCallTo(Function *F) {
|
||||
switch (F->getIntrinsicID()) {
|
||||
case Intrinsic::sqrt_f32:
|
||||
case Intrinsic::sqrt_f64:
|
||||
case Intrinsic::sqrt_f80:
|
||||
case Intrinsic::sqrt_f128:
|
||||
case Intrinsic::sqrt_ppcf128:
|
||||
case Intrinsic::powi_f32:
|
||||
case Intrinsic::powi_f64:
|
||||
case Intrinsic::powi_f80:
|
||||
case Intrinsic::powi_f128:
|
||||
case Intrinsic::powi_ppcf128:
|
||||
case Intrinsic::sqrt:
|
||||
case Intrinsic::powi:
|
||||
case Intrinsic::bswap:
|
||||
case Intrinsic::ctpop:
|
||||
case Intrinsic::ctlz:
|
||||
@@ -539,12 +531,12 @@ llvm::ConstantFoldCall(Function *F, Constant** Operands, unsigned NumOperands) {
|
||||
}
|
||||
} else if (NumOperands == 2) {
|
||||
if (ConstantFP *Op1 = dyn_cast<ConstantFP>(Operands[0])) {
|
||||
if (Ty!=Type::FloatTy && Ty!=Type::DoubleTy)
|
||||
return 0;
|
||||
double Op1V = Ty==Type::FloatTy ?
|
||||
(double)Op1->getValueAPF().convertToFloat():
|
||||
Op1->getValueAPF().convertToDouble();
|
||||
if (ConstantFP *Op2 = dyn_cast<ConstantFP>(Operands[1])) {
|
||||
if (Ty!=Type::FloatTy && Ty!=Type::DoubleTy)
|
||||
return 0;
|
||||
double Op2V = Ty==Type::FloatTy ?
|
||||
(double)Op2->getValueAPF().convertToFloat():
|
||||
Op2->getValueAPF().convertToDouble();
|
||||
|
Reference in New Issue
Block a user