[llvm] [AMDGPU] Select fneg modifier for v2f64 instructions (PR #205194)
Changpeng Fang via llvm-commits
llvm-commits at lists.llvm.org
Mon Jun 22 18:24:59 PDT 2026
================
@@ -3679,18 +3676,29 @@ bool AMDGPUDAGToDAGISel::SelectVOP3PMods(SDValue In, SDValue &Src,
} else if (VecSize == 32) {
Src = createVOP3PSrc32FromLo16(Lo, Src, CurDAG, Subtarget);
} else {
- assert(Lo.getValueSizeInBits() == 32 && VecSize == 64);
+ assert((Lo.getValueSizeInBits() == 32 && VecSize == 64) ||
+ (Lo.getValueSizeInBits() == 64 && VecSize == 128));
SDLoc SL(In);
SDValue Undef = SDValue(
CurDAG->getMachineNode(TargetOpcode::IMPLICIT_DEF, SL,
Lo.getValueType()), 0);
- auto RC = Lo->isDivergent() ? AMDGPU::VReg_64RegClassID
- : AMDGPU::SReg_64RegClassID;
+ const SIRegisterInfo *TRI = Subtarget->getRegisterInfo();
+ // <2 x 64> instructions do not have OPSEL and also replicate low 64
+ // bits of a scalar input into high 64 bits. Use VGPRs in this case.
+ // TODO: This fact can be explited but we need to set proper OPSEL for
----------------
changpeng wrote:
Typo: exploited?
https://github.com/llvm/llvm-project/pull/205194
More information about the llvm-commits
mailing list