[PATCH] D145867: [X86][FP16] Optimize FMAXNUM/FMINNUM into SMAX/SMIN for FP16 emulation under fast math
Simon Pilgrim via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Sun Mar 12 05:02:07 PDT 2023
RKSimon added inline comments.
================
Comment at: llvm/lib/Target/X86/X86ISelLowering.cpp:53165
EVT VT = N->getValueType(0);
- if (Subtarget.useSoftFloat() || isSoftFP16(VT, Subtarget))
+ if (Subtarget.useSoftFloat() || isSoftFP16(VT, Subtarget)) {
+ if (DAG.getTarget().Options.NoNaNsFPMath || N->getFlags().hasNoNaNs()) {
----------------
We might need to improve soft float test coverage?
================
Comment at: llvm/test/CodeGen/X86/half.ll:1368
+; CHECK-LIBCALL-NEXT: pinsrw $0, %eax, %xmm0
+; CHECK-LIBCALL-NEXT: retq
+;
----------------
It seems a shame to scalarize this when we're already on the FPU, and we have pminsw/pmaxsw since SSE2
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D145867/new/
https://reviews.llvm.org/D145867
More information about the llvm-commits
mailing list