<?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 IntrinsicCall.cpp</title>
    <description></description>
    <language>en</language>
    <copyright>Copyright 2015</copyright>
    <generator>Java</generator><item>
        <title>418d2338 - [flang] Remove fp128 support for llvm.round and llvm.trunc</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#418d2338</link>
        <description>[flang] Remove fp128 support for llvm.round and llvm.truncThe fp128 in llvm.round and llvm.trunc is not supported in X86_64 fornow. Revert the support. To support quad precision for llvm.round andllvm.trunc, it may should be supported using runtime.Reviewed By: Jean PerierDifferential Revision: https://reviews.llvm.org/D130556

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Tue, 26 Jul 2022 12:21:51 +0000</pubDate>
        <dc:creator>Peixin Qiao &lt;qiaopeixin@huawei.com&gt;</dc:creator>
    </item>
<item>
        <title>f532c072 - [flang] Support intrinsic `selected_int_kind` for variables</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#f532c072</link>
        <description>[flang] Support intrinsic `selected_int_kind` for variablesAs Fortran 2018 16.9.169, the argument of selected_int_kind is integerscalar, and result is default integer scalar. The constant expression inthis intrinsic has been supported by folding the constant expression.This supports lowering and runtime for variables in this intrinsic.Reviewed By: Jean PerierDifferential Revision: https://reviews.llvm.org/D129959

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Mon, 25 Jul 2022 16:33:27 +0000</pubDate>
        <dc:creator>Peixin Qiao &lt;qiaopeixin@huawei.com&gt;</dc:creator>
    </item>
<item>
        <title>57e3fa38 - [flang] Support lowering intrinsic `selected_real_kind` for variables</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#57e3fa38</link>
        <description>[flang] Support lowering intrinsic `selected_real_kind` for variablesAs Fortran 2018 16.9.170, the argument of `selected_real_kind` is integerscalar, and result is default integer scalar. The constant expression inthis intrinsic has been supported by folding the constant expression.This supports lowering this intrinsic for variables using runtime.Reviewed By: Jean PerierDifferential Revision: https://reviews.llvm.org/D130183

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Mon, 25 Jul 2022 11:36:14 +0000</pubDate>
        <dc:creator>Peixin Qiao &lt;qiaopeixin@huawei.com&gt;</dc:creator>
    </item>
<item>
        <title>3ccd4ce2 - [flang] Support aint/anint for 80/128 bit in lowering</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#3ccd4ce2</link>
        <description>[flang] Support aint/anint for 80/128 bit in loweringFor aint/anint, LLVM conversion operations llvm.trunc and llvm.roundcan support the edge case of aint(-0.) and anint(-0.). The output is -0.and it is the same of `gfortran` and `classic flang`, while the outputof `ifort` is 0.. The `real(10)/real(16)` is not supported before.Support it and remove the runtime functions for aint/anint.For nint, `gfortran`, `ifort`, and LLVM Flang using llvm.lround havedifferent results when the magnitude of argument is more than the max ofresult value range. So delay its support in lowering after moreinvestigations.Reviewed By: vzakhariDifferential Revision: https://reviews.llvm.org/D130024

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Sat, 23 Jul 2022 06:44:20 +0000</pubDate>
        <dc:creator>Peixin Qiao &lt;qiaopeixin@huawei.com&gt;</dc:creator>
    </item>
<item>
        <title>f5759add - [flang] Try to lower math intrinsics to math operations first.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#f5759add</link>
        <description>[flang] Try to lower math intrinsics to math operations first.This commit changes how math intrinsics are lowered: we, first,try to lower them into MLIR operations or libm calls viamathOperations table and only then fallback to pgmath runtime calls.The pgmath fallback is needed, because mathOperations does notsupport all intrinsics that pgmath supports. The main purposeof this change is to get rid of llvmIntrinsics table so thatwe do not have to update both llvmIntrinsics and mathOperationswhen adding new intrinsic support.mathOperations lowering should phase out pgmath lowering, whenmore operations are available (e.g. power operations beingadded in D129809 and D129811; complex type operations fromComplex dialect).Differential Revision: https://reviews.llvm.org/D130129

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Tue, 19 Jul 2022 22:35:56 +0000</pubDate>
        <dc:creator>Slava Zakharin &lt;szakharin@nvidia.com&gt;</dc:creator>
    </item>
<item>
        <title>71ee3570 - [flang] Lower F08 mask intrinsics</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#71ee3570</link>
        <description>[flang] Lower F08 mask intrinsicsLower F08 maskl and maskr intrinsics.Differential Revision: https://reviews.llvm.org/D129296

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Fri, 22 Jul 2022 06:03:09 +0000</pubDate>
        <dc:creator>Tarun Prabhu &lt;tarun.prabhu@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>72ac3e90 - [flang] Lower F08 shift intrinsics</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#72ac3e90</link>
        <description>[flang] Lower F08 shift intrinsicsLower F08 shift (shiftl, shiftr, shifta) and combined shift (dshiftl, dshiftr)intrinsics. The combined shift intrinsics are implemented using thedefinitions of shiftl and shiftr as described by the standard.For non-conformant arguments to the shift intrinsics, the implementation triesto replicate the behavior of other compilers if most of the other behaveconsistently.Differential Revision: https://reviews.llvm.org/D129316

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Fri, 22 Jul 2022 05:36:08 +0000</pubDate>
        <dc:creator>Tarun Prabhu &lt;tarun.prabhu@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>ccfee46b - [flang] Lower F08 bit population count intrinsics</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#ccfee46b</link>
        <description>[flang] Lower F08 bit population count intrinsicsLower F08 bit population count intrinsics popcnt, poppar, leadz and trailz. popcnt, leadz and trailz are implemented using the corresponding MLIR math intrinsics. poppar is implemented in terms of popcnt.Differential Revision: https://reviews.llvm.org/D129584

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Fri, 22 Jul 2022 05:05:33 +0000</pubDate>
        <dc:creator>Tarun Prabhu &lt;tarun.prabhu@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>b6fef088 - [flang] Lower F08 merge_bits intrinsic.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#b6fef088</link>
        <description>[flang] Lower F08 merge_bits intrinsic.Lower F08 merge_bits intrinsic.Differential Revision: https://reviews.llvm.org/D129779

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Thu, 21 Jul 2022 16:39:54 +0000</pubDate>
        <dc:creator>Tarun Prabhu &lt;tarun.prabhu@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>fd4afa7a - [flang] Support late math lowering for intrinsics from the llvm table.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#fd4afa7a</link>
        <description>[flang] Support late math lowering for intrinsics from the llvm table.mathOperations should now support all intrinsics that are handledby the llvmIntrinsics table + `tan` lowered as Math dialect operation +f128 flavor of abs.I am going to flip the default to late math lowering after this change,but still keep the fallback via pgmath. This will allow getting ridof the llvmIntrinsics table and continue populatingonly the mathOperations table, otherwise, updating both tablesseems to be inconvenient.Differential Revision: https://reviews.llvm.org/D130048

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Mon, 18 Jul 2022 22:49:24 +0000</pubDate>
        <dc:creator>Slava Zakharin &lt;szakharin@nvidia.com&gt;</dc:creator>
    </item>
<item>
        <title>7709f12e - Bitwise comparison intrinsics</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#7709f12e</link>
        <description>Bitwise comparison intrinsicsThis patch implements lowering for the F08 bitwise comparison intrinsics(BGE, BGT, BLE and BLT).This does not create any runtime functions since the functionality issimple enough to carry out in IR.The existing semantic check has been changed because it unconditionallyconverted the arguments to the largest possible integer type. Thisresulted in the argument with the smaller bit-size being sign-extended.However, the standard requires the argument with the smaller bit-size tobe zero-extended.Reviewed By: klausler, jeanPerierDifferential Revision: https://reviews.llvm.org/D127805

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Tue, 19 Jul 2022 16:24:29 +0000</pubDate>
        <dc:creator>Tarun Prabhu &lt;tarunprabhu@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>11c43cd2 - [flang] Fix &quot;not yet implemented&quot; message for CHARACTER MIN/MAX</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#11c43cd2</link>
        <description>[flang] Fix &quot;not yet implemented&quot; message for CHARACTER MIN/MAXThe check to see if the arguments for the MIN/MAX intrinsics were of CHARACTERtype was not handling assumed length characters.  In this case, the FIR type is&quot;!fir.ref&lt;!fir.char&lt;1,?&gt;&gt;&quot;.This patch is part of the upstreaming effort from fir-dev branch.Reviewed By: PeteSteinfeldDifferential Revision: https://reviews.llvm.org/D128922Co-authored-by: Peter Steinfeld &lt;psteinfeld@nvidia.com&gt;

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Thu, 30 Jun 2022 16:10:53 +0000</pubDate>
        <dc:creator>Valentin Clement &lt;clementval@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>540a76f0 - [flang] Convert assertion to a TODO</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#540a76f0</link>
        <description>[flang] Convert assertion to a TODOThe original assertion is not necessarily correct since the shapeargument may involve a slice of an array (an expression) and not a wholevector with constant length. In the presence of a slice operation, thesize must be computed (left as a TODO for now).This patch is part of the upstreaming effort from fir-dev branch.Reviewed By: jeanPerierDifferential Revision: https://reviews.llvm.org/D128894Co-authored-by: Eric Schweitz &lt;eschweitz@nvidia.com&gt;

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Thu, 30 Jun 2022 13:45:39 +0000</pubDate>
        <dc:creator>Valentin Clement &lt;clementval@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>6c487002 - [flang][NFC] Revert message to not implemented yet</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#6c487002</link>
        <description>[flang][NFC] Revert message to not implemented yet

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Thu, 30 Jun 2022 06:36:10 +0000</pubDate>
        <dc:creator>Valentin Clement &lt;clementval@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>9f356579 - [flang] Lower Fortran math intrinsic operations into MLIR ops or libm calls.</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#9f356579</link>
        <description>[flang] Lower Fortran math intrinsic operations into MLIR ops or libm calls.Added new -lower-math-early option that defaults to &apos;true&apos; that matchesthe current math lowering scheme. If set to &apos;false&apos;, the intrinsic mathoperations will be lowered to MLIR operations, which should potentiallyenable more MLIR optimizations, or libm calls, if there is no correspondingMLIR operation exists or if &quot;precise&quot; mode is requested.The generated math MLIR operations are then converted to LLVM dialectduring codegen phase.The -lower-math-early option is not exposed to users currently. I plan toget rid of the &quot;early&quot; lowering completely, when &quot;late&quot; loweringis robust enough to support all math intrinsics that are currentlysupported via pgmath. So &quot;late&quot; mode will become default and -lower-math-earlyoption will not be needed. This will effectively eliminate the mandatorydependency on pgmath in Fortran lowering, but this is WIP.Differential Revision: https://reviews.llvm.org/D128385

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Wed, 22 Jun 2022 21:41:02 +0000</pubDate>
        <dc:creator>Slava Zakharin &lt;szakharin@nvidia.com&gt;</dc:creator>
    </item>
<item>
        <title>56c81d25 - [flang][lowering] handle MERGE with different FSOURCE and TSOURCE types</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#56c81d25</link>
        <description>[flang][lowering] handle MERGE with different FSOURCE and TSOURCE typesIn merge FSOURCE and TSOURCE must have the same Fortran dynamic types,but this does not imply that FSOURCE and TSOURCE will be lowered to thesame MLIR types. For instance, TSOURCE may be a character expressionwith a compile type constant length (!fir.char&lt;1,4&gt;) while FSOURCE mayhave dynamic length (!fir.char&lt;1,?&gt;).Cast FSOURCE to TSOURCE MLIR types to handle these cases.This patch is part of the upstreaming effort from fir-dev branch.Reviewed By: PeteSteinfeldDifferential Revision: https://reviews.llvm.org/D128507Co-authored-by: Jean Perier &lt;jperier@nvidia.com&gt;

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Fri, 24 Jun 2022 19:04:24 +0000</pubDate>
        <dc:creator>Valentin Clement &lt;clementval@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>4489ef8e - [flang] Fix LBOUND with assumed size array and non constant DIM</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#4489ef8e</link>
        <description>[flang] Fix LBOUND with assumed size array and non constant DIMLBOUND with a non constant DIM argument use the runtime to allow runtimeverification of DIM &lt;= RANK. The interface uses a descriptor. This causedundefined behavior because the runtime believed it was seeing an explicitshape arrays with zero extent and returned `1` (the runtime descriptordoes not allow making a difference between an explicit shape and anassumed size. Assumed size are not meant to be described by runtimedescriptors).Fix the issue by setting the last extent of assumed size to `1` whencreating the descriptor to inquire about the LBOUND with the runtime.This patch is part of the upstreaming effort from fir-dev branch.Reviewed By: PeteSteinfeldDifferential Revision: https://reviews.llvm.org/D128509Co-authored-by: Jean Perier &lt;jperier@nvidia.com&gt;

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Fri, 24 Jun 2022 19:01:25 +0000</pubDate>
        <dc:creator>Valentin Clement &lt;clementval@gmail.com&gt;</dc:creator>
    </item>
<item>
        <title>124338dd - [flang] Increase support for intrinsic module procedures</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#124338dd</link>
        <description>[flang] Increase support for intrinsic module procedures* Make Semantics test doconcurrent01.f90 an expected failure pending a fixfor a problem in recognizing a PURE prefix specifier for a specific procedurethat occurs in new intrinsic module source code,* review update* review update* Increase support for intrinsic module proceduresThe f18 standard defines 5 intrinsic modules that define varying numbersof procedures, including several operators:  2  iso_fortran_env 55  ieee_arithmetic 10  ieee_exceptions  0  ieee_features  6  iso_c_bindingThere are existing fortran source files for each of these intrinsic modules.This PR adds generic procedure declarations to these files for proceduresthat do not already have them, together with associated specific proceduredeclarations.  It also adds the capability of recognizing intrinsic moduleprocedures in lowering code, making it possible to use existing languageintrinsic code generation for intrinsic module procedures for both scalarand elemental calls.  Code can then be generated for intrinsic moduleprocedures using existing options, including front end folding, directinlining, and calls to runtime support routines.  Detailed code generationis provided for several procedures in this PR, with others left to future PRs.Procedure calls that reach lowering and don&apos;t have detailed implementationsupport will generate a &quot;not yet implemented&quot; message with a recognizable name.The generic procedures in these modules may each have as many as 36 specificprocedures.  Most specific procedures are generated via macros that generatetype specific interface declarations.  These specific declarations providedetailed argument information for each individual procedure call, similarto what is done via other means for standard language intrinsics.  Themodules only provide interface declarations.  There are no proceduredefinitions, again in keeping with how language intrinsics are processed.This patch is part of the upstreaming effort from fir-dev branch.Reviewed By: jeanPerier, PeteSteinfeldDifferential Revision: https://reviews.llvm.org/D128431Co-authored-by: V Donaldson &lt;vdonaldson@nvidia.com&gt;

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Thu, 23 Jun 2022 16:03:06 +0000</pubDate>
        <dc:creator>Val Donaldson &lt;vdonaldson@nvidia.com&gt;</dc:creator>
    </item>
<item>
        <title>70ade047 - [flang] system_clock intrinsic calls with dynamically optional arguments</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#70ade047</link>
        <description>[flang] system_clock intrinsic calls with dynamically optional argumentssystem_clock intrinsic calls with dynamically optional argumentsModify intrinsic system_clock calls to allow for an argument that is optionalor a disassociated pointer or an unallocated allocatable.  A call with such anargument is the same as a call that does not specify that argument.Rename (genIsNotNull -&gt; genIsNotNullAddr) and (genIsNull -&gt; genIsNullAddr)and add a use of genIsNotNullAddr.This patch is part of the upstreaming effort from fir-dev branch.Reviewed By: PeteSteinfeldDifferential Revision: https://reviews.llvm.org/D127616Co-authored-by: V Donaldson &lt;vdonaldson@nvidia.com&gt;

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Mon, 13 Jun 2022 15:32:26 +0000</pubDate>
        <dc:creator>vdonaldson &lt;37090318+vdonaldson@users.noreply.github.com&gt;</dc:creator>
    </item>
<item>
        <title>5b66cc10 - [flang][NFC] Move Todo.h from Lower to Optimizer</title>
        <link>http://172.16.0.5:8080/history/llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp#5b66cc10</link>
        <description>[flang][NFC] Move Todo.h from Lower to OptimizerRemove a backwards dependence from Optimizer -&gt; Lower by moving Todo.hto the optimizer and out of lowering.This patch is part of the upstreaming effort from fir-dev branch.Co-authored-by: Eric Schweitz &lt;eschweitz@nvidia.com&gt;Reviewed By: jeanPerierDifferential Revision: https://reviews.llvm.org/D127292

            List of files:
            /llvm-project-15.0.7/flang/lib/Lower/IntrinsicCall.cpp</description>
        <pubDate>Fri, 10 Jun 2022 06:50:40 +0000</pubDate>
        <dc:creator>Valentin Clement &lt;clementval@gmail.com&gt;</dc:creator>
    </item>
</channel>
</rss>
