[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-bugs-dist
Subject: [Bug 273475] Add support for AVX instructions
From: Gunther Piez <gpiez () web ! de>
Date: 2012-06-19 13:17:30
Message-ID: bug-273475-17878-kep9Do8mvv () http ! bugs ! kde ! org/
[Download RAW message or body]
https://bugs.kde.org/show_bug.cgi?id=273475
--- Comment #123 from Gunther Piez <gpiez@web.de> ---
That was fast. The next one is evil.
vex amd64->IR: unhandled instruction bytes: 0xC4 0x42 0x29 0xB 0xD9 0xC4 0xC1
0x79
vex amd64->IR: REX=0 REX.W=0 REX.R=1 REX.X=0 REX.B=1
vex amd64->IR: VEX=1 VEX.L=0 VEX.nVVVV=0xA ESC=0F38
vex amd64->IR: PFX.66=1 PFX.F2=0 PFX.F3=0
==9622== valgrind: Unrecognised instruction at address 0x441de6.
==9622== at 0x441DE6: Eval::Init::material() (tmmintrin.h:124)
==9622== by 0x45809A: Eval::Init::setEvalParameters(Parameters const&)
(evalinit.cpp:778)
==9622== by 0x46DA40: Eval::init(Parameters const&) (eval.cpp:91)
==9622== by 0x44FD5F: Game::Game(Console*, Parameters const&, unsigned long,
unsigned long) (game.cpp:115)
==9622== by 0x468559: Console::init(int&, char**) (console.cpp:78)
==9622== by 0x427D79: main (main.cpp:28)
441de6: c4 42 29 0b d9 vpmulhrsw %xmm9,%xmm10,%xmm11
441deb: c4 c1 79 c5 eb 01 vpextrw $0x1,%xmm11,%ebp
441df1: c4 c1 79 c5 d3 00 vpextrw $0x0,%xmm11,%edx
I shouldn't have used this, I knew it would hurt me later :-) It actually does
give a nice speedup, but fortunately for valgrind testing I can easily disable
it. It comes from this code
#ifdef __SSSE3__
// The SSE version loses half a bit of precision, because is rounds
first
// and then sums up, where the normal code rounds last.
__v8hi score16 = _mm_mulhrs_epi16(weights.data, score.data);
int16_t s0 = _mm_extract_epi16( score16, 0 ) + _mm_extract_epi16(
score16, 1 );
return s0;
#else
int o = weights.opening();
int e = weights.endgame();
int s = (o*score.opening() + e*score.endgame() + 0x4000) >> 15;
ASSERT(s==s0);
return s;
#endif
If I disable the SSSE3 path, the next stop ist at
vex amd64->IR: unhandled instruction bytes: 0xC4 0xE2 0x79 0x17 0xDA 0x49 0x8B
0x48
vex amd64->IR: REX=0 REX.W=0 REX.R=0 REX.X=0 REX.B=0
vex amd64->IR: VEX=1 VEX.L=0 VEX.nVVVV=0x0 ESC=0F38
vex amd64->IR: PFX.66=1 PFX.F2=0 PFX.F3=0
==12207== valgrind: Unrecognised instruction at address 0x443236
which is
443236: c4 e2 79 17 da vptest %xmm2,%xmm3
--
You are receiving this mail because:
You are watching all bug changes.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic