Поэтому мы хотим использовать компилятор Intel C с диспетчеризация ЦП включен (это на платформе Windows). Мы используем варианты / Арка: IA32 плюс / QaxSSE2, но нет / QxFoo вариант. По нашему мнению, это должно привести к созданию двоичного файла, который работает на любой Процессор IA32 (x86), но все еще использует оптимизированный для SSE2 путь кода на процессорах, которые фактически поддерживают набор инструкций SSE2.
Тем не менее, тестирование показывает, что на процессоре без Поддержка SSE2 (например, Pentium III) приводит к сбою двоичного файла с исключением «недопустимая инструкция»! Интересно, что удаление только / QaxSSE2, и оставляя все остальное как есть, создает двоичный файл, который прекрасно работает на процессоре без Поддержка SSE2.
Еще одно интересное наблюдение: использование / Арка: IA32 плюс / QaxSSE2 вместе с / Ob0 (отключает встраивание!) создает двоичный файл, который также отлично работает на процессоре без Поддержка SSE2.
На данный момент казалось бы, что либо диспетчеризация ЦП повышает требования к процессору «базового» пути кода к SSE2, независимо от / Арка: IA32 вариант. Или это функция встраивания а также диспетчеризация ЦП не ходи вместе. Но мы не можем найти упоминания об этом в документации Intel. Это очень важная информация, поэтому мы считаем, что об этом следует упомянуть в документации!
Кто-нибудь может подтвердить наблюдение или уточнить, что происходит?
Спасибо!
Задача ещё не решена.
Других решений пока нет …