Testcase: float quantum_real(float _Complex a) { float *p = (float *) &a; return p[0]; } float quantum_imag(float _Complex a) { float *p = (float *) &a; return p[1]; } ------- CUT ----- Even though the above are optimized at the RTL level, it would be nice if we could get them optimized at the TREE level also. We already optimize ((float *) &a)[0] and ((float *) &a)[1] via PR 26134. This should help libquantum in SPEC 2k6 also.
Confirmed.
This was fixed by commit at http://gcc.gnu.org/bugzilla/show_bug.cgi?id=26134#c9 .