https://gcc.gnu.org/bugzilla/show_bug.cgi?id=128048

Roger Sayle <roger at nextmovesoftware dot com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
   Last reconfirmed|                            |2026-10-26
                 CC|                            |roger at nextmovesoftware dot 
com
     Ever confirmed|0                           |1
             Status|UNCONFIRMED                 |NEW

--- Comment #1 from Roger Sayle <roger at nextmovesoftware dot com> ---
This looks like a missing pattern (for sbfx) in arm.md.  Combine reports

Trying 7 -> 13:
    7: r100:HI#0=sign_extract(r99:HI#0,0xb,0x5)
      REG_DEAD r99:HI
   13: r0:SI=sign_extend(r100:HI)
      REG_DEAD r100:HI
Failed to match this instruction:
(set (reg/i:SI 0 r0)
    (sign_extend:SI (ashiftrt:HI (reg:HI 99 [ *p_3(D) ])
            (const_int 5 [0x5]))))

i.e. the canonical form from combining sbfx (*extv_reg) with sxth
(*arm_extendhisi2_v6) isn't recognized as a sbfx variant.  Either a
define_insn_and_split or an alternate-form define_insn is required.

Reply via email to