This is an archive of the discontinued LLVM Phabricator instance.

[X86][SSE] LowerUINT_TO_FP_i64 - only use HADDPD for size/fast-hops
ClosedPublic

Authored by RKSimon on Oct 18 2019, 8:55 AM.

Details

Summary

We were always generating a single source HADDPD, but really we should only do this if shouldUseHorizontalOp says its a good idea.

Diff Detail

Repository
rL LLVM

Event Timeline

RKSimon created this revision.Oct 18 2019, 8:55 AM
Herald added a project: Restricted Project. · View Herald TranscriptOct 18 2019, 8:55 AM
Herald added a subscriber: hiraditya. · View Herald Transcript
spatel accepted this revision.Oct 18 2019, 9:11 AM

LGTM

This revision is now accepted and ready to land.Oct 18 2019, 9:11 AM
This revision was automatically updated to reflect the committed changes.

This broke building ffmpeg/libav for mingw, with errors like "Cannot select: t22: v2f64 = X86ISD::FHADD t21, t21". See https://bugs.llvm.org/show_bug.cgi?id=43729 for details.

This broke building ffmpeg/libav for mingw, with errors like "Cannot select: t22: v2f64 = X86ISD::FHADD t21, t21". See https://bugs.llvm.org/show_bug.cgi?id=43729 for details.

I think we just need to add “Subtarget.hasSSE3() &&” before the call to shouldUseHorizontal.