Skip to content

Commit fb989f2

Browse files
committed
[MLIR] Mark LLVM::FMAOp as legal since we can lower to NVVM
1 parent fe42d34 commit fb989f2

File tree

2 files changed

+13
-2
lines changed

2 files changed

+13
-2
lines changed

mlir/lib/Conversion/GPUToNVVM/LowerGpuOpsToNVVMOps.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -429,7 +429,7 @@ void mlir::configureGpuToNVVMConversionLegality(ConversionTarget &target) {
429429
target.addLegalDialect<::mlir::NVVM::NVVMDialect>();
430430
target.addIllegalDialect<gpu::GPUDialect>();
431431
target.addIllegalOp<LLVM::CopySignOp, LLVM::CosOp, LLVM::ExpOp, LLVM::Exp2Op,
432-
LLVM::FAbsOp, LLVM::FCeilOp, LLVM::FFloorOp, LLVM::FMAOp,
432+
LLVM::FAbsOp, LLVM::FCeilOp, LLVM::FFloorOp,
433433
LLVM::FRemOp, LLVM::LogOp, LLVM::Log10Op, LLVM::Log2Op,
434434
LLVM::PowOp, LLVM::RoundEvenOp, LLVM::RoundOp,
435435
LLVM::SinOp, LLVM::SqrtOp>();

mlir/test/Integration/GPU/CUDA/dump-ptx.mlir

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// RUN: | mlir-opt -gpu-lower-to-nvvm-pipeline -debug-only=serialize-to-isa \
33
// RUN: 2>&1 | FileCheck %s
44

5-
// CHECK: Generated by LLVM NVPTX Back-End
5+
// CHECK-LABEL: Generated by LLVM NVPTX Back-End
66
// CHECK: .visible .func kernel_a()
77
// CHECK: ret;
88
gpu.module @bar {
@@ -11,3 +11,14 @@ gpu.module @bar {
1111
llvm.return
1212
}
1313
}
14+
15+
// CHECK-LABEL: Generated by LLVM NVPTX Back-End
16+
// CHECK: fma.rn.f32
17+
18+
gpu.module @foo {
19+
llvm.func @fma(%arg0: f32, %arg1: f32) -> f32
20+
attributes { gpu.kernel } {
21+
%res = llvm.intr.fma (%arg0, %arg1, %arg1) : (f32, f32, f32) -> f32
22+
llvm.return %res : f32
23+
}
24+
}

0 commit comments

Comments
 (0)