#ifndef GPU_INTEL_REORDER_JIT_KERNEL_HPP
#define GPU_INTEL_REORDER_JIT_KERNEL_HPP
#include "gpu/intel/jit/codegen/kernel_ext.hpp"
#include "gpu/intel/reorder/jit/ir_builder.hpp"
namespace dnnl {
namespace impl {
namespace gpu {
namespace intel {
namespace reorder {
namespace jit {
class kernel_t : public ir_kernel_t {
public:
kernel_t(const config_t &cfg, const std::string &kernel_name,
const kernel_info_t &kernel_info,
const primitive_desc_t *pd = nullptr)
: ir_kernel_t(kernel_info.iface(kernel_name), cfg.options(),
kernel_info.nd_range().local_range(),
{GENERATOR_NAME, GENERATOR_LINE}) {
const primitive_attr_t *attr = (pd) ? pd->attr() : nullptr;
const memory_desc_t *dst_md = (pd) ? pd->dst_md() : nullptr;
ir_builder_t builder(cfg, kernel_info, attr, dst_md);
const stmt_t &body = builder.stmt();
generate_from_ir(body);
}
};
} } } } } }
#endif