[Bug target/59539] Missed optimisation: VEX-prefixed operations don't need aligned data
thiago at kde dot org
gcc-bugzilla@gcc.gnu.org
Thu Dec 19 00:14:00 GMT 2013
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59539
--- Comment #14 from Thiago Macieira <thiago at kde dot org> ---
*facepalm* I had forgotten to make install!
It works:
$ ~/gcc4.9/bin/gcc -mavx -S -o - -O3 -xc - <<<'#include <immintrin.h>
int f(void *p1, void *p2)
{
__m128i d1 = _mm_loadu_si128((__m128i*)p1);
__m128i d2 = _mm_loadu_si128((__m128i*)p2);
__m128i result = _mm_cmpeq_epi16(d1, d2);
return _mm_movemask_epi8(result);
}
'
.file ""
.section .text.unlikely,"ax",@progbits
.LCOLDB0:
.text
.LHOTB0:
.p2align 4,,15
.globl f
.type f, @function
f:
.LFB1073:
.cfi_startproc
vmovdqu (%rsi), %xmm0
vpcmpeqw (%rdi), %xmm0, %xmm0
vpmovmskb %xmm0, %eax
ret
.cfi_endproc
.LFE1073:
.size f, .-f
.section .text.unlikely
.LCOLDE0:
.text
.LHOTE0:
.ident "GCC: (GNU) 4.9.0 20131218 (experimental)"
.section .note.GNU-stack,"",@progbits
More information about the Gcc-bugs
mailing list