This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug optimization/13313] Wrong code generated
- From: "pinskia at gcc dot gnu dot org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 6 Dec 2003 04:35:47 -0000
- Subject: [Bug optimization/13313] Wrong code generated
- References: <20031205121014.13313.mike@ml-solutions.co.uk>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- Additional Comments From pinskia at gcc dot gnu dot org 2003-12-06 04:35 -------
Confirmed, combine is the pass which is making this bad code.
From:
(insn 10 9 12 0 (set (reg:SI 17)
(reg:SI r0)) 11 {*movsi_h8300} (insn_list 9 (nil))
(expr_list:REG_DEAD (reg:SI r0)
(insn_list:REG_RETVAL 9 (expr_list:REG_EQUAL (expr_list (symbol_ref:HI ("ReadNumber") [flags
0x3] <function_decl 0x40d9e4a4 ReadNumber>)
(nil))
(nil)))))
(insn 12 10 16 0 (set (reg/v:SI 16 [ tmp ])
(and:SI (reg:SI 17)
(const_int 16711680 [0xff0000]))) 61 {*logicalsi3} (insn_list 10 (nil))
(expr_list:REG_DEAD (reg:SI 17)
(nil)))
(insn 16 12 19 0 (parallel [
(set (reg:SI 18 [ tmp ])
(lshiftrt:SI (reg/v:SI 16 [ tmp ])
(const_int 16 [0x10])))
(clobber (scratch:QI))
]) 114 {*shiftsi} (insn_list 12 (nil))
(expr_list:REG_DEAD (reg/v:SI 16 [ tmp ])
(expr_list:REG_UNUSED (scratch:QI)
(expr_list:REG_EQUAL (lshiftrt:SI (reg/v:SI 16 [ tmp ])
(const_int 16 [0x10]))
(nil)))))
(insn 19 16 20 0 (set (reg:SI r0 [ tmp ])
(reg:SI 18 [ tmp ])) 11 {*movsi_h8300} (insn_list 16 (nil))
(expr_list:REG_DEAD (reg:SI 18 [ tmp ])
(nil)))
To:
(insn 19 16 20 0 (set (reg:SI r0 [ tmp ])
(zero_extend:SI (reg:QI r1 [orig:0+3 ] [0]))) 102 {*zero_extendqisi2_h8300} (insn_list 9 (nil))
(nil))
Is this a regression?
--
What |Removed |Added
----------------------------------------------------------------------------
Severity|critical |normal
Status|WAITING |NEW
Component|c |optimization
Ever Confirmed| |1
Keywords| |wrong-code
Last reconfirmed|0000-00-00 00:00:00 |2003-12-06 04:35:46
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=13313