================
@@ -5164,6 +5164,26 @@
AMDGPUInstructionSelector::selectVOP3PModsDOT(MachineOperand &Root) const {
return selectVOP3PRetHelper(Root, true);
}
+InstructionSelector::ComplexRendererFns
+AMDGPUInstructionSelector::selectVOP3PModsF32(MachineOperand &Root) const {
+ Register Src = Root.getReg();
+ unsigned Mods = SISrcMods::OP_SEL_1;
+ if (Subtarget->isGFX11Plus()) {
+ unsigned ModsImpl;
+ std::tie(Src, ModsImpl) = selectVOP3ModsImpl(Root.getReg());
+ Mods |= ModsImpl;
+ if (Mods & SISrcMods::ABS) {
+ Mods ^= SISrcMods::ABS;
+ Mods |= SISrcMods::NEG_HI;
+ }
----------------
mbrkusanin wrote:
According to SIDefines.h these are equal.
NEG_HI = ABS
Is there a reason for replacing ABS with NEG_HI?
(Same for SDAG version)
https://github.com/llvm/llvm-project/pull/179224
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits