Vectorize int to float and float to int conversion
Support auto-vectorization of int->float and float->int conversions on NEON. We need to either make NEON return a builtin declaration or consider using optabs instead of builtins.
Blueprint information
- Status:
- Complete
- Approver:
- Michael Hope
- Priority:
- Medium
- Drafter:
- Ira Rosen
- Direction:
- Approved
- Assignee:
- None
- Definition:
- Discussion
- Series goal:
- Accepted for 4.7
- Implementation:
- Implemented
- Milestone target:
- None
- Started by
- Ramana Radhakrishnan
- Completed by
- Ramana Radhakrishnan
Related branches
Related bugs
Sprints
Whiteboard
At the moment the vectorizer supports int->float and float->int conversion by inserting a call to a target builtin. NEON doesn't have an infrastructure to return builtin declarations, and the existing conversion implementation has an additional argument (to specify the signedness), and, therefore, doesn't match the builtin signature the vectorizer expects.
Another possibility is to use optabs, probably we can use the existing scalar optabs: sfix and ufix.
This will require back-end changes in rs6000 and i386.
In order to evaluate the potential impact we can check how often such vectorized conversions are used in different benchmarks for x86.
Implemented using optabs (by someone else):
http://
Available from the first Linaro 4.7 release since this was done upstream by the patch mentioned above.