[llvm] [GlobalISel][AArch64] Add libcall lowering for fpowi. (PR #67114)

Matt Arsenault via llvm-commits llvm-commits at lists.llvm.org
Tue Nov 28 03:40:18 PST 2023


================
@@ -979,10 +982,30 @@ LegalizerHelper::libcall(MachineInstr &MI, LostDebugLocObserver &LocObserver) {
       return Status;
     break;
   }
+  case TargetOpcode::G_FPOWI: {
+    LLT LLTy = MRI.getType(GMI.getReg(0));
+    unsigned Size = LLTy.getSizeInBits();
+    Type *HLTy = getFloatTypeForLLT(Ctx, LLTy);
+    Type *ITy =
+        IntegerType::get(Ctx, MRI.getType(GMI.getReg(2)).getSizeInBits());
+    if (!HLTy || (Size != 32 && Size != 64 && Size != 80 && Size != 128)) {
+      LLVM_DEBUG(dbgs() << "No libcall available for type " << LLTy << ".\n");
+      return UnableToLegalize;
+    }
+    auto Libcall = getRTLibDesc(MI.getOpcode(), Size);
+    SmallVector<CallLowering::ArgInfo, 2> Args;
+    Args.push_back({GMI.getReg(1), HLTy, 0});
+    Args.push_back({GMI.getReg(2), ITy, 1});
----------------
arsenm wrote:

Initializer list 

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


More information about the llvm-commits mailing list