[llvm] [AMDGPU] Add custom lowering of llvm.convert.to.arbitrary.fp for FP8 (PR #213813)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Mon Aug 10 09:51:34 PDT 2026
================
@@ -1279,11 +1285,16 @@ class ImmLeaf<ValueType vt, code pred, SDNodeXForm xform = NOOP_SDNodeXForm,
class TImmLeaf<ValueType vt, code pred, SDNodeXForm xform = NOOP_SDNodeXForm,
SDNode ImmNode = timm> : ImmLeaf<vt, pred, xform, ImmNode>;
-// llvm.convert.from.arbitrary.fp format-selector predicates.
+// llvm.convert.{from,to}.arbitrary.fp format-selector predicates.
// Only OCP formats are matched here; FNUZ formats use the generic expansion.
def Float8E4M3FN : TImmLeaf<i32, [{ return Imm == APFloatBase::S_Float8E4M3FN; }]>;
def Float8E5M2 : TImmLeaf<i32, [{ return Imm == APFloatBase::S_Float8E5M2; }]>;
+// llvm.convert.to.arbitrary.fp rounding-mode and saturation selectors.
+def NearestTiesToEven : TImmLeaf<i32,
+ [{ return Imm == static_cast<int>(RoundingMode::NearestTiesToEven); }]>;
----------------
arsenm wrote:
Anything reading enum values out of the generic operations. Traditionally the way this works out is we end up with N copies in each backend rather than someone moving it
https://github.com/llvm/llvm-project/pull/213813
More information about the llvm-commits
mailing list