https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103808
Bug ID: 103808 Summary: [12 Regression] '-fcompare-debug' failure (length) w/ -O2 -ftrapv Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: debug Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- Target: x86_64-unknown-linux-gnu gcc 12.0.0 20211219 snapshot (g:fcbf94a5be9e0c1ecad92da773a6632b86b7f70a) fails -fcompare-debug check when compiling the following testcase w/ -O2 -ftrapv: void foo (__int128 x, int y) { for (;;) { __int128 a, b; x |= !!y; a = x + 1; b = y ? ++y : ++x; y = a < b; if (x >> 2) y *= 2; if (y == b) __builtin_unreachable (); } } % x86_64-unknown-linux-gnu-gcc-12.0.0 -O2 -fcompare-debug -ftrapv -c ddz9adk2.c x86_64-unknown-linux-gnu-gcc-12.0.0: error: ddz9adk2.c: '-fcompare-debug' failure (length) --- ddz9adk2.c.gkd 2021-12-23 00:04:28.297518259 +0700 +++ ddz9adk2.gk.c.gkd 2021-12-23 00:04:28.387512439 +0700 @@ -6,11 +6,11 @@ (note # 0 0 [bb 2] NOTE_INSN_BASIC_BLOCK) (note # 0 0 NOTE_INSN_DELETED) (note # 0 0 NOTE_INSN_DELETED) -(insn/f:TI # 0 0 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [ S8 A8]) +(insn/f:TI # 0 0 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp [ x+8 ])) [ S8 A8]) (reg:DI 42 r14)) "ddz9adk2.c":3:1# {*pushdi2_rex64} (expr_list:REG_DEAD (reg:DI 42 r14) (nil))) -(insn/f:TI # 0 0 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [ S8 A8]) +(insn/f:TI # 0 0 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp [ x+8 ])) [ S8 A8]) (reg:DI 41 r13)) "ddz9adk2.c":3:1# {*pushdi2_rex64} (expr_list:REG_DEAD (reg:DI 41 r13) (nil))) @@ -18,7 +18,7 @@ (reg:DI 4 si [123])) "ddz9adk2.c":3:1# {*movdi_internal} (expr_list:REG_DEAD (reg:DI 4 si [123]) (nil))) -(insn/f:TI # 0 0 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [ S8 A8]) +(insn/f:TI # 0 0 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp [ x+8 ])) [ S8 A8]) (reg:DI 40 r12)) "ddz9adk2.c":3:1# {*pushdi2_rex64} (expr_list:REG_DEAD (reg:DI 40 r12) (nil))) @@ -26,11 +26,11 @@ (reg:DI 5 di [122])) "ddz9adk2.c":3:1# {*movdi_internal} (expr_list:REG_DEAD (reg:DI 5 di [122]) (nil))) -(insn/f:TI # 0 0 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [ S8 A8]) +(insn/f:TI # 0 0 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp [ x+8 ])) [ S8 A8]) (reg:DI 6 bp)) "ddz9adk2.c":3:1# {*pushdi2_rex64} (expr_list:REG_DEAD (reg:DI 6 bp) (nil))) -(insn/f:TI # 0 0 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp)) [ S8 A8]) +(insn/f:TI # 0 0 2 (set (mem:DI (pre_dec:DI (reg/f:DI 7 sp [ x+8 ])) [ S8 A8]) (reg:DI 3 bx)) "ddz9adk2.c":3:1# {*pushdi2_rex64} (expr_list:REG_DEAD (reg:DI 3 bx) (nil)))