This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/70799] New: STV pass does not convert DImode shifts and rotates
- From: "ubizjak at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Tue, 26 Apr 2016 09:20:34 +0000
- Subject: [Bug target/70799] New: STV pass does not convert DImode shifts and rotates
- Auto-submitted: auto-generated
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;
}