Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 6 additions & 3 deletions llvm/lib/Target/X86/X86ISelLowering.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -29507,11 +29507,14 @@ static SDValue LowerFMINIMUM_FMAXIMUM(SDValue Op, const X86Subtarget &Subtarget,
if (IgnoreNaN || DAG.isKnownNeverNaN(IsNum ? NewY : NewX))
return MinMax;

if (DAG.isKnownNeverNaN(NewX))
if (IsNum)
NewY = MinMax;
else if (DAG.isKnownNeverNaN(NewX))
NewX = NewY;
else
NewY = NewX;

SDValue IsNaN =
DAG.getSetCC(DL, SetCCType, NewX, NewX, IsNum ? ISD::SETO : ISD::SETUO);
SDValue IsNaN = DAG.getSetCC(DL, SetCCType, NewY, NewY, ISD::SETUO);

return DAG.getSelect(DL, VT, IsNaN, NewX, MinMax);
}
Expand Down
Loading