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

Andrew Pinski <pinskia at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
          Component|middle-end                  |target
             Target|                            |x86_64-linux-gnu
           Keywords|                            |ra

--- Comment #2 from Andrew Pinski <pinskia at gcc dot gnu.org> ---
This seems like a register allocator issue also.
Before Register allocation we had:
(insn 14 2 15 2 (set (reg/f:DI 86)
        (symbol_ref/f:DI ("*.LC1") [flags 0x2]  <var_decl 0x7f7c225d32d0
*.LC1>)) "/app/example.cpp":8:14 76 {*movdi_internal}
     (expr_list:REG_EQUIV (symbol_ref/f:DI ("*.LC1") [flags 0x2]  <var_decl
0x7f7c225d32d0 *.LC1>)
        (nil)))
(insn 15 14 7 2 (set (reg/f:DI 87)
        (symbol_ref/f:DI ("*.LC0") [flags 0x2]  <var_decl 0x7f7c225d3240
*.LC0>)) "/app/example.cpp":8:14 76 {*movdi_internal}
     (expr_list:REG_EQUIV (symbol_ref/f:DI ("*.LC0") [flags 0x2]  <var_decl
0x7f7c225d3240 *.LC0>)
        (nil)))
(insn 7 15 8 2 (set (reg:V2DI 85)
        (vec_concat:V2DI (reg/f:DI 87)
            (reg/f:DI 86))) "/app/example.cpp":8:14 6752 {vec_concatv2di}
     (expr_list:REG_DEAD (reg/f:DI 87)
        (expr_list:REG_DEAD (reg/f:DI 86)
            (expr_list:REG_EQUIV (vec_concat:V2DI (symbol_ref/f:DI ("*.LC0")
[flags 0x2]  <var_decl 0x7f7c225d3240 *.LC0>)
                    (symbol_ref/f:DI ("*.LC1") [flags 0x2]  <var_decl
0x7f7c225d32d0 *.LC1>))
                (nil)))))

But after (LC1 is forced to memory):
(insn 15 14 17 2 (set (reg/f:DI 0 ax [87])
        (symbol_ref/f:DI ("*.LC0") [flags 0x2]  <var_decl 0x7fcc6368b240
*.LC0>)) "/app/example.cpp":8:14 76 {*movdi_internal}
     (expr_list:REG_EQUIV (symbol_ref/f:DI ("*.LC0") [flags 0x2]  <var_decl
0x7fcc6368b240 *.LC0>)
        (nil)))
(insn 17 15 7 2 (set (reg/f:DI 20 xmm0 [87])
        (reg/f:DI 0 ax [87])) "/app/example.cpp":8:14 76 {*movdi_internal}
     (nil))
(insn 7 17 8 2 (set (reg:V2DI 20 xmm0 [85])
        (vec_concat:V2DI (reg/f:DI 20 xmm0 [87])
            (mem/u/c:DI (symbol_ref/u:DI ("*.LC2") [flags 0x2]) [0  S8 A64])))
"/app/example.cpp":8:14 6752 {vec_concatv2di}
     (expr_list:REG_EQUIV (vec_concat:V2DI (symbol_ref/f:DI ("*.LC0") [flags
0x2]  <var_decl 0x7fcc6368b240 *.LC0>)
            (symbol_ref/f:DI ("*.LC1") [flags 0x2]  <var_decl 0x7fcc6368b2d0
*.LC1>))
        (nil)))

Reply via email to