The existing bswap code causes incorrect code generation with icl which was breaking fate (apparently we dont have a dedicated icl fate client anymore). This patch adds in msvc intrinsics for bswap operations which aids both msvc and icl (although msvc previously generated correct code the intrinsics still serve as an optimisation).
For future reference there are equivalent intrinsics supplied by the intel compiler itself however i found that on a few rare occasions the 16bit rotate (bswap16) instrinsic would incorrectly generate a 32bit rotate on some 32bit code. The intel compiler for 32bit output seems to get register starved and tries to use a rotate directly on a destination memory pointer, however it incorrectly sets it as a dword pointer and performs 32bit rotate. Using the msvc supplied intrinsics is the only way to ensure correct code output and without it icl fails to pass fate. I would also suggest that this patch gets added to the 2.8 branch aswell.
0001-avutil-x86-bswap-Add-msvc-bswap-instrinsics.patch
Description: Binary data
_______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel