При векторизации, если цикл содержит «if constructs», llvm пытается сгладить их, заменив инструкции SELECT, чтобы поток управления был прямым, если базовые блоки не могут быть преобразованы в предикатные инструкции, такие как SELECT, llvm не может его векторизовать. До сих пор я предполагаю, что для SELECT, например IR-инструкций, должна быть какая-то эквивалентная инструкция. Я искал предварительную инструкцию в архитектуре Intel, я не получил ее. Может кто-нибудь, пожалуйста, скажите мне, поддерживает ли текущая архитектура ISA исходные инструкции? Если нет, то как инструкции SELECT будут опущены в машинные инструкции? Пожалуйста, поправьте меня, если я сделаю какие-то неправильные предположения.Что инструкция SELECT опускается в ISA?
Заранее спасибо
Инструкции по выбору опускаются с помощью пользовательских инструкций опускания или псевдо. Оформить заказ MSP430ISelLowering.cpp для получения дополнительной информации – ConsistentProgrammer
Не существует индивидуальной команды ISA для выбора, так как выбранный узел опускается в phi-узлы и базовые блоки – ConsistentProgrammer
Ваш второй комментарий немного запутан, почему выбранный узел опускается в phi-узлы и базовые блоки. Не могли бы вы дать мне указатель на это. – DTharun