Oboje. Kompilator/asembler musi być w stanie emitować/obsługiwać instrukcje SSE2, a następnie CPU musi je wspierać. Jeśli twój plik binarny ma instrukcje SSE2 bez żadnych warunków i próbujesz uruchomić go na Pentium II, masz pecha.
Najlepszym sposobem jest sprawdzenie instrukcji GCC. Na przykład moja strona podręcznika GCC odnosi się do opcji -msse2, która pozwoli ci jawnie włączyć instrukcje SSE2 w plikach binarnych. Każdy względnie niedawny GCC lub ICC powinien go wspierać. Jeśli chodzi o procesor, sprawdź linię flag w/proc/cpuinfo.
Byłoby najlepiej, chociaż, aby mieć kontrole w kodzie przy użyciu CPUID itp, tak że odcinki SSE2 można wyłączyć w procesorach, które nie obsługują go i kod może spaść z powrotem na więcej wspólnego zestawu instrukcji .
EDIT:
pamiętać, że kompilator musi być albo natywny kompilator działa na systemie x86 lub cross-kompilator dla x86. W przeciwnym razie nie będzie zawierał niezbędnych opcji kompilowania plików binarnych dla procesorów x86, które obejmują wszystko z SSE2.
W twoim przypadku procesor nie obsługuje w ogóle x86. W zależności od twojej dystrybucji Linuksa mogą istnieć pakiety z warstwą emulacji Intel IA32EL dla x86-software-on-IA64, które mogą pozwolić ci na uruchamianie oprogramowania x86.
Dlatego masz następujące opcje:
używać cross-kompilator, który będzie działał na platformie IA64 i produkować pliki binarne dla x86. Przeciąganie krzyżowe zestawów narzędzi nie jest jednak łatwe, ponieważ potrzebujesz czegoś więcej niż tylko kompilatora (binutils, biblioteki itp.).
Użyj Intel IA32EL do uruchomienia natywnego kompilatora x86. Nie wiem, w jaki sposób zainstalowałbyś natywny toolchain x86, a wszystkie biblioteki, których potrzebuje twój projekt w twoich dystrybucjach, nie obsługują go bezpośrednio. Być może pełna chroot'ed instalacja dystrybucji x86?
Następnie, jeśli chcesz przetestować budować na tym systemie masz instalowania Intela IA32EL dla systemu Linux.
EDIT2:
Przypuszczam, że można również uruchomić pełną dystrybucję x86 Linux na emulatorze jak Bochs lub QEMU (bez wirtualizacji oczywiście). Jesteś zdecydowanie nie będzie oślepiony przez wynikowe prędkości.
Używasz GCC, który jest ukierunkowany na IA64 domyślnie. Zestaw instrukcji IA64 radykalnie różni się od zestawu instrukcji x86. Jeśli chcesz skompilować x86, musisz zasadniczo skompilować plik binarny. – thkala
Masz również procesor Itanium2, który nie ma natywnego wsparcia dla zestawu instrukcji x86. Nawet jeśli skompilujesz plik binarny dla x86, testowanie go w tym systemie będzie trudne, jeśli nie niemożliwe. – thkala
Jakiej dystrybucji Linuksa używasz? – thkala