<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Target/SPIRV/SPIRVModuleAnalysis.cpp, branch users/ojhunt/ptrauth-additions</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>[SPIR-V] Add capability for non-uniform indexing for  `StructuredBuffer` types. (#163424)</title>
<updated>2025-10-17T21:17:09+00:00</updated>
<author>
<name>Lucie Choi</name>
<email>ychoi0407@gmail.com</email>
</author>
<published>2025-10-17T21:17:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=62f91152fbb3b0a0f581e18a923ee0aec3f77ebd'/>
<id>62f91152fbb3b0a0f581e18a923ee0aec3f77ebd</id>
<content type='text'>
- Capability `StorageBufferArrayNonUniformIndexing` is required if the
non-uniform index accesses "arrays in the StorageBuffer [storage
class](https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#Storage_Class)
or
BufferBlock-[decorated](https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#Decoration)
arrays." (e.g. `RWStructuredBuffer`, `StructuredBuffer`)

- Also fix the wrong unit test name: `StructuredBufferNonUniformIdx.ll`
-&gt; `RWBufferNonUniformIdx.ll`

Resolves https://github.com/llvm/llvm-project/issues/162889
Addresses https://github.com/llvm/llvm-project/issues/161852</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- Capability `StorageBufferArrayNonUniformIndexing` is required if the
non-uniform index accesses "arrays in the StorageBuffer [storage
class](https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#Storage_Class)
or
BufferBlock-[decorated](https://registry.khronos.org/SPIR-V/specs/unified1/SPIRV.html#Decoration)
arrays." (e.g. `RWStructuredBuffer`, `StructuredBuffer`)

- Also fix the wrong unit test name: `StructuredBufferNonUniformIdx.ll`
-&gt; `RWBufferNonUniformIdx.ll`

Resolves https://github.com/llvm/llvm-project/issues/162889
Addresses https://github.com/llvm/llvm-project/issues/161852</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>[SPIR-V] Implement SPV_KHR_float_controls2 (#146941)</title>
<updated>2025-09-30T15:01:30+00:00</updated>
<author>
<name>Marcos Maronas</name>
<email>marcos.maronas@intel.com</email>
</author>
<published>2025-09-30T15:01:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ebcf025e2e84da7557350e46891125f6f34fbbfe'/>
<id>ebcf025e2e84da7557350e46891125f6f34fbbfe</id>
<content type='text'>
Implementation of
[SPV_KHR_float_controls2](https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_float_controls2.html)
extension, and corresponding tests.

Some of the tests make use of `!spirv.ExecutionMode` LLVM named
metadata. This is because some SPIR-V instructions don't have a direct
equivalent in LLVM IR, so the SPIR-V Target uses different LLVM named
metadata to convey the necessary information. Below, you will find an
example from one of the newly added tests:
```
!spirv.ExecutionMode = !{!19, !20, !21, !22, !23, !24, !25, !26, !27}
!19 = !{ptr @k_float_controls_float, i32 6028, float poison, i32 131079}
!20 = !{ptr @k_float_controls_all, i32 6028, float poison, i32 131079}
!21 = !{ptr @k_float_controls_float, i32 31}
!22 = !{ptr @k_float_controls_all, i32 31}
!23 = !{ptr @k_float_controls_float, i32 4461, i32 32}
!24 = !{ptr @k_float_controls_all, i32 4461, i32 16}
!25 = !{ptr @k_float_controls_all, i32 4461, i32 32}
!26 = !{ptr @k_float_controls_all, i32 4461, i32 64}
!27 = !{ptr @k_float_controls_all, i32 4461, i32 128}
```
`!spirv.ExecutionMode` contains a list of metadata nodes, and each of
them specifies the required operands for expressing a particular
`OpExecutionMode` instruction in SPIR-V. For example, `!19 = !{ptr
@k_float_controls_float, i32 6028, float poison, i32 131079}` will be
lowered to `OpExecutionMode [[k_float_controls_float_ID]]
FPFastMathDefault [[float_type_ID]] 131079`.

---------

Co-authored-by: Dmitry Sidorov &lt;dmitry.sidorov@intel.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Implementation of
[SPV_KHR_float_controls2](https://github.khronos.org/SPIRV-Registry/extensions/KHR/SPV_KHR_float_controls2.html)
extension, and corresponding tests.

Some of the tests make use of `!spirv.ExecutionMode` LLVM named
metadata. This is because some SPIR-V instructions don't have a direct
equivalent in LLVM IR, so the SPIR-V Target uses different LLVM named
metadata to convey the necessary information. Below, you will find an
example from one of the newly added tests:
```
!spirv.ExecutionMode = !{!19, !20, !21, !22, !23, !24, !25, !26, !27}
!19 = !{ptr @k_float_controls_float, i32 6028, float poison, i32 131079}
!20 = !{ptr @k_float_controls_all, i32 6028, float poison, i32 131079}
!21 = !{ptr @k_float_controls_float, i32 31}
!22 = !{ptr @k_float_controls_all, i32 31}
!23 = !{ptr @k_float_controls_float, i32 4461, i32 32}
!24 = !{ptr @k_float_controls_all, i32 4461, i32 16}
!25 = !{ptr @k_float_controls_all, i32 4461, i32 32}
!26 = !{ptr @k_float_controls_all, i32 4461, i32 64}
!27 = !{ptr @k_float_controls_all, i32 4461, i32 128}
```
`!spirv.ExecutionMode` contains a list of metadata nodes, and each of
them specifies the required operands for expressing a particular
`OpExecutionMode` instruction in SPIR-V. For example, `!19 = !{ptr
@k_float_controls_float, i32 6028, float poison, i32 131079}` will be
lowered to `OpExecutionMode [[k_float_controls_float_ID]]
FPFastMathDefault [[float_type_ID]] 131079`.

---------

Co-authored-by: Dmitry Sidorov &lt;dmitry.sidorov@intel.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[SPIRV] Added constraint for SPV_INTEL_bindless_image extension (#160249)</title>
<updated>2025-09-28T12:52:19+00:00</updated>
<author>
<name>Ebin-McW</name>
<email>ebin.jose@multicorewareinc.com</email>
</author>
<published>2025-09-28T12:52:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0dbc1e2dff5a4ff0bdc05b310bd93d1eff9bae23'/>
<id>0dbc1e2dff5a4ff0bdc05b310bd93d1eff9bae23</id>
<content type='text'>
Added constraints related to Addressing model as specified in the
specification.
It conforms with the implementation in translator

Same as PR #160089
Solved all issues</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Added constraints related to Addressing model as specified in the
specification.
It conforms with the implementation in translator

Same as PR #160089
Solved all issues</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] Move instead of copy. (#156637)</title>
<updated>2025-09-08T12:29:30+00:00</updated>
<author>
<name>Marcos Maronas</name>
<email>marcos.maronas@intel.com</email>
</author>
<published>2025-09-08T12:29:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b5a1747c8fec1b49971d2c4e259c844a1242a7cb'/>
<id>b5a1747c8fec1b49971d2c4e259c844a1242a7cb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[SPIRV] Fix code quality issues. (#152005)</title>
<updated>2025-08-06T14:50:00+00:00</updated>
<author>
<name>Marcos Maronas</name>
<email>marcos.maronas@intel.com</email>
</author>
<published>2025-08-06T14:50:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=dfd506b9480fd99c6ee5498ee2bc7a239b255467'/>
<id>dfd506b9480fd99c6ee5498ee2bc7a239b255467</id>
<content type='text'>
Fix code quality issues reported by static analysis tool, such as:
- Rule of Three/Five.
- Dereference after null check.
- Unchecked return value.
- Variable copied when it could be moved.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix code quality issues reported by static analysis tool, such as:
- Rule of Three/Five.
- Dereference after null check.
- Unchecked return value.
- Variable copied when it could be moved.</pre>
</div>
</content>
</entry>
<entry>
<title>[SPIRV] Fix buildbot failure after #149522 (#152135)</title>
<updated>2025-08-05T13:32:13+00:00</updated>
<author>
<name>Marcos Maronas</name>
<email>marcos.maronas@intel.com</email>
</author>
<published>2025-08-05T13:32:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=fd07d90f9f95190cb3abb901ae3d98eb67b84573'/>
<id>fd07d90f9f95190cb3abb901ae3d98eb67b84573</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
