Home Dashboard Directory Help
Search

Unaligned data access optimzed away by isjerl


Status: 

Closed
 as Fixed Help for as Fixed


2
0
Sign in
to vote
Type: Bug
ID: 646489
Opened: 2/23/2011 11:42:58 AM
Access Restriction: Public
0
Workaround(s)
view
0
User(s) can reproduce this bug

Description

Using the _mm_loadu_si128 compiler intrinsic with /O2, the compiler converts the unaligned load into an aligned load, causing a program to crash.

Example code:
-----------------------------
#include <intrin.h>
int main()
{
    int data[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11};
    __m128i temp1, temp2, prod;
    temp1 = _mm_loadu_si128((__m128i *) &data[0]);
    temp2 = _mm_loadu_si128((__m128i *) &data[5]);
    prod = _mm_mul_epi32(temp1, temp2);
    return _mm_extract_epi32(prod, 0);
}
Details
Sign in to post a comment.
Posted by Microsoft on 2/25/2011 at 3:38 PM
Thanks for reporting this issue. I was able to reproduce the issue using the x64 targeting VS 2010 compiler (Microsoft (R) C/C++ Optimizing Compiler Version 16.00.30319.01 for x64).

The issue is fixed with the upcoming service pack (SP1) for VS 2010. You can download the beta for the service pack here: http://www.microsoft.com/downloads/en/details.aspx?FamilyID=11ea69cb-cf12-4842-a3d7-b32a1e5642e2.

thanks,
VC++ Optimization and Code Generation Team
Posted by Microsoft on 2/23/2011 at 5:43 PM
Thank you for submitting feedback on Visual Studio 2010 and .NET Framework. Your issue has been routed to the appropriate VS development team for investigation. We will contact you if we require any additional information.
Posted by Microsoft on 2/23/2011 at 12:14 PM
Thank you for your feedback, we are currently reviewing the issue you have submitted. If this issue is urgent, please contact support directly(http://support.microsoft.com)
Sign in to post a workaround.