Better 64 bit shifts in NEON

Registered by Michael Hope

Improve the variable shift of 64 bit values in NEON registers. The current version drops back into core registers which involves a expensive NEON->core move.

Useful when on the A9 and similar where 64 bit operations are done in NEON registers.

Blueprint information

Status:
Complete
Approver:
Michael Hope
Priority:
Medium
Drafter:
Michael Hope
Direction:
Approved
Assignee:
Ulrich Weigand
Definition:
Approved
Series goal:
Accepted for 4.6
Implementation:
Implemented
Milestone target:
milestone icon 4.7-2012.12
Started by
Michael Hope
Completed by
Ulrich Weigand

Whiteboard

Implemented, bootstrap and testsuite problems corrected.

There remains an additional testsuite failure (di-sync-multithread.c), but this is caused by an unrelated latent bug upstream. See the description in the merge request here:
  https://code.launchpad.net/~ams-codesourcery/gcc-linaro/neon-shifts-4.7/+merge/99530

A new, rebased patch has now been posted upstream here:
  http://gcc.gnu.org/ml/gcc-patches/2012-05/msg01645.html

Meta:
Headline: TBD
Acceptance: TBD

(?)

Work Items

Work items:
Initial Implementation: DONE
Testing: DONE
Upstream Review: INPROGRESS
Upstream Commit: TODO
Internal Commit: TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.