Skip to content

Commit 2bfa7bc

Browse files
authored
[flang] Propagate fastmath flags to matmul_transpose. (#122842)
1 parent 07a1847 commit 2bfa7bc

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed

flang/lib/Optimizer/HLFIR/IR/HLFIROps.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1197,7 +1197,8 @@ hlfir::MatmulOp::canonicalize(MatmulOp matmulOp,
11971197
mlir::Location loc = matmulOp.getLoc();
11981198
mlir::Type resultTy = matmulOp.getResult().getType();
11991199
auto matmulTransposeOp = rewriter.create<hlfir::MatmulTransposeOp>(
1200-
loc, resultTy, transposeOp.getArray(), matmulOp.getRhs());
1200+
loc, resultTy, transposeOp.getArray(), matmulOp.getRhs(),
1201+
matmulOp.getFastmathAttr());
12011202

12021203
// we don't need to remove any hlfir.destroy because it will be needed for
12031204
// the new intrinsic result anyway

flang/test/HLFIR/mul_transpose.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ subroutine mul_transpose(a, b, res)
2424
! CHECK-BASE-NEXT: hlfir.destroy %[[MATMUL_RES]]
2525
! CHECK-BASE-NEXT: hlfir.destroy %[[TRANSPOSE_RES]]
2626

27-
! 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>
27+
! 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>
2828
! CHECK-CANONICAL-NEXT: hlfir.assign %[[CHAIN_RES]] to %[[RES_DECL]]#0 : !hlfir.expr<1x2xf32>, !fir.ref<!fir.array<1x2xf32>>
2929
! CHECK-CANONICAL-NEXT: hlfir.destroy %[[CHAIN_RES]]
3030

0 commit comments

Comments
 (0)