[PATCH, ARM] VSHL, VSHR, VLSHR immediate values support

Plotnikov Dmitry dplotnikov@ispras.ru
Thu Feb 11 14:09:00 GMT 2010


This patch adds support for immediate shift values for NEON in ARM 
backend.  We have added the new predicates for immediate shift value or 
register operands and have used them in the new patterns. The only tiny 
modification in target-independent part is in optabs.c and it has been 
tested on x86_64 without any regressions.

OK for 4.6?  For trunk?   We think that the changes should be safe for 4.5.

2010-02-10  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): New function.

    * config/arm/neon.md (vashl<mode>3): Modified constraint.
    (vashr<mode>3_imm): New insn pattern.
    (vlshr<mode>3_imm): New insn pattern.
    (vashr<mode>3): Modified constraint.
    (vlshr<mode>3): Modified constraint.

    * config/arm/predicates.md (imm_for_neon_shift_operand): New predicate.
    (imm_shift_or_reg_neon): New predicate.

    * optabs.c (init_optabs): Init optab codes for vashl, vashr, vlshr.

    * testsuite/gcc.target/arm/neon-vshr-imm-1.c: New testcase.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vshr.patch
Type: text/x-patch
Size: 8623 bytes
Desc: not available
URL: <http://gcc.gnu.org/pipermail/gcc-patches/attachments/20100211/49d3696e/attachment.bin>


More information about the Gcc-patches mailing list