[llvm] [AMDGPU] Handle non-register operands for S_SUB/ADD_U64_PSEUDO (PR #86104)
Pierre van Houtryve via llvm-commits
llvm-commits at lists.llvm.org
Thu Mar 21 03:04:09 PDT 2024
https://github.com/Pierre-vh created https://github.com/llvm/llvm-project/pull/86104
This pseudo uses SSrc_b64 so it allows both an immediate or a register, but the lowering crashed on register operands.
>From 853c39dd967c975fe276b38a35e1eb6da565402c Mon Sep 17 00:00:00 2001
From: pvanhout <pierre.vanhoutryve at amd.com>
Date: Thu, 21 Mar 2024 11:03:36 +0100
Subject: [PATCH] [AMDGPU] Handle non-register operands for
S_SUB/ADD_U64_PSEUDO
This pseudo uses SSrc_b64 so it allows both an immediate or a register, but the lowering crashed
on register operands.
---
llvm/lib/Target/AMDGPU/SIISelLowering.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
index 5ccf21f76015de..045095684e845c 100644
--- a/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
+++ b/llvm/lib/Target/AMDGPU/SIISelLowering.cpp
@@ -4858,8 +4858,8 @@ MachineBasicBlock *SITargetLowering::EmitInstrWithCustomInserter(
if (Subtarget->hasScalarAddSub64()) {
unsigned Opc = IsAdd ? AMDGPU::S_ADD_U64 : AMDGPU::S_SUB_U64;
BuildMI(*BB, MI, DL, TII->get(Opc), Dest.getReg())
- .addReg(Src0.getReg())
- .addReg(Src1.getReg());
+ .add(Src0)
+ .add(Src1);
} else {
const SIRegisterInfo *TRI = ST.getRegisterInfo();
const TargetRegisterClass *BoolRC = TRI->getBoolRC();
More information about the llvm-commits
mailing list