Intel® ISA Extensions
Use hardware-based isolation and memory encryption to provide more code protection in your solutions.
Announcements
FPGA community forums and blogs have moved to the Altera Community. Existing Intel Community members can sign in with their current credentials.
1136 Discussions

SSSE3 intrinsics compilation error on x64 VC++ 2005 platform

biplabraut
Beginner
979 Views
Dear All,
I have been working on Win32 applicationsusing Intel Intrinsics for optimization for past few months. Recently, I tried to migrate my SSSE3 code from x86 windows to x64 Windows. But, on compiling the SSSE3 code on x64Solution platform in VC++ 2005 over Windows Vista Ultimate in Release mode, I am getting errors like :-

1) fatal error C1001: An internal error has occurred in the compiler.
(compiler file 'f:\rtm\vctools\compiler\utc\src\P2\amd64\cgintrin.c', line 708)
To work around this problem, try simplifying or changing the program near the locations listed above.
Please choose the Technical Support command on the Visual C++
Help menu, or open the Technical Support help file for more information
LINK : fatal error LNK1257: code generation failed

2) error C2039: 'm128i_i16' : is not a member of '__m128i'

When I compile in Debug mode to get x64 build, I get only the first error and the second is not encountered.

Please suggest the work around for this migration to x64 from 32-bit windows of Intrinsics. Is it a bug of Visual Studio otherwise. Any suggestions and hints are welcome.

With Regards,
Biplab Raut
0 Kudos
1 Reply
gabest
Beginner
979 Views
Their optimizer is a lot better than anything with sse intrinsics, but crashes frequently and the x64 code is even more buggy. Despite the numerous bug reports I made on connect (see my latest for a laugh) there was _apparently_ no change in the compiler between 2008 and 2010 CTP, in a 800 kLOC asm output everything stayed exactly the same. But since you are using 2005, there is a chance your error has already been fixed in newer versions. No idea about No.2, microsoft headers declare __m128i as a struct, having that member.
0 Kudos
Reply