Есть код:
double d1 = 0;
double d2 = 1;
double d3 = 1.01;
__m128d pd, pd2;
pd = _mm_loadh_pd(pd, &d1);
pd = _mm_loadl_pd(pd, &d2);
pd2 = _mm_loadh_pd(pd2, &d3);
pd2 = _mm_loadl_pd(pd2, &d3);
for(long i=0; i<10000000000; i++){
pd = _mm_mul_pd(pd, pd2);
};
_mm_storeh_pd(&d1, pd);
_mm_storel_pd(&d2, pd);
так вот на месте цикла компилятор делает вот такую галиматью:
.L13:
movapd -320(%rbp), %xmm0
movapd %xmm0, -128(%rbp) ??
movapd -304(%rbp), %xmm0
movapd %xmm0, -144(%rbp) ??
movapd -144(%rbp), %xmm1 Бугага
movapd -128(%rbp), %xmm0 Бугага в квадрате
mulpd %xmm1, %xmm0
movapd %xmm0, -320(%rbp)
addq $1, -272(%rbp)
.L12:
movabsq $9999999999, %rax
cmpq %rax, -272(%rbp)
что оно не может вместо такого убожества выдать такое
.L13:
movapd -320(%rbp), %xmm0
movapd -304(%rbp), %xmm1
mulpd %xmm1, %xmm0
movapd %xmm0, -320(%rbp)
addq $1, -272(%rbp)
.L12:
movabsq $9999999999, %rax
cmpq %rax, -272(%rbp)
Ответ на:
комментарий
от true_admin
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от true_admin
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от JackYF
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от JackYF
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от koTuk
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от koTuk
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от anonymous
Ответ на:
комментарий
от tailgunner
Ответ на:
комментарий
от tailgunner
Ответ на:
комментарий
от koTuk
Ответ на:
комментарий
от koTuk
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.
Похожие темы
- Форум компилятор (2010)
- Форум Компилятор (2004)
- Форум Компилятор (2007)
- Форум mime бредит (2012)
- Форум бред, ноль (2010)