<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Target/SPIRV/SPIRVCommandLine.cpp, 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>[SPIRV] Add support for `bfloat16` atomics via the `SPV_INTEL_16bit_atomics` extension (#166257)</title>
<updated>2025-11-09T17:26:14+00:00</updated>
<author>
<name>Alex Voicu</name>
<email>alexandru.voicu@amd.com</email>
</author>
<published>2025-11-09T17:26:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6ef32188b5a10167b94ac9e8f7bbac5dfc6c8730'/>
<id>6ef32188b5a10167b94ac9e8f7bbac5dfc6c8730</id>
<content type='text'>
This enables support for atomic RMW ops (add, sub, min and max to be
precise) with `bfloat16` operands, via the [SPV_INTEL_16bit_atomics
extension](https://github.com/intel/llvm/pull/20009). It's logically a
successor to #166031 (I should've used a stack), but I'm putting it up
for early review.

---------

Co-authored-by: Matt Arsenault &lt;arsenm2@gmail.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This enables support for atomic RMW ops (add, sub, min and max to be
precise) with `bfloat16` operands, via the [SPV_INTEL_16bit_atomics
extension](https://github.com/intel/llvm/pull/20009). It's logically a
successor to #166031 (I should've used a stack), but I'm putting it up
for early review.

---------

Co-authored-by: Matt Arsenault &lt;arsenm2@gmail.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[SPIRV] Support for the extension SPV_ALTERA_blocking_pipes (#138675)</title>
<updated>2025-11-06T10:59:54+00:00</updated>
<author>
<name>Aadesh Premkumar</name>
<email>aadesh.premkumar@multicorewareinc.com</email>
</author>
<published>2025-11-06T10:59:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=47cf5a1b828d993d0a21f44334a31a0f7337f8a8'/>
<id>47cf5a1b828d993d0a21f44334a31a0f7337f8a8</id>
<content type='text'>
--Added support for the extension SPV_ALTERA_blocking_pipes
--Added test files for the extension SPV_ALTERA_blocking_pipes</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
--Added support for the extension SPV_ALTERA_blocking_pipes
--Added test files for the extension SPV_ALTERA_blocking_pipes</pre>
</div>
</content>
</entry>
<entry>
<title>[SPIRV] Enable `bfloat16` arithmetic (#166031)</title>
<updated>2025-11-04T16:10:26+00:00</updated>
<author>
<name>Alex Voicu</name>
<email>alexandru.voicu@amd.com</email>
</author>
<published>2025-11-04T16:10:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2286118e6f2cda56b78d2e6b0193dd6f0ca7b7ea'/>
<id>2286118e6f2cda56b78d2e6b0193dd6f0ca7b7ea</id>
<content type='text'>
Enable the `SPV_INTEL_bfloat16_arithmetic` extension, which allows arithmetic, relational and `OpExtInst` instructions to take `bfloat16` arguments. This patch only adds support to arithmetic and relational ops. The extension itself is rather fresh, but `bfloat16` is ubiquitous at this point and not supporting these ops is limiting.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Enable the `SPV_INTEL_bfloat16_arithmetic` extension, which allows arithmetic, relational and `OpExtInst` instructions to take `bfloat16` arguments. This patch only adds support to arithmetic and relational ops. The extension itself is rather fresh, but `bfloat16` is ubiquitous at this point and not supporting these ops is limiting.</pre>
</div>
</content>
</entry>
<entry>
<title>[SPIRV] Enable OpenCL max_work_group_size translation via `SPV_INTEL_kernel_attributes` (#165891)</title>
<updated>2025-11-04T14:37:16+00:00</updated>
<author>
<name>Alex Voicu</name>
<email>alexandru.voicu@amd.com</email>
</author>
<published>2025-11-04T14:37:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2237a18f25dc93b46d478c9c7da6a514362cb6e3'/>
<id>2237a18f25dc93b46d478c9c7da6a514362cb6e3</id>
<content type='text'>
This adds BE support for the
[`SPV_INTEL_kernel_attributes`](https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_kernel_attributes.html)
extension. The extension is necessary to encode the rather useful
`max_work_group_size` kernel attribute, via `OpExecutionMode
MaxWorkgroupSizeINTEL`, which is the only Execution Mode added by the
extension that this patch adds full processing for. Future patches will
add the other Execution Modes and Capabilities. The test is adapted from
the equivalent Translator test; it depends on #165815.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds BE support for the
[`SPV_INTEL_kernel_attributes`](https://github.khronos.org/SPIRV-Registry/extensions/INTEL/SPV_INTEL_kernel_attributes.html)
extension. The extension is necessary to encode the rather useful
`max_work_group_size` kernel attribute, via `OpExecutionMode
MaxWorkgroupSizeINTEL`, which is the only Execution Mode added by the
extension that this patch adds full processing for. Future patches will
add the other Execution Modes and Capabilities. The test is adapted from
the equivalent Translator test; it depends on #165815.</pre>
</div>
</content>
</entry>
<entry>
<title>[SPIR-V] Generate SPIR-V instructions when 'enable-maximal-reconvergence' function attribute is set (#163682)</title>
<updated>2025-10-17T11:12:56+00:00</updated>
<author>
<name>Lucie Choi</name>
<email>ychoi0407@gmail.com</email>
</author>
<published>2025-10-17T11:12:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a43c0cf77ff52c844a841bab00cd0b54063709ef'/>
<id>a43c0cf77ff52c844a841bab00cd0b54063709ef</id>
<content type='text'>
Implement maximal reconvergence in SPIR-V codegen.

Addresses https://github.com/llvm/llvm-project/issues/136930</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implement maximal reconvergence in SPIR-V codegen.

Addresses https://github.com/llvm/llvm-project/issues/136930</pre>
</div>
</content>
</entry>
<entry>
<title>[SPIR-V] Add SPV_INTEL_predicated_io extension (#161591)</title>
<updated>2025-10-08T21:29:01+00:00</updated>
<author>
<name>YixingZhang007</name>
<email>yixing.zhang@intel.com</email>
</author>
<published>2025-10-08T21:29:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f802acf32d0755d774f9b91c346f17bdf7f9d37e'/>
<id>f802acf32d0755d774f9b91c346f17bdf7f9d37e</id>
<content type='text'>
This PR introduces the support for the SPIR-V extension
`SPV_INTEL_predicated_io`. This extension adds predicated load and store
instructions. Predicated load performs load from memory if predicate is
true; otherwise, it uses default_value as a result. Predicated store
performs store of value to memory if predicate is true; otherwise, it
does nothing.

Reference Specification:

https://github.com/intel/llvm/blob/sycl/sycl/doc/design/spirv-extensions/SPV_INTEL_predicated_io.asciidoc</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR introduces the support for the SPIR-V extension
`SPV_INTEL_predicated_io`. This extension adds predicated load and store
instructions. Predicated load performs load from memory if predicate is
true; otherwise, it uses default_value as a result. Predicated store
performs store of value to memory if predicate is true; otherwise, it
does nothing.

Reference Specification:

https://github.com/intel/llvm/blob/sycl/sycl/doc/design/spirv-extensions/SPV_INTEL_predicated_io.asciidoc</pre>
</div>
</content>
</entry>
<entry>
<title>[SPIRV] Add support for the extension SPV_EXT_relaxed_printf_string_address_space (#160245)</title>
<updated>2025-09-28T12:50:15+00:00</updated>
<author>
<name>Ebin-McW</name>
<email>ebin.jose@multicorewareinc.com</email>
</author>
<published>2025-09-28T12:50:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5d85d54feb4e17fa449fa9d9963aabac8b403d7b'/>
<id>5d85d54feb4e17fa449fa9d9963aabac8b403d7b</id>
<content type='text'>
Added support for the extension to support more storageclass for printf
strings.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added support for the extension to support more storageclass for printf
strings.</pre>
</div>
</content>
</entry>
<entry>
<title>[SPIRV] Add support for the SPIR-V extension SPV_KHR_bfloat16 (#155645)</title>
<updated>2025-09-22T12:52:57+00:00</updated>
<author>
<name>YixingZhang007</name>
<email>yixing.zhang@intel.com</email>
</author>
<published>2025-09-22T12:52:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f91e0bf16098decbee75233f67109751f2a2e79b'/>
<id>f91e0bf16098decbee75233f67109751f2a2e79b</id>
<content type='text'>
This PR introduces the support for the SPIR-V extension
`SPV_KHR_bfloat16`. This extension extends the `OpTypeFloat` instruction
to enable the use of bfloat16 types with cooperative matrices and dot
products.

TODO:
Per the `SPV_KHR_bfloat16` extension, there are a limited number of
instructions that can use the bfloat16 type. For example, arithmetic
instructions like `FAdd` or `FMul` can't operate on `bfloat16` values.
Therefore, a future patch should be added to either emit an error or
fall back to FP32 for arithmetic in cases where bfloat16 must not be
used.

Reference Specification:

https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/KHR/SPV_KHR_bfloat16.asciidoc</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR introduces the support for the SPIR-V extension
`SPV_KHR_bfloat16`. This extension extends the `OpTypeFloat` instruction
to enable the use of bfloat16 types with cooperative matrices and dot
products.

TODO:
Per the `SPV_KHR_bfloat16` extension, there are a limited number of
instructions that can use the bfloat16 type. For example, arithmetic
instructions like `FAdd` or `FMul` can't operate on `bfloat16` values.
Therefore, a future patch should be added to either emit an error or
fall back to FP32 for arithmetic in cases where bfloat16 must not be
used.

Reference Specification:

https://github.com/KhronosGroup/SPIRV-Registry/blob/main/extensions/KHR/SPV_KHR_bfloat16.asciidoc</pre>
</div>
</content>
</entry>
<entry>
<title>[SPIRV] Use llvm::is_contained (NFC) (#155136)</title>
<updated>2025-08-24T05:20:15+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-08-24T05:20:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8483bf442e2afa0c052463f9f18ee270b0f7e54d'/>
<id>8483bf442e2afa0c052463f9f18ee270b0f7e54d</id>
<content type='text'>
We can pass a range to llvm::is_contained.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We can pass a range to llvm::is_contained.</pre>
</div>
</content>
</entry>
<entry>
<title>[SPIRV][HLSL] Add DXC compatibility option for extension (#151554)</title>
<updated>2025-08-21T14:43:29+00:00</updated>
<author>
<name>Steven Perron</name>
<email>stevenperron@google.com</email>
</author>
<published>2025-08-21T14:43:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a53e73e6efb4cfe0440b7b35496c0c72b3ae6c4f'/>
<id>a53e73e6efb4cfe0440b7b35496c0c72b3ae6c4f</id>
<content type='text'>
The default behaviour in DXC is to allow all extesions the compiler
knows about. We did the same in clang: all extensions that clang knows
about. However, this causes the shader to use different extensions
because the two compilers have different sets of extensions.

To avoid using a new extension when moving from DXC to Clang, we add the
special DXC suboptions to `-fspv-extension`. If `-fspv-extension=DXC` is
used, then the available extensions will be those available in DXC.

---------

Co-authored-by: Chris B &lt;beanz@abolishcrlf.org&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The default behaviour in DXC is to allow all extesions the compiler
knows about. We did the same in clang: all extensions that clang knows
about. However, this causes the shader to use different extensions
because the two compilers have different sets of extensions.

To avoid using a new extension when moving from DXC to Clang, we add the
special DXC suboptions to `-fspv-extension`. If `-fspv-extension=DXC` is
used, then the available extensions will be those available in DXC.

---------

Co-authored-by: Chris B &lt;beanz@abolishcrlf.org&gt;</pre>
</div>
</content>
</entry>
</feed>
