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

--- Comment #8 from amker at gcc dot gnu.org ---
So whole expanded rtl is:
;;
;; Full RTL generated for this function:
;;
    1: NOTE_INSN_DELETED
    5: NOTE_INSN_BASIC_BLOCK 2
    2: r160:DI=%3:DI
    3: NOTE_INSN_FUNCTION_BEG
    4: r157:DI=0x100
   20: L20:
    7: NOTE_INSN_BASIC_BLOCK 4
    8: {r161:SI=r157:DI#0>>0x1;clobber ca:SI;}
    9: r157:DI=sign_extend(r161:SI)
   10: r162:DI=[unspec[`*.LC0',%2:DI] 47]
      REG_EQUAL `a'
   11: r163:DI=r157:DI<<0x3
   12: r164:DI=r162:DI+r163:DI
   13: r165:SI=r160:DI#0<<0x3             ;;r160 use 2
   14: r166:DI=zero_extend(r165:SI)
   15: r168:DI=[unspec[`*.LC0',%2:DI] 47]
      REG_EQUAL `a'
   16: r167:DI=r166:DI+r168:DI
   17: [r164:DI]=r167:DI
   18: r169:SI=r160:DI#0+0x4              ;;r160 use 3
   19: r160:DI=sign_extend(r169:SI)       ;;r160 def
   21: r170:SI=0x4000000f
   22: r171:CC=cmp(r160:DI#0,r170:SI)     ;;r160 use 1
   23: pc={(r171:CC<=0)?L20:pc}
      REG_BR_PROB 8500
   24: NOTE_INSN_BASIC_BLOCK 5

I think it's the loop carried dependence of r160 breaks sms here.

Reply via email to