#ifndef MLIR_CONVERSION_GPUTONVVM_GPUTONVVMPASS_H_
#define MLIR_CONVERSION_GPUTONVVM_GPUTONVVMPASS_H_
#include "mlir/Conversion/LLVMCommon/LoweringOptions.h"
#include "mlir/Dialect/LLVMIR/LLVMTypes.h"
#include <memory>
namespace mlir {
class LLVMTypeConverter;
class ConversionTarget;
class RewritePatternSet;
class Pass;
namespace gpu {
class GPUModuleOp;
class MMAMatrixType;
}
#define GEN_PASS_DECL_CONVERTGPUOPSTONVVMOPS
#include "mlir/Conversion/Passes.h.inc"
LLVM::LLVMStructType convertMMAToLLVMType(gpu::MMAMatrixType type);
void configureGpuToNVVMConversionLegality(ConversionTarget &target);
void populateGpuToNVVMConversionPatterns(LLVMTypeConverter &converter,
RewritePatternSet &patterns);
void populateGpuSubgroupReduceOpLoweringPattern(LLVMTypeConverter &converter,
RewritePatternSet &patterns);
void populateGpuWMMAToNVVMConversionPatterns(LLVMTypeConverter &converter,
RewritePatternSet &patterns);
}
#endif