Смешное и бесполезное... Я ж цыгналы (С8051) начинал использовать еще цыгналовские. И помнил, что MAC появился лишь в серии F13x. И никогда не использовал аппаратное ускорение вычислений (а Кейл умеет!).
И вот открытие спустя 20 лет - силабовские "цыгналы" ископропки имеют этот модуль (серия F12x), а F13х серия попросту не существует!
Но штука оказалась бесполезной. Видимо, лишь свертку ей делать хорошо если компилятор поймет.. и то вряд ли, ручками на асме писать придется.
А для простых операций всегда надо предварительно обнулять результат, что нивелирует эффект от перехода с 16битному умножителю. И в плавучке это тоже никак не используется.
Вот такой тупорый код показал ускорение на 1 условный тик времени: 97 против 98.. примерно 1% при всех накладных работы с xdata.
Если же переменные в data, то выигрыша не видно, стабильные 29 тиков.
Собственно, хоть какой-то выигрыш уже удивителен, т.е. умножения нет в коде. Видать, суммирование MAC'ом делает.

Тест с умножениями тоже оказался никакой. 198 тиков. Хотя размер кода меняется заметно, таки применяется этот MAC.

Если заменить на /= то те же самые цифры.
Вместе с тем непонятна замена int32_t на float. По первому тесту плавука требуется в +3 раза тактов больше (что ожидаемое для программной реализации).
Но по второму результат ровно тот же, плавучка не потребовала дополнительного. Хотя функции умножения Кейл разные использует:
FPMUL
LMUL
LMUL_F120 - целочисленное, при аппаратном ускорении.
Кому это F120 нужны сейчас. Дорого и беспонтово.. но всё же - я нигде не напортачил с кодом, ничего компилятор не выкинул? А то может я тепературу на Луне наблюдаю.