
cc_library(jit_kernel_refer SRCS refer.cc DEPS jit_kernel_base)
set(JIT_KERNEL_DEPS ${JIT_KERNEL_DEPS} jit_kernel_refer PARENT_SCOPE)

function(USE_JITKERNEL_REFER_LITE TARGET)
    file(APPEND ${jit_file} "USE_JITKERNEL_REFER_LITE(${TARGET});\n")
endfunction()

# use refer kernel by name
USE_JITKERNEL_REFER_LITE(kVMul)
USE_JITKERNEL_REFER_LITE(kVAdd)
USE_JITKERNEL_REFER_LITE(kVAddRelu)
USE_JITKERNEL_REFER_LITE(kVSub)
USE_JITKERNEL_REFER_LITE(kVScal)
USE_JITKERNEL_REFER_LITE(kStrideScal)
USE_JITKERNEL_REFER_LITE(kVAddBias)
USE_JITKERNEL_REFER_LITE(kVCopy)
USE_JITKERNEL_REFER_LITE(kVRelu)
USE_JITKERNEL_REFER_LITE(kVIdentity)
USE_JITKERNEL_REFER_LITE(kVExp)
USE_JITKERNEL_REFER_LITE(kVSigmoid)
USE_JITKERNEL_REFER_LITE(kVTanh)
USE_JITKERNEL_REFER_LITE(kLSTMCtHt)
USE_JITKERNEL_REFER_LITE(kLSTMC1H1)
USE_JITKERNEL_REFER_LITE(kGRUH1)
USE_JITKERNEL_REFER_LITE(kGRUHtPart1)
USE_JITKERNEL_REFER_LITE(kGRUHtPart2)
USE_JITKERNEL_REFER_LITE(kCRFDecoding)
USE_JITKERNEL_REFER_LITE(kLayerNorm)
USE_JITKERNEL_REFER_LITE(kNCHW16CMulNC)
USE_JITKERNEL_REFER_LITE(kSeqPool)
USE_JITKERNEL_REFER_LITE(kMatMul)
USE_JITKERNEL_REFER_LITE(kVSquare)
USE_JITKERNEL_REFER_LITE(kHSum)
USE_JITKERNEL_REFER_LITE(kHMax)
USE_JITKERNEL_REFER_LITE(kStrideASum)
USE_JITKERNEL_REFER_LITE(kSoftmax)
USE_JITKERNEL_REFER_LITE(kEmbSeqPool)
USE_JITKERNEL_REFER_LITE(kSgd)
USE_JITKERNEL_REFER_LITE(kVBroadcast)
