[Bug c/91526] Unnecessary SSE and other instructions generated when compiling in C mode (vs. C++ mode)

2019-08-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91526 --- Comment #8 from Richard Biener --- Author: rguenth Date: Mon Aug 26 09:29:07 2019 New Revision: 274922 URL: https://gcc.gnu.org/viewcvs?rev=274922=gcc=rev Log: 2019-08-26 Richard Biener PR tree-optimization/91526 *

[Bug c/91526] Unnecessary SSE and other instructions generated when compiling in C mode (vs. C++ mode)

2019-08-23 Thread joseph at codesourcery dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91526 --- Comment #7 from joseph at codesourcery dot com --- There's more or less the same ABI question as in bug 91398 about whether there is any constraint on the called function writing to the return value slot in cases where it does not return

[Bug c/91526] Unnecessary SSE and other instructions generated when compiling in C mode (vs. C++ mode)

2019-08-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91526 --- Comment #6 from Richard Biener --- Oh, and then, since we vectorized things, we do not NRV because || DECL_ALIGN (found) > DECL_ALIGN (result) thus we adjusted the VAR_DECLs alignment but the ABI says the return slot isn't

[Bug c/91526] Unnecessary SSE and other instructions generated when compiling in C mode (vs. C++ mode)

2019-08-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91526 --- Comment #5 from Richard Biener --- (In reply to Jakub Jelinek from comment #4) > > so the C++ FE already elides the return copy by placing 'result' in the > > return slot while the C FE doesn't do this. > > That's because in C++ the

[Bug c/91526] Unnecessary SSE and other instructions generated when compiling in C mode (vs. C++ mode)

2019-08-23 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91526 Jakub Jelinek changed: What|Removed |Added CC||jsm28 at gcc dot gnu.org --- Comment #4

[Bug c/91526] Unnecessary SSE and other instructions generated when compiling in C mode (vs. C++ mode)

2019-08-23 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91526 --- Comment #3 from Andrew Pinski --- >Interestingly, even if the __restrict__ attribute is removed, it still gets >vectorized. Is this correct behavior? Yes as v1->v[0] cannot be the same as v2->v[1] or result->v[1], etc. due to the full

[Bug c/91526] Unnecessary SSE and other instructions generated when compiling in C mode (vs. C++ mode)

2019-08-23 Thread bisqwit at iki dot fi
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91526 Joel Yliluoma changed: What|Removed |Added CC||bisqwit at iki dot fi --- Comment #2

[Bug c/91526] Unnecessary SSE and other instructions generated when compiling in C mode (vs. C++ mode)

2019-08-23 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=91526 Richard Biener changed: What|Removed |Added Keywords||missed-optimization