<?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 SVEIntrinsicOpts.cpp</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>a83aa33d - [IR] Move vector.insert/vector.extract out of experimental namespace</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#a83aa33d</link>
        <description>[IR] Move vector.insert/vector.extract out of experimental namespaceThese intrinsics are now fundemental for SVE code generation and have beenpresent for a year and a half, hence move them out of the experimentalnamespace.Differential Revision: https://reviews.llvm.org/D127976

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Thu, 16 Jun 2022 14:45:28 +0000</pubDate>
        <dc:creator>Bradley Smith &lt;bradley.smith@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>f1d56295 - [Aarch64] Remove redundant declaration initializeSVEIntrinsicOptsPass (NFC)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#f1d56295</link>
        <description>[Aarch64] Remove redundant declaration initializeSVEIntrinsicOptsPass (NFC)The function is declared in AArch64.h.Identified with readability-redundant-declaration.

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Sat, 01 Jan 2022 17:14:25 +0000</pubDate>
        <dc:creator>Kazu Hirata &lt;kazu@google.com&gt;</dc:creator>
    </item>
<item>
        <title>2b7be47b - [llvm] Strip redundant lambda (NFC)</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#2b7be47b</link>
        <description>[llvm] Strip redundant lambda (NFC)

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Fri, 17 Dec 2021 18:51:39 +0000</pubDate>
        <dc:creator>Kazu Hirata &lt;kazu@google.com&gt;</dc:creator>
    </item>
<item>
        <title>0395e015 - [IR] Split vscale_range interface</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#0395e015</link>
        <description>[IR] Split vscale_range interfaceInterface is split from:  std::pair&lt;unsigned, unsigned&gt; getVScaleRangeArgs()into separate functions for min/max:  unsigned getVScaleRangeMin();  Optional&lt;unsigned&gt; getVScaleRangeMax();Reviewed By: sdesmalen, paulwalker-armDifferential Revision: https://reviews.llvm.org/D114075

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Tue, 07 Dec 2021 09:53:16 +0000</pubDate>
        <dc:creator>Cullen Rhodes &lt;cullen.rhodes@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>c874dd53 - [llvm][clang][NFC] updates inline licence info</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#c874dd53</link>
        <description>[llvm][clang][NFC] updates inline licence infoSome files still contained the old University of Illinois Open SourceLicence header. This patch replaces that with the Apache 2 with LLVMException licence.Differential Revision: https://reviews.llvm.org/D107528

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Thu, 05 Aug 2021 03:16:17 +0000</pubDate>
        <dc:creator>Christopher Di Bella &lt;cjdb@google.com&gt;</dc:creator>
    </item>
<item>
        <title>d9cc5d84 - [AArch64][SVE] Combine bitcasts of predicate types with vector inserts/extracts of loads/stores</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#d9cc5d84</link>
        <description>[AArch64][SVE] Combine bitcasts of predicate types with vector inserts/extracts of loads/storesAn insert subvector that is inserting the result of a vector predicatesized load into undef at index 0, whose result is casted to a predicatetype, can be combined into a direct predicate load. Likewise the sameapplies to extract subvector but in reverse.The purpose of this optimization is to clean up cases that will beintroduced in a later patch where casts to/from predicate types from i8types will use insert subvector, rather than going through memory early.This optimization is done in SVEIntrinsicOpts rather than InstCombine tore-introduce scalable loads as late as possible, to give otheroptimizations the best chance possible to do a good job.Differential Revision: https://reviews.llvm.org/D106549

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Thu, 22 Jul 2021 12:30:45 +0000</pubDate>
        <dc:creator>Bradley Smith &lt;bradley.smith@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>191f9fa5 - [AArch64][SVE] Move instcombine like transforms out of SVEIntrinsicOpts</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#191f9fa5</link>
        <description>[AArch64][SVE] Move instcombine like transforms out of SVEIntrinsicOptsInstead move them to the instcombine that happens in AArch64TargetTransformInfo.Differential Revision: https://reviews.llvm.org/D106144

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Tue, 13 Jul 2021 14:42:36 +0000</pubDate>
        <dc:creator>Bradley Smith &lt;bradley.smith@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>306370be - [AArch64] Fix namespace issue. NFC</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#306370be</link>
        <description>[AArch64] Fix namespace issue. NFC

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Thu, 06 May 2021 18:16:07 +0000</pubDate>
        <dc:creator>Fangrui Song &lt;i@maskray.me&gt;</dc:creator>
    </item>
<item>
        <title>62e9c760 - [AArch64][SVE] Remove unused function missed from D101302</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#62e9c760</link>
        <description>[AArch64][SVE] Remove unused function missed from D101302The functionality in SVEIntrinsicOpts::isReinterpretToSVBool was moved inD101302, however the original now unused function was not removed (NFC).Differential Revision: https://reviews.llvm.org/D101642

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Fri, 23 Apr 2021 15:34:26 +0000</pubDate>
        <dc:creator>Bradley Smith &lt;bradley.smith@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>c8f20ed4 - [AArch64][SVE] Move convert.{from,to}.svbool optimization into InstCombine</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#c8f20ed4</link>
        <description>[AArch64][SVE] Move convert.{from,to}.svbool optimization into InstCombineAs part of this the ptrue coalescing done in SVEIntrinsicOpts has beenmodified to not introduce redundant converts, since the convert removalwill no longer run after that optimisation to clean up.Differential Revision: https://reviews.llvm.org/D101302

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Mon, 26 Apr 2021 15:19:25 +0000</pubDate>
        <dc:creator>Bradley Smith &lt;bradley.smith@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>b0db2dbc - [AArch64][SVEIntrinsicOpts] Optimize tbl+dup into dup+extractelement</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#b0db2dbc</link>
        <description>[AArch64][SVEIntrinsicOpts] Optimize tbl+dup into dup+extractelementDifferential Revision: https://reviews.llvm.org/D99412

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Fri, 26 Mar 2021 07:55:46 +0000</pubDate>
        <dc:creator>Jun Ma &lt;JunMa@linux.alibaba.com&gt;</dc:creator>
    </item>
<item>
        <title>14bd44ed - [AArch64][SVEIntrinsicOpts] Factor out redundant SVE mul/fmul intrinsics</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#14bd44ed</link>
        <description>[AArch64][SVEIntrinsicOpts] Factor out redundant SVE mul/fmul intrinsicsThis commit implements an IR-level optimization to eliminate idempotentSVE mul/fmul intrinsic calls. Currently, the following patterns arecaptured:    fmul  pg  (dup_x  1.0)  V  =&gt;  V    mul   pg  (dup_x  1)    V  =&gt;  V    fmul  pg  V  (dup_x  1.0)  =&gt;  V    mul   pg  V  (dup_x  1)    =&gt;  V    fmul  pg  V  (dup  v  pg  1.0)  =&gt;  V    mul   pg  V  (dup  v  pg  1)    =&gt;  VThe result of this commit is that code such as:    1  #include &lt;arm_sve.h&gt;    2    3  svfloat64_t foo(svfloat64_t a) {    4    svbool_t t = svptrue_b64();    5    svfloat64_t b = svdup_f64(1.0);    6    return svmul_m(t, a, b);    7  }will lower to a nop.This commit does not capture all possibilities; only the simple casesdescribed above. There is still room for further optimisation.Differential Revision: https://reviews.llvm.org/D98033

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Mon, 08 Mar 2021 12:52:40 +0000</pubDate>
        <dc:creator>Joe Ellis &lt;joe.ellis@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>3d257fde - [AArch64][SVE] Coalesce ptrue instrinsic calls where possible</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#3d257fde</link>
        <description>[AArch64][SVE] Coalesce ptrue instrinsic calls where possibleIt is possible to eliminate redundant calls to the SVE ptrue intrinsic.For example: suppose that we have two SVE ptrue intrinsic calls P1 andP2. If P1 is at least as wide as P2, then P2 can be written as areinterpret P1 using the SVE reinterpret intrinsics.Coalescing ptrue intrinsics can result in fewer ptrue instructions inthe codegen, and is conducive to better analysis further down the line.This commit extends the aarch64-sve-intrinsic-opts pass to supportcoalescing ptrue intrisic calls.Reviewed By: david-armDifferential Revision: https://reviews.llvm.org/D94230

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Fri, 05 Feb 2021 10:43:06 +0000</pubDate>
        <dc:creator>Joe Ellis &lt;joe.ellis@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>3122c66a - [AArch64][SVE] Remove chains of unnecessary SVE reinterpret intrinsics</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#3122c66a</link>
        <description>[AArch64][SVE] Remove chains of unnecessary SVE reinterpret intrinsicsThis commit extends SVEIntrinsicOpts::optimizeConvertFromSVBool toidentify and remove longer chains of redundant SVE reintepretintrinsics. For example, the following chain of redundant SVEreinterprets is now recognised as redundant:    %a = &lt;vscale x 2 x i1&gt;    %1 = &lt;vscale x 16 x i1&gt; @llvm.aarch64.sve.convert.to.svbool(&lt;vscale x 2 x i1&gt; %a)    %2 = &lt;vscale x 4 x i1&gt; @llvm.aarch64.sve.convert.from.svbool(&lt;vscale x 16 x i1&gt; %1)    %3 = &lt;vscale x 16 x i1&gt; @llvm.aarch64.sve.convert.to.svbool(&lt;vscale x 4 x i1&gt; %2)    %4 = &lt;vscale x 4 x i1&gt; @llvm.aarch64.sve.convert.from.svbool(&lt;vscale x 16 x i1&gt; %3)    %5 = &lt;vscale x 16 x i1&gt; @llvm.aarch64.sve.convert.to.svbool(&lt;vscale x 4 x i1&gt; %4)    %6 = &lt;vscale x 2 x i1&gt; @llvm.aarch64.sve.convert.from.svbool(&lt;vscale x 16 x i1&gt; %5)    ret &lt;vscale x 2 x i1&gt; %6and will be replaced with:    ret &lt;vscale x 2 x i1&gt; %aEliminating these can sometimes mean emitting fewer unnecessaryloads/stores when lowering to assembly.Differential Revision: https://reviews.llvm.org/D94074

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Mon, 11 Jan 2021 13:46:01 +0000</pubDate>
        <dc:creator>Joe Ellis &lt;joe.ellis@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>037b058e - [AArch64] SVEIntrinsicOpts - use range loop and cast&lt;&gt; instead of dyn_cast&lt;&gt; for dereferenced pointer. NFCI.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#037b058e</link>
        <description>[AArch64] SVEIntrinsicOpts - use range loop and cast&lt;&gt; instead of dyn_cast&lt;&gt; for dereferenced pointer. NFCI.Don&apos;t directly dereference a dyn_cast&lt;&gt; - use cast&lt;&gt; so we assert for the correct type.Also, simplify the for loop to a range loop.Fixes clang static analyzer warning.

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Thu, 07 Jan 2021 14:21:29 +0000</pubDate>
        <dc:creator>Simon Pilgrim &lt;llvm-dev@redking.me.uk&gt;</dc:creator>
    </item>
<item>
        <title>6c7957c9 - [SVE] Fix bug in SVEIntrinsicOpts::optimizePTest</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#6c7957c9</link>
        <description>[SVE] Fix bug in SVEIntrinsicOpts::optimizePTestThe code wasn&apos;t taking into account that the two operandspassed to ptest could be identical and was trying to erasethem twice.Differential Revision: https://reviews.llvm.org/D85892

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Thu, 13 Aug 2020 09:44:12 +0000</pubDate>
        <dc:creator>David Sherwood &lt;david.sherwood@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>2a672767 - Prefix some AArch64/ARM passes with &quot;aarch64-&quot;/&quot;arm-&quot;</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#2a672767</link>
        <description>Prefix some AArch64/ARM passes with &quot;aarch64-&quot;/&quot;arm-&quot; For consistency with other target specific passes.Reviewed By: arsenmDifferential Revision: https://reviews.llvm.org/D84560

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Mon, 27 Jul 2020 17:49:16 +0000</pubDate>
        <dc:creator>Arthur Eubanks &lt;aeubanks@google.com&gt;</dc:creator>
    </item>
<item>
        <title>3d9b5370 - [SVEIntrinsicOpts] NFC: Remove unused isReinterpretFromBool for no-assert builds</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#3d9b5370</link>
        <description>[SVEIntrinsicOpts] NFC: Remove unused isReinterpretFromBool for no-assert buildsisReinterpretFromBool&apos;s only use is in an assert, which causes a warning that thefunction is defined but not used in no-assert builds.

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Mon, 20 Apr 2020 20:24:38 +0000</pubDate>
        <dc:creator>Sander de Smalen &lt;sander.desmalen@arm.com&gt;</dc:creator>
    </item>
<item>
        <title>36c76de6 - [AArch64][SVE] Add a pass for SVE intrinsic optimisations</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp#36c76de6</link>
        <description>[AArch64][SVE] Add a pass for SVE intrinsic optimisationsSummary:Creates the SVEIntrinsicOpts pass. In this patch, the pass triesto remove unnecessary reinterpret intrinsics which convert toand from svbool_t (llvm.aarch64.sve.convert.[to|from].svbool)For example, the reinterprets below are redundant:  %1 = call &lt;vscale x 16 x i1&gt; @llvm.aarch64.sve.convert.to.svbool.nxv4i1(&lt;vscale x 4 x i1&gt; %a)  %2 = call &lt;vscale x 4 x i1&gt; @llvm.aarch64.sve.convert.from.svbool.nxv4i1(&lt;vscale x 16 x i1&gt; %1)The pass also looks for ptest intrinsics and phi instructions wherethe operands are being needlessly converted to and from svbool_t.Reviewers: sdesmalen, andwar, efriedma, cameron.mcinally, c-rhodes, rengolinReviewed By: efriedmaSubscribers: mgorny, tschuett, kristof.beyls, hiraditya, rkruppe, psnobl, danielkiss, cfe-commits, llvm-commitsTags: #llvmDifferential Revision: https://reviews.llvm.org/D76078

            List of files:
            /llvm-project-15.0.7/llvm/lib/Target/AArch64/SVEIntrinsicOpts.cpp</description>
        <pubDate>Tue, 14 Apr 2020 08:52:04 +0000</pubDate>
        <dc:creator>Kerry McLaughlin &lt;kerry.mclaughlin@arm.com&gt;</dc:creator>
    </item>
</channel>
</rss>
