Согласно документации gcc, компиляция с -march = cascadelake не позволяет флаг -AVX512IFMA (который, если я правильно понимаю, включает поддержку инструкций FMA AVX512). Напротив, этот флаг включен, например, при компиляции с -march = cannonlake и -march = tigerlake.
Тем не менее, согласно Intel, процессоры Cascade-Lake фактически включают в себя 2 модуля AVX-512 FMA каждый (вот example, и, насколько я могу судить, это верно для любого процессора Cascade-Lake).
Кто-нибудь может прояснить это поведение? Я неправильно интерпретирую значение флага AVX512IFMA?