================
@@ -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

Reply via email to