[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