<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Target/AMDGPU/AMDGPUCombine.td, branch users/nico/python-2</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] Canonicalize G_ZEXT of the shift amount in RegBankCombiner (#131792)</title>
<updated>2025-05-14T08:48:51+00:00</updated>
<author>
<name>Pierre van Houtryve</name>
<email>pierre.vanhoutryve@amd.com</email>
</author>
<published>2025-05-14T08:48:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4e63e0457cc1f768c628e71a0786fdb8a6ec271e'/>
<id>4e63e0457cc1f768c628e71a0786fdb8a6ec271e</id>
<content type='text'>
Canonicalize it to a G_AND instead so that ISel patterns can pick it
up and ignore it, as the shift instructions only read low bits.
G_ZEXT would be lowered to a v/s_and anyway in most cases.

I'm also looking at making a DAG version of this in a separate patch.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Canonicalize it to a G_AND instead so that ISel patterns can pick it
up and ignore it, as the shift instructions only read low bits.
G_ZEXT would be lowered to a v/s_and anyway in most cases.

I'm also looking at making a DAG version of this in a separate patch.</pre>
</div>
</content>
</entry>
<entry>
<title>[AMDGPU] Add sext_trunc in RegBankCombiner (#131623)</title>
<updated>2025-04-14T08:15:29+00:00</updated>
<author>
<name>Pierre van Houtryve</name>
<email>pierre.vanhoutryve@amd.com</email>
</author>
<published>2025-04-14T08:15:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=931a78a1db3da210a1ed5681778e37fa011cdf23'/>
<id>931a78a1db3da210a1ed5681778e37fa011cdf23</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[GISel][AMDGPU] Expand ShuffleVector (#124527)</title>
<updated>2025-04-10T00:51:24+00:00</updated>
<author>
<name>Alan Li</name>
<email>me@alanli.org</email>
</author>
<published>2025-04-10T00:51:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2795abb2f8c71a6f00371b49d49829efe2814b0d'/>
<id>2795abb2f8c71a6f00371b49d49829efe2814b0d</id>
<content type='text'>
This patch dismantles G_SHUFFLE_VECTOR before lowering. The original
lowering would emit extract vector element ops. We found that by using
unmerged values the build vector op combine could find ways to fold.

Only enabled on AMDGPU.

This resolves #123631</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch dismantles G_SHUFFLE_VECTOR before lowering. The original
lowering would emit extract vector element ops. We found that by using
unmerged values the build vector op combine could find ways to fold.

Only enabled on AMDGPU.

This resolves #123631</pre>
</div>
</content>
</entry>
<entry>
<title>[AMDGPU][RegBankCombiner] Add cast_of_cast and constant_fold_cast combines (#131307)</title>
<updated>2025-03-17T09:26:51+00:00</updated>
<author>
<name>Pierre van Houtryve</name>
<email>pierre.vanhoutryve@amd.com</email>
</author>
<published>2025-03-17T09:26:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e456579e346c0790603544dc7617edfe44953f4c'/>
<id>e456579e346c0790603544dc7617edfe44953f4c</id>
<content type='text'>
We can add a bunch of exts/truncs during RBSelect, we should be able to fold
them away afterwards.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We can add a bunch of exts/truncs during RBSelect, we should be able to fold
them away afterwards.</pre>
</div>
</content>
</entry>
<entry>
<title>[AMDGPU] Add identity_combines to RegBankCombiner (#131305)</title>
<updated>2025-03-17T09:11:28+00:00</updated>
<author>
<name>Pierre van Houtryve</name>
<email>pierre.vanhoutryve@amd.com</email>
</author>
<published>2025-03-17T09:11:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7dcea28bf92e49737fa285e93621cfa814323524'/>
<id>7dcea28bf92e49737fa285e93621cfa814323524</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[AMDGPU] [GlobalIsel] Combine Fmul with Select into ldexp instruction. (#120104)</title>
<updated>2025-01-06T12:12:38+00:00</updated>
<author>
<name>Vikash Gupta</name>
<email>Vikash.Gupta@amd.com</email>
</author>
<published>2025-01-06T12:12:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fd6f8b3ce33cc2cbe378f8f1b391f3f40fa7bd54'/>
<id>fd6f8b3ce33cc2cbe378f8f1b391f3f40fa7bd54</id>
<content type='text'>
This combine pattern perform the below transformation.

fmul x, select(y, A, B)      -&gt; fldexp (x, select i32 (y, a, b))
fmul x, select(y, -A, -B)   -&gt; fldexp ((fneg x), select i32 (y, a, b))

where, A=2^a &amp; B=2^b ; a and b are integers.

It is a follow-up PR to implement the above combine for globalIsel, as
the corresponding DAG combine has been done for SelectionDAG Isel
(#111109)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This combine pattern perform the below transformation.

fmul x, select(y, A, B)      -&gt; fldexp (x, select i32 (y, a, b))
fmul x, select(y, -A, -B)   -&gt; fldexp ((fneg x), select i32 (y, a, b))

where, A=2^a &amp; B=2^b ; a and b are integers.

It is a follow-up PR to implement the above combine for globalIsel, as
the corresponding DAG combine has been done for SelectionDAG Isel
(#111109)</pre>
</div>
</content>
</entry>
<entry>
<title>AMDGPU/GlobalISel: Run redundant_and combine in RegBankCombiner (#112353)</title>
<updated>2024-10-16T07:43:16+00:00</updated>
<author>
<name>Petar Avramovic</name>
<email>Petar.Avramovic@amd.com</email>
</author>
<published>2024-10-16T07:43:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=14d006c53c67ded7da00e7880c58f2c7e25ee1f1'/>
<id>14d006c53c67ded7da00e7880c58f2c7e25ee1f1</id>
<content type='text'>
Combine is needed to clear redundant ANDs with 1 that will be
created by reg-bank-select to clean-up high bits in register.
Fix replaceRegWith from CombinerHelper:
If copy had to be inserted, first create copy then delete MI.
If MI is deleted first insert point is not valid.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Combine is needed to clear redundant ANDs with 1 that will be
created by reg-bank-select to clean-up high bits in register.
Fix replaceRegWith from CombinerHelper:
If copy had to be inserted, first create copy then delete MI.
If MI is deleted first insert point is not valid.</pre>
</div>
</content>
</entry>
<entry>
<title>[AMDGPU] Fix typo in function name</title>
<updated>2024-05-06T07:55:09+00:00</updated>
<author>
<name>Jay Foad</name>
<email>jay.foad@amd.com</email>
</author>
<published>2024-05-05T09:31:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e2c89254e12e844214d02f1d12bf29ba2ca322c7'/>
<id>e2c89254e12e844214d02f1d12bf29ba2ca322c7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[AMDGPU] Improve MIR pattern for FMinFMaxLegacy combine. NFC. (#90968)</title>
<updated>2024-05-05T09:29:01+00:00</updated>
<author>
<name>Jay Foad</name>
<email>jay.foad@amd.com</email>
</author>
<published>2024-05-05T09:29:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d5ca2e46ca97758de6edb9f071f2114205380d87'/>
<id>d5ca2e46ca97758de6edb9f071f2114205380d87</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[GlobalISel] Use some standard matchinfo defs. NFC.</title>
<updated>2024-05-03T14:54:39+00:00</updated>
<author>
<name>Jay Foad</name>
<email>jay.foad@amd.com</email>
</author>
<published>2024-05-03T14:54:17+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=692e887c7d77d71204df9090f12f1b8f47e4bfba'/>
<id>692e887c7d77d71204df9090f12f1b8f47e4bfba</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
