Blame src/ftests/tenth.F

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