[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