Опитвам се да оптимизирам точково произведение на два масива в стил c от contant и малък размер и от тип short.
Прочетох няколко документации за SIMD intrinsics и много публикации в блогове/статии за оптимизация на точков продукт с помощта на този intrisinc.
Въпреки това не разбирам как точков продукт върху къси масиви, използващ тази присъща характеристика, може да даде правилния резултат. Когато правите точковия продукт, изчислените стойности могат да бъдат (и винаги са в моя случай) по-големи от SHORT_MAX, така че има и сума. Следователно ги съхранявам в променлива от двоен тип.
Доколкото разбирам точковия продукт, използващ simd intrinsic, ние използваме __m128i типове променливи и операциите връщат __m128i. И така, това, което не разбирам, е защо не се "прелива" и как резултатът може да се трансформира в тип стойност, който може да се справи с него?
благодаря за вашите съвети