<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="/rss.xsl.xml"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
    <title>Changes in optimal-epilog-vectorization-scalable.ll</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>872f7000 - Revert &quot;[NFCI] Regenerate SROA/LoopVectorize test checks&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-scalable.ll#872f7000</link>
        <description>Revert &quot;[NFCI] Regenerate SROA/LoopVectorize test checks&quot;This reverts commit 14e3450fb57305aa9ff3e9e60687b458e43835c9.

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-scalable.ll</description>
        <pubDate>Sun, 03 Apr 2022 23:14:34 +0000</pubDate>
        <dc:creator>D&#225;vid Bolvansk&#253; &lt;david.bolvansky@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>a113a582 - [NFCI] Regenerate LoopVectorize test checks</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-scalable.ll#a113a582</link>
        <description>[NFCI] Regenerate LoopVectorize test checks

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-scalable.ll</description>
        <pubDate>Sun, 03 Apr 2022 19:55:58 +0000</pubDate>
        <dc:creator>D&#225;vid Bolvansk&#253; &lt;david.bolvansky@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>2f80ea7f - [NFC][LV] Use different braces in debug output</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-scalable.ll#2f80ea7f</link>
        <description>[NFC][LV] Use different braces in debug outputThe analysis passes output function name encapsulated in `&apos;` braces,but LV uses `&quot;`. Harmonizing this may help in creating an update scriptfor the LV costmodel test checks.Reviewed By: fhahnDifferential Revision: https://reviews.llvm.org/D121105

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-scalable.ll</description>
        <pubDate>Mon, 07 Mar 2022 12:13:10 +0000</pubDate>
        <dc:creator>Roman Lebedev &lt;lebedev.ri@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>c42bb30b - [LoopVectorize] Permit fixed-width epilogue loops for scalable vector bodies</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-scalable.ll#c42bb30b</link>
        <description>[LoopVectorize] Permit fixed-width epilogue loops for scalable vector bodiesAt the moment in LoopVectorizationCostModel::selectEpilogueVectorizationFactorwe bail out if the main vector loop uses a scalable VF. This patch addssupport for generating epilogue vector loops using a fixed-width VF when themain vector loop uses a scalable VF.I&apos;ve changed LoopVectorizationCostModel::selectEpilogueVectorizationFactorso that we convert the scalable VF into a fixed-width VF and do profitabilitychecks on that instead. In addition, since the scalable and fixed-width VFslive in different VPlans that means I had to change the calls toLVP.hasPlanWithVFs so that we only pass in the fixed-width VF.New tests added here:  Transforms/LoopVectorize/AArch64/sve-epilog-vect.llDifferential Revision: https://reviews.llvm.org/D109432

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-scalable.ll</description>
        <pubDate>Tue, 07 Sep 2021 10:20:41 +0000</pubDate>
        <dc:creator>David Sherwood &lt;david.sherwood@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>4f86aa65 - [LV] Add -scalable-vectorization=&lt;option&gt; flag.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-scalable.ll#4f86aa65</link>
        <description>[LV] Add -scalable-vectorization=&lt;option&gt; flag.This patch adds a new option to the LoopVectorizer to control howscalable vectors can be used.Initially, this suggests three levels to control scalablevectorization, although other more aggressive options can be added inthe future.The possible options are:- Disabled:   Disables vectorization with scalable vectors.- Enabled:    Vectorize loops using scalable vectors or fixed-width              vectors, but favors fixed-width vectors when the cost              is a tie.- Preferred:  Like &apos;Enabled&apos;, but favoring scalable vectors when the              cost-model is inconclusive.Reviewed By: paulwalker-arm, vkmrDifferential Revision: https://reviews.llvm.org/D101945

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-scalable.ll</description>
        <pubDate>Thu, 08 Apr 2021 11:19:44 +0000</pubDate>
        <dc:creator>Sander de Smalen &lt;sander.desmalen@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>1e7efd39 - [LV] Legalize scalable VF hints</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-scalable.ll#1e7efd39</link>
        <description>[LV] Legalize scalable VF hintsIn the following loop:  void foo(int *a, int *b, int N) {    for (int i=0; i&lt;N; ++i)      a[i + 4] = a[i] + b[i];  }The loop dependence constrains the VF to a maximum of (4, fixed), whichwould mean using &lt;4 x i32&gt; as the vector type in vectorization.Extending this to scalable vectorization, a VF of (4, scalable) impliesa vector type of &lt;vscale x 4 x i32&gt;. To determine if this is legalvscale must be taken into account. For this example, unlessmax(vscale)=1, it&apos;s unsafe to vectorize.For SVE, the number of bits in an SVE register is architecturallydefined to be a multiple of 128 bits with a maximum of 2048 bits, thusthe maximum vscale is 16. In the loop above it is therefore unfeasibleto vectorize with SVE. However, in this loop:  void foo(int *a, int *b, int N) {    #pragma clang loop vectorize_width(X, scalable)    for (int i=0; i&lt;N; ++i)      a[i + 32] = a[i] + b[i];  }As long as max(vscale) multiplied by the number of lanes &apos;X&apos; doesn&apos;texceed the dependence distance, it is safe to vectorize. For SVE a VF of(2, scalable) is within this constraint, since a vector of &lt;16 x 2 x 32&gt;will have no dependencies between lanes. For any number of lanes largerthan this it would be unsafe to vectorize.This patch extends &apos;computeFeasibleMaxVF&apos; to legalize scalable VFsspecified as loop hints, implementing the following behaviour:  * If the backend does not support scalable vectors, ignore the hint.  * If scalable vectorization is unfeasible given the loop    dependence, like in the first example above for SVE, then use a    fixed VF.  * Accept scalable VFs if it&apos;s safe to do so.  * Otherwise, clamp scalable VFs that exceed the maximum safe VF.Reviewed By: sdesmalen, fhahn, david-armDifferential Revision: https://reviews.llvm.org/D91718

            List of files:
            /llvm-project-15.0.7/llvm/test/Transforms/LoopVectorize/optimal-epilog-vectorization-scalable.ll</description>
        <pubDate>Mon, 16 Nov 2020 11:02:14 +0000</pubDate>
        <dc:creator>Cullen Rhodes &lt;cullen.rhodes@arm.com&gt;</dc:creator>
    </item>
</channel>
</rss>
