[all-commits] [llvm/llvm-project] 641124: [mlir][spirv] Add conversions for Arith's `maxnumf...
Daniil Dudkin via All-commits
all-commits at lists.llvm.org
Tue Sep 19 12:50:02 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 641124a9b98eef668d8bb3bd3b6da5105a17284e
https://github.com/llvm/llvm-project/commit/641124a9b98eef668d8bb3bd3b6da5105a17284e
Author: Daniil Dudkin <unterumarmung at yandex.ru>
Date: 2023-09-19 (Tue, 19 Sep 2023)
Changed paths:
M mlir/lib/Conversion/ArithToSPIRV/ArithToSPIRV.cpp
M mlir/test/Conversion/ArithToSPIRV/arith-to-spirv.mlir
M mlir/test/Conversion/ArithToSPIRV/fast-math.mlir
Log Message:
-----------
[mlir][spirv] Add conversions for Arith's `maxnumf` and `minnumf` (#66696)
This patch is part of a larger initiative aimed at fixing floating-point
`max` and `min` operations in MLIR:
https://discourse.llvm.org/t/rfc-fix-floating-point-max-and-min-operations-in-mlir/72671.
In this commit, we add conversion patterns for the newly introduced
operations `arith.minnumf` and `arith.maxnumf`. When converting to
`spirv.CL`, there is no need to insert additional guards to propagate
non-NaN values when one of the arguments is NaN because `CL` ops do
exactly the same. However, `GL` ops have undefined behavior when one of
the arguments is NaN, so we should insert additional guards to enforce
the semantics of Arith's ops.
This patch addresses the 1.5 task of the mentioned RFC.
More information about the All-commits
mailing list