[mlir] Fix rank bitwidth in UnrankedMemRefType conversion.
authorAlexander Belyaev <pifon@google.com>
Wed, 5 Aug 2020 13:30:21 +0000 (15:30 +0200)
committerAlexander Belyaev <pifon@google.com>
Wed, 5 Aug 2020 16:35:23 +0000 (18:35 +0200)
Differential Revision: https://reviews.llvm.org/D85300

mlir/lib/Conversion/StandardToLLVM/StandardToLLVM.cpp
mlir/test/Conversion/StandardToLLVM/convert-to-llvmir.mlir

index 2ada7c4..ac19924 100644 (file)
@@ -400,7 +400,7 @@ static constexpr unsigned kRankInUnrankedMemRefDescriptor = 0;
 static constexpr unsigned kPtrInUnrankedMemRefDescriptor = 1;
 
 Type LLVMTypeConverter::convertUnrankedMemRefType(UnrankedMemRefType type) {
-  auto rankTy = LLVM::LLVMType::getInt64Ty(llvmDialect);
+  auto rankTy = getIndexType();
   auto ptrTy = LLVM::LLVMType::getInt8PtrTy(llvmDialect);
   return LLVM::LLVMType::getStructTy(rankTy, ptrTy);
 }
index a247c35..d5d966f 100644 (file)
@@ -1326,7 +1326,7 @@ func @rank_of_unranked(%unranked: memref<*xi32>) {
 // CHECK-NEXT: llvm.insertvalue
 // CHECK-NEXT: llvm.insertvalue
 // CHECK-NEXT: llvm.extractvalue %{{.*}}[0] : !llvm.struct<(i64, ptr<i8>)>
-// CHECK32: llvm.extractvalue %{{.*}}[0] : !llvm.struct<(i64, ptr<i8>)>
+// CHECK32: llvm.extractvalue %{{.*}}[0] : !llvm.struct<(i32, ptr<i8>)>
 
 // CHECK-LABEL: func @rank_of_ranked
 // CHECK32-LABEL: func @rank_of_ranked