[arm] Implement DImode SIMD32 intrinsics

Programming / Compilers / GCC - ktkachov [138bc75d-0d04-0410-961f-82ee72b054a4] - 26 September 2019 10:48 EDT

This patch implements some more SIMD32, but these ones have a DImode result+addend. Apart from that there's nothing too exciting about them.

Bootstrapped and tested on arm-none-linux-gnueabihf.

- config/arm/arm.md (arm_): New define_insn.
- config/arm/arm_acle.h (__smlald, __smlaldx, __smlsld, __smlsldx): Define.
- config/arm/arm_acle.h: Define builtins for the above.
- config/arm/iterators.md (SIMD32_DIMODE): New int_iterator. (simd32_op): Handle the above.
- config/arm/unspecs.md: Define unspecs for the above.

- gcc.target/arm/acle/simd32.c: Update test.

433c7595293 [arm] Implement DImode SIMD32 intrinsics
gcc/ChangeLog | 10 ++++++++++
gcc/config/arm/arm.md | 11 ++++++++++
gcc/config/arm/arm_acle.h | 29 +++++++++++++++++++++++++++
gcc/config/arm/arm_acle_builtins.def | 4 ++++
gcc/config/arm/iterators.md | 7 ++++++-
gcc/config/arm/unspecs.md | 4 ++++
gcc/testsuite/ChangeLog | 4 ++++
gcc/testsuite/gcc.target/arm/acle/simd32.c | 32 ++++++++++++++++++++++++++++++
8 files changed, 100 insertions(+), 1 deletion(-)

Upstream: gcc.gnu.org


  • Share