|
Packit Service |
a1973e |
#include "fpapi_test.h"
|
|
Packit Service |
a1973e |
#define ITERS 100
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
#if defined(sun) && defined(sparc)
|
|
Packit Service |
a1973e |
#define CACHE_LEVEL "PAPI_L2_TCM"
|
|
Packit Service |
a1973e |
#define EVT1 PAPI_L2_TCM
|
|
Packit Service |
a1973e |
#define EVT2 PAPI_L2_TCA
|
|
Packit Service |
a1973e |
#define EVT3 PAPI_L2_TCH
|
|
Packit Service |
a1973e |
#define EVT1_STR "PAPI_L2_TCM"
|
|
Packit Service |
a1973e |
#define EVT2_STR "PAPI_L2_TCA"
|
|
Packit Service |
a1973e |
#define EVT3_STR "PAPI_L2_TCH"
|
|
Packit Service |
a1973e |
#else
|
|
Packit Service |
a1973e |
#if defined(__powerpc__)
|
|
Packit Service |
a1973e |
#define CACHE_LEVEL "PAPI_L1_DCA"
|
|
Packit Service |
a1973e |
#define EVT1 PAPI_L1_DCA
|
|
Packit Service |
a1973e |
#define EVT2 PAPI_L1_DCW
|
|
Packit Service |
a1973e |
#define EVT3 PAPI_L1_DCR
|
|
Packit Service |
a1973e |
#define EVT1_STR "PAPI_L1_DCA"
|
|
Packit Service |
a1973e |
#define EVT2_STR "PAPI_L1_DCW"
|
|
Packit Service |
a1973e |
#define EVT3_STR "PAPI_L1_DCR"
|
|
Packit Service |
a1973e |
#else
|
|
Packit Service |
a1973e |
#define CACHE_LEVEL "PAPI_L1_TCM"
|
|
Packit Service |
a1973e |
#define EVT1 PAPI_L1_TCM
|
|
Packit Service |
a1973e |
#define EVT2 PAPI_L1_ICM
|
|
Packit Service |
a1973e |
#define EVT3 PAPI_L1_DCM
|
|
Packit Service |
a1973e |
#define EVT1_STR "PAPI_L1_TCM"
|
|
Packit Service |
a1973e |
#define EVT2_STR "PAPI_L1_ICM"
|
|
Packit Service |
a1973e |
#define EVT3_STR "PAPI_L1_DCM"
|
|
Packit Service |
a1973e |
#endif
|
|
Packit Service |
a1973e |
#endif
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
program tenth
|
|
Packit Service |
a1973e |
implicit integer (p)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
integer*8 values(10)
|
|
Packit Service |
a1973e |
integer es1, es2, es3
|
|
Packit Service |
a1973e |
integer*4 mask1, mask2, mask3
|
|
Packit Service |
a1973e |
integer domain, granularity
|
|
Packit Service |
a1973e |
character*(PAPI_MAX_STR_LEN) domainstr, grnstr
|
|
Packit Service |
a1973e |
integer retval
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
Integer last_char
|
|
Packit Service |
a1973e |
External last_char
|
|
Packit Service |
a1973e |
integer tests_quiet, get_quiet
|
|
Packit Service |
a1973e |
external get_quiet
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
tests_quiet = get_quiet()
|
|
Packit Service |
a1973e |
es1 = PAPI_NULL
|
|
Packit Service |
a1973e |
es2 = PAPI_NULL
|
|
Packit Service |
a1973e |
es3 = PAPI_NULL
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
mask1 = EVT1
|
|
Packit Service |
a1973e |
mask2 = EVT2
|
|
Packit Service |
a1973e |
mask3 = EVT3
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
retval = PAPI_VER_CURRENT
|
|
Packit Service |
a1973e |
call PAPIf_library_init(retval)
|
|
Packit Service |
a1973e |
if ( retval.NE.PAPI_VER_CURRENT) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPI_library_init', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call PAPIf_query_event(mask1, retval)
|
|
Packit Service |
a1973e |
if ( retval.NE.PAPI_OK) then
|
|
Packit Service |
a1973e |
call ftest_skip(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
.'PAPIf_query_event', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
call PAPIf_query_event(mask2, retval)
|
|
Packit Service |
a1973e |
if ( retval.NE.PAPI_OK) then
|
|
Packit Service |
a1973e |
call ftest_skip(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
.'PAPIf_query_event', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
call PAPIf_query_event(mask3, retval)
|
|
Packit Service |
a1973e |
if ( retval.NE.PAPI_OK) then
|
|
Packit Service |
a1973e |
call ftest_skip(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
.'PAPIf_query_event', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call PAPIf_create_eventset(es1, retval)
|
|
Packit Service |
a1973e |
if ( retval.NE.PAPI_OK) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_create_eventset',
|
|
Packit Service |
a1973e |
*retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call PAPIf_add_event( es1, mask1, retval )
|
|
Packit Service |
a1973e |
if ( retval .NE. PAPI_OK ) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_add_event', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call PAPIf_create_eventset(es2, retval)
|
|
Packit Service |
a1973e |
if ( retval.NE.PAPI_OK) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_create_eventset',
|
|
Packit Service |
a1973e |
*retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call PAPIf_add_event( es2, mask2, retval )
|
|
Packit Service |
a1973e |
if ( retval .NE. PAPI_OK ) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_add_event', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call PAPIf_create_eventset(es3, retval)
|
|
Packit Service |
a1973e |
if ( retval.NE.PAPI_OK) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_create_eventset',
|
|
Packit Service |
a1973e |
* retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call PAPIf_add_event( es3, mask3, retval )
|
|
Packit Service |
a1973e |
if ( retval .NE. PAPI_OK ) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_add_event', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call fdo_l1misses(ITERS)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call PAPIf_start(es1, retval)
|
|
Packit Service |
a1973e |
if ( retval .NE. PAPI_OK ) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_start', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call fdo_l1misses(ITERS)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call PAPIf_stop(es1, values(1), retval)
|
|
Packit Service |
a1973e |
if ( retval .NE. PAPI_OK ) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_stop', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call PAPIf_start(es2, retval)
|
|
Packit Service |
a1973e |
if ( retval .NE. PAPI_OK ) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_start', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call fdo_l1misses(ITERS)
|
|
Packit Service |
a1973e |
call PAPIf_stop(es2, values(3), retval)
|
|
Packit Service |
a1973e |
if ( retval .NE. PAPI_OK ) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_stop', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call PAPIf_start(es3, retval)
|
|
Packit Service |
a1973e |
if ( retval .NE. PAPI_OK ) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_start', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call fdo_l1misses(ITERS)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call PAPIf_stop(es3, values(5), retval)
|
|
Packit Service |
a1973e |
if ( retval .NE. PAPI_OK ) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_stop', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call PAPIf_remove_event( es1, mask1, retval )
|
|
Packit Service |
a1973e |
if ( retval .NE. PAPI_OK ) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_remove_event', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call PAPIf_remove_event( es2, mask2, retval )
|
|
Packit Service |
a1973e |
if ( retval .NE. PAPI_OK ) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_remove_event', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call PAPIf_remove_event( es3, mask3, retval )
|
|
Packit Service |
a1973e |
if ( retval .NE. PAPI_OK ) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_remove_event', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
if (tests_quiet .EQ. 0) then
|
|
Packit Service |
a1973e |
#if (defined(sun) && defined(sparc))
|
|
Packit Service |
a1973e |
print *, "Test case 10: start, stop for derived event ",
|
|
Packit Service |
a1973e |
*"PAPI_L2_TCM."
|
|
Packit Service |
a1973e |
#else
|
|
Packit Service |
a1973e |
print *, "Test case 10: start, stop for derived event ",
|
|
Packit Service |
a1973e |
*"PAPI_L1_TCM."
|
|
Packit Service |
a1973e |
#endif
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
print *, "------------------------------------------------------"
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
call PAPIf_get_domain(es1, domain, PAPI_DEFDOM, retval)
|
|
Packit Service |
a1973e |
if ( retval .NE. PAPI_OK ) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_get_domain', retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call stringify_domain(domain, domainstr)
|
|
Packit Service |
a1973e |
if (tests_quiet .EQ. 0) then
|
|
Packit Service |
a1973e |
write (*,900) "Default domain is:", domain, domainstr
|
|
Packit Service |
a1973e |
900 format(a20, i3, " ", a70)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call PAPIf_get_granularity(es1, granularity, PAPI_DEFGRN,
|
|
Packit Service |
a1973e |
*retval)
|
|
Packit Service |
a1973e |
if ( retval .NE. PAPI_OK ) then
|
|
Packit Service |
a1973e |
call ftest_fail(__FILE__, __LINE__,
|
|
Packit Service |
a1973e |
. 'PAPIf_get_granularity',
|
|
Packit Service |
a1973e |
*retval)
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call stringify_granularity(granularity, grnstr)
|
|
Packit Service |
a1973e |
if (tests_quiet .EQ. 0) then
|
|
Packit Service |
a1973e |
write (*,800) "Default granularity is:", granularity, grnstr
|
|
Packit Service |
a1973e |
800 format(a25, i3, " ", a20)
|
|
Packit Service |
a1973e |
print *, "Using", NUM_FLOPS, " iterations of c += b*c"
|
|
Packit Service |
a1973e |
print *, "------------------------------------------------------"
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
write (*,500) "Test type", 1, 2, 3
|
|
Packit Service |
a1973e |
#if (defined(sun) && defined(sparc))
|
|
Packit Service |
a1973e |
write (*,500) EVT1_STR, values(1), 0, 0
|
|
Packit Service |
a1973e |
write (*,500) EVT2_STR, 0, values(3), 0
|
|
Packit Service |
a1973e |
write (*,500) EVT3_STR, 0, 0, values(5)
|
|
Packit Service |
a1973e |
print *, "------------------------------------------------",
|
|
Packit Service |
a1973e |
*"------"
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
print *, "Verification:"
|
|
Packit Service |
a1973e |
print *, "First number row 1 approximately equals (2,2) - (3,3) ",
|
|
Packit Service |
a1973e |
*"or ",(values(3)-values(5))
|
|
Packit Service |
a1973e |
#else
|
|
Packit Service |
a1973e |
write (*,500) EVT1_STR, values(1), 0, 0
|
|
Packit Service |
a1973e |
write (*,500) EVT2_STR, 0, values(3), 0
|
|
Packit Service |
a1973e |
write (*,500) EVT3_STR, 0, 0, values(5)
|
|
Packit Service |
a1973e |
print *, "------------------------------------------------",
|
|
Packit Service |
a1973e |
*"------"
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
print *, "Verification:"
|
|
Packit Service |
a1973e |
print *, "First number row 1 approximately equals (2,2) + (3,3) ",
|
|
Packit Service |
a1973e |
*"or ", (values(3)+values(5))
|
|
Packit Service |
a1973e |
#endif
|
|
Packit Service |
a1973e |
end if
|
|
Packit Service |
a1973e |
500 format(A13, ": ", I10, I10, I10)
|
|
Packit Service |
a1973e |
|
|
Packit Service |
a1973e |
call ftests_pass(__FILE__)
|
|
Packit Service |
a1973e |
end
|