https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70799
Bug ID: 70799 Summary: STV pass does not convert DImode shifts and rotates Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: enhancement Priority: P3 Component: target Assignee: unassigned at gcc dot gnu.org Reporter: ubizjak at gmail dot com CC: hjl.tools at gmail dot com, ienkovich at gcc dot gnu.org Target Milestone: --- These should all be converted to DImode vector shifts for SSE2/AVX2 32bit target (and similar for rotates): long long a, b; void test_ll (void) { a = b << 1; } void test_llv (int c) { a = b << c; } unsigned long long d, e; void test_lr (void) { d = e >> 1; } void test_lrv (int c) { d = e >> c; } void test_ar (void) { a = b >> 1; } void test_arv (int c) { a = b >> c; }