Better 64 bit shifts in NEON

Registered by Michael Hope on 2012-03-19

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 on 2012-03-19
Completed by
Ulrich Weigand on 2012-11-19

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.