[LLVMbugs] [Bug 22010] New: Wrong alignment with _mm_move_epi64()
bugzilla-daemon at llvm.org
bugzilla-daemon at llvm.org
Tue Dec 23 02:31:15 PST 2014
http://llvm.org/bugs/show_bug.cgi?id=22010
Bug ID: 22010
Summary: Wrong alignment with _mm_move_epi64()
Product: clang
Version: 3.5
Hardware: PC
OS: All
Status: NEW
Severity: normal
Priority: P
Component: C++
Assignee: unassignedclangbugs at nondot.org
Reporter: vvsed at hotmail.com
CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
Classification: Unclassified
This program crashes due to wrong alignment.
_mm_move_epi64() translates to vmovapd instead of movq.
Similar _mm_loadl_epi64() intrinsic works well.
Tested it with -O2 -mavx2 options; perhaps that doesn't matter.
#include <stdlib.h>
#include <stdio.h>
#include <emmintrin.h>
__attribute__((aligned(16))) int zz[8];
int main()
{
__m128i r = _mm_move_epi64(*(__m128i *)(zz + 1));
r = _mm_castpd_si128(_mm_loadh_pd(_mm_castsi128_pd(r), (const double
*)zz));
printf("%d", _mm_cvtsi128_si32(r));
return 0;
}
// 64-bit
vmovapd xmm0,xmmword ptr [13F2422F4h] //movq
vmovhpd xmm0,xmm0,qword ptr [13F2422F0h]
// 32-bit
vmovapd xmm0,xmmword ptr ds:[0F13034h] //movq
vmovhpd xmm0,xmm0,qword ptr ds:[0F13030h]
--
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20141223/7ba2df94/attachment.html>
More information about the llvm-bugs
mailing list