Bug#161432: [Bug target/8603] [Alpha] s?addl pattern doesn't work
------- Comment #4 from rask at gcc dot gnu dot org 2007-11-14 19:10 -------
For f(), combine wants a pattern to match
(set (reg:DI 76)
(sign_extend:DI (subreg:SI (plus:DI (subreg:DI (mult:SI (reg:SI 16 $16 [ x
])
(const_int 4 [0x4])) 0)
(reg:DI 17 $17 [ y ])) 0)))
but the closest one is
(define_insn "*saddl_se"
[(set (match_operand:DI 0 "register_operand" "=r,r")
(sign_extend:DI
(plus:SI (mult:SI (match_operand:SI 1 "reg_not_elim_operand" "r,r")
(match_operand:SI 2 "const48_operand" "I,I"))
(match_operand:SI 3 "sext_add_operand" "rI,O"))))]
and similarily for g() where the "*ssubl_se" pattern doesn't match.
I wonder where the (subreg:DI (mult:SI ...)) part comes from. That can't be
right.
--
rask at gcc dot gnu dot org changed:
What |Removed |Added
----------------------------------------------------------------------------
AssignedTo|unassigned at gcc dot gnu |rask at gcc dot gnu dot org
|dot org |
Status|NEW |ASSIGNED
Known to fail| |4.3.0
Last reconfirmed|2005-09-07 17:37:27 |2007-11-14 19:10:09
date| |
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=8603
------- You are receiving this mail because: -------
You reported the bug, or are watching the reporter.
Reply to: