diff options
author | Dmitry Plotnikov <dplotnikov@ispras.ru> | 2011-06-22 11:57:52 +0000 |
---|---|---|
committer | Alexander Monakov <amonakov@gcc.gnu.org> | 2011-06-22 15:57:52 +0400 |
commit | 31a0c8251b9fb551d9979988e5e63df8bcc1d65f (patch) | |
tree | 377aee52f4ebe050c91bd7309e7509eaf305f3ab /gcc/optabs.c | |
parent | 1da9434b4ba81839aa43dfb53344a6dbfb0e314f (diff) | |
download | gcc-31a0c8251b9fb551d9979988e5e63df8bcc1d65f.tar.gz |
arm.c (neon_immediate_valid_for_shift): New function.
2011-06-22 Dmitry Plotnikov <dplotnikov@ispras.ru>
Dmitry Melnik <dm@ispras.ru>
* config/arm/arm.c (neon_immediate_valid_for_shift): New function.
(neon_output_shift_immediate): Ditto.
* config/arm/arm-protos.h (neon_immediate_valid_for_shift): New
prototype.
(neon_output_shift_immediate): Ditto.
* config/arm/neon.md (vashl<mode>3): Modified constraint.
(vashr<mode>3_imm): New insn pattern.
(vlshr<mode>3_imm): Ditto.
(vashr<mode>3): Modified constraint.
(vlshr<mode>3): Ditto.
* config/arm/predicates.md (imm_for_neon_lshift_operand): New
predicate.
(imm_for_neon_rshift_operand): Ditto.
(imm_lshift_or_reg_neon): Ditto.
(imm_rshift_or_reg_neon): Ditto.
* optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.
testsuite:
* gcc.target/arm/neon-vshr-imm-1.c: New testcase.
* gcc.target/arm/neon-vshl-imm-1.c: New testcase.
* gcc.target/arm/neon-vlshr-imm-1.c: New testcase.
Co-Authored-By: Dmitry Melnik <dm@ispras.ru>
From-SVN: r175293
Diffstat (limited to 'gcc/optabs.c')
-rw-r--r-- | gcc/optabs.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/optabs.c b/gcc/optabs.c index 969d5cf5594..bf15ab4fbc6 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -5925,6 +5925,9 @@ init_optabs (void) init_optab (usashl_optab, US_ASHIFT); init_optab (ashr_optab, ASHIFTRT); init_optab (lshr_optab, LSHIFTRT); + init_optabv (vashl_optab, ASHIFT); + init_optabv (vashr_optab, ASHIFTRT); + init_optabv (vlshr_optab, LSHIFTRT); init_optab (rotl_optab, ROTATE); init_optab (rotr_optab, ROTATERT); init_optab (smin_optab, SMIN); |