LWN.net Logo

icc vs. gcc on AMD64?

icc vs. gcc on AMD64?

Posted Jun 28, 2005 20:39 UTC (Tue) by dmarti (subscriber, #11625)
Parent article: AMD Files Suit Against Intel (eWeek)

Paragraph 125 alleges that Intel's compilers "degrade the program's performance" on AMD processors. Is this just "CPU-Dispatch"?

A generic version of the function is generated that will run on any IA-32 processor. Another version would be tuned for the Pentium III processor by vectorizing the first loop with SSE instructions. A third version would be optimized for the Pentium 4 processor by vectorizing both loops to take advantage of SSE2 instructions.

Anyone have benchmark numbers on the same code on AMD and Intel, built with each compiler?


(Log in to post comments)

icc vs. gcc on AMD64?

Posted Jun 28, 2005 22:03 UTC (Tue) by Ross (subscriber, #4065) [Link]

I'm not sure if it is a separate issue, but Intel's implementation of x86_64
has a couple of minor incompatabilities with AMD's. Intel's compiler
generates code which will only work on Intel's version. (Actually this is
third-hand information. I read about it on the gcc mailing list.)

OT: AMD, Intel, Xen and X86_64

Posted Jun 30, 2005 11:44 UTC (Thu) by robdinn (guest, #30753) [Link]

I lurk on the Xen developer mailing list.

Intel seem to have a number of employees working on the x86_64
port of Xen. I find it amusing that intel are working on supporting
an AMD inspired architecture. Anyway, Intel's support is very welcome.

As I understand it, both Intel and AMD have soon to be released
extensions for hardware assisted virtualisation. These two schemes
also have incompatabilities, but it seems that Intel and AMD seem
to be cooperating on providing support for both schemes in Xen.

(Maybe I misunderstand and it is the Xen developers who are forcing
them to cooperate.)

Also maybe because Xen developement is open, Intel can't pull the
same sort of trick like they have with thier proprietary compiler.

icc vs. gcc on AMD64?

Posted Jun 29, 2005 23:42 UTC (Wed) by Ross (subscriber, #4065) [Link]

Ok, here's a discussion which might have the information you want:

http://groups.google.ca/group/comp.arch/browse_frm/thread...

"I started mucking around with a dissassembly of the Intel-specific
binary and found one particular call (proc_init_N) that appeared to be
performing this check. As far as I can tell, this call is supposed to
verify that the CPU supports SSE and SSE2 and it checks the CPUID to
ensure that its an Intel processor. I wrote a quick utility which I
call iccOut, to go through a binary that has been compiled with this
Intel-only flag and remove that check.

Once I ran the binary that was compiled with the Intel-specific flag
(-QxN) through iccOut, it was able to run on the FX51. Much to my
surprise, it ran fine and did not miscompare. On top of that, it got
the same 22% performance boost that I saw on the Pentium4 with an
actual Intel processor. [...]"

Copyright © 2012, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds