Support vcond with mixed types

Registered by Ira Rosen

With http://gcc.gnu.org/ml/gcc-patches/2011-08/msg02424.html GCC has a support of vector conditions with different types of comparison and result (of the same size). When the type sizes are different the vectorizer can insert the necessary casts (http://gcc.gnu.org/ml/gcc-patches/2011-10/msg00483.html).

vcond with mixed types can be implemented using vcgt.f32 and vbsl / vbif.

Example:

float a[N], b[N], c[N];
unsigned char k[N];
void f1 (void)
{
  int i;
  for (i = 0; i < N; ++i)
    k[i] = a[i] < b[i] ? 17 : 0;
}

Blueprint information

Status:
Not started
Approver:
None
Priority:
Low
Drafter:
Ira Rosen
Direction:
Needs approval
Assignee:
None
Definition:
Discussion
Series goal:
Accepted for 4.7
Implementation:
Informational Informational
Milestone target:
milestone icon backlog

Related branches

Sprints

Whiteboard

[2013-05-28 matthew-gretton-dann] This has moved to http://cards.linaro.org/browse/TCWG-139

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.