This patch set is a further step to remove those intrinsics implemented
by inline assembly.
The touched intrinsics including those for fixed-point coversion,
frsqrt*, fabd and faddp.
The implementation approach is quite simple, for these intrinsics that
were implemented by inline assembly:
* If there are rtl instruction patterns introduced later, then migrate
to builtins which are backed by these patterns.
* If there aren't rtl instruction patterns, then add missing patterns,
and migrate to builtins.
AArch64 boostrap OK, no regression on linux configuration, also no
regression on big-endian bare-metal tests.
---
Jiong Wang (6)
Reimplement scalar fixed-point intrinsics
Reimplement vector fixed-point intrinsics
Reimplement frsqrte intrinsics
Reimplement frsqrts intrinsics
Reimplement fabd intrinsics & merge rtl patterns
Reimplement vpadd intrinsics & extends rtl patterns to all modes
gcc/config/aarch64/aarch64-builtins.c | 12 ++-
gcc/config/aarch64/aarch64-builtins.def | 473
++++++++++++++++++++++++++
gcc/config/aarch64/aarch64-simd-builtins.def | 447
-------------------------
gcc/config/aarch64/aarch64-simd.md | 72 ++++++++++-------
gcc/config/aarch64/aarch64.c | 20 ++---
gcc/config/aarch64/aarch64.md | 26 ++++++
gcc/config/aarch64/arm_neon.h | 700 +++++++++++------
gcc/config/aarch64/iterators.md | 31 ++++++-
gcc/config/aarch64/t-aarch64 | 2 +-
9 files changed, 842 insertions(+), 941 deletions(-)