[PATCH] D137655: Expand fminimum/fmaximum into fminnum/fmaxnum + NaN check
Matt Arsenault via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Nov 10 08:40:29 PST 2022
arsenm added a comment.
In D137655#3918964 <https://reviews.llvm.org/D137655#3918964>, @gflegar wrote:
> In D137655#3917359 <https://reviews.llvm.org/D137655#3917359>, @nikic wrote:
>
>> I don't think this is right either. LLVM defines minnum according to the old semantics, which don't specify an order between zeroes. We'd need a separate ISD opcode for minnum according to 2018 semantics.
>
> Interestingly though, for the NVPTX backend this will end up producing the correct code, since minnum is lowered to the min/max PTX instructions, which defines the 2018 semantics. (I do agree though that the intermediate code is not correct.)
It's not OK to have wrong intermediate code. We do have the "new" semantic opcodes already in FMINIMUM/FMAXIMUM
================
Comment at: llvm/lib/Target/NVPTX/NVPTXISelLowering.cpp:2227-2228
+ SDValue NonPropagatingResult = DAG.getNode(NT, SL, VT, {LHS, RHS});
+ SDValue NaN = DAG.getConstantFP(std::numeric_limits<double>::quiet_NaN(), SL,
+ VT);
+ return DAG.getSelectCC(SL, LHS, RHS, NaN, NonPropagatingResult, ISD::SETUO);
----------------
Should go through APFloat
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D137655/new/
https://reviews.llvm.org/D137655
More information about the llvm-commits
mailing list