watery01 / libyuv

Automatically exported from code.google.com/p/libyuv
0 stars 0 forks source link

ERMS detect #213

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
To detect 'Enhanced Rep Mov String' the ERMS bit should be used.
Currently AVX2 detect is used instead.
Detect the bit and use string function.

Original issue reported on code.google.com by fbarch...@chromium.org on 1 Apr 2013 at 8:42

GoogleCodeExporter commented 9 years ago
improved logic in r640, but still fails to detect.

Original comment by fbarch...@google.com on 4 Apr 2013 at 4:01

GoogleCodeExporter commented 9 years ago
Fixed in r643.
XGetBV was trashing registers causing a bug.
Moved ERMS before avx/ossave, since it rep movsb is safe to use without OS 
support.

c:\intelsde\sde -ast -hsw -- out\release\libyuv_unittest.exe 
--gtest_filter=*Cpu*
[ RUN      ] libyuvTest.TestCpuHas
Cpu Flags ff0
Has ARM 0
Has NEON 0
Has X86 10
Has SSE2 20
Has SSSE3 40
Has SSE4.1 80
Has SSE4.2 100
Has AVX 200
Has AVX2 400
Has ERMS 800
Has MIPS 0
Has MIPS DSP 0
Has MIPS DSPR2 0

Original comment by fbarch...@chromium.org on 4 Apr 2013 at 7:21