This is an archive of the discontinued LLVM Phabricator instance.

[AMDGPU] gfx11 vop3dpp instructions
ClosedPublic

Authored by Joe_Nash on May 26 2022, 8:54 AM.

Details

Summary

gfx11 adds the ability to use dpp modifiers on vop3 instructions.
This patch adds machine code layer support for that. The MCCodeEmitter
is changed to use APInt instead of uint64_t to support these wider
instructions.

Patch 16/N for upstreaming of AMDGPU gfx11 architecture

Depends on D126475

Diff Detail

Event Timeline

Joe_Nash created this revision.May 26 2022, 8:54 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 26 2022, 8:54 AM
Joe_Nash requested review of this revision.May 26 2022, 8:54 AM
Herald added a project: Restricted Project. · View Herald TranscriptMay 26 2022, 8:54 AM
Joe_Nash added reviewers: rampitec, vpykhtin, foad, Restricted Project.May 26 2022, 8:56 AM

Not all cases checked for assembly also present in disasm test.

llvm/lib/Target/AMDGPU/AsmParser/AMDGPUAsmParser.cpp
5694–5698

Technically that is _e96, but OK for now.

llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
444

break on new line.

llvm/lib/Target/AMDGPU/VOP2Instructions.td
460

Indent is off.

Joe_Nash updated this revision to Diff 433825.Jun 2 2022, 11:50 AM
Joe_Nash marked 2 inline comments as done.

Added disasm tests. Fixed noted justification issues. Disabled incomplete dot dpp instructions.

Not all cases checked for assembly also present in disasm test.

Fixed

rampitec accepted this revision.Jun 2 2022, 12:05 PM
This revision is now accepted and ready to land.Jun 2 2022, 12:05 PM
This revision was landed with ongoing or failed builds.Jun 6 2022, 7:03 AM
This revision was automatically updated to reflect the committed changes.

Hi, there's several failures on the AIX bot https://lab.llvm.org/buildbot/#/builders/214/builds/1687/steps/6/logs/stdio. Could you take a look and revert if it takes too long?

Hi, there's several failures on the AIX bot https://lab.llvm.org/buildbot/#/builders/214/builds/1687/steps/6/logs/stdio. Could you take a look and revert if it takes too long?

Hi, thanks for raising the issue. However, I can’t reproduce the failures locally, and other buildbots such as https://lab.llvm.org/buildbot/#/builders/104/builds/8086 are passing. Can you provide any other info that would help track the issue down? Or perhaps the bot is in a bad state?

Hi, there's several failures on the AIX bot https://lab.llvm.org/buildbot/#/builders/214/builds/1687/steps/6/logs/stdio. Could you take a look and revert if it takes too long?

Hi, thanks for raising the issue. However, I can’t reproduce the failures locally, and other buildbots such as https://lab.llvm.org/buildbot/#/builders/104/builds/8086 are passing. Can you provide any other info that would help track the issue down? Or perhaps the bot is in a bad state?

It's telling that the failures also occur on the big endian PPC Linux bot:
https://lab.llvm.org/buildbot/#/builders/100/builds/16288

So, the info would be to look for code that is unintentionally endianness-sensitive.

Hi, there's several failures on the AIX bot https://lab.llvm.org/buildbot/#/builders/214/builds/1687/steps/6/logs/stdio. Could you take a look and revert if it takes too long?

Hi, thanks for raising the issue. However, I can’t reproduce the failures locally, and other buildbots such as https://lab.llvm.org/buildbot/#/builders/104/builds/8086 are passing. Can you provide any other info that would help track the issue down? Or perhaps the bot is in a bad state?

It's telling that the failures also occur on the big endian PPC Linux bot:
https://lab.llvm.org/buildbot/#/builders/100/builds/16288

So, the info would be to look for code that is unintentionally endianness-sensitive.

Thanks! That sounds very reasonable. I don't expect this to be easy to find, so I will revert this and the dependent D126917

nemanjai added inline comments.
llvm/lib/Target/AMDGPU/Disassembler/AMDGPUDisassembler.cpp
394

These conversions being little endian seem like a possible/likely source of the issues on big endian systems.

In light of D127195, I'm going to try relanding this.