Bug#783543: miscompile of _mm256_permutevar8x32_epi32
Julian Taylor
jtaylor.debian at googlemail.com
Mon Apr 27 20:54:26 UTC 2015
Package: llvm-toolchain-3.6
Version: 1:3.6-2
Severity: serious
clang 3.6 in debian miscompiles _mm256_permutevar8x32_epi32
it swaps the two first arguments:
$ apt-cache policy clang-3.6
clang-3.6:
Installed: 1:3.6-2
Candidate: 1:3.6-2
Version table:
*** 1:3.6-2 0
500 http://ftp.de.debian.org/debian/ unstable/main amd64
$ cat test.c
#include <immintrin.h>
__m256i fun (__m256i a, __m256i o) {
return _mm256_permutevar8x32_epi32(a, o);
}
$ clang-3.6 test.c -mavx2 -c -O2
$ objdump -d test.o
test.o: file format elf64-x86-64
Disassembly of section .text:
0000000000000000 <fun>:
0: c4 e2 7d 36 c1 vpermd %ymm1,%ymm0,%ymm0
5: c3 retq
the correct result is:
vpermd %ymm0,%ymm1,%ymm0
clang 3.5 seems to produce the right result so this is a 3.6 regression
More information about the Pkg-llvm-team
mailing list