[flang-commits] [flang] 2bfa7bc - [flang] Propagate fastmath flags to matmul_transpose. (#122842)
via flang-commits
flang-commits at lists.llvm.org
Wed Jan 15 08:42:12 PST 2025
Author: Slava Zakharin
Date: 2025-01-15T08:42:08-08:00
New Revision: 2bfa7bc570d530d2f8aec02ada6f11d1a2459805
URL: https://github.com/llvm/llvm-project/commit/2bfa7bc570d530d2f8aec02ada6f11d1a2459805
DIFF: https://github.com/llvm/llvm-project/commit/2bfa7bc570d530d2f8aec02ada6f11d1a2459805.diff
LOG: [flang] Propagate fastmath flags to matmul_transpose. (#122842)
Added:
Modified:
flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp
flang/test/HLFIR/mul_transpose.f90
Removed:
################################################################################
diff --git a/flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp b/flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp
index 82aac7cafa1d0e..d93e25280237f1 100644
--- a/flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp
+++ b/flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp
@@ -1197,7 +1197,8 @@ hlfir::MatmulOp::canonicalize(MatmulOp matmulOp,
mlir::Location loc = matmulOp.getLoc();
mlir::Type resultTy = matmulOp.getResult().getType();
auto matmulTransposeOp = rewriter.create<hlfir::MatmulTransposeOp>(
- loc, resultTy, transposeOp.getArray(), matmulOp.getRhs());
+ loc, resultTy, transposeOp.getArray(), matmulOp.getRhs(),
+ matmulOp.getFastmathAttr());
// we don't need to remove any hlfir.destroy because it will be needed for
// the new intrinsic result anyway
diff --git a/flang/test/HLFIR/mul_transpose.f90 b/flang/test/HLFIR/mul_transpose.f90
index 7cfbfe39d0ea82..98a9c11e4b9c13 100644
--- a/flang/test/HLFIR/mul_transpose.f90
+++ b/flang/test/HLFIR/mul_transpose.f90
@@ -24,7 +24,7 @@ subroutine mul_transpose(a, b, res)
! CHECK-BASE-NEXT: hlfir.destroy %[[MATMUL_RES]]
! CHECK-BASE-NEXT: hlfir.destroy %[[TRANSPOSE_RES]]
-! CHECK-CANONICAL-NEXT: %[[CHAIN_RES:.*]] = hlfir.matmul_transpose %[[A_DECL]]#0 %[[B_DECL]]#0 : (!fir.ref<!fir.array<2x1xf32>>, !fir.ref<!fir.array<2x2xf32>>) -> !hlfir.expr<1x2xf32>
+! CHECK-CANONICAL-NEXT: %[[CHAIN_RES:.*]] = hlfir.matmul_transpose %[[A_DECL]]#0 %[[B_DECL]]#0 {fastmath = #arith.fastmath<contract>} : (!fir.ref<!fir.array<2x1xf32>>, !fir.ref<!fir.array<2x2xf32>>) -> !hlfir.expr<1x2xf32>
! CHECK-CANONICAL-NEXT: hlfir.assign %[[CHAIN_RES]] to %[[RES_DECL]]#0 : !hlfir.expr<1x2xf32>, !fir.ref<!fir.array<1x2xf32>>
! CHECK-CANONICAL-NEXT: hlfir.destroy %[[CHAIN_RES]]
More information about the flang-commits
mailing list