Advertisement
Guest User

Untitled

a guest
Jun 24th, 2017
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.86 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <intrin.h>
  4.  
  5. typedef unsigned __int64 u64;
  6.  
  7. #define ITER (100000000)
  8.  
  9. int main(int argc, char ** argv)
  10. {
  11.     u64 t0, t1;
  12.     u64 i;
  13.     register u64 r0, r1, r2, r3, r4, r5, r6, r7, r8, r9, ra, rb;
  14.    
  15.     r0 = rand();
  16.     r1 = rand();
  17.     r2 = rand();
  18.     r3 = rand();
  19.     r4 = rand();
  20.     r5 = rand();
  21.     r6 = rand();
  22.     r7 = rand();
  23.     r8 = rand();
  24.     r9 = rand();
  25.     ra = rand();
  26.     rb = rand();
  27.    
  28.     t0 = __rdtsc();
  29.    
  30.     for(i=0; i < ITER/4; ++i)
  31.     {
  32.        
  33.         #define STEP \
  34.         r0 += r6; \
  35.         r1 += r7; \
  36.         r2 += r8; \
  37.         r3 += r9; \
  38.         r4 += ra; \
  39.         r5 += rb; \
  40.         \
  41.         r6 += r0; \
  42.         r7 += r1; \
  43.         r8 += r2; \
  44.         r9 += r3; \
  45.         ra += r4; \
  46.         rb += r5; \
  47.        
  48.         STEP
  49.         STEP
  50.         STEP
  51.         STEP
  52.        
  53.         #undef STEP
  54.     }  
  55.    
  56.     t1 = __rdtsc();
  57.    
  58.     printf("%f (%llu)\n", 12.0 * (double)ITER/(double)(t1-t0), r0^r1^r2^r3^r4^r5); 
  59.    
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement