<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/CodeGen/ExpandVectorPredication.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>[ExpandVectorPredication] Keep the original value name when expanding predicated instructions. (#157943)</title>
<updated>2025-09-10T23:18:11+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-09-10T23:18:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8f8429540e8acb67df4e9f260326a372d2695dee'/>
<id>8f8429540e8acb67df4e9f260326a372d2695dee</id>
<content type='text'>
This makes it easier to follow a value through the pass. If we pass the
original name to the create function, a number will be added as a suffix
since the original name is still used until it is replaced.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This makes it easier to follow a value through the pass. If we pass the
original name to the create function, a number will be added as a suffix
since the original name is still used until it is replaced.</pre>
</div>
</content>
</entry>
<entry>
<title>[ExpandVectorPredication] Expand vp_merge and vp_select in expandPredication. (#157777)</title>
<updated>2025-09-10T15:50:30+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-09-10T15:50:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=397e5a457ae8458fe4687c607c75be6ede453a25'/>
<id>397e5a457ae8458fe4687c607c75be6ede453a25</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[ExpandVectorPredication] Add vp.select to foldEVLIntoMask. (#157720)</title>
<updated>2025-09-09T22:56:28+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-09-09T22:56:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2422686e4799040cf423ecb3610ce4368d5c7111'/>
<id>2422686e4799040cf423ecb3610ce4368d5c7111</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[ExpandVectorPredication] Change function returns from Value* to bool. NFC (#157199)</title>
<updated>2025-09-06T05:01:22+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-09-06T05:01:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7896ee70b7a4e638c018942524f618efaafd2b3b'/>
<id>7896ee70b7a4e638c018942524f618efaafd2b3b</id>
<content type='text'>
None of the callers do anything with the pointer other than check for
null or equality. We can use bool to accomplish the same thing.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
None of the callers do anything with the pointer other than check for
null or equality. We can use bool to accomplish the same thing.</pre>
</div>
</content>
</entry>
<entry>
<title>[ExpandVectorPredication] Support vp.merge in foldEVLIntoMask. (#157195)</title>
<updated>2025-09-06T05:00:55+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-09-06T05:00:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0335eba6e8d3c03f65d770cb9cfd38ae85868341'/>
<id>0335eba6e8d3c03f65d770cb9cfd38ae85868341</id>
<content type='text'>
Partial fix for #157184. It still crashes later in SelectionDAG.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Partial fix for #157184. It still crashes later in SelectionDAG.</pre>
</div>
</content>
</entry>
<entry>
<title>[ExpandVectorPredication] Use IRBuilder::CreateNUWMul instead of passing flags to CreateMul. NFC</title>
<updated>2025-08-19T22:31:15+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-08-19T22:27:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=58c41b74911c674d3dc78b2be82419bc1fd9b237'/>
<id>58c41b74911c674d3dc78b2be82419bc1fd9b237</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][LLVM] Refactor IRBuilder::Create{VScale,ElementCount,TypeSize}. (#142803)</title>
<updated>2025-06-10T11:35:59+00:00</updated>
<author>
<name>Paul Walker</name>
<email>paul.walker@arm.com</email>
</author>
<published>2025-06-10T11:35:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f43aaf90df6153f39c6cfd3471fec5dea1a0b650'/>
<id>f43aaf90df6153f39c6cfd3471fec5dea1a0b650</id>
<content type='text'>
CreateVScale took a scaling parameter that had a single use outside of
IRBuilder with all other callers having to create a redundant
ConstantInt. To work round this some code perferred to use
CreateIntrinsic directly.

This patch simplifies CreateVScale to return a call to the llvm.vscale()
intrinsic and nothing more. As well as simplifying the existing call
sites I've also migrated the uses of CreateIntrinsic.

Whilst IRBuilder used CreateVScale's scaling parameter as part of the
implementations of CreateElementCount and CreateTypeSize, I have
follow-on work to switch them to the NUW varaiety and thus they would
stop using CreateVScale's scaling as well. To prepare for this I have
moved the multiplication and constant folding into the implementations
of CreateElementCount and CreateTypeSize.

As a final step I have replaced some callers of CreateVScale with
CreateElementCount where it's clear from the code they wanted the
latter.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
CreateVScale took a scaling parameter that had a single use outside of
IRBuilder with all other callers having to create a redundant
ConstantInt. To work round this some code perferred to use
CreateIntrinsic directly.

This patch simplifies CreateVScale to return a call to the llvm.vscale()
intrinsic and nothing more. As well as simplifying the existing call
sites I've also migrated the uses of CreateIntrinsic.

Whilst IRBuilder used CreateVScale's scaling parameter as part of the
implementations of CreateElementCount and CreateTypeSize, I have
follow-on work to switch them to the NUW varaiety and thus they would
stop using CreateVScale's scaling as well. To prepare for this I have
moved the multiplication and constant folding into the implementations
of CreateElementCount and CreateTypeSize.

As a final step I have replaced some callers of CreateVScale with
CreateElementCount where it's clear from the code they wanted the
latter.</pre>
</div>
</content>
</entry>
<entry>
<title>[Intrinsics] Add Intrinsic::getFnAttributes() (NFC) (#132029)</title>
<updated>2025-03-20T08:20:39+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-03-20T08:20:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0738f706151b41063d09b2dc349cabd471b2476e'/>
<id>0738f706151b41063d09b2dc349cabd471b2476e</id>
<content type='text'>
Most places that call Intrinsic::getAttributes() are only interested in
the function attributes, so add a separate function for that.

The motivation for this is that I'd like to add the ability to specify
range attributes on intrinsics, which requires knowing the function
type. This avoids needing to know the type for most attribute queries.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Most places that call Intrinsic::getAttributes() are only interested in
the function attributes, so add a separate function for that.

The motivation for this is that I'd like to add the ability to specify
range attributes on intrinsics, which requires knowing the function
type. This avoids needing to know the type for most attribute queries.</pre>
</div>
</content>
</entry>
<entry>
<title>[VP] Remove createStepVector implementation and use IRBuilderBase::CreateStepVector instead. NFC (#122868)</title>
<updated>2025-01-16T02:49:49+00:00</updated>
<author>
<name>LiqinWeng</name>
<email>liqin.weng@spacemit.com</email>
</author>
<published>2025-01-16T02:49:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ef77188fa85728b07059b5f42b92236998d25b19'/>
<id>ef77188fa85728b07059b5f42b92236998d25b19</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[VP] IR expansion to Int Func Call (#122867)</title>
<updated>2025-01-16T02:12:29+00:00</updated>
<author>
<name>LiqinWeng</name>
<email>liqin.weng@spacemit.com</email>
</author>
<published>2025-01-16T02:12:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d2484127cd27184b373b6be71da87579b8659143'/>
<id>d2484127cd27184b373b6be71da87579b8659143</id>
<content type='text'>
Add basic handling for VP ops that can expand to Int intrinsics, which
includes: ctpop/cttz/ctlz/sadd.sat/uadd.sat/ssub.sat/usub.sat/fshl/fshr</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add basic handling for VP ops that can expand to Int intrinsics, which
includes: ctpop/cttz/ctlz/sadd.sat/uadd.sat/ssub.sat/usub.sat/fshl/fshr</pre>
</div>
</content>
</entry>
</feed>
