http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56873



             Bug #: 56873

           Summary: vector shift lowered to scalars

    Classification: Unclassified

           Product: gcc

           Version: 4.9.0

            Status: UNCONFIRMED

          Keywords: missed-optimization

          Severity: normal

          Priority: P3

         Component: tree-optimization

        AssignedTo: unassig...@gcc.gnu.org

        ReportedBy: gli...@gcc.gnu.org

            Target: x86_64-linux-gnu





#define SIZE 32

typedef long long veci __attribute__((vector_size(SIZE)));



veci f(veci a, veci b){

  return a>>b;

}



Compiling this with -O3 -mxop, the vector lowering pass gives scalar

operations. However, if SIZE is either 16 or 64, I get vector shifts of size

16.

Reply via email to