31 #if defined(sun) && defined(sparc) 32 #define CACHE_LEVEL "PAPI_L2_TCM" 33 #define EVT1 PAPI_L2_TCM 34 #define EVT2 PAPI_L2_TCA 35 #define EVT3 PAPI_L2_TCH 36 #define EVT1_STR "PAPI_L2_TCM" 37 #define EVT2_STR "PAPI_L2_TCA" 38 #define EVT3_STR "PAPI_L2_TCH" 39 #define MASK1 MASK_L2_TCM 40 #define MASK2 MASK_L2_TCA 41 #define MASK3 MASK_L2_TCH 43 #if defined(__powerpc__) 44 #define CACHE_LEVEL "PAPI_L1_DCA" 45 #define EVT1 PAPI_L1_DCA 46 #define EVT2 PAPI_L1_DCW 47 #define EVT3 PAPI_L1_DCR 48 #define EVT1_STR "PAPI_L1_DCA" 49 #define EVT2_STR "PAPI_L1_DCW" 50 #define EVT3_STR "PAPI_L1_DCR" 51 #define MASK1 MASK_L1_DCA 52 #define MASK2 MASK_L1_DCW 53 #define MASK3 MASK_L1_DCR 55 #define CACHE_LEVEL "PAPI_L1_TCM" 56 #define EVT1 PAPI_L1_TCM 57 #define EVT2 PAPI_L1_ICM 58 #define EVT3 PAPI_L1_DCM 59 #define EVT1_STR "PAPI_L1_TCM" 60 #define EVT2_STR "PAPI_L1_ICM" 61 #define EVT3_STR "PAPI_L1_DCM" 62 #define MASK1 MASK_L1_TCM 63 #define MASK2 MASK_L1_ICM 64 #define MASK3 MASK_L1_DCM 70 main(
int argc,
char **argv )
124 for (
i = 0;
i < 10;
i++ ) {
163 for ( j = 0; j < 3; j++ ) {
167 for (
i = 0;
i < 10;
i++ ) {
168 for ( j = 0; j < 3; j++ ) {
171 if ( max[j] <
values[(
i * 3 ) + j][0] )
172 max[j] =
values[(
i * 3 ) + j][0];
173 sum[j] +=
values[(
i * 3 ) + j][0];
178 printf(
"Test case 10: start, stop for derived event %s.\n",
180 printf(
"--------------------------------------------------------\n" );
182 printf(
"Default domain is: %d (%s)\n",
tmp,
185 printf(
"Default granularity is: %d (%s)\n",
tmp,
187 printf(
"Using %d iterations of c += a*b\n",
ITERS );
188 printf(
"Repeated 10 times\n" );
190 (
"-------------------------------------------------------------------------\n" );
201 printf(
"Test type : %12s%13s%13s\n",
"min",
"max",
"sum" );
206 (
"-------------------------------------------------------------------------\n" );
207 printf(
"Verification:\n" );
208 #if defined(sun) && defined(sparc) 209 printf(
TAB1,
"Sum 1 approximately equals sum 2 - sum 3 or",
210 ( sum[1] - sum[2] ) );
212 printf(
TAB1,
"Sum 1 approximately equals sum 2 + sum 3 or",
213 ( sum[1] + sum[2] ) );
218 long long tmin, tmax;
220 #if defined(sun) && defined(sparc) 221 tmax = (
long long ) ( sum[1] - sum[2] );
223 tmax = (
long long ) ( sum[1] + sum[2] );
227 printf(
"percent error: %f\n",
228 ((
float ) abs( (
int ) ( tmax - sum[0] ) ) /
229 (
float) sum[0] ) * 100.0 );
231 tmin = (
long long ) ( (
double ) tmax * 0.8 );
232 tmax = (
long long ) ( (
double ) tmax * 1.2 );
233 if ( sum[0] > tmax || sum[0] < tmin ) {
int PAPI_stop(int EventSet, long long *values)
void test_pass(const char *filename)
char * stringify_granularity(int granularity)
Return codes and api definitions.
void test_skip(const char *file, int line, const char *call, int retval)
int PAPI_library_init(int version)
char * stringify_all_domains(int domains)
int PAPI_get_opt(int option, PAPI_option_t *ptr)
void do_misses(int n, int bytes)
int PAPI_query_event(int EventCode)
int tests_quiet(int argc, char **argv)
void test_fail(const char *file, int line, const char *call, int retval)
int main(int argc, char **argv)
int PAPI_start(int EventSet)
static long long values[NUM_EVENTS]
long long ** allocate_test_space(int num_tests, int num_events)
int remove_test_events(int *EventSet, int mask)
int add_test_events(int *number, int *mask, int allow_derived)