aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/avr/avr-log.c
diff options
context:
space:
mode:
authorJackson Woodruff <jackson.woodruff@arm.com>2017-07-24 11:37:09 +0000
committerJames Greenhalgh <jgreenhalgh@gcc.gnu.org>2017-07-24 11:37:09 +0000
commit4b40986c044a5c80bfa3edb1670104f89bc8fd6b (patch)
tree6370c05986447ec193aed0d71fc6bbae1b124ea0 /gcc/config/avr/avr-log.c
parente678ce869e96e110de95db1038388127767390cc (diff)
downloadgcc-4b40986c044a5c80bfa3edb1670104f89bc8fd6b.zip
gcc-4b40986c044a5c80bfa3edb1670104f89bc8fd6b.tar.gz
gcc-4b40986c044a5c80bfa3edb1670104f89bc8fd6b.tar.bz2
[AArch64, Patch] Generate MLA when multiply + add vector by scalar
(On behalf of jackson.woodruff@arm.com) This merges vector multiplies and adds into a single mla instruction when the multiplication is done by a scalar. typedef int __attribute__((vector_size(16))) vec; vec mla1(vec v0, vec v1, int v2) { return v0 + v1 * c; } Now generates: mla1: fmov s2, w0 mla v0.4s, v1.4s, v2.s[0] This is also done for the identical case for a multiply followed by a subtract of vectors with an integer operand on the multiply. gcc/ 2017-07-24 Jackson Woodruff <jackson.woodruff@arm.com> * config/aarch64/aarch64-simd.md (aarch64_mla_elt_merge<mode>): New. (aarch64_mls_elt_merge<mode>): Likewise. gcc/testsuite/ 2017-07-24 Jackson Woodruff <jackson.woodruff@arm.com> * gcc.target/aarch64/simd/vmla_elem_1.c: New. From-SVN: r250475
Diffstat (limited to 'gcc/config/avr/avr-log.c')
0 files changed, 0 insertions, 0 deletions