------- Additional Comments From pinskia at gcc dot gnu dot org 2005-07-08 18:19 ------- We still have either a ra issue (or ivopts issue which our current ra cannot resolve). On the tree level we get the following difference. strength_test2: <L0>:; *(data + (int *) ((unsigned int) *pretmp.9 * 4)) = 2; D.1276 = (int) ivtmp.14; ivtmp.14 = ivtmp.14 + ivtmp.17; if (*pretmp.11 > D.1276) goto <L0>; else goto <L1>;
strength_result2: <L0>:; *(data + (int *) ((unsigned int) *pretmp.27 * 4)) = 2; i = (int) ((unsigned int) i + (unsigned int) k); if (*pretmp.28 > i) goto <L0>; else goto <L1>; The PPC asm is: test: L2: lwz r0,0(r7) mr r9,r11 add r11,r11,r8 slwi r0,r0,2 stwx r6,r3,r0 lwz r2,0(r10) cmpw cr7,r2,r9 bgt+ cr7,L2 result: L9: lwz r0,0(r10) add r9,r9,r8 slwi r0,r0,2 stwx r7,r3,r0 lwz r2,0(r11) cmpw cr7,r2,r9 bgt+ cr7,L9 Notice the extra mv. -- What |Removed |Added ---------------------------------------------------------------------------- Keywords|patch |ra http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18316