Я не думаю, что есть способ возвести в квадрат А без использования IMUL на x86.Я могу ошибаться.
Чтобы узнать, сколько времени занимает что-то, сделайте микробенчмарк!
Редактировать: о, подождите, я понял!a b занимает два чтения памяти, а a a - одно!Таким образом, a * a быстрее: -).
Правдивый ответ: нет причины, по которой a * b будет медленнее, если у вас не будет какого-то внешнего фактора, влияющего на вещи.