Skip to content

Commit 76c78eb

Browse files
committed
Fix tests
1 parent 84bee8e commit 76c78eb

File tree

4 files changed

+14
-4
lines changed

4 files changed

+14
-4
lines changed

flang/include/flang/Optimizer/Support/InitFIR.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
#include "mlir/Dialect/Affine/Passes.h"
2424
#include "mlir/Dialect/Complex/IR/Complex.h"
2525
#include "mlir/Dialect/Func/Extensions/InlinerExtension.h"
26+
#include "mlir/Dialect/Index/IR/IndexDialect.h"
2627
#include "mlir/Dialect/LLVMIR/NVVMDialect.h"
2728
#include "mlir/Dialect/OpenACC/Transforms/Passes.h"
2829
#include "mlir/Dialect/SCF/Transforms/Passes.h"
@@ -41,7 +42,8 @@ namespace fir::support {
4142
mlir::cf::ControlFlowDialect, mlir::func::FuncDialect, \
4243
mlir::vector::VectorDialect, mlir::math::MathDialect, \
4344
mlir::complex::ComplexDialect, mlir::DLTIDialect, cuf::CUFDialect, \
44-
mlir::NVVM::NVVMDialect, mlir::gpu::GPUDialect
45+
mlir::NVVM::NVVMDialect, mlir::gpu::GPUDialect, \
46+
mlir::index::IndexDialect
4547

4648
#define FLANG_CODEGEN_DIALECT_LIST FIRCodeGenDialect, mlir::LLVM::LLVMDialect
4749

flang/lib/Optimizer/Builder/PPCIntrinsicCall.cpp

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
#include "flang/Evaluate/common.h"
1818
#include "flang/Optimizer/Builder/FIRBuilder.h"
1919
#include "flang/Optimizer/Builder/MutableBox.h"
20+
#include "mlir/Dialect/Index/IR/IndexOps.h"
2021
#include "mlir/Dialect/Vector/IR/VectorOps.h"
2122

2223
namespace fir {
@@ -1685,7 +1686,9 @@ PPCIntrinsicLibrary::genVecExtract(mlir::Type resultType,
16851686
if (!isNativeVecElemOrderOnLE())
16861687
uremOp = convertVectorElementOrder(builder, loc, vecTyInfo, uremOp);
16871688

1688-
return builder.create<mlir::vector::ExtractOp>(loc, varg0, uremOp);
1689+
mlir::Value index = builder.createOrFold<mlir::index::CastUOp>(
1690+
loc, builder.getIndexType(), uremOp);
1691+
return builder.create<mlir::vector::ExtractOp>(loc, varg0, index);
16891692
}
16901693

16911694
// VEC_INSERT
@@ -1706,8 +1709,10 @@ PPCIntrinsicLibrary::genVecInsert(mlir::Type resultType,
17061709
if (!isNativeVecElemOrderOnLE())
17071710
uremOp = convertVectorElementOrder(builder, loc, vecTyInfo, uremOp);
17081711

1709-
auto res{
1710-
builder.create<mlir::vector::InsertOp>(loc, argBases[0], varg1, uremOp)};
1712+
mlir::Value index = builder.createOrFold<mlir::index::CastUOp>(
1713+
loc, builder.getIndexType(), uremOp);
1714+
mlir::Value res =
1715+
builder.create<mlir::vector::InsertOp>(loc, argBases[0], varg1, index);
17111716
return builder.create<fir::ConvertOp>(loc, vecTyInfo.toFirVectorType(), res);
17121717
}
17131718

flang/lib/Optimizer/CodeGen/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ add_flang_library(FIRCodeGen
3636
MLIRComplexToLLVM
3737
MLIRComplexToStandard
3838
MLIRGPUDialect
39+
MLIRIndexToLLVM
3940
MLIRMathToFuncs
4041
MLIRMathToLLVM
4142
MLIRMathToLibm

flang/lib/Optimizer/CodeGen/CodeGen.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@
3636
#include "mlir/Conversion/ComplexToStandard/ComplexToStandard.h"
3737
#include "mlir/Conversion/ControlFlowToLLVM/ControlFlowToLLVM.h"
3838
#include "mlir/Conversion/FuncToLLVM/ConvertFuncToLLVM.h"
39+
#include "mlir/Conversion/IndexToLLVM/IndexToLLVM.h"
3940
#include "mlir/Conversion/LLVMCommon/Pattern.h"
4041
#include "mlir/Conversion/MathToFuncs/MathToFuncs.h"
4142
#include "mlir/Conversion/MathToLLVM/MathToLLVM.h"
@@ -4198,6 +4199,7 @@ class FIRToLLVMLowering
41984199
if (!isAMDGCN)
41994200
mlir::populateMathToLibmConversionPatterns(pattern);
42004201
mlir::populateComplexToLLVMConversionPatterns(typeConverter, pattern);
4202+
mlir::index::populateIndexToLLVMConversionPatterns(typeConverter, pattern);
42014203
mlir::populateVectorToLLVMConversionPatterns(typeConverter, pattern);
42024204

42034205
// Flang specific overloads for OpenMP operations, to allow for special

0 commit comments

Comments
 (0)