https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104459
Bug ID: 104459 Summary: [9/10/11/12 Regression] '-fcompare-debug' failure w/ -O2 -funswitch-loops -fno-tree-dce Product: gcc Version: 12.0 Status: UNCONFIRMED Keywords: compare-debug-failure Severity: normal Priority: P3 Component: debug Assignee: unassigned at gcc dot gnu.org Reporter: asolokha at gmx dot com Target Milestone: --- gcc 12.0.1 20220206 snapshot (g:8eb329e963593342855b6072e5692659107337b7) fails -fcompare-debug check when compiling the following testcase w/ -O2 -funswitch-loops -fno-tree-dce: void foo (int x, int y) { unsigned int a; for (;;) { short int *p = (short int *) &x; unsigned int q = 0; a /= 2; if (a) { q -= y; while (q) { } } if (x) { for (q = 0; q != 1; q += 2) { unsigned int n; n = *p ? 0 : q; y += n < 1; n = a || *p; if (n % x == 0) y /= x; } } } } % gcc-12.0.1 -O2 -fcompare-debug -funswitch-loops -fno-tree-dce -c rfygrmu3.c gcc-12.0.1: error: rfygrmu3.c: '-fcompare-debug' failure --- rfygrmu3.c.gkd 2022-02-09 18:38:41.086339468 +0700 +++ rfygrmu3.gk.c.gkd 2022-02-09 18:38:41.117339440 +0700 @@ -32,7 +32,7 @@ (pc))) "rfygrmu3.c":20:10# {*jcc} (expr_list:REG_DEAD (reg:CCZ 17 flags) (int_list:REG_BR_PROB 118111604 (nil))) - -> 18) + -> 19) (code_label # 0 0 4 4 (nil) [1 uses]) (note # 0 0 [bb 4] NOTE_INSN_BASIC_BLOCK) (insn:TI # 0 0 4 (set (reg/v:SI 36 r8 [orig:89 a ] [89]) @@ -79,7 +79,7 @@ (nil) -> 3) (barrier # 0 0) -(code_label # 0 0 7 18 (nil) [1 uses]) +(code_label # 0 0 7 19 (nil) [1 uses]) (note # 0 0 [bb 7] NOTE_INSN_BASIC_BLOCK) (insn:TI # 0 0 7 (set (reg:CCZ 17 flags) (compare:CCZ (reg:HI 5 di [orig:94 x ] [94])