64 bit operations

Registered by Michael Hope

GCC uses the NEON unit for 64 bit operations when tuning for the Cortex-A9. Not all of the basic operations are implemented which mean some routines ping pong values back and forth between the NEON unit and core registers.

At least multiple, negate, {left,right} shift, not, and bitwise not are missing. See:
 http://lists.linaro.org/pipermail/linaro-toolchain/2011-October/001713.html

See:
 https://bazaar.launchpad.net/~linaro-toolchain-wg/linaro-toolchain-benchmarks/private-runs/view/head:/mixed/2011-11-15-a9-4.6.2-vs-2011.11-michaelh-1/NOTES.rst

for a list of benchmarks which regress. Five from EEMBC and DENBench significantly regress. 186.crafty is dominated by 64 bit operations and regresses. 171.swim and 164.gzip also regress.

This may explain why -mtune=cortex-a8 is sometimes faster when running on an A9.

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:
None
Started by
Michael Hope
Completed by
Ulrich Weigand

Related branches

Sprints

Whiteboard

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.