Jeff, The goal of this transformation is to not execute masked store if possible,i.e. when is is equal to zero-vector. and conditional expression is not suitable for it - we must generate semi-hammock with conditional branch.
Yuri. 2015-07-23 23:03 GMT+03:00 Jeff Law <l...@redhat.com>: > On 07/20/2015 09:05 AM, Yuri Rumyantsev wrote: >> >> Hi Jeff! >> >> Thanks for your details comments. >> >> You asked: >> How are conditionals on vectors usually handled? You should try to >> mimick that and report, with detail, why that's not working. >> >> In current implementation of vectorization pass all comparisons are >> handled through COND_EXPR, i.e. vect-pattern pass transforms all >> comparisons producing bool values to conditional expressions like a[i] >> != 0 --> a[i]!=0? 1: 0 which vectorizers transforms to >> vect-cond-expr. So we don't have operations with vector operands and >> scalar (bool) result. >> To implement such operations I introduced target-hook. Could you >> propose another solution implementing it? > > Is there any rationale given anywhere for the transformation into > conditional expressions? ie, is there any reason why we can't have a > GIMPLE_COND where the expression is a vector condition? > > Thanks, > > Jeff >