Index: mlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp =================================================================== --- mlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp +++ mlir/lib/Conversion/GPUCommon/ConvertLaunchFuncToRuntimeCalls.cpp @@ -18,6 +18,7 @@ #include "../PassDetail.h" #include "mlir/Conversion/AsyncToLLVM/AsyncToLLVM.h" #include "mlir/Conversion/StandardToLLVM/ConvertStandardToLLVM.h" +#include "mlir/Conversion/VectorToLLVM/ConvertVectorToLLVM.h" #include "mlir/Dialect/GPU/GPUDialect.h" #include "mlir/Dialect/LLVMIR/LLVMDialect.h" #include "mlir/IR/Attributes.h" @@ -296,6 +297,7 @@ OwningRewritePatternList patterns; LLVMConversionTarget target(getContext()); + populateVectorToLLVMConversionPatterns(converter, patterns); populateStdToLLVMConversionPatterns(converter, patterns); populateAsyncStructuralTypeConversionsAndLegality(&getContext(), converter, patterns, target); Index: mlir/test/mlir-cuda-runner/gpu-to-cubin.mlir =================================================================== --- mlir/test/mlir-cuda-runner/gpu-to-cubin.mlir +++ mlir/test/mlir-cuda-runner/gpu-to-cubin.mlir @@ -17,7 +17,10 @@ } // CHECK: [1, 1, 1, 1, 1] +// CHECK: ( 1, 1 ) func @main() { + %v0 = constant 0.0 : f32 + %c0 = constant 0: index %arg0 = alloc() : memref<5xf32> %21 = constant 5 : i32 %22 = memref_cast %arg0 : memref<5xf32> to memref @@ -27,6 +30,8 @@ %24 = constant 1.0 : f32 call @other_func(%24, %22) : (f32, memref) -> () call @print_memref_f32(%23) : (memref<*xf32>) -> () + %val1 = vector.transfer_read %arg0[%c0], %v0: memref<2xf32>, vector<5xf32> + vector.print %val1: vector<2xf32> return } Index: mlir/tools/mlir-cuda-runner/mlir-cuda-runner.cpp =================================================================== --- mlir/tools/mlir-cuda-runner/mlir-cuda-runner.cpp +++ mlir/tools/mlir-cuda-runner/mlir-cuda-runner.cpp @@ -26,6 +26,7 @@ #include "mlir/Dialect/LLVMIR/LLVMDialect.h" #include "mlir/Dialect/LLVMIR/NVVMDialect.h" #include "mlir/Dialect/StandardOps/IR/Ops.h" +#include "mlir/Dialect/Vector/VectorOps.h" #include "mlir/ExecutionEngine/JitRunner.h" #include "mlir/ExecutionEngine/OptUtils.h" #include "mlir/IR/BuiltinOps.h" @@ -156,7 +157,7 @@ mlir::DialectRegistry registry; registry.insert(); + mlir::vector::VectorDialect, mlir::StandardOpsDialect>(); registry.addDialectInterface(); mlir::registerLLVMDialectTranslation(registry);