combine vec_perm_expr with constructor

Richard Guenther richard.guenther@gmail.com
Tue Sep 4 10:14:00 GMT 2012


On Mon, Sep 3, 2012 at 5:50 PM, Marc Glisse <marc.glisse@inria.fr> wrote:
> On Mon, 3 Sep 2012, Richard Guenther wrote:
>
>> On Mon, Sep 3, 2012 at 4:00 PM, Marc Glisse <marc.glisse@inria.fr> wrote:
>>>
>>> On Mon, 3 Sep 2012, Richard Guenther wrote:
>>>
>>>> You shouldn't need the VECTOR_CST handling - constant propagation should
>>>> already ensure properly simplified code here (and is the more canonical
>>>> place
>>>> to handle this).
>>>
>>>
>>>
>>> IIRC, I added VECTOR_CST because of mixed constructor/vector_cst shuffles
>>> (and because it wasn't too hard). If I remove it (I can), I guess some of
>>> the testcases won't work anymore.
>>
>>
>> I see.  If you still have a testcase can you look if CCP does not do
>> something it should?
>
>
> I think CCP is working fine, the fold_ternary patch you approved today tests
> some of that (without that patch, sometimes ccp1 does half the work and fre1
> finishes it, and since forwprop1 is before fre1, I hit that case there). Is
> there a particular scenario you have in mind that might not be handled?

No.  In theory it should be handled just fine via gimple_fold_stmt_to_constant_1
dispatching to fold_ternary.

Richard.

> Here I was concerned with:
> x={a,b}; // constructor
> y={18,42}; // vector_cst
> m={0,3};
> __builtin_shuffle(x,y,m) // should be {a,42}
>
> --
> Marc Glisse



More information about the Gcc-patches mailing list