[Bug target/56313] New: aarch64 backend not using fmls instruction
josh.m.conner at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Feb 14 01:06:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56313
Bug #: 56313
Summary: aarch64 backend not using fmls instruction
Classification: Unclassified
Product: gcc
Version: 4.8.0
Status: UNCONFIRMED
Severity: enhancement
Priority: P3
Component: target
AssignedTo: unassigned@gcc.gnu.org
ReportedBy: josh.m.conner@gmail.com
When this code is compiled with -O2 -ffast-math -S for an aarch64-linux-gnu
target:
float v1 __attribute__((vector_size(8)));
float v2 __attribute__((vector_size(8)));
float result __attribute__((vector_size(8)));
void foo (void)
{
result = result + (-v1 * v2);
}
The following is generated:
ld1 {v0.2s}, [x0]
fneg v2.2s, v2.2s
ld1 {v1.2s}, [x1]
fmla v0.2s, v2.2s, v1.2s
st1 {v0.2s}, [x0]
This code could be improved to:
ld1 {v0.2s}, [x0]
ld1 {v1.2s}, [x1]
fmls v0.2s, v2.2s, v1.2s
st1 {v0.2s}, [x0]
More information about the Gcc-bugs
mailing list