<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/test/Transforms/InstSimplify/ConstProp, 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> [ConstantFold] Special case atan +/-0.0 (#143962)</title>
<updated>2025-06-25T20:03:18+00:00</updated>
<author>
<name>Lei Huang</name>
<email>lei@ca.ibm.com</email>
</author>
<published>2025-06-25T20:03:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4a31f7f8ea776383d72350cb5ce74ce13ee15431'/>
<id>4a31f7f8ea776383d72350cb5ce74ce13ee15431</id>
<content type='text'>
C's Annex F specifies that atan +/-0.0 returns the input value;
however, this behavior is optional and host C libraries may behave
differently. This change applies the Annex F behavior to constant
folding by LLVM.

Ref:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/atan.html</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
C's Annex F specifies that atan +/-0.0 returns the input value;
however, this behavior is optional and host C libraries may behave
differently. This change applies the Annex F behavior to constant
folding by LLVM.

Ref:
https://pubs.opengroup.org/onlinepubs/9799919799/functions/atan.html</pre>
</div>
</content>
</entry>
<entry>
<title>[ConstantFolding] Handle reading from type padding (#144330)</title>
<updated>2025-06-17T07:30:28+00:00</updated>
<author>
<name>Nikita Popov</name>
<email>npopov@redhat.com</email>
</author>
<published>2025-06-17T07:30:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=80b79ce432bbe12701fd9fe495ff9feeb5e4b9ca'/>
<id>80b79ce432bbe12701fd9fe495ff9feeb5e4b9ca</id>
<content type='text'>
ReadDataFromGlobal() did not handle reads from the padding of types (in
the sense of type store size != type alloc size, rather than struct
padding).

Return zero in that case.

Fixes https://github.com/llvm/llvm-project/issues/144279.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ReadDataFromGlobal() did not handle reads from the padding of types (in
the sense of type store size != type alloc size, rather than struct
padding).

Return zero in that case.

Fixes https://github.com/llvm/llvm-project/issues/144279.</pre>
</div>
</content>
</entry>
<entry>
<title>[ConstantFolding] Fold deinterleave2 of any splat vector not just zeroinitializer (#144144)</title>
<updated>2025-06-14T00:11:52+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-06-14T00:11:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=417ab37d85ad1bb3e5623dff487ef108404e37f5'/>
<id>417ab37d85ad1bb3e5623dff487ef108404e37f5</id>
<content type='text'>
While there remove an unnecessary dyn_cast from Constant to Constant.
Reverse a branch condition into an early out to reduce nesting.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
While there remove an unnecessary dyn_cast from Constant to Constant.
Reverse a branch condition into an early out to reduce nesting.</pre>
</div>
</content>
</entry>
<entry>
<title>[ConstantFolding] Add folding for [de]interleave2, insert and extract (#141301)</title>
<updated>2025-06-11T23:00:29+00:00</updated>
<author>
<name>Nikolay Panchenko</name>
<email>nicholas.panchenko@gmail.com</email>
</author>
<published>2025-06-11T23:00:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ee35e342945d6825c9b2b004fd135cf16c84ea0e'/>
<id>ee35e342945d6825c9b2b004fd135cf16c84ea0e</id>
<content type='text'>
The change adds folding for 4 vector intrinsics: `interleave2`,
`deinterleave2`, `vector_extract` and `vector_insert`. For the last 2
intrinsics the change does not use `ShuffleVector` fold mechanism as
it's much simpler to construct result vector explicitly.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The change adds folding for 4 vector intrinsics: `interleave2`,
`deinterleave2`, `vector_extract` and `vector_insert`. For the last 2
intrinsics the change does not use `ShuffleVector` fold mechanism as
it's much simpler to construct result vector explicitly.</pre>
</div>
</content>
</entry>
<entry>
<title>[PowerPC][AIX] xfail atan-intrinsic to unblock bot (#143723)</title>
<updated>2025-06-11T15:28:48+00:00</updated>
<author>
<name>Lei Huang</name>
<email>lei@ca.ibm.com</email>
</author>
<published>2025-06-11T15:28:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=adfea33f0c412b8475b755a8d82c9961b785eb02'/>
<id>adfea33f0c412b8475b755a8d82c9961b785eb02</id>
<content type='text'>
Testcase from https://github.com/llvm/llvm-project/pull/143416 is
causing the AIX bot to be red. XFAIL for now till issue can be resolved.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Testcase from https://github.com/llvm/llvm-project/pull/143416 is
causing the AIX bot to be red. XFAIL for now till issue can be resolved.</pre>
</div>
</content>
</entry>
<entry>
<title>[ConstantFolding] Add support for llvm.atan in constant folding. (#143416)</title>
<updated>2025-06-09T19:38:08+00:00</updated>
<author>
<name>Craig Topper</name>
<email>craig.topper@sifive.com</email>
</author>
<published>2025-06-09T19:38:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=112490f06abca669eb3fe158739bf751e6024f46'/>
<id>112490f06abca669eb3fe158739bf751e6024f46</id>
<content type='text'>
Fixes #143360</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes #143360</pre>
</div>
</content>
</entry>
<entry>
<title>[ConstantFolding] Fold intrinsics of scalable vectors with splatted operands (#141845)</title>
<updated>2025-05-28T22:29:41+00:00</updated>
<author>
<name>Luke Lau</name>
<email>luke@igalia.com</email>
</author>
<published>2025-05-28T22:29:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=79ae407c95715f0be5a78260c3b135090f679637'/>
<id>79ae407c95715f0be5a78260c3b135090f679637</id>
<content type='text'>
As noted in
https://github.com/llvm/llvm-project/pull/141821#issuecomment-2917328924,
whilst we currently constant fold intrinsics of fixed-length vectors via
their scalar counterpart, we don't do the same for scalable vectors.

This handles the scalable vector case when the operands are splats.

One weird snag in ConstantVector::getSplat was that it produced a undef
if passed in poison, so this also contains a fix by checking for
PoisonValue before UndefValue.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As noted in
https://github.com/llvm/llvm-project/pull/141821#issuecomment-2917328924,
whilst we currently constant fold intrinsics of fixed-length vectors via
their scalar counterpart, we don't do the same for scalable vectors.

This handles the scalable vector case when the operands are splats.

One weird snag in ConstantVector::getSplat was that it produced a undef
if passed in poison, so this also contains a fix by checking for
PoisonValue before UndefValue.</pre>
</div>
</content>
</entry>
<entry>
<title>[ConstantFolding] Fold maximumnum and minimumnum (#138700)</title>
<updated>2025-05-08T16:00:49+00:00</updated>
<author>
<name>Lewis Crawford</name>
<email>lcrawford@nvidia.com</email>
</author>
<published>2025-05-08T16:00:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9c88b6d6898812c01c82a6d5ec991fb331aef015'/>
<id>9c88b6d6898812c01c82a6d5ec991fb331aef015</id>
<content type='text'>
Add constant-folding support for the maximumnum and minimumnum
intrinsics, and extend the tests to show the qnan vs snan behavior
differences between maxnum/maximum/maximumnum.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Add constant-folding support for the maximumnum and minimumnum
intrinsics, and extend the tests to show the qnan vs snan behavior
differences between maxnum/maximum/maximumnum.</pre>
</div>
</content>
</entry>
<entry>
<title>[AMDGPU][InstCombine][InstSimplify] Pre-commit tests for PR130742 (#135305)</title>
<updated>2025-04-11T04:42:14+00:00</updated>
<author>
<name>Yingwei Zheng</name>
<email>dtcxzyw2333@gmail.com</email>
</author>
<published>2025-04-11T04:42:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=db27a0af5e6b5fb37e0f95d92d3777ddaaf97f90'/>
<id>db27a0af5e6b5fb37e0f95d92d3777ddaaf97f90</id>
<content type='text'>
https://github.com/llvm/llvm-project/pull/130742#discussion_r1993055149</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
https://github.com/llvm/llvm-project/pull/130742#discussion_r1993055149</pre>
</div>
</content>
</entry>
<entry>
<title>[ConstantFold] Support scalable constant splats in ConstantFoldCastInstruction (#133207)</title>
<updated>2025-04-03T15:24:56+00:00</updated>
<author>
<name>Luke Lau</name>
<email>luke@igalia.com</email>
</author>
<published>2025-04-03T15:24:56+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=79435de8a51a3df4b74f858a604b7ff56b342ae7'/>
<id>79435de8a51a3df4b74f858a604b7ff56b342ae7</id>
<content type='text'>
Previously only fixed vector splats were handled. This adds supports for
scalable vectors too by allowing ConstantExpr splats.

We need to add the extra V-&gt;getType()-&gt;isVectorTy() check because a
ConstantExpr might be a scalar to vector bitcast.

By allowing ConstantExprs this also allow fixed vector ConstantExprs to
be folded, which causes the diffs in
llvm/test/Analysis/ValueTracking/known-bits-from-operator-constexpr.ll
and llvm/test/Transforms/InstSimplify/ConstProp/cast-vector.ll. I can
remove them from this PR if reviewers would prefer.

Fixes #132922</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Previously only fixed vector splats were handled. This adds supports for
scalable vectors too by allowing ConstantExpr splats.

We need to add the extra V-&gt;getType()-&gt;isVectorTy() check because a
ConstantExpr might be a scalar to vector bitcast.

By allowing ConstantExprs this also allow fixed vector ConstantExprs to
be folded, which causes the diffs in
llvm/test/Analysis/ValueTracking/known-bits-from-operator-constexpr.ll
and llvm/test/Transforms/InstSimplify/ConstProp/cast-vector.ll. I can
remove them from this PR if reviewers would prefer.

Fixes #132922</pre>
</div>
</content>
</entry>
</feed>
