[Bug target/70708] Suboptimal code generated when using _mm_set_sd (X64)

2016-04-18 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708 --- Comment #16 from H.J. Lu --- (In reply to Marc Glisse from comment #15) > MyMinV2 returns a double, not a __m128d. I tried to read what the ABI says > about the unused upper part of SSE registers when passing/returning a double > and couldn't

[Bug target/70708] Suboptimal code generated when using _mm_set_sd (X64)

2016-04-18 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708 --- Comment #15 from Marc Glisse --- (In reply to H.J. Lu from comment #13) > (In reply to Marc Glisse from comment #11) > > Since for MyMinV1 we generate no move at all, then that code should also be > > valid for MyMinV2 (no issue with sNaN in

[Bug target/70708] Suboptimal code generated when using _mm_set_sd (X64)

2016-04-18 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708 --- Comment #14 from Marc Glisse --- (In reply to H.J. Lu from comment #12) > (In reply to Marc Glisse from comment #11) > > As I told you in the other PR, movq is *NOT* what the PRs are asking for, it > > See the subject of this PR. 1) I know

[Bug target/70708] Suboptimal code generated when using _mm_set_sd (X64)

2016-04-18 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708 H.J. Lu changed: What|Removed |Added Status|NEW |RESOLVED Resolution|---

[Bug target/70708] Suboptimal code generated when using _mm_set_sd (X64)

2016-04-18 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708 --- Comment #12 from H.J. Lu --- (In reply to Marc Glisse from comment #11) > As I told you in the other PR, movq is *NOT* what the PRs are asking for, it See the subject of this PR.

[Bug target/70708] Suboptimal code generated when using _mm_set_sd (X64)

2016-04-18 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708 Marc Glisse changed: What|Removed |Added Status|RESOLVED|NEW Resolution|FIXED

[Bug target/70708] Suboptimal code generated when using _mm_set_sd (X64)

2016-04-18 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708 H.J. Lu changed: What|Removed |Added Status|NEW |RESOLVED Resolution|---

[Bug target/70708] Suboptimal code generated when using _mm_set_sd (X64)

2016-04-18 Thread hjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708 --- Comment #9 from hjl at gcc dot gnu.org --- Author: hjl Date: Mon Apr 18 19:40:30 2016 New Revision: 235169 URL: https://gcc.gnu.org/viewcvs?rev=235169&root=gcc&view=rev Log: Optimize load double into xmm with zero_extend "movq" should used

[Bug target/70708] Suboptimal code generated when using _mm_set_sd (X64)

2016-04-18 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708 H.J. Lu changed: What|Removed |Added CC||glisse at gcc dot gnu.org --- Comment #8 from

[Bug target/70708] Suboptimal code generated when using _mm_set_sd (X64)

2016-04-18 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708 --- Comment #7 from H.J. Lu --- Created attachment 38303 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=38303&action=edit A patch for _mm_set_sd We should use "movq" instead of "movsd" for _mm_set_sd.

[Bug target/70708] Suboptimal code generated when using _mm_set_sd (X64)

2016-04-18 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708 --- Comment #6 from Marc Glisse --- (In reply to Petr from comment #3) > Is there any workaround guys? > > I was looking for some built-in that would allow me just cast `double` to > `__m128d` without going through `_mm_set_sd()`, but leaving th

[Bug target/70708] Suboptimal code generated when using _mm_set_sd (X64)

2016-04-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708 --- Comment #5 from Richard Biener --- double MyMinV2(double a, double b) { double undef = undef; __m128d x; __m128d y; asm ("" : "=x" (x) : "0" (a)); asm ("" : "=x" (y) : "0" (b)); return _mm_cvtsd_f64(_mm_min_sd(x, y));

[Bug target/70708] Suboptimal code generated when using _mm_set_sd (X64)

2016-04-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed|

[Bug target/70708] Suboptimal code generated when using _mm_set_sd (X64)

2016-04-18 Thread kobalicek.petr at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708 --- Comment #3 from Petr --- Is there any workaround guys? I was looking for some built-in that would allow me just cast `double` to `__m128d` without going through `_mm_set_sd()`, but leaving the high part undefined.

[Bug target/70708] Suboptimal code generated when using _mm_set_sd (X64)

2016-04-18 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70708 Richard Biener changed: What|Removed |Added Target||x86_64-*-* CC|