[PATCH] D98002: [RISCV] Add scheduling resources for V

Evandro Menezes via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Fri Mar 26 14:13:36 PDT 2021


evandro added inline comments.


================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoV.td:1178
 let Constraints = "@earlyclobber $vd" in {
-defm VFNCVT_XU_F_W : VALU_FV_VS2<"vfncvt.xu.f.w", 0b010010, 0b10000>;
-defm VFNCVT_X_F_W : VALU_FV_VS2<"vfncvt.x.f.w", 0b010010, 0b10001>;
-defm VFNCVT_RTZ_XU_F_W : VALU_FV_VS2<"vfncvt.rtz.xu.f.w", 0b010010, 0b10110>;
-defm VFNCVT_RTZ_X_F_W : VALU_FV_VS2<"vfncvt.rtz.x.f.w", 0b010010, 0b10111>;
-defm VFNCVT_F_XU_W : VALU_FV_VS2<"vfncvt.f.xu.w", 0b010010, 0b10010>;
-defm VFNCVT_F_X_W : VALU_FV_VS2<"vfncvt.f.x.w", 0b010010, 0b10011>;
-defm VFNCVT_F_F_W : VALU_FV_VS2<"vfncvt.f.f.w", 0b010010, 0b10100>;
-defm VFNCVT_ROD_F_F_W : VALU_FV_VS2<"vfncvt.rod.f.f.w", 0b010010, 0b10101>;
+defm VFNCVT_XU_F_W : VNCVTI_FV_VS2<"vfncvt.xu.f.w", 0b010010, 0b10000>;
+defm VFNCVT_X_F_W : VNCVTI_FV_VS2<"vfncvt.x.f.w", 0b010010, 0b10001>;
----------------
frasercrmck wrote:
> It might not really be important but it's not immediately obvious to me what some of these abbreviations signify. `VNCVTF` narrow-converts int to float but `VNCVTD` narrow-converts float to float? Why F and D?
Narrowing conversion from `double` to `float` or widening from `float` to `double`.


================
Comment at: llvm/lib/Target/RISCV/RISCVInstrInfoV.td:1303
+                      (ins VR:$vd, GPR:$rs1), "vmv.s.x", "$vd, $rs1">,
+              Sched<[WriteVIMovXV, ReadDefault, ReadVIMovXV]>;
 }
----------------
frasercrmck wrote:
> How come `ReadDefault`? Also seems out of sync with `VFMV_S_F` below.
I'd like to revisit how these instruction were defined in the near future.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D98002/new/

https://reviews.llvm.org/D98002



More information about the llvm-commits mailing list