<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/test/Transforms/LoopVectorize/outer_loop_scalable.ll, branch users/nico/python-2</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>[LLVM][IRBuilder] Use NUW arithmetic for Create{ElementCount,TypeSize}. (#143532)</title>
<updated>2025-06-19T12:24:39+00:00</updated>
<author>
<name>Paul Walker</name>
<email>paul.walker@arm.com</email>
</author>
<published>2025-06-19T12:24:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e478a22d540d336632fb3c110c5377447cd7f3b2'/>
<id>e478a22d540d336632fb3c110c5377447cd7f3b2</id>
<content type='text'>
This put the onus on the caller to ensure the result type is big enough.
In the unlikely event a cropped result is required then explicitly
truncate a safe value.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This put the onus on the caller to ensure the result type is big enough.
In the unlikely event a cropped result is required then explicitly
truncate a safe value.</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Omit zero add in VPWidenIntOrFpInductionRecipe (#119668)</title>
<updated>2024-12-16T03:55:48+00:00</updated>
<author>
<name>Luke Lau</name>
<email>luke@igalia.com</email>
</author>
<published>2024-12-16T03:55:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4746395bd75bc234dfd026bad672613b99e87e7a'/>
<id>4746395bd75bc234dfd026bad672613b99e87e7a</id>
<content type='text'>
I'm not sure if getStepVector was used for other things in the past
where StartIdx was non-zero, but nowadays VPWidenIntOrFpInductionRecipe
is the only user of it, and just passes zero to it. I presume
InstCombine was already catching this so hopefully removing this won't
affect codegen.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
I'm not sure if getStepVector was used for other things in the past
where StartIdx was non-zero, but nowadays VPWidenIntOrFpInductionRecipe
is the only user of it, and just passes zero to it. I presume
InstCombine was already catching this so hopefully removing this won't
affect codegen.</pre>
</div>
</content>
</entry>
<entry>
<title>[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)</title>
<updated>2024-11-21T11:21:12+00:00</updated>
<author>
<name>Paul Walker</name>
<email>paul.walker@arm.com</email>
</author>
<published>2024-11-21T11:21:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=56c091ea7106507b36015297ee9005c9d5fab0bf'/>
<id>56c091ea7106507b36015297ee9005c9d5fab0bf</id>
<content type='text'>
This brings the printing of scalable vector constant splats inline with
their fixed length counterparts.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This brings the printing of scalable vector constant splats inline with
their fixed length counterparts.</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Add VPValue for VF, use it for VPWidenIntOrFpInductionRecipe. (#95305)</title>
<updated>2024-09-10T09:41:35+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2024-09-10T09:41:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a794ee455999ed02671808c2c0ef08d753e811a1'/>
<id>a794ee455999ed02671808c2c0ef08d753e811a1</id>
<content type='text'>
Similar to VFxUF, also add a VF VPValue to VPlan and use it to get the
runtime VF in VPWidenIntOrFpInductionRecipe. Code for VF is only
generated if there are users of VF, to avoid unnecessary test changes.

PR: https://github.com/llvm/llvm-project/pull/95305</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Similar to VFxUF, also add a VF VPValue to VPlan and use it to get the
runtime VF in VPWidenIntOrFpInductionRecipe. Code for VF is only
generated if there are users of VF, to avoid unnecessary test changes.

PR: https://github.com/llvm/llvm-project/pull/95305</pre>
</div>
</content>
</entry>
<entry>
<title>Move stepvector intrinsic out of experimental namespace (#98043)</title>
<updated>2024-08-28T11:48:20+00:00</updated>
<author>
<name>Maciej Gabka</name>
<email>maciej.gabka@arm.com</email>
</author>
<published>2024-08-28T11:48:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=95d2d1cba0e1428718bbdce0504292f62b212920'/>
<id>95d2d1cba0e1428718bbdce0504292f62b212920</id>
<content type='text'>
This patch is moving out stepvector intrinsic from the experimental
namespace.

This intrinsic exists in LLVM for several years now, and is widely used.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch is moving out stepvector intrinsic from the experimental
namespace.

This intrinsic exists in LLVM for several years now, and is widely used.</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Run VPlan optimizations on plans in native path.</title>
<updated>2024-08-15T12:05:51+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2024-08-15T12:05:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=42555cdba48b7d6d27c9a7d5c730733e66dec9a1'/>
<id>42555cdba48b7d6d27c9a7d5c730733e66dec9a1</id>
<content type='text'>
Update buildVPlans (used in native path) to also run general VPlan
optimizations in another small step to align both codepaths.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update buildVPlans (used in native path) to also run general VPlan
optimizations in another small step to align both codepaths.
</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Update HCFG builder after 72937203dd3b to fix leak.</title>
<updated>2024-07-09T14:28:43+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2024-07-09T14:28:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7346e7cc476143486f87fdd013a56ee9ea7a7c81'/>
<id>7346e7cc476143486f87fdd013a56ee9ea7a7c81</id>
<content type='text'>
Update buildPlainCFG to re-use the vector and latch VPBBs created as
part of the initial skeleton in 72937203dd3b.

This should fix the leak sanitizer failure discovered by
https://lab.llvm.org/buildbot/#/builders/52/builds/619.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Update buildPlainCFG to re-use the vector and latch VPBBs created as
part of the initial skeleton in 72937203dd3b.

This should fix the leak sanitizer failure discovered by
https://lab.llvm.org/buildbot/#/builders/52/builds/619.
</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Initial modeling of VF * UF as VPValue. (#74761)</title>
<updated>2023-12-08T18:30:30+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2023-12-08T18:30:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a5891fa4d2b76cf9dec96da9ded59fc4937d3342'/>
<id>a5891fa4d2b76cf9dec96da9ded59fc4937d3342</id>
<content type='text'>
This patch starts initial modeling of VF * UF in VPlan.
Initially, introduce a dedicated VFxUF VPValue, which is then
populated during VPlan::prepareToExecute. Initially, the VF * UF
applies only to the main vector loop region. Once we extend the
scope of VPlan in the future, we may want to associate different VFxUFs
with different vector loop regions (e.g. the epilogue vector loop)

This allows explicitly parameterizing recipes that rely on the
VF * UF, like the canonical induction increment. At the moment, this
mainly helps to avoid generating some duplicated calls to vscale with
scalable vectors. It should also allow using EVL as induction increments
explicitly in D99750. Referring to VF * UF is also needed in other
places that we plan to migrate to VPlan, like the minimum trip count
check during skeleton creation.

The first version creates the value for VF * UF directly in
prepareToExecute to limit the scope of the patch. A follow-on patch will
model VF * UF computation explicitly in VPlan using recipes.

Moved from Phabricator (https://reviews.llvm.org/D157322)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch starts initial modeling of VF * UF in VPlan.
Initially, introduce a dedicated VFxUF VPValue, which is then
populated during VPlan::prepareToExecute. Initially, the VF * UF
applies only to the main vector loop region. Once we extend the
scope of VPlan in the future, we may want to associate different VFxUFs
with different vector loop regions (e.g. the epilogue vector loop)

This allows explicitly parameterizing recipes that rely on the
VF * UF, like the canonical induction increment. At the moment, this
mainly helps to avoid generating some duplicated calls to vscale with
scalable vectors. It should also allow using EVL as induction increments
explicitly in D99750. Referring to VF * UF is also needed in other
places that we plan to migrate to VPlan, like the minimum trip count
check during skeleton creation.

The first version creates the value for VF * UF directly in
prepareToExecute to limit the scope of the patch. A follow-on patch will
model VF * UF computation explicitly in VPlan using recipes.

Moved from Phabricator (https://reviews.llvm.org/D157322)</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Compute scalable VF in preheader for induction increment. (#74762)</title>
<updated>2023-12-08T12:18:31+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2023-12-08T12:18:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5ea6a3fc6d64d593f447e306c3a9d39e9924ea58'/>
<id>5ea6a3fc6d64d593f447e306c3a9d39e9924ea58</id>
<content type='text'>
UF * VF is loop invariant and can be computed directly in the preheader.
This prepares the code for #74761 and reduces the test changes.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
UF * VF is loop invariant and can be computed directly in the preheader.
This prepares the code for #74761 and reduces the test changes.</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Support scalable vectors in outer-loop vectorization</title>
<updated>2023-10-20T22:17:35+00:00</updated>
<author>
<name>Lou Knauer</name>
<email>lou.knauer@sipearl.com</email>
</author>
<published>2023-10-20T22:17:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=852bac4439010a479fb141942f2d3f1ff503996f'/>
<id>852bac4439010a479fb141942f2d3f1ff503996f</id>
<content type='text'>
This patch enables scalable vectors in the VPlan-native path.
If a vectorization factor is specified via loop vectorization hints,
that factor is used. If no vectorization factor is specified, but the
target preferes scalable vectorization, a scalable vectorization factor
is selected.

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D157484
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch enables scalable vectors in the VPlan-native path.
If a vectorization factor is specified via loop vectorization hints,
that factor is used. If no vectorization factor is specified, but the
target preferes scalable vectorization, a scalable vectorization factor
is selected.

Reviewed By: fhahn

Differential Revision: https://reviews.llvm.org/D157484
</pre>
</div>
</content>
</entry>
</feed>
