PAPI 7.1.0.0
Loading...
Searching...
No Matches
branch.h
Go to the documentation of this file.
1#ifndef _BRANCH_
2#define _BRANCH_
3
4#include "hw_desc.h"
5
6#define BRANCH_BENCH(_I_) {\
7 iter = 0;\
8 avg = 0.0;\
9 for(i=512; i<max_iter; i*=2){\
10 iter++;\
11 sz = i;\
12 cnt = branch_char_b ## _I_ (sz, papi_eventset);\
13 avg += (double)cnt/(double)sz;\
14 sz = (int)((double)i*1.1892);\
15 cnt = branch_char_b ## _I_ (sz, papi_eventset);\
16 avg += (double)cnt/(double)sz;\
17 sz = (int)((double)i*1.4142);\
18 cnt = branch_char_b ## _I_ (sz, papi_eventset);\
19 avg += (double)cnt/(double)sz;\
20 sz = (int)((double)i*1.6818);\
21 cnt = branch_char_b ## _I_ (sz, papi_eventset);\
22 avg += (double)cnt/(double)sz;\
23 }\
24 if(avg < 0.0){\
25 fclose(ofp_papi);\
26 return;\
27 }\
28 avg = avg/(4.0*(double)iter);\
29 round = floor(avg*4.0+0.499)/4.0;\
30 fprintf(ofp_papi,"%.2lf\n", round);\
31}
32
33#define BRNG() {\
34 b = ((z1 << 6) ^ z1) >> 13;\
35 z1 = ((z1 & 4294967294U) << 18) ^ b;\
36 b = ((z2 << 2) ^ z2) >> 27;\
37 z2 = ((z2 & 4294967288U) << 2) ^ b;\
38 b = ((z3 << 13) ^ z3) >> 21;\
39 z3 = ((z3 & 4294967280U) << 7) ^ b;\
40 b = ((z4 << 3) ^ z4) >> 12;\
41 z4 = ((z4 & 4294967168U) << 13) ^ b;\
42 z1++;\
43 result = z1 ^ z2 ^ z3 ^ z4;\
44}
45
46#define BUSY_WORK() {BRNG(); BRNG(); BRNG(); BRNG();}
47
48extern volatile int result;
49extern volatile unsigned int b, z1, z2, z3, z4;
50
51void branch_driver(char *papi_event_name, int junk, hw_desc_t *hw_desc, char* outdir);
52long long int branch_char_b1(int size, int papi_eventset);
53long long int branch_char_b2(int size, int papi_eventset);
54long long int branch_char_b3(int size, int papi_eventset);
55long long int branch_char_b4(int size, int papi_eventset);
56long long int branch_char_b4a(int size, int papi_eventset);
57long long int branch_char_b4b(int size, int papi_eventset);
58long long int branch_char_b5(int size, int papi_eventset);
59long long int branch_char_b5a(int size, int papi_eventset);
60long long int branch_char_b5b(int size, int papi_eventset);
61long long int branch_char_b6(int size, int papi_eventset);
62long long int branch_char_b7(int size, int papi_eventset);
63
64#endif
long long int branch_char_b5b(int size, int papi_eventset)
Definition: branch.c:354
long long int branch_char_b4a(int size, int papi_eventset)
Definition: branch.c:224
void branch_driver(char *papi_event_name, int junk, hw_desc_t *hw_desc, char *outdir)
Definition: branch.c:15
volatile int result
long long int branch_char_b3(int size, int papi_eventset)
Definition: branch.c:153
volatile unsigned int z1
Definition: branch.h:49
long long int branch_char_b5a(int size, int papi_eventset)
Definition: branch.c:322
long long int branch_char_b5(int size, int papi_eventset)
Definition: branch.c:286
long long int branch_char_b4(int size, int papi_eventset)
Definition: branch.c:188
volatile unsigned int b
volatile unsigned int z2
Definition: branch.h:49
long long int branch_char_b6(int size, int papi_eventset)
Definition: branch.c:386
long long int branch_char_b7(int size, int papi_eventset)
Definition: branch.c:424
volatile unsigned int z3
Definition: branch.h:49
volatile unsigned int z4
Definition: branch.h:49
long long int branch_char_b1(int size, int papi_eventset)
Definition: branch.c:83
long long int branch_char_b2(int size, int papi_eventset)
Definition: branch.c:118
long long int branch_char_b4b(int size, int papi_eventset)
Definition: branch.c:255