<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/test/Transforms/LoopVectorize/iv-select-cmp.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>[LV] Extend FindLastIV to unsigned case (#141752)</title>
<updated>2025-06-23T14:27:49+00:00</updated>
<author>
<name>Ramkumar Ramachandra</name>
<email>ramkumar.ramachandra@codasip.com</email>
</author>
<published>2025-06-23T14:27:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bb8c42e859871aaf6bbec78dee28f124d47348dd'/>
<id>bb8c42e859871aaf6bbec78dee28f124d47348dd</id>
<content type='text'>
Split the FindLastIV RecurKind into SMax and UMax variants, depending on
the reduction op produced.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Split the FindLastIV RecurKind into SMax and UMax variants, depending on
the reduction op produced.</pre>
</div>
</content>
</entry>
<entry>
<title>[LV] Re-org tests; introduce iv-select-cmp-decreasing.ll (#141769)</title>
<updated>2025-06-03T17:13:51+00:00</updated>
<author>
<name>Ramkumar Ramachandra</name>
<email>ramkumar.ramachandra@codasip.com</email>
</author>
<published>2025-06-03T17:13:51+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=86f18d394ec6ac6e3d884d93341c97739815f498'/>
<id>86f18d394ec6ac6e3d884d93341c97739815f498</id>
<content type='text'>
Having FindFirstIV tests in if-reduction.ll is misleading, and
iv-select-cmp.ll is already too large.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Having FindFirstIV tests in if-reduction.ll is misleading, and
iv-select-cmp.ll is already too large.</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Generalize SCALAR-STEPS removal to any unroll factor.</title>
<updated>2025-03-26T21:03:50+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2025-03-26T21:03:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=2c7d40b2f0c5e68e90297b605ceb70c55d201bca'/>
<id>2c7d40b2f0c5e68e90297b605ceb70c55d201bca</id>
<content type='text'>
Follow-up to dfca6c0d3bf9d1a056 to extend isUnrolled handle any unrolled
VPlan, which means there's a single UF, but it will be &gt; 1 if unrolling
took place.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Follow-up to dfca6c0d3bf9d1a056 to extend isUnrolled handle any unrolled
VPlan, which means there's a single UF, but it will be &gt; 1 if unrolling
took place.
</pre>
</div>
</content>
</entry>
<entry>
<title>[VPlan] Remove no-op SCALAR-STEPS after unrolling. (#123655)</title>
<updated>2025-03-25T12:57:24+00:00</updated>
<author>
<name>Florian Hahn</name>
<email>flo@fhahn.com</email>
</author>
<published>2025-03-25T12:57:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=dfca6c0d3bf9d1a0565b3ff46813ddd66bd493e9'/>
<id>dfca6c0d3bf9d1a0565b3ff46813ddd66bd493e9</id>
<content type='text'>
After unrolling, there may be additional simplifications that can be
applied. One example is removing SCALAR-STEPS for the first part where
only the first lane is demanded.

This removes redundant adds of 0 from a large number of tests (~200),
many which I am still working on updating.

In preparation for removing redundant WideIV steps added in
https://github.com/llvm/llvm-project/pull/119284.

PR: https://github.com/llvm/llvm-project/pull/123655</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
After unrolling, there may be additional simplifications that can be
applied. One example is removing SCALAR-STEPS for the first part where
only the first lane is demanded.

This removes redundant adds of 0 from a large number of tests (~200),
many which I am still working on updating.

In preparation for removing redundant WideIV steps added in
https://github.com/llvm/llvm-project/pull/119284.

PR: https://github.com/llvm/llvm-project/pull/123655</pre>
</div>
</content>
</entry>
<entry>
<title>[LoopVectorize] Vectorize select-cmp reduction pattern for increasing integer induction variable (#67812)</title>
<updated>2024-12-12T08:48:31+00:00</updated>
<author>
<name>Mel Chen</name>
<email>mel.chen@sifive.com</email>
</author>
<published>2024-12-12T08:48:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=b3cba9be41bfa89bc0ec212706c6028a901e127a'/>
<id>b3cba9be41bfa89bc0ec212706c6028a901e127a</id>
<content type='text'>
Consider the following loop:
```
  int rdx = init;
  for (int i = 0; i &lt; n; ++i)
    rdx = (a[i] &gt; b[i]) ? i : rdx;
```
We can vectorize this loop if `i` is an increasing induction variable.
The final reduced value will be the maximum of `i` that the condition
`a[i] &gt; b[i]` is satisfied, or the start value `init`.

This patch added new RecurKind enums - IFindLastIV and FFindLastIV.

---------

Co-authored-by: Alexey Bataev &lt;5361294+alexey-bataev@users.noreply.github.com&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Consider the following loop:
```
  int rdx = init;
  for (int i = 0; i &lt; n; ++i)
    rdx = (a[i] &gt; b[i]) ? i : rdx;
```
We can vectorize this loop if `i` is an increasing induction variable.
The final reduced value will be the maximum of `i` that the condition
`a[i] &gt; b[i]` is satisfied, or the start value `init`.

This patch added new RecurKind enums - IFindLastIV and FFindLastIV.

---------

Co-authored-by: Alexey Bataev &lt;5361294+alexey-bataev@users.noreply.github.com&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[LV][NFC] Auto-generate the test cases related to FindLastIV idioms. (#117560)</title>
<updated>2024-11-26T06:13:59+00:00</updated>
<author>
<name>Mel Chen</name>
<email>mel.chen@sifive.com</email>
</author>
<published>2024-11-26T06:13:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=90f5c8b790d8a57eab49320e77d6ce11c6c2d36f'/>
<id>90f5c8b790d8a57eab49320e77d6ce11c6c2d36f</id>
<content type='text'>
Pre-commit for #67812</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Pre-commit for #67812</pre>
</div>
</content>
</entry>
<entry>
<title>[LV][NFC] Move and add truncated-related FindLastIV reduction test cases. (#67674)</title>
<updated>2023-09-29T14:18:32+00:00</updated>
<author>
<name>Mel Chen</name>
<email>mel.chen@sifive.com</email>
</author>
<published>2023-09-29T14:18:32+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ab9cd27fa4338b76c0288802d97e261cf3e966b7'/>
<id>ab9cd27fa4338b76c0288802d97e261cf3e966b7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[LV][NFC] Remove unnecessary parameter attributes from the test cases. (#67630)</title>
<updated>2023-09-28T13:15:34+00:00</updated>
<author>
<name>Mel Chen</name>
<email>mel.chen@sifive.com</email>
</author>
<published>2023-09-28T13:15:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=707686b0fc5197bc70d48cd754c4a0a5f4eb4155'/>
<id>707686b0fc5197bc70d48cd754c4a0a5f4eb4155</id>
<content type='text'>
The vectorization of the FindLastIV reduction does not depend on the
nocapture and readonly attributes.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The vectorization of the FindLastIV reduction does not depend on the
nocapture and readonly attributes.</pre>
</div>
</content>
</entry>
<entry>
<title>LoopVectorize/iv-select-cmp: comment out-of-bound tests (NFC)</title>
<updated>2023-09-25T13:02:19+00:00</updated>
<author>
<name>Ramkumar Ramachandra</name>
<email>Ramkumar.Ramachandra@imgtec.com</email>
</author>
<published>2023-09-25T12:58:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ad415e3095a73be5837f3ea4f9ad1f8d190794e2'/>
<id>ad415e3095a73be5837f3ea4f9ad1f8d190794e2</id>
<content type='text'>
To help future contributors understand a couple of mysterious
out-of-bound tests, add a brief comment to each.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
To help future contributors understand a couple of mysterious
out-of-bound tests, add a brief comment to each.
</pre>
</div>
</content>
</entry>
<entry>
<title>LoopVectorize/iv-select-cmp: add test for decreasing IV out-of-bound</title>
<updated>2023-09-25T12:20:11+00:00</updated>
<author>
<name>Ramkumar Ramachandra</name>
<email>Ramkumar.Ramachandra@imgtec.com</email>
</author>
<published>2023-08-15T12:08:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ef48e90489dc219568f46a9c36da80adfb759ad7'/>
<id>ef48e90489dc219568f46a9c36da80adfb759ad7</id>
<content type='text'>
The most straightforward extension to D150851 would involve handling the
decreasing IV case, for which tests have been added in 110ec1863a
(LoopVectorize/iv-select-cmp: add test for decreasing IV, const start).
However, the commit missed a testcase for the out-of-bound sentinel
value LONG_MAX, which should not be vectorized. Fix this by adding a
test corresponding to the following program:

  long test(long *a) {
    long rdx = 331;
    for (long i = LONG_MAX; i &gt;= 0; i--) {
      if (a[i] &gt; 3)
        rdx = i;
    }
    return rdx;
  }

Differential Revision: https://reviews.llvm.org/D157969
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The most straightforward extension to D150851 would involve handling the
decreasing IV case, for which tests have been added in 110ec1863a
(LoopVectorize/iv-select-cmp: add test for decreasing IV, const start).
However, the commit missed a testcase for the out-of-bound sentinel
value LONG_MAX, which should not be vectorized. Fix this by adding a
test corresponding to the following program:

  long test(long *a) {
    long rdx = 331;
    for (long i = LONG_MAX; i &gt;= 0; i--) {
      if (a[i] &gt; 3)
        rdx = i;
    }
    return rdx;
  }

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