<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/clang/lib/CodeGen/TargetBuiltins/NVPTX.cpp, branch users/nico/python-1</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>Reland "[NVPTX] Unify and extend barrier{.cta} intrinsic support" (#141143)</title>
<updated>2025-05-23T02:38:10+00:00</updated>
<author>
<name>Alex MacLean</name>
<email>amaclean@nvidia.com</email>
</author>
<published>2025-05-23T02:38:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3a84a4e55d896e573fe175f34c793b0c294dec6b'/>
<id>3a84a4e55d896e573fe175f34c793b0c294dec6b</id>
<content type='text'>
Note: This relands #140615 adding a ".count" suffix to the non-".all"
variants.

Our current intrinsic support for barrier intrinsics is confusing and
incomplete, with multiple intrinsics mapping to the same instruction and
intrinsic names not clearly conveying intrinsic semantics. Further, we
lack support for some variants. This change unifies the IR
representation to a single consistently named set of intrinsics.

- llvm.nvvm.barrier.cta.sync.aligned.all(i32)
- llvm.nvvm.barrier.cta.sync.aligned.count(i32, i32)
- llvm.nvvm.barrier.cta.arrive.aligned.count(i32, i32)
- llvm.nvvm.barrier.cta.sync.all(i32)
- llvm.nvvm.barrier.cta.sync.count(i32, i32)
- llvm.nvvm.barrier.cta.arrive.count(i32, i32)

The following Auto-Upgrade rules are used to maintain compatibility with
IR using the legacy intrinsics:

* llvm.nvvm.barrier0 --&gt; llvm.nvvm.barrier.cta.sync.aligned.all(0)
* llvm.nvvm.barrier.n --&gt; llvm.nvvm.barrier.cta.sync.aligned.all(x)
* llvm.nvvm.bar.sync --&gt; llvm.nvvm.barrier.cta.sync.aligned.all(x)
* llvm.nvvm.barrier --&gt; llvm.nvvm.barrier.cta.sync.aligned.count(x, y)
* llvm.nvvm.barrier.sync --&gt; llvm.nvvm.barrier.cta.sync.all(x)
* llvm.nvvm.barrier.sync.cnt --&gt; llvm.nvvm.barrier.cta.sync.count(x, y)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Note: This relands #140615 adding a ".count" suffix to the non-".all"
variants.

Our current intrinsic support for barrier intrinsics is confusing and
incomplete, with multiple intrinsics mapping to the same instruction and
intrinsic names not clearly conveying intrinsic semantics. Further, we
lack support for some variants. This change unifies the IR
representation to a single consistently named set of intrinsics.

- llvm.nvvm.barrier.cta.sync.aligned.all(i32)
- llvm.nvvm.barrier.cta.sync.aligned.count(i32, i32)
- llvm.nvvm.barrier.cta.arrive.aligned.count(i32, i32)
- llvm.nvvm.barrier.cta.sync.all(i32)
- llvm.nvvm.barrier.cta.sync.count(i32, i32)
- llvm.nvvm.barrier.cta.arrive.count(i32, i32)

The following Auto-Upgrade rules are used to maintain compatibility with
IR using the legacy intrinsics:

* llvm.nvvm.barrier0 --&gt; llvm.nvvm.barrier.cta.sync.aligned.all(0)
* llvm.nvvm.barrier.n --&gt; llvm.nvvm.barrier.cta.sync.aligned.all(x)
* llvm.nvvm.bar.sync --&gt; llvm.nvvm.barrier.cta.sync.aligned.all(x)
* llvm.nvvm.barrier --&gt; llvm.nvvm.barrier.cta.sync.aligned.count(x, y)
* llvm.nvvm.barrier.sync --&gt; llvm.nvvm.barrier.cta.sync.all(x)
* llvm.nvvm.barrier.sync.cnt --&gt; llvm.nvvm.barrier.cta.sync.count(x, y)</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[NVPTX] Unify and extend barrier{.cta} intrinsic support (#140615)"</title>
<updated>2025-05-22T17:28:43+00:00</updated>
<author>
<name>Alex Maclean</name>
<email>amaclean@nvidia.com</email>
</author>
<published>2025-05-22T17:28:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e72d8b25531cb5a4fd1e802bac8c9aa6efee0aa1'/>
<id>e72d8b25531cb5a4fd1e802bac8c9aa6efee0aa1</id>
<content type='text'>
This reverts commit 735209c0688b10a66c24750422b35d8c2ad01bb5.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 735209c0688b10a66c24750422b35d8c2ad01bb5.
</pre>
</div>
</content>
</entry>
<entry>
<title>[NVPTX] Unify and extend barrier{.cta} intrinsic support (#140615)</title>
<updated>2025-05-21T15:14:15+00:00</updated>
<author>
<name>Alex MacLean</name>
<email>amaclean@nvidia.com</email>
</author>
<published>2025-05-21T15:14:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=735209c0688b10a66c24750422b35d8c2ad01bb5'/>
<id>735209c0688b10a66c24750422b35d8c2ad01bb5</id>
<content type='text'>
Our current intrinsic support for barrier intrinsics is confusing and
incomplete, with multiple intrinsics mapping to the same instruction and
intrinsic names not clearly conveying intrinsic semantics. Further, we
lack support for some variants. This change unifies the IR
representation to a single consistently named set of intrinsics.

- llvm.nvvm.barrier.cta.sync.aligned.all(i32)
- llvm.nvvm.barrier.cta.sync.aligned(i32, i32)
- llvm.nvvm.barrier.cta.arrive.aligned(i32, i32)
- llvm.nvvm.barrier.cta.sync.all(i32)
- llvm.nvvm.barrier.cta.sync(i32, i32)
- llvm.nvvm.barrier.cta.arrive(i32, i32)

The following Auto-Upgrade rules are used to maintain compatibility with
IR using the legacy intrinsics:

* llvm.nvvm.barrier0 --&gt; llvm.nvvm.barrier.cta.sync.aligned.all(0)
* llvm.nvvm.barrier.n --&gt; llvm.nvvm.barrier.cta.sync.aligned.all(x)
* llvm.nvvm.bar.sync --&gt; llvm.nvvm.barrier.cta.sync.aligned.all(x)
* llvm.nvvm.barrier --&gt; llvm.nvvm.barrier.cta.sync.aligned(x, y)
* llvm.nvvm.barrier.sync --&gt; llvm.nvvm.barrier.cta.sync.all(x)
* llvm.nvvm.barrier.sync.cnt --&gt; llvm.nvvm.barrier.cta.sync(x, y)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Our current intrinsic support for barrier intrinsics is confusing and
incomplete, with multiple intrinsics mapping to the same instruction and
intrinsic names not clearly conveying intrinsic semantics. Further, we
lack support for some variants. This change unifies the IR
representation to a single consistently named set of intrinsics.

- llvm.nvvm.barrier.cta.sync.aligned.all(i32)
- llvm.nvvm.barrier.cta.sync.aligned(i32, i32)
- llvm.nvvm.barrier.cta.arrive.aligned(i32, i32)
- llvm.nvvm.barrier.cta.sync.all(i32)
- llvm.nvvm.barrier.cta.sync(i32, i32)
- llvm.nvvm.barrier.cta.arrive(i32, i32)

The following Auto-Upgrade rules are used to maintain compatibility with
IR using the legacy intrinsics:

* llvm.nvvm.barrier0 --&gt; llvm.nvvm.barrier.cta.sync.aligned.all(0)
* llvm.nvvm.barrier.n --&gt; llvm.nvvm.barrier.cta.sync.aligned.all(x)
* llvm.nvvm.bar.sync --&gt; llvm.nvvm.barrier.cta.sync.aligned.all(x)
* llvm.nvvm.barrier --&gt; llvm.nvvm.barrier.cta.sync.aligned(x, y)
* llvm.nvvm.barrier.sync --&gt; llvm.nvvm.barrier.cta.sync.all(x)
* llvm.nvvm.barrier.sync.cnt --&gt; llvm.nvvm.barrier.cta.sync(x, y)</pre>
</div>
</content>
</entry>
<entry>
<title>[NVPTX] Cleanup and document nvvm.fabs intrinsics, adding f16 support (#135644)</title>
<updated>2025-04-17T14:37:24+00:00</updated>
<author>
<name>Alex MacLean</name>
<email>amaclean@nvidia.com</email>
</author>
<published>2025-04-17T14:37:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7daa5010ab6a2ae77ac88ffd84e2cc37a2e11faa'/>
<id>7daa5010ab6a2ae77ac88ffd84e2cc37a2e11faa</id>
<content type='text'>
This change unifies the NVVM intrinsics for floating point absolute
value into two new overloaded intrinsics "llvm.nvvm.fabs.*" and
"llvm.nvvm.fabs.ftz.*". Documentation has been added specifying the
semantics of these intrinsics to clarify how they differ from
"llvm.fabs.*". In addition, support for these new intrinsics is
extended to cover the f16 variants.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This change unifies the NVVM intrinsics for floating point absolute
value into two new overloaded intrinsics "llvm.nvvm.fabs.*" and
"llvm.nvvm.fabs.ftz.*". Documentation has been added specifying the
semantics of these intrinsics to clarify how they differ from
"llvm.fabs.*". In addition, support for these new intrinsics is
extended to cover the f16 variants.</pre>
</div>
</content>
</entry>
<entry>
<title>[NVPTX] Auto-Upgrade llvm.nvvm.atomic.load.{inc,dec}.32 (#134111)</title>
<updated>2025-04-08T20:44:11+00:00</updated>
<author>
<name>Alex MacLean</name>
<email>amaclean@nvidia.com</email>
</author>
<published>2025-04-08T20:44:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a6853cd9af40eb330b9aec9762093be077e02f6c'/>
<id>a6853cd9af40eb330b9aec9762093be077e02f6c</id>
<content type='text'>
These intrinsics can be upgrade to an atomicrmw instruction.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These intrinsics can be upgrade to an atomicrmw instruction.</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][clang] Remove superfluous header files after refactor in #132252 (#132495)</title>
<updated>2025-03-26T14:45:00+00:00</updated>
<author>
<name>Jonathan Thackray</name>
<email>jonathan.thackray@arm.com</email>
</author>
<published>2025-03-26T14:45:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a1a74c9e80f983c01587bb86523e4e8b83e87d42'/>
<id>a1a74c9e80f983c01587bb86523e4e8b83e87d42</id>
<content type='text'>
Remove superfluous header files after refactor in #132252</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Remove superfluous header files after refactor in #132252</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][clang] Split clang/lib/CodeGen/CGBuiltin.cpp into target-specific files (#132252)</title>
<updated>2025-03-21T19:09:39+00:00</updated>
<author>
<name>Jonathan Thackray</name>
<email>jonathan.thackray@arm.com</email>
</author>
<published>2025-03-21T19:09:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7f920e2e5f70b25c79adbc0b1005b1d1286d4681'/>
<id>7f920e2e5f70b25c79adbc0b1005b1d1286d4681</id>
<content type='text'>
clang/lib/CodeGen/CGBuiltin.cpp is over 1MB long (&gt;23k LoC), and can
take minutes to recompile (depending on compiler and host system) when
modified, and 5 seconds for clangd to update for every edit. Splitting
this file was discussed in this thread:

   https://discourse.llvm.org/t/splitting-clang-s-cgbuiltin-cpp-over-23k-lines-long-takes-1min-to-compile/

and the idea has received a number of +1 votes, hence this change.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
clang/lib/CodeGen/CGBuiltin.cpp is over 1MB long (&gt;23k LoC), and can
take minutes to recompile (depending on compiler and host system) when
modified, and 5 seconds for clangd to update for every edit. Splitting
this file was discussed in this thread:

   https://discourse.llvm.org/t/splitting-clang-s-cgbuiltin-cpp-over-23k-lines-long-takes-1min-to-compile/

and the idea has received a number of +1 votes, hence this change.</pre>
</div>
</content>
</entry>
</feed>
