[llvm] [AMDGPU] Expose RTZ version of f16 interpolation (PR #86614)

Jay Foad via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 26 01:14:19 PDT 2024


================
@@ -173,6 +173,12 @@ defm : VInterpF16Pat<int_amdgcn_interp_inreg_p10_f16,
 defm : VInterpF16Pat<int_amdgcn_interp_inreg_p2_f16,
                      V_INTERP_P2_F16_F32_inreg, f16,
                      [VINTERPModsHi, VINTERPMods, VINTERPMods]>;
+defm : VInterpF16Pat<int_amdgcn_interp_inreg_p10_rtz_f16,
+                     V_INTERP_P10_RTZ_F16_F32_inreg, f32,
+                     [VINTERPModsHi, VINTERPMods, VINTERPModsHi]>;
+defm : VInterpF16Pat<int_amdgcn_interp_inreg_p2_rtz_f16,
+                     V_INTERP_P2_RTZ_F16_F32_inreg, f16,
----------------
jayfoad wrote:

It was used to disambiguate hardware instructions that changed behaviour without changing name. Pre-GFX11 they loaded input data from LDS. Since GFX11 they don't load from LDS, they just do to the interpolation calculation "in registers". In fact there was only one instruction V_INTERP_P2_F32 that had the identical name before/after this transition, but we used the inreg suffix on all of them for consistency.

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


More information about the llvm-commits mailing list