https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94427

--- Comment #2 from Richard Biener <rguenth at gcc dot gnu.org> ---
The hot/cold thing smells like PR90911 btw.

The cmov thing you identified is PR91154 which was fixed for archs that can
do the required SSE min/max operation which is SSE 4.1 IIRC.

It also is then a "duplicate" of the (various?) bugs about
to-cmov-or-not-to-cmov
where the microarchitectural details are unclear.

So I fear with just SSE2 we can't do anything here but apply yet another
heuristic special to hmmer that will likely hurt another case (there are
corresponding bugs asking for _more_ cmov...).  One of my first patches was
to notice the special constant for the max/min operation and not do
conditional move expansion (plus prevent later RTL ifcvt to apply with the
same heuristics).

Reply via email to