Most software built for AMD64/EM64T uses the instructions which those platforms have in common, staying within the limits of instruction level compatibility. The Itanium instruction set is entirely different. Itanium has limited support for 32-bit instruction emulation, not as effective as the 32-bit mode of AMD64/EM64T. icc supports the instructions which EM64T and AMD64 have in common, with the -xW architecture switch. Likewise, OpenMP, OS-native threading and MPI parallel models work on both platforms. You can read plenty elsewhere to help form your opinion about relative merits in the application areas which interest you.