[Bug middle-end/85090] [8 Regression] wrong code with -O2 -fno-tree-dominator-opts -mavx512f -fira-algorithm=priority
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Tue Mar 27 16:06:00 GMT 2018
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85090
--- Comment #4 from Uroš Bizjak <ubizjak at gmail dot com> ---
The problem lies in:
(insn 4214 4213 4219 2 (parallel [
(set (subreg:DI (reg:V32HI 4037 [ i ]) 0)
(ior:DI (reg:DI 4040)
(reg:DI 4038 [ _7 ])))
(clobber (reg:CC 17 flags))
]) "pr85090.c":13 442 {*iordi_1}
(expr_list:REG_DEAD (reg:DI 4040)
(expr_list:REG_DEAD (reg:DI 4038 [ _7 ])
(expr_list:REG_UNUSED (reg:CC 17 flags)
(nil)))))
(insn 4219 4214 4220 2 (set (reg/i:V32HI 21 xmm0)
(reg:V32HI 4037 [ i ])) "pr85090.c":16 1254 {movv32hi_internal}
(expr_list:REG_DEAD (reg:V32HI 4037 [ i ])
where (insn 4214) reloads with:
(insn 4214 4213 5658 2 (parallel [
(set (reg:DI 0 ax [4040])
(ior:DI (reg:DI 0 ax [4040])
(reg:DI 1 dx [orig:4038 _7 ] [4038])))
(clobber (reg:CC 17 flags))
]) "pr85090.c":13 442 {*iordi_1}
(nil))
(insn 5658 4214 5812 2 (set (mem/c:DI (plus:DI (reg/f:DI 7 sp)
(const_int 264 [0x108])) [4 %sfp+-64 S8 A512])
(reg:DI 0 ax [4040])) "pr85090.c":13 85 {*movdi_internal}
(nil))
(insn 5812 5658 4219 2 (set (reg:DI 57 xmm20 [orig:422 i ] [422])
(mem/c:DI (plus:DI (reg/f:DI 7 sp)
(const_int 264 [0x108])) [4 %sfp+-64 S8 A512])) "pr85090.c":13
85 {*movdi_internal}
(nil))
(insn 4219 5812 4220 2 (set (reg/i:V32HI 21 xmm0)
(reg/v:V32HI 57 xmm20 [orig:422 i ] [422])) "pr85090.c":16 1254
{movv32hi_internal}
(nil))
Using a subreg is not enough to change only part of the register.
More information about the Gcc-bugs
mailing list