------- 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

Reply via email to