[Bug rtl-optimization/54524] Spurious add on sum of bitshifts (forward-propagate issue)

jan.smets@alcatel-lucent.com gcc-bugzilla@gcc.gnu.org
Tue Sep 18 12:42:00 GMT 2012


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=54524

Jan Smets <jan.smets@alcatel-lucent.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|mips                        |mipsisa64-octeon-elf
      Known to work|                            |4.5.0, 4.5.4
      Known to fail|                            |4.6.0, 4.6.3, 4.7.1, 4.8.0

--- Comment #2 from Jan Smets <jan.smets@alcatel-lucent.com> 2012-09-18 12:41:43 UTC ---
GCC 4.5.4 => CORRECT
====================

   0:   27bdffd0        addiu   sp,sp,-48
   4:   97a5001c        lhu     a1,28(sp)
   8:   000427c0        sll     a0,a0,0x1f
   c:   00053600        sll     a2,a1,0x18
  10:   3c030040        lui     v1,0x40
  14:   00052a02        srl     a1,a1,0x8
  18:   00a42821        addu    a1,a1,a0
  1c:   00c33821        addu    a3,a2,v1
  20:   3c024000        lui     v0,0x4000
  24:   00e6302b        sltu    a2,a3,a2
  28:   00a21021        addu    v0,a1,v0
  2c:   3c040000        lui     a0,0x0
                        2c: R_MIPS_HI16 .rodata
  30:   24840000        addiu   a0,a0,0
                        30: R_MIPS_LO16 .rodata
  34:   afbf002c        sw      ra,44(sp)
  38:   0c000000        jal     0 <function>
                        38: R_MIPS_26   printf
  3c:   00c23021        addu    a2,a2,v0         <= !
  40:   8fbf002c        lw      ra,44(sp)
  44:   03e00008        jr      ra
  48:   27bd0030        addiu   sp,sp,48



GCC 4.6.3
=========
   0:   27bdffd0        addiu   sp,sp,-48
   4:   97a5001c        lhu     a1,28(sp)
   8:   3c030040        lui     v1,0x40
   c:   3c024000        lui     v0,0x4000
  10:   00054600        sll     t0,a1,0x18
  14:   01033821        addu    a3,t0,v1
  18:   00052a02        srl     a1,a1,0x8
  1c:   00e8402b        sltu    t0,a3,t0
  20:   00a21021        addu    v0,a1,v0
  24:   000427c0        sll     a0,a0,0x1f
  28:   01023021        addu    a2,t0,v0
  2c:   00c43021        addu    a2,a2,a0
  30:   3c040000        lui     a0,0x0
                        30: R_MIPS_HI16 .rodata
  34:   24840000        addiu   a0,a0,0
                        34: R_MIPS_LO16 .rodata
  38:   afbf002c        sw      ra,44(sp)
  3c:   0c000000        jal     0 <function>
                        3c: R_MIPS_26   printf
  40:   24c60001        addiu   a2,a2,1       <= !
  44:   8fbf002c        lw      ra,44(sp)
  48:   03e00008        jr      ra
  4c:   27bd0030        addiu   sp,sp,48


GCC 4.8.0
=========
   0:   27bdffd0        addiu   sp,sp,-48
   4:   97a6001c        lhu     a2,28(sp)
   8:   3c030040        lui     v1,0x40
   c:   00062e00        sll     a1,a2,0x18
  10:   00a33821        addu    a3,a1,v1
  14:   00063202        srl     a2,a2,0x8
  18:   3c024000        lui     v0,0x4000
  1c:   00e5282b        sltu    a1,a3,a1
  20:   00c21021        addu    v0,a2,v0
  24:   000427c0        sll     a0,a0,0x1f
  28:   00a21021        addu    v0,a1,v0
  2c:   00443021        addu    a2,v0,a0
  30:   3c040000        lui     a0,0x0
                        30: R_MIPS_HI16 .rodata
  34:   24840000        addiu   a0,a0,0
                        34: R_MIPS_LO16 .rodata
  38:   afbf002c        sw      ra,44(sp)
  3c:   0c000000        jal     0 <function>
                        3c: R_MIPS_26   printf
  40:   24c60001        addiu   a2,a2,1        <= !
  44:   8fbf002c        lw      ra,44(sp)
  48:   03e00008        jr      ra
  4c:   27bd0030        addiu   sp,sp,48



More information about the Gcc-bugs mailing list