On (Tue) 23 Feb 2016 [09:09:46], Peter Maydell wrote: > On 23 February 2016 at 07:30, Amit Shah <amit.s...@redhat.com> wrote: > > The following changes since commit 8eb779e4223a18db9838a49ece1bc72cfdfb7761: > > > > Merge remote-tracking branch 'remotes/kevin/tags/for-upstream' into > > staging (2016-02-22 16:55:41 +0000) > > > > are available in the git repository at: > > > > https://git.kernel.org/pub/scm/virt/qemu/amit/migration.git > > tags/migration-for-2.6-3 > > > > for you to fetch changes up to 612f0af57aa1e8d4e09d7f1a1c442e1d943cbf0c: > > > > cutils: add avx2 instruction optimization (2016-02-23 12:53:03 +0530) > > > > ---------------------------------------------------------------- > > Migration: > > - enable avx2 instructions when available > > - fix a qcow2 assert > > - minor code rearrangement > > Hi. I'm afraid this doesn't compile for x86-64 Linux:
Compiles for me, but adding Liang Li so he can respond. > > /home/petmay01/linaro/qemu-for-merges/util/cutils.c: In function > ‘can_use_buffer_find_nonzero_offset_avx2’: > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:242:29: error: > ‘__m256i’ undeclared (first use in this function) > * sizeof(AVX2_VECTYPE)) == 0 > ^ > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:242:29: note: each > undeclared identifier is reported only once for each function it > appears in > /home/petmay01/linaro/qemu-for-merges/util/cutils.c: In function > ‘buffer_find_nonzero_offset_avx2’: > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:248:5: error: > unknown type name ‘__m256i’ > const AVX2_VECTYPE *p = buf; > ^ > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:249:5: error: > unknown type name ‘__m256i’ > const AVX2_VECTYPE zero = (AVX2_VECTYPE){0}; > ^ > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:249:27: error: > ‘__m256i’ undeclared (first use in this function) > const AVX2_VECTYPE zero = (AVX2_VECTYPE){0}; > ^ > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:249:35: error: > expected ‘,’ or ‘;’ before ‘{’ token > const AVX2_VECTYPE zero = (AVX2_VECTYPE){0}; > ^ > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:259:9: error: > implicit declaration of function ‘_mm256_movemask_epi8’ > [-Werror=implicit-function-declaration] > if (!AVX2_ALL_EQ(p[i], zero)) { > ^ > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:259:9: error: > nested extern declaration of ‘_mm256_movemask_epi8’ > [-Werror=nested-externs] > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:259:9: error: > implicit declaration of function ‘_mm256_cmpeq_epi8’ > [-Werror=implicit-function-declaration] > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:259:9: error: > nested extern declaration of ‘_mm256_cmpeq_epi8’ > [-Werror=nested-externs] > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:267:17: error: > expected ‘;’ before ‘tmp0’ > AVX2_VECTYPE tmp0 = AVX2_VEC_OR(p[i + 0], p[i + 1]); > ^ > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:268:17: error: > expected ‘;’ before ‘tmp1’ > AVX2_VECTYPE tmp1 = AVX2_VEC_OR(p[i + 2], p[i + 3]); > ^ > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:269:17: error: > expected ‘;’ before ‘tmp2’ > AVX2_VECTYPE tmp2 = AVX2_VEC_OR(p[i + 4], p[i + 5]); > ^ > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:270:17: error: > expected ‘;’ before ‘tmp3’ > AVX2_VECTYPE tmp3 = AVX2_VEC_OR(p[i + 6], p[i + 7]); > ^ > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:271:17: error: > expected ‘;’ before ‘tmp01’ > AVX2_VECTYPE tmp01 = AVX2_VEC_OR(tmp0, tmp1); > ^ > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:272:17: error: > expected ‘;’ before ‘tmp23’ > AVX2_VECTYPE tmp23 = AVX2_VEC_OR(tmp2, tmp3); > ^ > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:273:9: error: > implicit declaration of function ‘_mm256_or_si256’ > [-Werror=implicit-function-declaration] > if (!AVX2_ALL_EQ(AVX2_VEC_OR(tmp01, tmp23), zero)) { > ^ > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:273:9: error: > nested extern declaration of ‘_mm256_or_si256’ > [-Werror=nested-externs] > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:273:71: error: > ‘tmp01’ undeclared (first use in this function) > if (!AVX2_ALL_EQ(AVX2_VEC_OR(tmp01, tmp23), zero)) { > ^ > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:273:78: error: > ‘tmp23’ undeclared (first use in this function) > if (!AVX2_ALL_EQ(AVX2_VEC_OR(tmp01, tmp23), zero)) { > > ^ > /home/petmay01/linaro/qemu-for-merges/util/cutils.c: In function > ‘can_use_buffer_find_nonzero_offset_avx2’: > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:244:1: error: > control reaches end of non-void function [-Werror=return-type] > } > ^ > /home/petmay01/linaro/qemu-for-merges/util/cutils.c: In function > ‘buffer_find_nonzero_offset_avx2’: > /home/petmay01/linaro/qemu-for-merges/util/cutils.c:279:1: error: > control reaches end of non-void function [-Werror=return-type] > } > ^ > cc1: all warnings being treated as errors > > thanks > -- PMM Amit