[llvm] AMDGPU: Add SALU support for llvm.fptrunc.round f32 to f16 (PR #203406)

Petar Avramovic via llvm-commits llvm-commits at lists.llvm.org
Fri Jun 12 04:55:48 PDT 2026


================
@@ -308,6 +312,10 @@ let True16Predicate = UseRealTrue16Insts in
 def : GCNPat <(f16 (fptrunc_round (f32 (VOP3OpSelMods f32:$src0, i32:$src0_modifiers)), (i32 SupportedRoundMode:$round))),
      (FPTRUNC_ROUND_F16_F32_PSEUDO_t16_e64 $src0_modifiers, $src0, (as_hw_round_mode $round))>;
 
+let SubtargetPredicate = HasSALUFloatInsts, AddedComplexity = 9 in
+def : GCNPat <(f16 (UniformBinFrag<fptrunc_round> f32:$src0, (i32 SupportedRoundMode:$round))),
+     (FPTRUNC_ROUND_F16_F32_SALU_PSEUDO $src0, (as_hw_round_mode $round))>;
+
----------------
petar-avramovic wrote:

think you should add equivalent hack pattern for round towards zero that does not touch mode register
```suggestion
let SubtargetPredicate = HasSALUFloatInsts, AddedComplexity = 9 in
def : GCNPat <(f16 (UniformBinFrag<fptrunc_round> f32:$src0, (i32 RtzRoundMode))),
     (EXTRACT_SUBREG (S_CVT_PK_RTZ_F16_F32 $src0, $src0), lo16)>;
```

https://github.com/llvm/llvm-project/pull/203406


More information about the llvm-commits mailing list