Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- immortal.c: In function 'test_e':
- immortal.c:179:33: warning: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type
- __m128i am = _mm_loadu_si128(a + m);
- ^
- In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/xmmintrin.h:1258:0,
- from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/x86intrin.h:31,
- from immortal.c:11:
- /usr/lib/gcc/x86_64-linux-gnu/4.9/include/emmintrin.h:692:1: note: expected 'const __vector(2) long long int *' but argument is of type 'char *'
- _mm_loadu_si128 (__m128i const *__P)
- ^
- immortal.c:180:33: warning: passing argument 1 of '_mm_loadu_si128' from incompatible pointer type
- __m128i ak = _mm_loadu_si128(a + k);
- ^
- In file included from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/xmmintrin.h:1258:0,
- from /usr/lib/gcc/x86_64-linux-gnu/4.9/include/x86intrin.h:31,
- from immortal.c:11:
- /usr/lib/gcc/x86_64-linux-gnu/4.9/include/emmintrin.h:692:1: note: expected 'const __vector(2) long long int *' but argument is of type 'char *'
- _mm_loadu_si128 (__m128i const *__P)
- ^
- immortal.c:186:2: warning: format '%d' expects argument of type 'int', but argument 2 has type '__m128i' [-Wformat=]
- printf("%d\n", sum);
- ^
- void test_e() {
- int top = 999999999;
- char *a;
- a = (/*unsigned*/ char*) calloc(top+1, sizeof(/*unsigned*/ char));
- __m128i sum = _mm_setzero_si128();
- for (int m = 1, k = top - 15; m < k; m += 16, k -= 16) {
- __m128i am = _mm_loadu_si128(a + m);
- __m128i ak = _mm_loadu_si128(a + k);
- ak = _mm_shuffle_epi8(ak, _mm_set_epi8(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15));
- sum = _mm_add_epi16(sum, _mm_maddubs_epi16(am, ak));
- }
- printf("%d\n", sum);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement