Intel® ISA Extensions
Use hardware-based isolation and memory encryption to provide more code protection in your solutions.

Unresolved SSE instructions

changbo
Beginner
450 Views

I am compiling code that uses SSE on a 64bit Vista systemwith Visual Studio 2008 32bit. (Was told there is no 64bit VS.)

I get the following SSE instructions unresolved linking errors. The same code compiles fine on a 32bit Vista, with the same MSVC 2008 32 bit. On both systems MSVC has xmmintrin.h, emmintrin.h and etc. found in the include path.

Most of my other SSE instructions compile except these. I thought if most SSE are intrinsics, there shouldn't be any lib to link to?

How can I resolve this? This is a Core 2 Duo T7600. Thanks

2>TestLib.lib(TestSSE.obj) : error LNK2019: unresolved external symbol _m_empty referenced in function "union __m128 __cdecl TestLib::testFunc1(union __m128)" (?sin4@TestLib@@YA?AT__m128@@T2@@Z)

2>TestLib.lib(TestSSE.obj) : error LNK2019: unresolved external symbol _m_pcmpeqd referenced in function "union __m128 __cdecl TestLib::testFunc1(union __m128)" (?sin4@TestLib@@YA?AT__m128@@T2@@Z)

2>TestLib.lib(TestSSE.obj) : error LNK2019: unresolved external symbol _mm_setzero_si64 referenced in function "union __m128 __cdecl TestLib::testFunc1(union __m128)" (?sin4@TestLib@@YA?AT__m128@@T2@@Z)

2>TestLib.lib(TestSSE.obj) : error LNK2019: unresolved external symbol _m_pslldi referenced in function "union __m128 __cdecl TestLib::testFunc1(union __m128)" (?sin4@TestLib@@YA?AT__m128@@T2@@Z)

2>TestLib.lib(TestSSE.obj) : error LNK2019: unresolved external symbol _m_pand referenced in function "union __m128 __cdecl TestLib::testFunc1(union __m128)" (?sin4@TestLib@@YA?AT__m128@@T2@@Z)

2>TestLib.lib(TestSSE.obj) : error LNK2019: unresolved external symbol _m_paddd referenced in function "union __m128 __cdecl TestLib::testFunc1(union __m128)" (?sin4@TestLib@@YA?AT__m128@@T2@@Z)

2>TestLib.lib(TestSSE.obj) : error LNK2019: unresolved external symbol _mm_cvtt_ps2pi referenced in function "union __m128 __cdecl TestLib::testFunc1(union __m128)" (?sin4@TestLib@@YA?AT__m128@@T2@@Z)

2>TestLib.lib(TestSSE.obj) : error LNK2019: unresolved external symbol _mm_cvt_pi2ps referenced in function _mm_cvtpi32x2_ps

2>TestLib.lib(TestSSE.obj) : error LNK2019: unresolved external symbol _m_pandn referenced in function "union __m128 __cdecl TestLib::testFunc2(union __m128)" (?cos4@TestLib@@YA?AT__m128@@T2@@Z)

2>TestLib.lib(TestSSE.obj) : error LNK2019: unresolved external symbol _m_psubd referenced in function "union __m128 __cdecl TestLib::testFunc2(union __m128)" (?cos4@TestLib@@YA?AT__m128@@T2@@Z)

0 Kudos
2 Replies
TimP
Honored Contributor III
450 Views

You would require the optional X64 component under the VS2008 C++ support option, and you would need the SP1, to support 64-bit development. It's true, VS is a 32-bit application, but it will generate 64-bit code and provides 64-bit libraries, when the appropriate options are installed.

I'm not good at reading between the lines to figure out which compiler and which options you have set.

0 Kudos
Brijender_B_Intel
450 Views

The error you are getting for not only SSE4 but also for SSE2 instrutions. Most of these instructions are defined in mmintern.h. VS8 should be able to handle it. As tim said that you need to check the link library path to the right library. It looks like your 64-bit project settings are missing some settings. The 64-bit libs should point to VSPATH\VC\lib\amd64. on 32 bit system Lib includes lib for 32bit builds. 64bit libs are usually one more level below than "lib". You can check your project settings: tools -> optionss -> Project and solutions -> then selecting platform x64.

0 Kudos
Reply