<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp, branch users/chapuni/cov/single/switch</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][True16][MC] disable incorrect VOPC t16 instruction (#120271)</title>
<updated>2025-01-03T16:58:04+00:00</updated>
<author>
<name>Brox Chen</name>
<email>guochen2@amd.com</email>
</author>
<published>2025-01-03T16:58:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=c744ed53a84f90598751cdcda4c68900113587ab'/>
<id>c744ed53a84f90598751cdcda4c68900113587ab</id>
<content type='text'>
The current VOPC t16 instructions are not implemented with the correct
t16 pseudo. Thus the current t16/fake16 instructions are all in fake16
format.

The plan is to remove the incorrect t16 instructions and refactor them.
The first step is to remove them in this patch. The next step will be
updating the t16/fake16 pseudo to the correct format and add back true16
instruction one by one in the upcoming patches.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The current VOPC t16 instructions are not implemented with the correct
t16 pseudo. Thus the current t16/fake16 instructions are all in fake16
format.

The plan is to remove the incorrect t16 instructions and refactor them.
The first step is to remove them in this patch. The next step will be
updating the t16/fake16 pseudo to the correct format and add back true16
instruction one by one in the upcoming patches.</pre>
</div>
</content>
</entry>
<entry>
<title>AMDGPU/GlobalISel: Do not try to form v_bitop3_b32 for SGPR results (#117940)</title>
<updated>2024-12-01T01:21:20+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2024-12-01T01:21:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=92ba7e397377b8005206cb01a2052a750780827e'/>
<id>92ba7e397377b8005206cb01a2052a750780827e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>AMDGPU: Match and Select BITOP3 on gfx950 (#117843)</title>
<updated>2024-11-27T06:31:19+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2024-11-27T06:31:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b4a16a78c2626d56864d4d6c0f9b2779e293914a'/>
<id>b4a16a78c2626d56864d4d6c0f9b2779e293914a</id>
<content type='text'>
Co-authored-by: Stanislav Mekhanoshin &lt;Stanislav.Mekhanoshin@amd.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Stanislav Mekhanoshin &lt;Stanislav.Mekhanoshin@amd.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>AMDGPU: Builtins &amp; Codegen support for v_cvt_scale_fp4&lt;-&gt;f32 for gfx950 (#117743)</title>
<updated>2024-11-27T00:20:09+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2024-11-27T00:20:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2b9e947d4346ad03328a31f90b9056837c042d1b'/>
<id>2b9e947d4346ad03328a31f90b9056837c042d1b</id>
<content type='text'>
OPSEL ASM Syntax for v_cvt_scalef32_pk_f32_fp4 : opsel:[x,y,z]
where, x &amp; y i.e. OPSEL[1 : 0] selects which src_byte to read.

OPSEL ASM Syntax for v_cvt_scalef32_pk_fp4_f32 : opsel:[a,b,c,d]
where, c &amp; d i.e. OPSEL[3 : 2] selects which dst_byte  to write.

Co-authored-by: Pravin Jagtap &lt;Pravin.Jagtap@amd.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
OPSEL ASM Syntax for v_cvt_scalef32_pk_f32_fp4 : opsel:[x,y,z]
where, x &amp; y i.e. OPSEL[1 : 0] selects which src_byte to read.

OPSEL ASM Syntax for v_cvt_scalef32_pk_fp4_f32 : opsel:[a,b,c,d]
where, c &amp; d i.e. OPSEL[3 : 2] selects which dst_byte  to write.

Co-authored-by: Pravin Jagtap &lt;Pravin.Jagtap@amd.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>AMDGPU: Builtins &amp; Codegen support for v_cvt_scalef32_pk_f32_{fp8|bf8} for gfx950 (#117741)</title>
<updated>2024-11-27T00:12:18+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2024-11-27T00:12:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=62584f32eb786e4c455092e653a58182e8ffe4dc'/>
<id>62584f32eb786e4c455092e653a58182e8ffe4dc</id>
<content type='text'>
OPSEL[0] determines low/high 16 bits of src0 to read.

Co-authored-by: Pravin Jagtap &lt;Pravin.Jagtap@amd.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
OPSEL[0] determines low/high 16 bits of src0 to read.

Co-authored-by: Pravin Jagtap &lt;Pravin.Jagtap@amd.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>AMDGPU: Builtins &amp; Codegen support for v_cvt_scalef32_pk_{fp8|bf8}_f32 for gfx950 (#117740)</title>
<updated>2024-11-26T19:57:09+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2024-11-26T19:57:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=803bd812b16d1454b8fc0d6d66d7da793408b34d'/>
<id>803bd812b16d1454b8fc0d6d66d7da793408b34d</id>
<content type='text'>
OPSEL[3] determines low/high 16 bits of word to write.

Co-authored-by: Pravin Jagtap &lt;Pravin.Jagtap@amd.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
OPSEL[3] determines low/high 16 bits of word to write.

Co-authored-by: Pravin Jagtap &lt;Pravin.Jagtap@amd.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>AMDGPU: Builtins &amp; Codegen support for: v_cvt_scalef32_[f16|f32]_[bf8|fp8] (#117739)</title>
<updated>2024-11-26T19:54:10+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2024-11-26T19:54:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=815069c701d62b58b8dbb6e902931f9eb5185db4'/>
<id>815069c701d62b58b8dbb6e902931f9eb5185db4</id>
<content type='text'>
OPSEL[1:0] collectively decide which byte to read
from src input.

Builtin takes additional imm argument which
represents index (with valid values:[0:3]) of src
byte read. Out of bounds checks will added in next
patch.

OPSEL ASM Syntax: opsel:[x,y,z]
where,
    opsel[x] = Inst{11} = src0_modifier{2}
    opsel[y] = Inst{12} = src1_modifier{2}
    opsel[z] = Inst{14} = src0_modifier{3}

Note: Inst{13} i.e. OPSEL[2] is ignored in
asm syntax and opsel[z] is meaningless
for v_cvt_scalef32_f32_{fp|bf}8

Co-authored-by: Pravin Jagtap &lt;Pravin.Jagtap@amd.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
OPSEL[1:0] collectively decide which byte to read
from src input.

Builtin takes additional imm argument which
represents index (with valid values:[0:3]) of src
byte read. Out of bounds checks will added in next
patch.

OPSEL ASM Syntax: opsel:[x,y,z]
where,
    opsel[x] = Inst{11} = src0_modifier{2}
    opsel[y] = Inst{12} = src1_modifier{2}
    opsel[z] = Inst{14} = src0_modifier{3}

Note: Inst{13} i.e. OPSEL[2] is ignored in
asm syntax and opsel[z] is meaningless
for v_cvt_scalef32_f32_{fp|bf}8

Co-authored-by: Pravin Jagtap &lt;Pravin.Jagtap@amd.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[AMDGPU] Optimize out s_barrier_signal/_wait (#116993)</title>
<updated>2024-11-26T09:04:32+00:00</updated>
<author>
<name>Piotr Sobczak</name>
<email>piotr.sobczak@amd.com</email>
</author>
<published>2024-11-26T09:04:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a96ec01e1a269b663ccc1dadc2f4429fd0df887d'/>
<id>a96ec01e1a269b663ccc1dadc2f4429fd0df887d</id>
<content type='text'>
Extend the optimization that converts s_barrier to wave_barrier (nop)
when the number of work items is not larger than wave size.
    
This handles the "split barrier" form of s_barrier where the barrier
is represented by separate intrinsics (s_barrier_signal/s_barrier_wait).
Note: the version where s_barrier is used in gfx12 (and later split)
has the optimization already, but some front-ends may prefer to use
split intrinsics and this is being addressed by the patch.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Extend the optimization that converts s_barrier to wave_barrier (nop)
when the number of work items is not larger than wave size.
    
This handles the "split barrier" form of s_barrier where the barrier
is represented by separate intrinsics (s_barrier_signal/s_barrier_wait).
Note: the version where s_barrier is used in gfx12 (and later split)
has the optimization already, but some front-ends may prefer to use
split intrinsics and this is being addressed by the patch.</pre>
</div>
</content>
</entry>
<entry>
<title>AMDGPU: Add v_permlane16_swap_b32 and v_permlane32_swap_b32 for gfx950 (#117260)</title>
<updated>2024-11-23T04:12:50+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2024-11-23T04:12:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d1cca3133a6eea845c312b17379ad93f57aa7dd7'/>
<id>d1cca3133a6eea845c312b17379ad93f57aa7dd7</id>
<content type='text'>
This was a bit annoying because these introduce a new special case
encoding usage. op_sel is repurposed as a subset of dpp controls,
and is eligible for VOP3-&gt;VOP1 shrinking. For some reason fi also
uses an enum value, so we need to convert the raw boolean to 1 instead
of -1.

The 2 registers are swapped, so this has 2 defs. Ideally the builtin
would return a pair, but that's difficult so return a vector instead.
This would make a hypothetical builtin that supports v2f16 directly
uglier.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This was a bit annoying because these introduce a new special case
encoding usage. op_sel is repurposed as a subset of dpp controls,
and is eligible for VOP3-&gt;VOP1 shrinking. For some reason fi also
uses an enum value, so we need to convert the raw boolean to 1 instead
of -1.

The 2 registers are swapped, so this has 2 defs. Ideally the builtin
would return a pair, but that's difficult so return a vector instead.
This would make a hypothetical builtin that supports v2f16 directly
uglier.</pre>
</div>
</content>
</entry>
<entry>
<title>AMDGPU: Add v_smfmac_f32_32x32x64_fp8_fp8 for gfx950 (#117259)</title>
<updated>2024-11-22T20:11:06+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2024-11-22T20:11:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7d544c64e3b6ea014c59e230dcf65ac4f9d60f2b'/>
<id>7d544c64e3b6ea014c59e230dcf65ac4f9d60f2b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
