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

--- Comment #1 from Uroš Bizjak <ubizjak at gmail dot com> ---
$foo..ng:
    .prologue 1
    lda $1,1($31)     # 7    *movqi/2    [length = 4]
    lda $2,a     # 27    *movdi/7    [length = 4]
    ldq $3,0($2)     # 6    *movdi/8    [length = 4]
    lda $2,b     # 26    *movdi/7    [length = 4]
    lda $7,1($3)     # 9    *adddi_internal/2    [length = 4]
    ldq_u $5,1($3)     # 8    *movdi/8    [length = 4]
    insbl $1,$7,$4     # 11    insbl    [length = 4]
    ldq $2,0($2)     # 15    *movdi/8    [length = 4]
    mskbl $5,$7,$5     # 10    mskxl    [length = 4]
    lda $6,2($2)     # 18    *adddi_internal/2    [length = 4]
    bis $4,$5,$4     # 12    iordi3/1    [length = 4]
    stq_u $4,1($3)     # 13    *movdi/9    [length = 4]
    insbl $1,$6,$1     # 20    insbl    [length = 4]
    ldq_u $3,2($2)     # 17    *movdi/8    [length = 4]
    mskbl $3,$6,$3     # 19    mskxl    [length = 4]
    cpys $f31,$f31,$f31     # 35    fnop    [length = 4]
    bis $1,$3,$1     # 21    iordi3/1    [length = 4]
    stq_u $1,2($2)     # 22    *movdi/9    [length = 4]
    ret $31,($26),1     # 34    *return_internal    [length = 4]
    .end foo

Before sched1 pass, we have:

    5: r73:DI=`a'
    6: r72:DI=[r73:DI]
      REG_DEAD r73:DI
    7: r74:QI=0x1
    8: r76:DI=[r72:DI+0x1&0xfffffffffffffff8]
    9: r75:DI=r72:DI+0x1
   10: r76:DI=!0xff<<r75:DI<<0x3&r76:DI
   11: r77:DI=zero_extend(r74:QI)<<r75:DI<<0x3
      REG_DEAD r75:DI
      REG_EQUAL 0x1<<r75:DI<<0x3
   12: r77:DI=r77:DI|r76:DI
      REG_DEAD r76:DI
   13: [r72:DI+0x1&0xfffffffffffffff8]=r77:DI
      REG_DEAD r77:DI
      REG_DEAD r72:DI
   14: r79:DI=`b'
   15: r78:DI=[r79:DI]
      REG_DEAD r79:DI
   17: r82:DI=[r78:DI+0x2&0xfffffffffffffff8]
   18: r81:DI=r78:DI+0x2
   19: r82:DI=!0xff<<r81:DI<<0x3&r82:DI
   20: r83:DI=zero_extend(r74:QI)<<r81:DI<<0x3
      REG_DEAD r81:DI
      REG_DEAD r74:QI
      REG_EQUAL 0x1<<r81:DI<<0x3
   21: r83:DI=r83:DI|r82:DI
      REG_DEAD r82:DI
   22: [r78:DI+0x2&0xfffffffffffffff8]=r83:DI
      REG_DEAD r83:DI
      REG_DEAD r78:DI

Please see (insn 15) going to the top in sched1 pass:

    5: r73:DI=`a'
    7: r74:QI=0x1
   14: r79:DI=`b'
    6: r72:DI=[r73:DI]
      REG_DEAD r73:DI
   15: r78:DI=[r79:DI]
      REG_DEAD r79:DI
    9: r75:DI=r72:DI+0x1
    8: r76:DI=[r72:DI+0x1&0xfffffffffffffff8]
   11: r77:DI=zero_extend(r74:QI)<<r75:DI<<0x3
      REG_DEAD r75:DI
      REG_EQUAL 0x1<<r75:DI<<0x3
   18: r81:DI=r78:DI+0x2
   10: r76:DI=!0xff<<r75:DI<<0x3&r76:DI
   20: r83:DI=zero_extend(r74:QI)<<r81:DI<<0x3
      REG_DEAD r81:DI
      REG_DEAD r74:QI
      REG_EQUAL 0x1<<r81:DI<<0x3
   12: r77:DI=r77:DI|r76:DI
      REG_DEAD r76:DI
   13: [r72:DI+0x1&0xfffffffffffffff8]=r77:DI
      REG_DEAD r77:DI
      REG_DEAD r72:DI
   17: r82:DI=[r78:DI+0x2&0xfffffffffffffff8]
   19: r82:DI=!0xff<<r81:DI<<0x3&r82:DI
   21: r83:DI=r83:DI|r82:DI
      REG_DEAD r82:DI
   22: [r78:DI+0x2&0xfffffffffffffff8]=r83:DI
      REG_DEAD r83:DI
      REG_DEAD r78:DI
   25: NOTE_INSN_DELETED

Reply via email to