aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vect-patterns.cc
diff options
context:
space:
mode:
authorTakayuki 'January June' Suwa <jjsuwa_sys3175@yahoo.co.jp>2022-06-14 01:38:31 +0900
committerMax Filippov <jcmvbkbc@gmail.com>2022-06-13 17:25:48 -0700
commit1c68ec1f8ab531fba56cccf549ffe592bf622821 (patch)
tree25e5da56bc4d4443bdcd6ff766f9dc392673d90b /gcc/tree-vect-patterns.cc
parentc3642271e884c06f5d266a8cbfc67035c9fbcc77 (diff)
downloadgcc-1c68ec1f8ab531fba56cccf549ffe592bf622821.zip
gcc-1c68ec1f8ab531fba56cccf549ffe592bf622821.tar.gz
gcc-1c68ec1f8ab531fba56cccf549ffe592bf622821.tar.bz2
xtensa: Improve shift operations more
This patch introduces funnel shifter utilization, and rearranges existing "per-byte shift" insn patterns. gcc/ChangeLog: * config/xtensa/predicates.md (logical_shift_operator, xtensa_shift_per_byte_operator): New predicates. * config/xtensa/xtensa-protos.h (xtensa_shlrd_which_direction): New prototype. * config/xtensa/xtensa.cc (xtensa_shlrd_which_direction): New helper function for funnel shift patterns. * config/xtensa/xtensa.md (ior_op): New code iterator. (*ashlsi3_1): Replace with new split pattern. (*shift_per_byte): Unify *ashlsi3_3x, *ashrsi3_3x and *lshrsi3_3x. (*shift_per_byte_omit_AND_0, *shift_per_byte_omit_AND_1): New insn-and-split patterns that redirect to *xtensa_shift_per_byte, in order to omit unnecessary bitwise AND operation. (*shlrd_reg_<code>, *shlrd_const_<code>, *shlrd_per_byte_<code>, *shlrd_per_byte_<code>_omit_AND): New insn patterns for funnel shifts. gcc/testsuite/ChangeLog: * gcc.target/xtensa/funnel_shifter.c: New.
Diffstat (limited to 'gcc/tree-vect-patterns.cc')
0 files changed, 0 insertions, 0 deletions