<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/CodeGen/ReplaceWithVeclib.cpp, 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>[NFC][TargetTransformInfo][VectorUtils] Consolidate `isVectorIntrinsic...` api (#117635)</title>
<updated>2024-12-19T19:54:26+00:00</updated>
<author>
<name>Finn Plummer</name>
<email>50529406+inbelic@users.noreply.github.com</email>
</author>
<published>2024-12-19T19:54:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=45c01e8a33bbb1790ea16577e47b1e6a34fa1548'/>
<id>45c01e8a33bbb1790ea16577e47b1e6a34fa1548</id>
<content type='text'>
- update `VectorUtils:isVectorIntrinsicWithScalarOpAtArg` to use TTI for
all uses, to allow specifiction of target specific intrinsics
- add TTI to the `isVectorIntrinsicWithStructReturnOverloadAtField` api
- update TTI api to provide `isTargetIntrinsicWith...` functions and
  consistently name them
- move `isTriviallyScalarizable` to VectorUtils
  
- update all uses of the api and provide the TTI parameter

Resolves #117030</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
- update `VectorUtils:isVectorIntrinsicWithScalarOpAtArg` to use TTI for
all uses, to allow specifiction of target specific intrinsics
- add TTI to the `isVectorIntrinsicWithStructReturnOverloadAtField` api
- update TTI api to provide `isTargetIntrinsicWith...` functions and
  consistently name them
- move `isTriviallyScalarizable` to VectorUtils
  
- update all uses of the api and provide the TTI parameter

Resolves #117030</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][VectorUtils][TargetTransformInfo] Add `isVectorIntrinsicWithOverloadTypeAtArg` api (#114849)</title>
<updated>2024-11-21T19:04:25+00:00</updated>
<author>
<name>Finn Plummer</name>
<email>50529406+inbelic@users.noreply.github.com</email>
</author>
<published>2024-11-21T19:04:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8663b8777e8108f74f91a2a33115b3a00d57c043'/>
<id>8663b8777e8108f74f91a2a33115b3a00d57c043</id>
<content type='text'>
This changes allows target intrinsics to specify and overwrite overloaded types.

- Updates `ReplaceWithVecLib` to not provide TTI as there most probably won't be a use-case
- Updates `SLPVectorizer` to use available TTI
- Updates `VPTransformState` to pass down TTI
- Updates `VPlanRecipe` to use passed-down TTI

This change will let us add scalarization for `asdouble`:  #114847</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This changes allows target intrinsics to specify and overwrite overloaded types.

- Updates `ReplaceWithVecLib` to not provide TTI as there most probably won't be a use-case
- Updates `SLPVectorizer` to use available TTI
- Updates `VPTransformState` to pass down TTI
- Updates `VPlanRecipe` to use passed-down TTI

This change will let us add scalarization for `asdouble`:  #114847</pre>
</div>
</content>
</entry>
<entry>
<title>Fix scalar overload name constructed by ReplaceWithVeclib.cpp (#111095)</title>
<updated>2024-10-11T21:38:35+00:00</updated>
<author>
<name>Tex Riddell</name>
<email>texr@microsoft.com</email>
</author>
<published>2024-10-11T21:38:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=82b40fd4fd2f3f723d30b666f8766973da4166db'/>
<id>82b40fd4fd2f3f723d30b666f8766973da4166db</id>
<content type='text'>
ReplaceWithVeclib.cpp would construct overload name using all the
arguments in the intrinsic, but overloads should only be constructed
from arguments for which isVectorIntrinsicWithOverloadTypeAtArg returns
true, including the return type first (index -1).

Additionally,
- skip when `Intrinsic::not_intrinsic`, otherwise
`isVectorIntrinsicWithOverloadTypeAtArg` asserts for some
IntrinsicCalls.

Unblocks translation for pow and atan2 intrinsics.

Fixes #111093</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ReplaceWithVeclib.cpp would construct overload name using all the
arguments in the intrinsic, but overloads should only be constructed
from arguments for which isVectorIntrinsicWithOverloadTypeAtArg returns
true, including the return type first (index -1).

Additionally,
- skip when `Intrinsic::not_intrinsic`, otherwise
`isVectorIntrinsicWithOverloadTypeAtArg` asserts for some
IntrinsicCalls.

Unblocks translation for pow and atan2 intrinsics.

Fixes #111093</pre>
</div>
</content>
</entry>
<entry>
<title>[TLI] ReplaceWithVecLib: drop Instruction support (#94365)</title>
<updated>2024-06-10T07:37:00+00:00</updated>
<author>
<name>Paschalis Mpeis</name>
<email>paschalis.mpeis@arm.com</email>
</author>
<published>2024-06-10T07:37:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e4790ce2096c805b7598c353f9e7fa513701f843'/>
<id>e4790ce2096c805b7598c353f9e7fa513701f843</id>
<content type='text'>
Refactor the pass to only support `IntrinsicInst` calls.

`ReplaceWithVecLib` used to support instructions, as AArch64 was using
this pass to replace a vectorized frem instruction to the fmod vector
library call (through TLI).

As this replacement is now done by the codegen (#83859), there is no
need for this pass to support instructions.

Additionally, removed 'frem' tests from:
- AArch64/replace-with-veclib-armpl.ll
- AArch64/replace-with-veclib-sleef-scalable.ll
- AArch64/replace-with-veclib-sleef.ll

Such testing is done at codegen level:
- #83859</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Refactor the pass to only support `IntrinsicInst` calls.

`ReplaceWithVecLib` used to support instructions, as AArch64 was using
this pass to replace a vectorized frem instruction to the fmod vector
library call (through TLI).

As this replacement is now done by the codegen (#83859), there is no
need for this pass to support instructions.

Additionally, removed 'frem' tests from:
- AArch64/replace-with-veclib-armpl.ll
- AArch64/replace-with-veclib-sleef-scalable.ll
- AArch64/replace-with-veclib-sleef.ll

Such testing is done at codegen level:
- #83859</pre>
</div>
</content>
</entry>
<entry>
<title>Convert argument to reference. (#82741)</title>
<updated>2024-02-24T05:28:50+00:00</updated>
<author>
<name>MalaySanghiIntel</name>
<email>148750629+MalaySanghiIntel@users.noreply.github.com</email>
</author>
<published>2024-02-24T05:28:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=330af6ed6194ca5365bc576517c247f545aee1f4'/>
<id>330af6ed6194ca5365bc576517c247f545aee1f4</id>
<content type='text'>
Avoid copy of large object</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Avoid copy of large object</pre>
</div>
</content>
</entry>
<entry>
<title>[VFABI] Move the Vector ABI demangling utility to LLVMCore. (#77513)</title>
<updated>2024-01-17T09:55:30+00:00</updated>
<author>
<name>Alexandros Lamprineas</name>
<email>alexandros.lamprineas@arm.com</email>
</author>
<published>2024-01-17T09:55:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=92289db82fb2334593e21995bb140b4bc95926e3'/>
<id>92289db82fb2334593e21995bb140b4bc95926e3</id>
<content type='text'>
This fixes #71892 allowing us to check magled names in the IR verifier.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This fixes #71892 allowing us to check magled names in the IR verifier.</pre>
</div>
</content>
</entry>
<entry>
<title>Reapply [TLI] Fix replace-with-veclib crash with invalid arguments (#77945)</title>
<updated>2024-01-16T10:00:15+00:00</updated>
<author>
<name>Paschalis Mpeis</name>
<email>paschalis.mpeis@arm.com</email>
</author>
<published>2024-01-16T10:00:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8e514c572e44eda237417236b4c92176dfce9cd9'/>
<id>8e514c572e44eda237417236b4c92176dfce9cd9</id>
<content type='text'>
Fix a crash of `replace-with-veclib` pass, when the arguments of the TLI
mapping do not match the original call.
Now, it simply ignores such cases.

Test require assertions as it accesses programmatically the debug log.

Reapplies reverted PR #77112</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix a crash of `replace-with-veclib` pass, when the arguments of the TLI
mapping do not match the original call.
Now, it simply ignores such cases.

Test require assertions as it accesses programmatically the debug log.

Reapplies reverted PR #77112</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[TLI] Fix replace-with-veclib crash with invalid arguments (#77112)"</title>
<updated>2024-01-12T15:49:15+00:00</updated>
<author>
<name>Paschalis Mpeis</name>
<email>Paschalis.Mpeis@arm.com</email>
</author>
<published>2024-01-12T15:47:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a300b2403784f416f36a1cee8d0425975f790b45'/>
<id>a300b2403784f416f36a1cee8d0425975f790b45</id>
<content type='text'>
This reverts commit 9fdc568824b0992d48704dfa530a12073cc02f5e,
as it linker crashes on some platforms.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This reverts commit 9fdc568824b0992d48704dfa530a12073cc02f5e,
as it linker crashes on some platforms.
</pre>
</div>
</content>
</entry>
<entry>
<title>[TLI] Fix replace-with-veclib crash with invalid arguments (#77112)</title>
<updated>2024-01-12T15:19:52+00:00</updated>
<author>
<name>Paschalis Mpeis</name>
<email>paschalis.mpeis@arm.com</email>
</author>
<published>2024-01-12T15:19:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9fdc568824b0992d48704dfa530a12073cc02f5e'/>
<id>9fdc568824b0992d48704dfa530a12073cc02f5e</id>
<content type='text'>
Fix a crash of `replace-with-veclib` pass, when the arguments of the TLI
mapping do not match the original call.
Now, it simply ignores such cases.

Test require assertions as it accesses programmatically the debug log.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fix a crash of `replace-with-veclib` pass, when the arguments of the TLI
mapping do not match the original call.
Now, it simply ignores such cases.

Test require assertions as it accesses programmatically the debug log.</pre>
</div>
</content>
</entry>
<entry>
<title>[TLI] replace-with-veclib works with FRem Instruction. (#76166)</title>
<updated>2024-01-08T08:53:15+00:00</updated>
<author>
<name>Paschalis Mpeis</name>
<email>paschalis.mpeis@arm.com</email>
</author>
<published>2024-01-08T08:53:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=68a1583a8900fe13e33fe9ff6005f7a3e5b82c53'/>
<id>68a1583a8900fe13e33fe9ff6005f7a3e5b82c53</id>
<content type='text'>
Updated SLEEF and ArmPL tests with Fixed-Width and Scalable cases for
frem. Those are mapped to fmod/fmodf.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Updated SLEEF and ArmPL tests with Fixed-Width and Scalable cases for
frem. Those are mapped to fmod/fmodf.</pre>
</div>
</content>
</entry>
</feed>
