2015-05-22 5 views

ответ

1

Технически два 64-битных значения могут привести к 128-битовому результату. Вот почему есть следующие функции int64*int32+int32, но не один, который принимает два 64-битных входных значения.

int64x2_t vmlal_s32 (int64x2_t, int32x2_t, int32x2_t); 
int64x2_t vqdmlal_s32 (int64x2_t, int32x2_t, int32x2_t); 

Если те не работают для вас, то вам нужно использовать скалярные 64 * 64 операций с последующим vaddq_s64.

Примечания: Visual Studio реализует _mul128, __umul128, _mulh и __umulh для всех архитектур, включая ARM для обработки полного 64 * 64 = 128 бит сценария.