------- Additional Comments From falk at debian dot org 2004-11-19 20:16
-------
(In reply to comment #6)
> I expect these would go away with this patch:
> http://gcc.gnu.org/ml/gcc-patches/2004-11/msg01512.html
Not quite. Code looks like this:
f:
and $16,4,$1
mov $31,$7
lda $6,64($31)
cmpult $31,$1,$1
cmpeq $1,0,$8
lda $8,1($8)
zapnot $8,15,$5
beq $5,$L4
mov $31,$3
mov $31,$4
.align 4
$L12:
lda $3,1($3)
s4addq $4,$16,$2
addl $31,$3,$4
stl $31,0($2)
zapnot $4,15,$1
cmpule $5,$1,$1
beq $1,$L12
lda $1,64($31)
addl $31,$4,$7
subl $1,$4,$6
$L4:
cmpeq $5,64,$1
bne $1,$L15
lda $1,64($31)
subq $1,$8,$1
zapnot $1,15,$23
srl $23,1,$1
addl $1,$1,$8
zapnot $8,15,$22
beq $22,$L8
s4addq $5,$16,$2
zapnot $1,15,$4
mov $31,$3
.align 4
$L10:
lda $3,1($3)
stq $31,0($2)
lda $2,8($2)
zapnot $3,15,$1
cmpule $4,$1,$1
beq $1,$L10
subl $6,$8,$6
addl $7,$8,$7
$L8:
cmpeq $23,$22,$1
bne $1,$L15
mov $31,$2
.align 4
$L14:
addl $2,$7,$1
subl $6,1,$6
lda $2,1($2)
s4addq $1,$16,$1
stl $31,0($1)
bne $6,$L14
$L15:
ret
The first branch can never be taken, and all sign extensions (sextl) and zero
extensions (zapnot 15) are useless.
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=18557