- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
hi, I am trying to use the carry-less multiplication instruction but I am running into errors that I was unable to resolve.
the cpu i am using is Intel Xeon CPU E31270.
the code I am trying to run is the one found on page 22 of the white paper: Intel Carry-Less Multiplication Instruction and its Usage for Computing the GCM Mode.
the errors I am getting is:
j.cpp:12:7: error: request for member m128i_i64 in a, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:13:7: error: request for member m128i_i64 in a, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:14:7: error: request for member m128i_i64 in b, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:15:7: error: request for member m128i_i64 in b, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:21:27: error: request for member m128i_i64 in a, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:21:44: error: request for member m128i_i64 in b, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:22:27: error: request for member m128i_i64 in a, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:22:44: error: request for member m128i_i64 in b, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:23:27: error: request for member m128i_i64 in a, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:23:44: error: request for member m128i_i64 in b, which is of non-class type __m128i {aka__vector(2) long long int}
this error is the one that really is giving me trouble.
j.cpp:25:60: error: _mm_clmulepi64_si128 was not declared in this scope
the cpu i am using is Intel Xeon CPU E31270.
the code I am trying to run is the one found on page 22 of the white paper: Intel Carry-Less Multiplication Instruction and its Usage for Computing the GCM Mode.
the errors I am getting is:
j.cpp:12:7: error: request for member m128i_i64 in a, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:13:7: error: request for member m128i_i64 in a, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:14:7: error: request for member m128i_i64 in b, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:15:7: error: request for member m128i_i64 in b, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:21:27: error: request for member m128i_i64 in a, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:21:44: error: request for member m128i_i64 in b, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:22:27: error: request for member m128i_i64 in a, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:22:44: error: request for member m128i_i64 in b, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:23:27: error: request for member m128i_i64 in a, which is of non-class type __m128i {aka__vector(2) long long int}
j.cpp:23:44: error: request for member m128i_i64 in b, which is of non-class type __m128i {aka__vector(2) long long int}
this error is the one that really is giving me trouble.
j.cpp:25:60: error: _mm_clmulepi64_si128 was not declared in this scope
Link Copied
3 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Please excuse if I'm asking the obvious: Are you including wmmintrin.h? Which compiler are you using and are you using the apropriate options to generate AESni?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
yes, i am including the header. the compiler i am using is g++ and the options are -maes -msse4.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Please note that there is a separate option -mpclmul. Have you tried this one?
Since your system supports AVX, it is highly recommended that you use -mavx, which includes pclmul.
Since your system supports AVX, it is highly recommended that you use -mavx, which includes pclmul.
![](/skins/images/45C6C2D737ED71F4C51F0145C8CB1E9C/responsive_peak/images/icon_anonymous_message.png)
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