- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am currently using the Linux "non-commercial unsupported" compiler with a PIV. While writing SSE codes using intrinsics, I received compilation failures whenever I try to use double-precision operations/variables with SSE. Specifically, operations such as _mm_add_ps works, but not _mm_add_pd. For example,
sse0 = _mm_add_pd(sse1, sse2)
throws the error:
error: argument of type "struct" is incompatible with parameter of type "__mm128"
Where I defined all sse* as __mm128
I opened xmmintrin.h to take a look, and saw that only single precision operations are defined. (__m128d is not defined but __m128 is.)But the downloadable SSE tutorial explicitly used double-precision variables/operations. Is there some other header or library I need to specify? Or do I need another version of the compiler?
Thank You and Regards.
sse0 = _mm_add_pd(sse1, sse2)
throws the error:
error: argument of type "struct
Where I defined all sse* as __mm128
I opened xmmintrin.h to take a look, and saw that only single precision operations are defined. (__m128d is not defined but __m128 is.)But the downloadable SSE tutorial explicitly used double-precision variables/operations. Is there some other header or library I need to specify? Or do I need another version of the compiler?
Thank You and Regards.
Link Copied
2 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You will find _mm_add_pd and __m128d defined in emmintrin.h.
Regards,
Elizabeth S.
Intel Customer Support
Regards,
Elizabeth S.
Intel Customer Support
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for the help!
Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page