https://gcc.gnu.org/bugzilla/show_bug.cgi?id=125683
Drea Pinski <pinskia at gcc dot gnu.org> changed:
What |Removed |Added
----------------------------------------------------------------------------
Status|UNCONFIRMED |NEW
Summary|[16/17 Regression] wrong |[13/14/15/16/17 Regression]
|code due to ce1 combining 2 |wrong code due to ce1
|loads of different |combining 2 loads of
|incompatible aliasing sets |different incompatible
| |aliasing sets
Ever confirmed|0 |1
Known to fail| |7.1.0
Target Milestone|--- |13.5
Known to work| |6.1.0
Last reconfirmed| |2026-06-09
--- Comment #2 from Drea Pinski <pinskia at gcc dot gnu.org> ---
`-O2 -fno-tree-pre -fno-code-hoisting` I can reproduce it even in GCC 15.
Looks like it was working in GCC 6 though but the aliasing set was wrong even
then (after ce1 in GCC 6):
```
(insn 12 11 15 3 (set (reg/v:DI 87 [ c ])
(mem:DI (reg/v/f:DI 90 [ cc ]) [1 MEM[(long int *)cc_6(D)]+0 S8 A64]))
/app/example.cpp:6 85 {*movdi_internal}
(expr_list:REG_DEAD (reg/v/f:DI 90 [ cc ])
(nil)))
(code_label 15 12 16 4 2 "" [1 uses])
(note 16 15 17 4 [bb 4] NOTE_INSN_BASIC_BLOCK)
(insn 17 16 18 4 (set (reg/v:DI 87 [ c ])
(mem:DI (reg/v/f:DI 90 [ cc ]) [2 MEM[(long long int *)cc_6(D)]+0 S8
A64])) /app/example.cpp:8 85 {*movdi_internal}
(expr_list:REG_DEAD (reg/v/f:DI 90 [ cc ])
(nil)))
(code_label 18 17 19 5 3 "" [0 uses])
(note 19 18 20 5 [bb 5] NOTE_INSN_BASIC_BLOCK)
(insn 20 19 25 5 (set (mem:DI (reg/v/f:DI 91 [ d ]) [1 *d_3(D)+0 S8 A64])
(const_int 1 [0x1])) /app/example.cpp:9 85 {*movdi_internal}
(expr_list:REG_DEAD (reg/v/f:DI 91 [ d ])
(nil)))
```