This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[AArch64][SVE2] Shift-Right Accumulate combine patterns
- From: Yuliang Wang <Yuliang dot Wang at arm dot com>
- To: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Cc: nd <nd at arm dot com>, Richard Sandiford <Richard dot Sandiford at arm dot com>
- Date: Thu, 26 Sep 2019 15:03:26 +0000
- Subject: [AArch64][SVE2] Shift-Right Accumulate combine patterns
- Arc-authentication-results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none
- Arc-message-signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=iVmXRprkhJtTJALI75cJWVds2UT9ilXRcgRDVPdBmRI=; b=etJa2ef+LNfXuG/3BipoNkatu9Cq35UblZY41BJEofnYlX9O7kZJzU326CUz4sx34koss2eidJBYS9kdbLJi0syGMcEDaWfqHN8R8mv8g08DhDTb8o+gHVOkASv+7jIUO/C9QrZAzXs2fKKzaPEort6K4+nifU5lLJ94CVukG99ND3y8qE8lpM9/aDpUR70XU59sU5h0aoFXeCYL2Cerra8gMzlQxiaE+x9OTh5Hf7bEKQC55IOA0lwcuMqeZXeX4fo/qBQSDPNCp6LgkIi7ufSFy7Q5BJLESoXu2nSyMvuDnhFv9Sog6ebLDk6wK8F9KrxmyPcbTzx97+MdT2gPEw==
- Arc-seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=PzTIQ006rS0QbdAlRfw5w4PfX5ZOEH4yeCASGWvRFeFnXf7f0JlM9UogHFhVcx4ceq3ZtlMZ/Yz27e+VODMKotVTIHOAPeOdj1MWUd0elq808CqvTUrreh/xph+qOJNoLjas3fo3BJLpsM31RIgvzrRWxHvymV70X0dNDjkw88e5C0uI7sYTJ3D1PajrrqaQgHLWl3HNraocywkUgqH8df4lHMq2NjuVo7TYDJaZbwIvbLaffeziMdC+w1tHh7NeGPHOdh2Y8tKualmFs4RBrSExczowazClFC+NxBXaodxQ4epBm+RcUNJyagsIWZI+n5trgX4Aj1Q9LPuQZ/eoYQ==
- Original-authentication-results: spf=none (sender IP is ) smtp.mailfrom=Yuliang dot Wang at arm dot com;
Hi,
This patch adds combining support for SVE2's shift-right accumulate instructions.
Example snippet:
#define IMM ...
void foo (TYPE a, TYPE b, int n)
{
for (int i = 0; i < n; i++)
a[i] += b[i] >> IMM;
}
Signed:
before asr z0.s, z0.s, #{IMM}
add z0.s, z0.s, z1.s
...
after ssra z0.s, z1.s, #{IMM}
Unsigned:
before lsr z0.s, z0.s, #{IMM}
add z0.s, z0.s, z1.s
...
after usra z0.s, z1.s, #{IMM}
Built and regression tested on aarch64-none-elf.
Best Regards,
Yuliang Wang
gcc/ChangeLog:
2019-09-26 Yuliang Wang <yuliang.wang@arm.com>
* config/aarch64/aarch64-sve2.md (aarch64_sve2_sra<mode>):
New combine pattern.
gcc/testsuite/ChangeLog:
2019-09-26 Yuliang Wang <yuliang.wang@arm.com>
* gcc.target/aarch64/sve2/shracc_1.c: New test.
Attachment:
rb11872.patch
Description: rb11872.patch