https://bugs.kde.org/show_bug.cgi?id=499183
--- Comment #2 from Paul Floyd <pjfl...@wanadoo.fr> --- I think that I see the problem. GEN_test_RandM(VMOVQ_XMM_to_XMM_LOW_LOW_HIGH, "vmovq %%xmm0, %%xmm7; vmovq %%xmm8, %%xmm0", "vmovq %%xmm0, (%%rsi); vmovq %%xmm9, %%xmm0") I think that the intent here is to use xmm0 as a temporary to copy xmm7 to xmm8 and *rsi to xmm9. But the order of the registers is wrong. For the 'reg' part xmm0 (contiaing junk) gets copied to xmm7 xmm8 gets copied to xmm0 (and then not used in the output). The result is that the top 48 bytes of the first line of the block contain (as expected) but the bottom 16 bytes contain jumk. Same sort of thing for the 'mem' part but this time because xmm0 got filled with something from 'block' it's no longer random and the results are deterministic. This should fix it: diff --git a/none/tests/amd64/avx-vmovq.c b/none/tests/amd64/avx-vmovq.c index da8a1959b..3512aa53b 100644 --- a/none/tests/amd64/avx-vmovq.c +++ b/none/tests/amd64/avx-vmovq.c @@ -6,8 +6,8 @@ GEN_test_RandM(VMOVQ_XMM_to_XMM_LOW_HIGH, // xmm0 is scratch GEN_test_RandM(VMOVQ_XMM_to_XMM_LOW_LOW_HIGH, - "vmovq %%xmm0, %%xmm7; vmovq %%xmm8, %%xmm0", - "vmovq %%xmm0, (%%rsi); vmovq %%xmm9, %%xmm0") + "vmovq %%xmm7, %%xmm0; vmovq %%xmm0, %%xmm8", + "vmovq (%%rsi), %%xmm0; vmovq %%xmm0, %%xmm9") int main ( void ) { -- You are receiving this mail because: You are watching all bug changes.