Hi,

I'm currently investigating a crash [1] in Qt that was caused by introducing 
SSE2 optimized code. My best guess is that, when calling _mm_loadu_si128 , the 
generated assembly actually chokes on non-aligned data.

This is the code line (with annotated assembly, from gdb):

__m128i a_data = _mm_loadu_si128((__m128i*)ptr);
0x6b7f7df4  <+0x0049>         movdqa %xmm0,-0x28(%ebp)

You see that the _mm_loadu_si128 call, that should work for non-aligned memory 
addresses, actually is is implemented with movdqa, which is " Move Aligned 
Double Quadword".

So, do you think this is a bug, or am I on the wrong track here? If so, is it a 
gcc, or MinGW-w64 issue?

Regards

Kai

PS: I've been able to reproduce this with both Mingw-builds 
i686-4.8.2-release-posix-dwarf-rt_v3-rev2 and Mingw-builds 
x32-4.7.2-release-posix-sjlj-rev8 .

[1]: https://bugreports.qt-project.org/browse/QTBUG-36807

------------------------------------------------------------------------------
Android apps run on BlackBerry 10
Introducing the new BlackBerry 10.2.1 Runtime for Android apps.
Now with support for Jelly Bean, Bluetooth, Mapview and more.
Get your Android app in front of a whole new audience.  Start now.
http://pubads.g.doubleclick.net/gampad/clk?id=124407151&iu=/4140/ostg.clktrk
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to