This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

option -mprfchw on 2 different Opteron cpus


Reposting from here:
https://gcc.gnu.org/ml/gcc-help/2016-05/msg00003.html

Not sure if this applies:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54210

If I compile on a k8 Opteron 248 with -march=native, I do not see
-mprfchw listed in the options in -fverbose-asm.  In the assembly, I
see this:

prefetcht0      (%rax)  # ivtmp.1160
prefetcht0      304(%rcx)       #
prefetcht0      (%rax)  # ivtmp.1160

If I compile on a bdver2 Opteron 6386 SE with -march=k8 (thus trying
to target the older system), I do see it listed in the options in
-fverbose-asm.  In the assembly, I see this:

prefetcht0      (%rax)  # ivtmp.1160
prefetcht0      304(%rcx)       #
prefetchw       (%rax)  # ivtmp.1160

(The third line is the only difference)

In both cases, I'm using gcc 4.9.3.  Which is correct for a k8 Opteron 248?

Also, FWIW:

1) The march=native version that uses prefetcht0 is very repeatably
faster by about 15% in the particular test case I'm looking at.

2) The compilers in both instances are not just the same version, they
are the same compiler binary installed on an NFS mount and shared to both
computers.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]