Displaying 3 results from an estimated 3 matches for "fp_sqrt".
Did you mean:
dp_sqrt
2005 Mar 17
1
[LLVMdev] FP Intrinsics
...e are two places to implement
> this: LegalizeDAG for the SelectionDAG isels, and
> lib/CodeGen/IntrinsicLowering.cpp for other isels.
Why not do it in SelectionDAGLowering::visitCall? The way I have implemented it now, this calls
TLI.hasNativeSupportForOperation to see if it (for example FP_SQRT) is a legal operation on the target, and if not it
sets RenameFn to "sin" and simply goes ahead with generating the call. This is a lot less code than doing it in
LegalizeDAG, and also more efficient since it's not first lowered to an instruction and then expanded to a call.
m.
2005 Mar 16
0
[LLVMdev] FP Intrinsics
...> it working I would be very grateful... (Note that if you use the
> X86ISelSimple it's already working...)
One of the problems that jumps out at me in the pattern version is that
you have code that looks like this:
+ case Intrinsic::sqrt:
+ setValue(&I, DAG.getNode(ISD::FP_SQRT, MVT::f64,
+ getValue(I.getOperand(1))));
In your case, you're passing in an float, which is 32-bits. You probably
want the type argument for this to be whatever the input type is, not hard
coded to f64.
-Chris
--
http://nondot.org/sabre/
http://llvm.cs.uiuc...
2005 Mar 11
5
[LLVMdev] FP Intrinsics
Hello,
I am trying to make the FP intrinsics (abs, sin, cos, sqrt) I've added
work with the X86ISelPattern, but I'm having some difficulties
understanding what needs to be done. I assume I have to add new
nodetypes for the FP instructions to SelectionDAGNodes.h, and make nodes
for these in SelectionDAGLowering::visitCall when I find the intrinsic...
The part I don't quite