Vectorize int to float and float to int conversion

Registered by Ira Rosen on 2011-10-04

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 on 2012-04-17
Completed by
Ramana Radhakrishnan on 2012-05-15

Related branches

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://gcc.gnu.org/ml/gcc-patches/2011-10/msg02144.html

Available from the first Linaro 4.7 release since this was done upstream by the patch mentioned above.

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.