Add support for FSQRT node, patch contributed by Morten Ofstad

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21610 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Chris Lattner 2005-04-28 22:07:18 +00:00
parent 5b103c20e3
commit 2c56e8a23e

View File

@ -1830,12 +1830,16 @@ unsigned ISel::SelectExpr(SDOperand N) {
return Result;
case ISD::FABS:
Tmp1 = SelectExpr(Node->getOperand(0));
BuildMI(BB, X86::FABS, 1, Result).addReg(Tmp1);
return Result;
case ISD::FNEG:
case ISD::FSQRT:
assert(N.getValueType()==MVT::f64 && "Illegal type for this operation");
Tmp1 = SelectExpr(Node->getOperand(0));
BuildMI(BB, X86::FCHS, 1, Result).addReg(Tmp1);
switch (N.getOpcode()) {
default: assert(0 && "Unreachable!");
case ISD::FABS: BuildMI(BB, X86::FABS, 1, Result).addReg(Tmp1); break;
case ISD::FNEG: BuildMI(BB, X86::FCHS, 1, Result).addReg(Tmp1); break;
case ISD::FSQRT: BuildMI(BB, X86::FSQRT, 1, Result).addReg(Tmp1); break;
}
return Result;
case ISD::MULHU: