This patch is part of a series to implement the SIMD32 ACLE intrinsics [1]. The interesting parts implementation-wise involve adding support for setting and reading the Q bit for saturation and the GE-bits for the packed SIMD instructions. That will come in a later patch. For now, this patch implements the other intrinsics that don't need anything special ; just a mapping from arm_acle.h function to builtin to RTL expander+unspec. I've compressed as many as I could with iterators so that we end up needing only 3 new define_insns. Bootstrapped and tested on arm-none-linux-gnueabihf. [1] https://developer.arm.com/docs/101028/latest/data-processing-intrinsics * config/arm/arm.md (arm_<simd32_op>): New define_insn. (arm_<sup>xtb16): Likewise. (arm_usada8): Likewise. * config/arm/arm_acle.h (__qadd8, __qsub8, __shadd8, __shsub8, __uhadd8, __uhsub8, __uqadd8, __uqsub8, __qadd16, __qasx, __qsax, __qsub16, __shadd16, __shasx, __shsax, __shsub16, __uhadd16, __uhasx, __uhsax, __uhsub16, __uqadd16, __uqasx, __uqsax, __uqsub16, __sxtab16, __sxtb16, __uxtab16, __uxtb16): Define. * config/arm/arm_acle_builtins.def: Define builtins for the above. * config/arm/unspecs.md: Define unspecs for the above. * config/arm/iterators.md (SIMD32_NOGE_BINOP): New int_iterator. (USXTB16): Likewise. (simd32_op): New int_attribute. (sup): Handle UNSPEC_SXTB16, UNSPEC_UXTB16. * doc/sourcebuild.exp (arm_simd32_ok): Document. * lib/target-supports.exp (check_effective_target_arm_simd32_ok_nocache): New procedure. (check_effective_target_arm_simd32_ok): Likewise. (add_options_for_arm_simd32): Likewise. * gcc.target/arm/acle/simd32.c: New test. From-SVN: r276146
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
asan-dg.exp | Loading commit data... | |
atomic-dg.exp | Loading commit data... | |
brig-dg.exp | Loading commit data... | |
brig.exp | Loading commit data... | |
c-compat.exp | Loading commit data... | |
c-torture.exp | Loading commit data... | |
clearcap.exp | Loading commit data... | |
compat.exp | Loading commit data... | |
copy-file.exp | Loading commit data... | |
dejapatches.exp | Loading commit data... | |
dg-pch.exp | Loading commit data... | |
file-format.exp | Loading commit data... | |
fortran-modules.exp | Loading commit data... | |
fortran-torture.exp | Loading commit data... | |
g++-dg.exp | Loading commit data... | |
g++.exp | Loading commit data... | |
gcc-defs.exp | Loading commit data... | |
gcc-dg.exp | Loading commit data... | |
gcc-gdb-test.exp | Loading commit data... | |
gcc-simulate-thread.exp | Loading commit data... | |
gcc.exp | Loading commit data... | |
gcov.exp | Loading commit data... | |
gdc-dg.exp | Loading commit data... | |
gdc.exp | Loading commit data... | |
gfortran-dg.exp | Loading commit data... | |
gfortran.exp | Loading commit data... | |
gnat-dg.exp | Loading commit data... | |
gnat.exp | Loading commit data... | |
go-dg.exp | Loading commit data... | |
go-torture.exp | Loading commit data... | |
go.exp | Loading commit data... | |
lto.exp | Loading commit data... | |
mike-g++.exp | Loading commit data... | |
mike-gcc.exp | Loading commit data... | |
multiline.exp | Loading commit data... | |
obj-c++-dg.exp | Loading commit data... | |
obj-c++.exp | Loading commit data... | |
objc-dg.exp | Loading commit data... | |
objc-torture.exp | Loading commit data... | |
objc.exp | Loading commit data... | |
options.exp | Loading commit data... | |
plugin-support.exp | Loading commit data... | |
profopt.exp | Loading commit data... | |
prune.exp | Loading commit data... | |
scanasm.exp | Loading commit data... | |
scandump.exp | Loading commit data... | |
scanipa.exp | Loading commit data... | |
scanlang.exp | Loading commit data... | |
scanltranstree.exp | Loading commit data... | |
scanoffloadrtl.exp | Loading commit data... | |
scanoffloadtree.exp | Loading commit data... | |
scanrtl.exp | Loading commit data... | |
scantree.exp | Loading commit data... | |
scanwpaipa.exp | Loading commit data... | |
target-libpath.exp | Loading commit data... | |
target-supports-dg.exp | Loading commit data... | |
target-supports.exp | Loading commit data... | |
target-utils.exp | Loading commit data... | |
timeout-dg.exp | Loading commit data... | |
timeout.exp | Loading commit data... | |
torture-options.exp | Loading commit data... | |
tsan-dg.exp | Loading commit data... | |
ubsan-dg.exp | Loading commit data... | |
wrapper.exp | Loading commit data... |