NEON instruction coverage

Registered by Michael Hope

Check the coverage of the NEON instruction set by the vectoriser and backend, including different operand types such as registers and constants.

There are two parts to vectorisation - detecting the patterns in the original code, and using those patterns in the backend. We know all of the operations that NEON implements and the operand variants. Check:
 * That the operation can be represented in C
 * That the vectoriser can recognise the operation
 * That the backend implements the operation
 * That the backend and vectoriser support the different operands like register vs constant

The advantage is using more of the chip's capabilities and hopefully getting faster code.

Blueprint information

Status:
Complete
Approver:
Michael Hope
Priority:
Medium
Drafter:
Michael Hope
Direction:
Approved
Assignee:
None
Definition:
Approved
Series goal:
Accepted for 4.6
Implementation:
Informational Informational
Milestone target:
milestone icon backlog
Started by
Matthew Gretton-Dann
Completed by
Matthew Gretton-Dann

Related branches

Sprints

Whiteboard

See http://gcc.gnu.org/ml/gcc-patches/2011-05/msg01863.html for an example of missed instructions and the test cases.

See https://wiki.linaro.org/IraRosen/Sandbox/InstructionCoverage

[2013-05-23 matthew-gretton-dann] Moved to jira http://cards.linaro.org/browse/TCWG-100

(?)

Work Items

Work items:
Add tests for NEON instructions that can be directly expressed in C: INPROGRESS
Document the current vectoriser coverage: INPROGRESS
Document the current NEON backend coverage: TODO

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.