On 2015-12-21 19:06:15 +0100, Janne Grunau wrote: > Module: libav > Branch: master > Commit: 489e6add4478b0f5717dbf644234c6f3a3baf02c > > Author: Janne Grunau <janne-li...@jannau.net> > Committer: Janne Grunau <janne-li...@jannau.net> > Date: Tue Dec 8 16:24:57 2015 +0100 > > checkasm: add fmtconvert tests
This test fails unfortunately under valgrind but only under valgrind. Besides all the fate configs which are probably recent Intel CPUs I tested it also on a Core 2 Duo and an AMD K8 (the two oldest CPU I have available). My checkasm emms check is triggered under valgrind by 'cvtpi2ps xmm1 mem64'. Valgrind does a x87 FPU to MMX state transition which all tested CPUs don't do. According to the current "IntelĀ® 64 and IA-32 Architectures Software Developer's Manual Volume 2" from September 2015 valgrinds behaviour is correct. But I think it is actually a bug in the documentation. I found HTML copy from 1999 of Intel's manual(1) which says that cvtpi2ps with a memory location as source doesn't cause a transition to MMX state. The current documentation for cvtpi2pd (packed int to packed double conversion) says the same. Valgrind wasn't following that that until Vitor reported it as #210264(2) in 2009 and it was fixed in (3). As Julian Seward says in the commit message the situation is a little bit fishy. I don't see a reason why the instruction should clobber mmx/fpu registers so I think it's probably a bug in the documentation (and valgrind). Since it will take a while to get fixed valgrind binaries on all fate hosts, I'd like to hide this failure temporarily by annotating the SSE versions of int32_to_float_fmul_scalar and int32_to_float_fmul_array8 as requiring an emms. Janne (1): http://www.c-jump.com/CIS77/reference/Intel/CIS77_24319102/pg_0162.htm (2): https://bugs.kde.org/show_bug.cgi?id=210264 (3): http://sourceforge.net/p/valgrind/mailman/message/24606437/ _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel