Jakub Jelinek <ja...@redhat.com> wrote on 17/04/2011 05:26:14 PM: > > On Sun, Apr 17, 2011 at 11:30:31AM +0300, Ira Rosen wrote: > > We already have this check in vect_build_slp_tree(). It didn't work for the > > testcase because it doesn't take into account the type of definition. I > > agree that it's better to move it here and base the vector/scalar decision > > on it, but please remove the now redundant check from vect_build_slp_tree > > (). > > I've tried to add this to my patch, unfortunately slp-36.c test then fails > on both x86_64-linux and i686-linux. > > The problem is that during the analysis vectorizable_shift is called with > NULL slp_node, but later on it is called with non-NULL:
Right, sorry, I haven't thought about this. The vect_build_slp_tree check is done during the analysis and it checks that if vector shift argument is not supported, the arguments should be equal. And the vectorizable_shift SLP check is done only during transformation. So, your original patch is OK. Thanks, Ira