https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67391
Bug ID: 67391
Summary: [SH] Convert clrt addc to normal add insn
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: target
Assignee: unassigned at gcc dot gnu.org
Reporter: olegendo at gcc dot gnu.org
Target Milestone: ---
Looking through bzip2 compress.c of the CSiBE set, I've spotted sequences such
as:
mov r15,r4
add #64,r4
mov.l @(44,r4),r2
mov r15,r0
mov.w .L615,r5
add #124,r0
clrt <<<
mov.l @(16,r0),r0
mov r14,r1
add r2,r5
addc r12,r1 <<<
mov.l r5,@(44,r4)
cmp/eq r1,r0 <<<
bf/s .L126
It seems that this is a left-over of what originally was a 64 bit addition.
The high word of the 64 bit add result is unused, which makes it effectively a
32 bit addition. The clrt can be removed and the addc can be converted into a
regular add insn.