[Bug rtl-optimization/64537] New: Aarch64 redundant sxth instruction gets generated
vekumar at gcc dot gnu.org
gcc-bugzilla@gcc.gnu.org
Thu Jan 8 10:51:00 GMT 2015
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64537
Bug ID: 64537
Summary: Aarch64 redundant sxth instruction gets generated
Product: gcc
Version: 5.0
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: rtl-optimization
Assignee: unassigned at gcc dot gnu.org
Reporter: vekumar at gcc dot gnu.org
For the below test case redundant sxth instruction gets generate.
int
adds_shift_ext ( long long a, short b, int c)
{
long long d = (a - ((long long)b << 3));
if (d == 0)
return a + c;
else
return b + d + c;
}
adds_shift_ext:
sxth w1, w1 // 3 *extendhisi2_aarch64/1 [length = 4] <==1
subs x3, x0, x1, sxth 3 // 11 *subs_extvdi_multp2 [length
= 4] <==2
beq .L5 // 12 *condjump [length = 4]
add w0, w1, w2 // 19 *addsi3_aarch64/2 [length = 4]
add w0, w0, w3 // 20 *addsi3_aarch64/2 [length = 4]
ret // 57 simple_return [length = 4]
.p2align 2
.L5:
add w0, w2, w0 // 14 *addsi3_aarch64/2 [length = 4]
ret // 55 simple_return [length = 4]
<== 1 is not needed.
More information about the Gcc-bugs
mailing list