This is the mail archive of the
mailing list for the GCC project.
RE: [PATCH,i386] fma,fma4 and xop flags
> Otherwise, what does -mno-fma4 -mxop do?
> (it should enable both xop and fma4!) what should -mfma4 -mno-xop do
> (it should disable both xop and fma4!).
Yes! that's what GCC does now.
Some flags are coupled (atleast for now).
For ex, -mno-sse4.2 -mavx enables both sse4.2 and avx
whereas -mavx -mno-sse4.2 disables both.
Setting of the following are clubbed.
1) 3DNow sets MMX
2) SSE2 sets SSE
3) SSE3 sets SSE2
4) SSE4_1 sets SSE3
5) SSE4_2 sets SSE4_1
6) FMA sets AVX
7) AVX2 sets AVX
8) SSE4_A sets SSE3
9) FMA4 set SSE4_A and AVX
10) XOP sets FMA4
11) AES sets SSE2
12) PCLMUL sets SSE2
13) ABM sets POPCNT
Resetting is done in reversely (MMX resets 3DNOW).
IMO, if we have different cpuid flags, enabling\disabling
the compiler flags depends on these cpuid flags directly.
Adding subsets to them or tangling them together may give
Please let me know your opinion.
From: Richard Guenther [mailto:firstname.lastname@example.org]
Sent: Wednesday, August 08, 2012 5:12 PM
To: Gopalasubramanian, Ganesh
Cc: email@example.com; firstname.lastname@example.org
Subject: Re: [PATCH,i386] fma,fma4 and xop flags
On Wed, Aug 8, 2012 at 1:31 PM, <Ganesh.Gopalasubramanian@amd.com> wrote:
> Bdver2 cpu supports both fma and fma4 instructions.
> Previous to patch, option "-mno-xop" removes "-mfma4".
> Similarly, option "-mno-fma4" removes "-mxop".
Eh? Why's that? I think we should disentangle -mxop and -mfma4
instead. Otherwise, what does -mno-fma4 -mxop do?
(it should enable both xop and fma4!) what should -mfma4 -mno-xop do
(it should disable both xop and fma4!). All this is just confusing to
the user, even if in AMD documents XOP includes FMA4.