arm: ACLE I8MM multiply-accumulate
authorDennis Zhang <dennis.zhang@arm.com>
Fri, 21 Feb 2020 15:36:13 +0000 (15:36 +0000)
committerDennis Zhang <dennis.zhang@arm.com>
Fri, 21 Feb 2020 15:36:13 +0000 (15:36 +0000)
commit436016f45694c7236e2e9f9db2adb0b4d9bf6b94
tree02de5ac2ba0cf5b55459d05ccf280431add435a5
parentb59506cd8b9f92293fc154c1470691534e29ddcf
arm: ACLE I8MM multiply-accumulate

This patch adds intrinsics for matrix multiply-accumulate instructions
including vmmlaq_s32, vmmlaq_u32, and vusmmlaq_s32.

gcc/ChangeLog:

2020-02-21  Dennis Zhang  <dennis.zhang@arm.com>

* config/arm/arm_neon.h (vmmlaq_s32, vmmlaq_u32, vusmmlaq_s32): New.
* config/arm/arm_neon_builtins.def (smmla, ummla, usmmla): New.
* config/arm/iterators.md (MATMUL): New iterator.
(sup): Add UNSPEC_MATMUL_S, UNSPEC_MATMUL_U, and UNSPEC_MATMUL_US.
(mmla_sfx): New attribute.
* config/arm/neon.md (neon_<sup>mmlav16qi): New.
* config/arm/unspecs.md (UNSPEC_MATMUL_S, UNSPEC_MATMUL_U): New.
(UNSPEC_MATMUL_US): New.

gcc/testsuite/ChangeLog:

2020-02-21  Dennis Zhang  <dennis.zhang@arm.com>

* gcc.target/arm/simd/vmmla_1.c: New test.
gcc/ChangeLog
gcc/config/arm/arm_neon.h
gcc/config/arm/arm_neon_builtins.def
gcc/config/arm/iterators.md
gcc/config/arm/neon.md
gcc/config/arm/unspecs.md
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/arm/simd/vmmla_1.c [new file with mode: 0644]