[llvm] [AArch64][GlobalISel] Prevented llvm.aarch64.sisd.fcvtxn fallback (PR #159811)

Joshua Rodriguez via llvm-commits llvm-commits at lists.llvm.org
Fri Sep 19 09:21:59 PDT 2025


https://github.com/JoshdRod created https://github.com/llvm/llvm-project/pull/159811

Added extra check in AArch64RegisterBankInfo.cpp to mark llvm.aarch64.sisd.fcvtxn as having floating point operands

>From 40d2080e9907ae3efdbe8f1fbe2b61f470d5e8ec Mon Sep 17 00:00:00 2001
From: Josh Rodriguez <josh.rodriguez at arm.com>
Date: Fri, 19 Sep 2025 14:31:21 +0000
Subject: [PATCH] [AArch64][GlobalISel] Prevented llvm.aarch64.sisd.fcvtxn
 fallback

Added extra check in AArch64RegisterBankInfo.cpp to mark
llvm.aarch64.sisd.fcvtxn as having floating point operands
---
 llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp | 1 +
 llvm/test/CodeGen/AArch64/arm64-vcvtxd_f32_f64.ll         | 4 +---
 2 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp b/llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
index 62de86bf87f55..eeb34e12993b9 100644
--- a/llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
+++ b/llvm/lib/Target/AArch64/GISel/AArch64RegisterBankInfo.cpp
@@ -486,6 +486,7 @@ static bool isFPIntrinsic(const MachineRegisterInfo &MRI,
   case Intrinsic::aarch64_crypto_sha1c:
   case Intrinsic::aarch64_crypto_sha1p:
   case Intrinsic::aarch64_crypto_sha1m:
+  case Intrinsic::aarch64_sisd_fcvtxn:
     return true;
   case Intrinsic::aarch64_neon_saddlv: {
     const LLT SrcTy = MRI.getType(MI.getOperand(2).getReg());
diff --git a/llvm/test/CodeGen/AArch64/arm64-vcvtxd_f32_f64.ll b/llvm/test/CodeGen/AArch64/arm64-vcvtxd_f32_f64.ll
index 5dd882106883d..284d36bdfe232 100644
--- a/llvm/test/CodeGen/AArch64/arm64-vcvtxd_f32_f64.ll
+++ b/llvm/test/CodeGen/AArch64/arm64-vcvtxd_f32_f64.ll
@@ -1,8 +1,6 @@
 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 5
 ; RUN: llc < %s -mtriple=arm64-eabi | FileCheck %s
-; RUN: llc < %s -mtriple=arm64-eabi -global-isel -global-isel-abort=2 2>&1 | FileCheck %s --check-prefixes=CHECK,CHECK-GI
-
-; CHECK-GI:       warning: Instruction selection used fallback path for fcvtxn
+; RUN: llc < %s -mtriple=arm64-eabi -global-isel | FileCheck %s --check-prefixes=CHECK
 
 define float @fcvtxn(double %a) {
 ; CHECK-LABEL: fcvtxn:



More information about the llvm-commits mailing list