[Bug target/70708] Suboptimal code generated when using _mm_set_sd (X64)
rguenth at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Mon Apr 18 13:29:00 GMT 2016
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708
Richard Biener <rguenth at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Last reconfirmed| |2016-04-18
Ever confirmed|0 |1
--- Comment #4 from Richard Biener <rguenth at gcc dot gnu.org> ---
If there were not PR61810 then
double MyMinV2(double a, double b) {
double undef = undef;
__m128d x = (__m128d) { a, undef };
__m128d y = (__m128d) { b, undef };
return _mm_cvtsd_f64(_mm_min_sd(x, y));
}
would work. Currently it does
MyMinV2:
.LFB525:
.cfi_startproc
movhpd .LC0(%rip), %xmm0
movhpd .LC0(%rip), %xmm1
minsd %xmm1, %xmm0
so as if you'd use 0.0 for undef. Might be still "better" than going
through the stack.
More information about the Gcc-bugs
mailing list