We currently have log, log2, log10, exp and exp2 intrinsics. Add
exp10 to fix this asymmetry. AMDGPU already has most of the code for
f32 exp10 expansion implemented alongside exp, so the current
implementation is duplicating nearly identical effort between the
compiler and library which is inconvenient.
Details
Diff Detail
Event Timeline
llvm/lib/Target/AArch64/GISel/AArch64LegalizerInfo.cpp | ||
---|---|---|
268 | Nit: is it possible to order these? |
My current intention is to not add any more constrained intrinsics as an unsustainable effort in boilerplate; I think we should do call strictfp instead of duplicating every operation and ignoring target intrinsics
This looks good. If the limited precision stuff isn't needed then I'll sign off on it.
llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp | ||
---|---|---|
423 | I assume this is clang-format's formatting? | |
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | ||
6400 | This is different from exp and exp2. Is the limited precision stuff not needed or doesn't make sense? |
llvm/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp | ||
---|---|---|
423 | Yes | |
llvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp | ||
6400 | It could follow it, but it's an additional optimization that can be done separately. Plus as far as I can tell, this is only enabled with a cl::opt which I didn't know existed so the utility seems marginal |
I assume this is clang-format's formatting?