Add support for the rev16 and revsh instructions.
We could support the rev16 and revsh instructions and this was originally split out from https:/
Blueprint information
- Status:
- Complete
- Approver:
- Michael Hope
- Priority:
- Medium
- Drafter:
- Michael Hope
- Direction:
- Approved
- Assignee:
- Christophe Lyon
- Definition:
- Approved
- Series goal:
- Accepted for 4.7
- Implementation:
- Implemented
- Milestone target:
- 4.7-2013.01
- Started by
- Christophe Lyon
- Completed by
- Matthew Gretton-Dann
Related branches
Related bugs
Sprints
Whiteboard
The Power backend supports bswap16 in 4.7. This was made generic in 4.8 by 74bdbe96e400ab6
Implement in 4.8. Check __builtin_bswap16 itself. Check that GCC converts a (x << 8) | (x >> 8) into a rev16 and/or revsh. Add detection and support in libav. Benchmark to show that the builtin version is no slower than the inline assembly version.
Find another library that makes heavy use and show the difference. michaelh thought lz4, but the format is little endian and doesn't need swapping.
Backport to Linaro 4.7 if practical. Perhaps add something like __GCC_HAVE_
Meta:
Headline: TBD
Acceptance: TBD
Work Items
Dependency tree
* Blueprints in grey have been implemented.