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

--- Comment #11 from Hongtao Liu <liuhongt at gcc dot gnu.org> ---
283(insn 8 7 9 2 (set (reg:SI 107)
284        (const_int 1 [0x1])) "test.c":3:7 -1
285     (nil))
286(insn 9 8 10 2 (parallel [
287            (set (reg:SI 106 [ e_7 ])
288                (ashift:SI (reg:SI 107)
289                    (subreg:QI (reg:SI 105 [ _1 ]) 0)))
290            (clobber (reg:CC 17 flags))
291        ]) "test.c":3:7 -1
292     (nil))
293(insn 10 9 11 2 (parallel [
294            (set (reg:SI 108 [ _9 ])
295                (and:SI (reg:SI 106 [ e_7 ])
296                    (reg/v:SI 104 [ g ])))
297            (clobber (reg:CC 17 flags))
298        ]) "test.c":4:9 -1
299     (nil))
300(insn 11 10 12 2 (set (reg:CCZ 17 flags)
301        (compare:CCZ (reg:SI 108 [ _9 ])
302            (const_int 0 [0]))) "test.c":4:6 -1
303     (nil))
304(jump_insn 12 11 13 2 (set (pc)
305        (if_then_else (ne (reg:CCZ 17 flags)
306                (const_int 0 [0]))
307            (label_ref:DI 31)
308            (pc))) "test.c":4:6 1458 {*jcc}
309     (int_list:REG_BR_PROB 524952380 (nil))
310 -> 31)
311;;  succ:       5 [48.9% (guessed)]  count:524952376 (estimated locally,
freq 0.4889)
312;;              4 [51.1% (guessed)]  count:548789448 (estimated locally,
freq 0.5111) (FALLTHRU)
313
314;; basic block 4, loop depth 0, count 548789448 (estimated locally, freq
0.5111), maybe hot
315;;  prev block 2, next block 5, flags: (NEW, REACHABLE, RTL, MODIFIED,
VISITED)
316;;  pred:       2 [51.1% (guessed)]  count:548789448 (estimated locally,
freq 0.5111) (FALLTHRU)
317(note 13 12 14 4 [bb 4] NOTE_INSN_BASIC_BLOCK)
318(insn 14 13 28 4 (parallel [
319            (set (reg:SI 103 [ _14 ])
320                (plus:SI (reg/v:SI 104 [ g ])
321                    (const_int 5 [0x5])))
322            (clobber (reg:CC 17 flags))
323        ]) "test.c":12:22 discrim 1 -1
324     (nil))
325(jump_insn 28 14 29 4 (set (pc)
326        (label_ref 15)) -1
327     (nil)
328 -> 15)
329;;  succ:       6 [always]  count:548789448 (estimated locally, freq 0.5111)
330
331(barrier 29 28 31)
332;; basic block 5, loop depth 0, count 524952376 (estimated locally, freq
0.4889), maybe hot
333;;  prev block 4, next block 6, flags: (NEW, REACHABLE, RTL, MODIFIED)
334;;  pred:       2 [48.9% (guessed)]  count:524952376 (estimated locally,
freq 0.4889)
335(code_label 31 29 30 5 4 (nil) [1 uses])
336(note 30 31 4 5 [bb 5] NOTE_INSN_BASIC_BLOCK)
337(insn 4 30 15 5 (set (reg:SI 103 [ _14 ])
338        (reg/v:SI 104 [ g ])) -1
339     (nil))
340;;  succ:       6 [always]  count:524952376 (estimated locally, freq 0.4889)
(FALLTHRU)
341
342;; basic block 6, loop depth 0, count 1073741824 (estimated locally, freq
1.0000), maybe hot
343;;  prev block 5, next block 7, flags: (NEW, REACHABLE, RTL, MODIFIED,
VISITED)
344;;  pred:       5 [always]  count:524952376 (estimated locally, freq 0.4889)
(FALLTHRU)
345;;              4 [always]  count:548789448 (estimated locally, freq 0.5111)
346(code_label 15 4 16 6 2 (nil) [1 uses])
347(note 16 15 17 6 [bb 6] NOTE_INSN_BASIC_BLOCK)
348(insn 17 16 18 6 (parallel [


It looks it's already incorrect in the expand, if g & e != 0, it jumps to bb 4,
which is from return 0, but when it's equals to 0, it fallthru to return 5
case.

Reply via email to