Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <intrin.h>
- typedef unsigned __int64 u64;
- #define ITER (100000000)
- int main(int argc, char ** argv)
- {
- u64 t0, t1;
- u64 i;
- register u64 r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, ra, rb;
- r0 = rand();
- r1 = rand();
- r2 = rand();
- r3 = rand();
- r4 = rand();
- r5 = rand();
- r6 = rand();
- r7 = rand();
- r8 = rand();
- r9 = rand();
- ra = rand();
- rb = rand();
- t0 = __rdtsc();
- for(i=0; i < ITER/4; ++i)
- {
- #define STEP \
- r0 += r6; \
- r1 += r7; \
- r2 += r8; \
- r3 += r9; \
- r4 += ra; \
- r5 += rb; \
- \
- r6 += r0; \
- r7 += r1; \
- r8 += r2; \
- r9 += r3; \
- ra += r4; \
- rb += r5; \
- STEP
- STEP
- STEP
- STEP
- #undef STEP
- }
- t1 = __rdtsc();
- printf("%f (%llu)\n", 12.0 * (double)ITER/(double)(t1-t0), r0^r1^r2^r3^r4^r5);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement