[llvm] [RISCV][GISel] Support f32/f64 powi. (PR #117937)

Craig Topper via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 28 09:19:23 PST 2024


================
@@ -1290,9 +1290,10 @@ LegalizerHelper::libcall(MachineInstr &MI, LostDebugLocObserver &LocObserver) {
       return UnableToLegalize;
     }
     auto Libcall = getRTLibDesc(MI.getOpcode(), Size);
-    std::initializer_list<CallLowering::ArgInfo> Args = {
+    SmallVector<CallLowering::ArgInfo, 2> Args = {
         {MI.getOperand(1).getReg(), HLTy, 0},
         {MI.getOperand(2).getReg(), ITy, 1}};
+    Args[1].Flags[0].setSExt();
----------------
topperc wrote:

Eventually yes we probably need something like those hooks. A signed integer argument is maybe the least interesting case for those hooks.

shouldExtendTypeInLibCall defaults to true and only RISC-V and LoongArch override it to return false for FP types.

shouldSignExtendTypeInLibCall defaults to returning true for signed types and only RISC-V, LoongArch, and Mips override it to return true for some unsigned integers.

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


More information about the llvm-commits mailing list