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

            Bug ID: 126424
           Summary: [meta] Poor code generation for TImode parallel
           Product: gcc
           Version: 17.0
            Status: UNCONFIRMED
          Keywords: meta-bug
          Severity: normal
          Priority: P3
         Component: target
          Assignee: unassigned at gcc dot gnu.org
          Reporter: hjl.tools at gmail dot com
  Target Milestone: ---
            Target: x86-64

We generate very bad code sequences for TImode PARALLEL moves:

1. Move from TImode PARALLEL from

(parallel:TI [
        (expr_list:REG_DEP_TRUE (reg:DI 20 xmm0 [ a ])
            (const_int 0 [0]))
        (expr_list:REG_DEP_TRUE (reg:DI 21 xmm1 [ a+8 ])
            (const_int 8 [0x8]))
    ])

or

(parallel:TI [
        (expr_list:REG_DEP_TRUE (reg:SI 5 di [ x ])
            (const_int 0 [0]))
        (expr_list:REG_DEP_TRUE (reg:DI 4 si [ x+8 ])
            (const_int 8 [0x8]))
    ])

into

(reg:TI 106)

2. Move to TImode PARALLEL from

(mem/c:BLK (plus:DI (reg/f:DI 93 virtual-stack-vars)
        (const_int -16 [0xfffffffffffffff0])) [1 D.2978+0 S12 A128])

into

(parallel:BLK [
        (expr_list:REG_DEP_TRUE (reg:TI 102 [ <retval> ])
            (const_int 0 [0]))
    ])

Reply via email to