Знающие люди подскажите какие выводи можно сделать из того что следующие три фрагмента кода работают одинаковое время:
1
.L13
addq $1, %rax
subsd %xmm0, %xmm2
cmpq %rdx, %rax
subsd %xmm0, %xmm3
jne .L13
2
.L13
addq $1, %rax
subsd %xmm0, %xmm2
cmpq %rdx, %rax
jne .L13
3
.L13
addq $1, %rax
subpd %xmm0, %xmm2
cmpq %rdx, %rax
jne .L13
Из 2 и 3 => вычитание двух упакованных чисел с плавоющей точкой двойной точности по скорости равно вычитанию одного не упакованного числа
Из 1 и 3 => вычитание двух упакованных чисел с плавоющей точкой двойной точности по скорости равно вычитанию двух неупакованных чисел
Что-то не вяжется или фича в параллельном исполнении инструкций cmp и subsd хотя и в этом случае не вяжется
Может кто знает как отличается скорость операций с упакованными числами от операций с неупакованными числами?
ЗЫ: или фича в том что в обоих вариантах операций < 4(5) а за раз конвеер может выполнять до 4 операций в том числе и SSE (на коре 2 ) и по факту операции все равно выполняются параллельно...