https://github.com/topperc created https://github.com/llvm/llvm-project/pull/101733
This is an alternative to part of #101608. Using FP as the base type allows the existing Zfh extension check to work. This does not fix fp->int narrowing instructions which still use the narrow integer type as their base type. >From 969e2307e236e4b67de953a6fd00fc7aabc60970 Mon Sep 17 00:00:00 2001 From: Craig Topper <craig.top...@sifive.com> Date: Fri, 2 Aug 2024 11:41:00 -0700 Subject: [PATCH] [RISCV] Use FP type as the base type for some int->f conversions. This is an alternative to part of #101608. Using FP as the base type allows the existing Zfh extension check to work. This does not fix fp->int narrowing instructions which still use the narrow integer type as their base type. --- clang/include/clang/Basic/riscv_vector.td | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/clang/include/clang/Basic/riscv_vector.td b/clang/include/clang/Basic/riscv_vector.td index 4841792c91d4a..0cab4b8067f0d 100644 --- a/clang/include/clang/Basic/riscv_vector.td +++ b/clang/include/clang/Basic/riscv_vector.td @@ -1987,9 +1987,9 @@ let ManualCodegen = [{ RVVConvBuiltinSet<"vfcvt_xu_f_v", "xfd", [["Uv", "Uvvu"]]>; let OverloadedName = "vfcvt_f" in { defm : - RVVConvBuiltinSet<"vfcvt_f_x_v", "sil", [["Fv", "Fvvu"]]>; + RVVConvBuiltinSet<"vfcvt_f_x_v", "xfd", [["v", "vIvu"]]>; defm : - RVVConvBuiltinSet<"vfcvt_f_xu_v", "sil", [["Fv", "FvUvu"]]>; + RVVConvBuiltinSet<"vfcvt_f_xu_v", "xfd", [["v", "vUvu"]]>; } // 13.18. Widening Floating-Point/Integer Type-Convert Instructions @@ -2011,9 +2011,9 @@ let ManualCodegen = [{ RVVConvBuiltinSet<"vfncvt_xu_f_w", "csi", [["Uv", "UvFwu"]]>; let OverloadedName = "vfncvt_f" in { defm : - RVVConvBuiltinSet<"vfncvt_f_x_w", "si", [["Fv", "Fvwu"]]>; + RVVConvBuiltinSet<"vfncvt_f_x_w", "xf", [["v", "vIwu"]]>; defm : - RVVConvBuiltinSet<"vfncvt_f_xu_w", "si", [["Fv", "FvUwu"]]>; + RVVConvBuiltinSet<"vfncvt_f_xu_w", "xf", [["v", "vUwu"]]>; } let OverloadedName = "vfncvt_f" in { defm : RVVConvBuiltinSet<"vfncvt_f_f_w", "f", [["v", "vwu"]]>; @@ -2037,9 +2037,9 @@ let ManualCodegen = [{ RVVConvBuiltinSet<"vfcvt_xu_f_v", "xfd", [["Uv", "Uvv"]]>; let OverloadedName = "vfcvt_f" in { defm : - RVVConvBuiltinSet<"vfcvt_f_x_v", "sil", [["Fv", "Fvv"]]>; + RVVConvBuiltinSet<"vfcvt_f_x_v", "xfd", [["v", "vIv"]]>; defm : - RVVConvBuiltinSet<"vfcvt_f_xu_v", "sil", [["Fv", "FvUv"]]>; + RVVConvBuiltinSet<"vfcvt_f_xu_v", "xfd", [["v", "vUv"]]>; } // 13.18. Widening Floating-Point/Integer Type-Convert Instructions @@ -2061,9 +2061,9 @@ let ManualCodegen = [{ RVVConvBuiltinSet<"vfncvt_xu_f_w", "csi", [["Uv", "UvFw"]]>; let OverloadedName = "vfncvt_f" in { defm : - RVVConvBuiltinSet<"vfncvt_f_x_w", "si", [["Fv", "Fvw"]]>; + RVVConvBuiltinSet<"vfncvt_f_x_w", "xf", [["v", "vIw"]]>; defm : - RVVConvBuiltinSet<"vfncvt_f_xu_w", "si", [["Fv", "FvUw"]]>; + RVVConvBuiltinSet<"vfncvt_f_xu_w", "xf", [["v", "vUw"]]>; } let OverloadedName = "vfncvt_f" in { defm : RVVConvBuiltinSet<"vfncvt_f_f_w", "f", [["v", "vw"]]>; _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits