This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [committed, PATCH] x86: Don't disable SSE4a when disabling SSE4
On Sun, Feb 16, 2020 at 05:19:39PM -0800, H.J. Lu wrote:
> On Sun, Feb 16, 2020 at 5:06 PM Alan Modra <amodra@gmail.com> wrote:
> >
> > On Sun, Feb 16, 2020 at 08:47:56AM -0800, H.J. Lu wrote:
> > > commit 7deea9aad8 changed nosse4 to include CpuSSE4a. But AMD SSE4a is
> > > a superset of SSE3 and Intel SSE4 is a superset of SSSE3. Disable Intel
> > > SSE4 shouldn't disable AMD SSE4a. This patch restores nosse4. It also
> > > adds .sse4a and nosse4a.
> >
> > diff --git a/opcodes/i386-gen.c b/opcodes/i386-gen.c
> > index 79f4cc9d25..45106bcf6d 100644
> > --- a/opcodes/i386-gen.c
> > +++ b/opcodes/i386-gen.c
> > @@ -326,6 +326,8 @@ static initializer cpu_flag_init[] =
> > { "CPU_ANY_SSE2_FLAGS",
> > "CPU_ANY_SSE3_FLAGS|CpuSSE2" },
> > { "CPU_ANY_SSE3_FLAGS",
> > + { "CPU_ANY_SSE4A_FLAGS",
> > + "CPU_ANY_SSE3_FLAGS|CpuSSE4a" },
> > "CPU_ANY_SSSE3_FLAGS|CpuSSE3|CpuSSE4a" },
> > { "CPU_ANY_SSSE3_FLAGS",
> > "CPU_ANY_SSE4_1_FLAGS|CpuSSSE3" },
> > @@ -333,8 +335,6 @@ static initializer cpu_flag_init[] =
> > "CPU_ANY_SSE4_2_FLAGS|CpuSSE4_1" },
> > { "CPU_ANY_SSE4_2_FLAGS",
> > "CpuSSE4_2" },
> > - { "CPU_ANY_SSE4_FLAGS",
> > - "CPU_ANY_SSE4_1_FLAGS|CpuSSE4a" },
> > { "CPU_ANY_AVX_FLAGS",
> > "CPU_ANY_AVX2_FLAGS|CpuF16C|CpuFMA|CpuFMA4|CpuXOP|CpuAVX" },
> > { "CPU_ANY_AVX2_FLAGS",
> >
> > Merge error?
>
> Is there anything wrong?
It doesn't compile. The CPU_ANY_SSE4A_FLAGS entry is added inside the
CPU_ANY_SSE3_FLAGS entry. Take a look at the diff.
--
Alan Modra
Australia Development Lab, IBM