#!/usr/bin/env bash

TRA=0
TRB=0
BINARY_POSTOP=0
UNARY_POSTOP=0
AVNNI=0
BVNNI=0
CVNNI=0
PREC_A="F32"
PREC_B="F32"
PREC_COMP="F32"
PREC_C="F32"
REPS=2000000


git clone https://github.com/libxsmm/libxsmm.git
cd libxsmm
make -j BLAS=0

cd samples/xgemm
make -j

for m_n in {1..256}; do
  ${BIN_INSTR_TOOL} ./gemm_kernel ${PREC_A} ${PREC_B} ${PREC_COMP} ${PREC_C} ${m_n} ${m_n} 512 256 512 256 1 1 0 0 ${TRA} ${TRB} ${AVNNI} ${BVNNI} ${CVNNI} nopf nobr 0 1 ${REPS}  0
  if [[ ${m_n} == 33 ]]  || [[ ${m_n} == 129 ]] ; then
    REPS=$((REPS / 4))
  fi
done

REPS=$((REPS / 2))

for m_n in {257..512}; do
  ${BIN_INSTR_TOOL} ./gemm_kernel ${PREC_A} ${PREC_B} ${PREC_COMP} ${PREC_C} ${m_n} ${m_n} 512 512 512 512 1 1 0 0 ${TRA} ${TRB} ${AVNNI} ${BVNNI} ${CVNNI} nopf nobr 0 1 ${REPS}  0
  if [[ ${m_n} == 380 ]] ; then
    REPS=$((REPS / 2))
  fi
done
