[Bug target/37096] conditional evaluation incorrect with -O3
ubizjak at gmail dot com
gcc-bugzilla@gcc.gnu.org
Thu Sep 11 18:17:00 GMT 2008
------- Comment #8 from ubizjak at gmail dot com 2008-09-11 18:16 -------
Hm, with -O2 -fno-strict-aliasing, it works fine.
Is there an aliasing issue involved?
short Transform4x4(short *pMatrix)
{
__m128i r4, r5;
__m128i r0 = _mm_loadl_epi64((__m128i *)(pMatrix + 0 * 16));
__m128i r1 = _mm_loadl_epi64((__m128i *)(pMatrix + 1 * 16));
__m128i r2 = _mm_loadl_epi64((__m128i *)(pMatrix + 2 * 16));
__m128i r3 = _mm_loadl_epi64((__m128i *)(pMatrix + 3 * 16));
... stuff ...
_mm_storel_epi64((__m128i *)(pMatrix + 0 * 16), r0);
_mm_storel_epi64((__m128i *)(pMatrix + 1 * 16), r1);
_mm_storel_epi64((__m128i *)(pMatrix + 2 * 16), r2);
_mm_storel_epi64((__m128i *)(pMatrix + 3 * 16), r3);
}
--
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=37096
More information about the Gcc-bugs
mailing list