Add patterns for doing floating point round with various rounding modes
followed by conversion to int as a single FCVT* instruction.
Details
Details
Diff Detail
Diff Detail
- Repository
- rL LLVM
Event Timeline
lib/Target/AArch64/AArch64ISelDAGToDAG.cpp | ||
---|---|---|
2119 ↗ | (On Diff #30382) | Perhaps, put an assertion at the top of the function: assert((N->getOpcode() == ISD::FP_TO_SINT || N->getOpcode() == ISD::FP_TO_UINT) && "Unexpected opcode!"); Then this logic could be simplified to something like: |
2124 ↗ | (On Diff #30382) | I don't think this will ever assert; the const string will always evaluate to true. |
2131 ↗ | (On Diff #30382) | Missing FTRUNC. |
3337 ↗ | (On Diff #30382) | Maybe a static helper function or fold the logic into the callee? |
Comment Actions
Hi Geoff,
Generally, what is stopping this transform being implemented in TableGen? Is it just the generation of the inexact flag?
James
Comment Actions
James,
Yes, the FRINTX generation just seemed like a bit too much to do in TableGen (if it is even possible, I didn't try it).
-Geoff