<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Target/AMDGPU/Disassembler, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[AMDGPU] Remove implicit conversions of MCRegister to unsigned. NFC (#167284)</title>
<updated>2025-11-11T16:54:27+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-11-11T16:54:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8eb28ca83dd501055e2c232dccadcad490d452b6'/>
<id>8eb28ca83dd501055e2c232dccadcad490d452b6</id>
<content type='text'>
Use MCRegister instead of MCPhysReg or use MCRegister::id().</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Use MCRegister instead of MCPhysReg or use MCRegister::id().</pre>
</div>
</content>
</entry>
<entry>
<title>[AMDGPU][MC] Fix disassembler warning for v_cmpx instructions in GFX9 (#163825)</title>
<updated>2025-10-17T18:11:58+00:00</updated>
<author>
<name>Jun Wang</name>
<email>jwang86@yahoo.com</email>
</author>
<published>2025-10-17T18:11:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b8c70130607468e9ff8fbfd7e012bd1f1e23bf46'/>
<id>b8c70130607468e9ff8fbfd7e012bd1f1e23bf46</id>
<content type='text'>
In GFX10+, the v_cmpx_* instructions use EXEC as the implicit dst and do
not have explicit dst. Therefore a warning is issued by the disassembler
when the dst is not EXEC. However, in GFX9 and earlier, those
instructions have EXEC as the implicit dst as well as an explicit dst.
The aforementioned warning should not be issued.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In GFX10+, the v_cmpx_* instructions use EXEC as the implicit dst and do
not have explicit dst. Therefore a warning is issued by the disassembler
when the dst is not EXEC. However, in GFX9 and earlier, those
instructions have EXEC as the implicit dst as well as an explicit dst.
The aforementioned warning should not be issued.</pre>
</div>
</content>
</entry>
<entry>
<title>[AMDGPU] Preserve literal operands on disassembling. (#163376)</title>
<updated>2025-10-16T10:23:53+00:00</updated>
<author>
<name>Ivan Kosarev</name>
<email>ivan.kosarev@amd.com</email>
</author>
<published>2025-10-16T10:23:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=33503d016e6219e9afc9092e85ff7ffb3b1414aa'/>
<id>33503d016e6219e9afc9092e85ff7ffb3b1414aa</id>
<content type='text'>
Fixes round-tripping where literals used to be reassembled into
inline constants.

Also fix the %extract-encodings substitution in lit tests to emit
each instruction code once and not twice.

Eliminate the Literal64 field.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes round-tripping where literals used to be reassembled into
inline constants.

Also fix the %extract-encodings substitution in lit tests to emit
each instruction code once and not twice.

Eliminate the Literal64 field.</pre>
</div>
</content>
</entry>
<entry>
<title>[AMDGPU][MC] Avoid creating lit64() operands unless asked or needed. (#161191)</title>
<updated>2025-10-08T09:51:55+00:00</updated>
<author>
<name>Ivan Kosarev</name>
<email>ivan.kosarev@amd.com</email>
</author>
<published>2025-10-08T09:51:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=20f41ed8c195eff6199dc77bdd20f7226cfdae0f'/>
<id>20f41ed8c195eff6199dc77bdd20f7226cfdae0f</id>
<content type='text'>
There should normally be no need to generate implicit lit64()
modifiers on the assembler side. It's the encoder's responsibility
to recognise literals that are implicitly 64 bits wide.

The exceptions are where we rewrite floating-point operand values
as integer ones, which would not be assembled back to the original
values unless wrapped into lit64().

Respect explicit lit() modifiers for non-inline values as
necessary to avoid regressions in MC tests. This change still
doesn't prevent use of inline constants where lit()/lit64 is
specified; subject to a separate patch.

On disassembling, only create lit64() operands where necessary for
correct round-tripping.

Add round-tripping tests where useful and feasible.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There should normally be no need to generate implicit lit64()
modifiers on the assembler side. It's the encoder's responsibility
to recognise literals that are implicitly 64 bits wide.

The exceptions are where we rewrite floating-point operand values
as integer ones, which would not be assembled back to the original
values unless wrapped into lit64().

Respect explicit lit() modifiers for non-inline values as
necessary to avoid regressions in MC tests. This change still
doesn't prevent use of inline constants where lit()/lit64 is
specified; subject to a separate patch.

On disassembling, only create lit64() operands where necessary for
correct round-tripping.

Add round-tripping tests where useful and feasible.</pre>
</div>
</content>
</entry>
<entry>
<title>AMDGPU: Use RegClassByHwMode to manage operand VGPR operand constraints (#158272)</title>
<updated>2025-10-08T02:19:54+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2025-10-08T02:19:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1a5494ca4a7d2e6884e17c064e5215b34fbe4b40'/>
<id>1a5494ca4a7d2e6884e17c064e5215b34fbe4b40</id>
<content type='text'>
This removes special case processing in TargetInstrInfo::getRegClass to
fixup register operands which depending on the subtarget support AGPRs,
or require even aligned registers.

This regresses assembler diagnostics, which currently work by hackily
accepting invalid cases and then post-rejecting a validly parsed
instruction.
On the plus side this now emits a comment when disassembling unaligned
registers for targets with the alignment requirement.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This removes special case processing in TargetInstrInfo::getRegClass to
fixup register operands which depending on the subtarget support AGPRs,
or require even aligned registers.

This regresses assembler diagnostics, which currently work by hackily
accepting invalid cases and then post-rejecting a validly parsed
instruction.
On the plus side this now emits a comment when disassembling unaligned
registers for targets with the alignment requirement.</pre>
</div>
</content>
</entry>
<entry>
<title>[AMDGPU][Disassembler] Use target feature for `.amdhsa_reserve_xnack_mask` instead of hard code zero (#161771)</title>
<updated>2025-10-03T13:16:57+00:00</updated>
<author>
<name>Shilei Tian</name>
<email>i@tianshilei.me</email>
</author>
<published>2025-10-03T13:16:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=173063cf054645a7f72e0ca1d0f2dfe87346d65c'/>
<id>173063cf054645a7f72e0ca1d0f2dfe87346d65c</id>
<content type='text'>
There is no test change at this moment because we don't have a target
that has this feature by default yet.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is no test change at this moment because we don't have a target
that has this feature by default yet.</pre>
</div>
</content>
</entry>
<entry>
<title>[AMDGPU][AsmParser] Introduce MC representation for lit() and lit64(). (#160316)</title>
<updated>2025-09-24T11:35:50+00:00</updated>
<author>
<name>Ivan Kosarev</name>
<email>ivan.kosarev@amd.com</email>
</author>
<published>2025-09-24T11:35:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9e55d81c682a3649858320e942a3fe2ba3d5fff2'/>
<id>9e55d81c682a3649858320e942a3fe2ba3d5fff2</id>
<content type='text'>
And rework the lit64() support to use it.

The rules for when to add lit64() can be simplified and
improved. In this change, however, we just follow the existing
conventions on the assembler and disassembler sides.

In codegen we do not (and normally should not need to) add explicit
lit() and lit64() modifiers, so the codegen tests lose them. The change
is an NFCI otherwise.

Simplifies printing operands.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
And rework the lit64() support to use it.

The rules for when to add lit64() can be simplified and
improved. In this change, however, we just follow the existing
conventions on the assembler and disassembler sides.

In codegen we do not (and normally should not need to) add explicit
lit() and lit64() modifiers, so the codegen tests lose them. The change
is an NFCI otherwise.

Simplifies printing operands.</pre>
</div>
</content>
</entry>
<entry>
<title>AMDGPU: Remove most manual AVLdSt decoder code (#157861)</title>
<updated>2025-09-10T23:13:58+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2025-09-10T23:13:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4644099b54e8c794bce56adabc5f3c3d714e325f'/>
<id>4644099b54e8c794bce56adabc5f3c3d714e325f</id>
<content type='text'>
This was additional hacking around using incorrect register class
constraints for paired data operands. I'm not really sure why we
need any of what's left. In particular the IS_VGPR special case
seems backwards from how the encoding works.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was additional hacking around using incorrect register class
constraints for paired data operands. I'm not really sure why we
need any of what's left. In particular the IS_VGPR special case
seems backwards from how the encoding works.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[AMDGPU][gfx1250] Add `cu-store` subtarget feature (#150588)" (#157639)</title>
<updated>2025-09-10T08:20:59+00:00</updated>
<author>
<name>Pierre van Houtryve</name>
<email>pierre.vanhoutryve@amd.com</email>
</author>
<published>2025-09-10T08:20:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=dcaa29c8ed6cc3b62368cdd609f2d05a25541366'/>
<id>dcaa29c8ed6cc3b62368cdd609f2d05a25541366</id>
<content type='text'>
This reverts commit be17791f2624f22b3ed24a2539406164a379125d.

This is not necessary for gfx1250 anymore.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit be17791f2624f22b3ed24a2539406164a379125d.

This is not necessary for gfx1250 anymore.</pre>
</div>
</content>
</entry>
<entry>
<title>[AMDGPU] Ensure positive InstOffset for buffer operations (#145504)</title>
<updated>2025-09-04T13:37:46+00:00</updated>
<author>
<name>Aleksandar Spasojevic</name>
<email>aleksandar.spasojevic@amd.com</email>
</author>
<published>2025-09-04T13:37:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1b47135c9da92a8de3ded888f709081ff599ce03'/>
<id>1b47135c9da92a8de3ded888f709081ff599ce03</id>
<content type='text'>
GFX12+ buffer ops require positive InstOffset per AMD hardware spec.
Modified assembler/disassembler to reject negative buffer offsets.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
GFX12+ buffer ops require positive InstOffset per AMD hardware spec.
Modified assembler/disassembler to reject negative buffer offsets.</pre>
</div>
</content>
</entry>
</feed>
