Specifications
Chapter 4 Troubleshooting and Portability Issues 51
Compiler Usage Guidelines for AMD64 Platforms
32035 Rev. 3.22 November 2007
Because not using the -xK and -xW switches could lower performance, the user should investigate
the precision requirements of the program. If the user has access to the source code, it may be
possible to adapt the algorithm to SSE2.
4.9.4 Program Terminates Unexpectedly
Are you using an architecture switch that is unsafe for AMD Athlon™ 64and AMD Opteron™
processors?
Some architecture switches can cause programs compiled with Intel compiler versions 7.1, 8.0, and
8.1 to terminate unexpectedly when run on AMD Athlon™ 64 and AMD Opteron™ processors.
Table 8 shows 32-bit Intel compiler architecture switches that are not safe for AMD Athlon™ 64 and
AMD Opteron™ processors. Try building the program without these switches.
4.10 PathScale Compilers (32-Bit) for Linux
®
For information on diagnosing problems with the PathScale compiler, please refer to the tuning
document distributed with the PathScale compiler suite.
4.11 Intel Compilers (32-Bit) for Microsoft
®
Windows
®
This section addresses errors and unexpected results that may be encountered when using 32-bit Intel
compilers for Microsoft Windows.
4.11.1 Compilation Errors
Are you using the right ANSI-compliant switch?
Use the -Qansi-alias- switch to compile Fortran programs that do not adhere to ANSI Fortran-type
alias rules.
4.11.2 Compiled and Linked Code Generates Unexpected Results
Are you generating vectorized code?
For some loops, vectorization can cause a slight difference in results due to the reordering of floating-
point operations. The switches -QxK, -QxW, -arch:SSE, and -arch:SSE2 cause vectorization of
loops where possible. As a diagnostic step, try compiling without these switches.
Table 8. Unsafe Architecture Switches in 32-Bit Intel Compilers for Linux
®
Compiler Version Unsafe Architecture Switches
Intel 7.1 -xK and -xW
Intel 8.0 -xK -xW -xP -xB and -xN
Intel 8.1 xN and -xP