[llvm] [AMDGPU][MC] Disallow op_sel in v_dot4 and v_dot8 with 4- or 8-bit packed data (PR #100485)

Jun Wang via llvm-commits llvm-commits at lists.llvm.org
Mon Aug 12 14:49:00 PDT 2024


jwanggit86 wrote:

> I believe this is only true for gfx940, and I think the older targets did support op_sel with these. I see a note that not supporting op_sel is a change, but don't see documentation for what it did before

@arsenm 
Is one of the following the note you referred to above?
```cpp
AMDGPUInstructionSelector::selectVOP3PModsImpl(
  Register Src, const MachineRegisterInfo &MRI, bool IsDOT) const {
  ...
  (void)IsDOT; // DOTs do not use OPSEL on gfx940+, check ST.hasDOTOpSelHazard()
}

class GCNSubtarget {
...
  // Cannot use op_sel with v_dot instructions.
  bool hasDOTOpSelHazard() const { return GFX940Insts || GFX11Insts; }
}
```
Even these two places are inconsistent. One says "do not use on gfx940+", another seems to apply only to gfx940 and gfx11.

Second, are you suggesting op_sel should be disallowed for gfx940+, but left alone for older targets?

https://github.com/llvm/llvm-project/pull/100485


More information about the llvm-commits mailing list