Testcase: void f(double a, double *b) { long long c = a; *b = c; } ----- We currently get: _f: fctidz f1,f1 fcfid f0,f1 stfd f1,-16(r1) ; <--- not needed stfd f0,0(r4) blr
-------- On the Yara branch we get: fctidz f0,f1 fcfid f0,f0 stfd f0,0(r4) blr So this is a RA issue, I am recording this to make sure that the next ra that goes in as default actually fixes it. -- Summary: double to long long and back to double stores to the stack Product: gcc Version: 4.2.0 Status: UNCONFIRMED Keywords: missed-optimization, ra Severity: enhancement Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: pinskia at gcc dot gnu dot org GCC target triplet: powerpc64-*-* OtherBugsDependingO 18427 nThis: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=27946