On Mon, Sep 3, 2012 at 5:50 PM, Marc Glisse <marc.gli...@inria.fr> wrote: > On Mon, 3 Sep 2012, Richard Guenther wrote: > >> On Mon, Sep 3, 2012 at 4:00 PM, Marc Glisse <marc.gli...@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