В Intel Intrinsics вы можете найти такие инструкции:
_mm256_mullo_epi64
В описании: «Умножьте упакованные 64-битные целые числа на a и b, получая промежуточные 128-битные целые числа, и хранят младшие 64 бита промежуточных целых чисел в dst. ", в нем говорится, что инструкция выдаст полное 128-битное целое число в качестве промежуточного результата, но она будет хранить только младшие 64-битные.
Как получить старший 64-битный код?
Аналогичная инструкция - mulx
, она умножает два 64-битных целых числа и сохраняет все 128 бит в два 64-битных регистра. На самом деле, я просто хочу найти SIMD-версию mulx
.