[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: