<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/test/CodeGen/WebAssembly/simd-arith.ll, 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>Reland "[SelectionDAG] Make `(a &amp; x) | (~a &amp; y) -&gt; (a &amp; (x ^ y)) ^ y` available for all targets" (#143651)</title>
<updated>2025-06-11T07:56:37+00:00</updated>
<author>
<name>Iris Shi</name>
<email>0.0@owo.li</email>
</author>
<published>2025-06-11T07:56:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=24d730b3808a562507f3f1f5fc125acf4b6e03aa'/>
<id>24d730b3808a562507f3f1f5fc125acf4b6e03aa</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[SelectionDAG] Make `(a &amp; x) | (~a &amp; y) -&gt; (a &amp; (x ^ y)) ^ y` available for all targets" (#143648)</title>
<updated>2025-06-11T02:19:12+00:00</updated>
<author>
<name>Iris Shi</name>
<email>0.0@owo.li</email>
</author>
<published>2025-06-11T02:19:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8c890eaa3f4cedb494dc2a8180d9c9219bf76900'/>
<id>8c890eaa3f4cedb494dc2a8180d9c9219bf76900</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[SelectionDAG] Make `(a &amp; x) | (~a &amp; y) -&gt; (a &amp; (x ^ y)) ^ y` available for all targets (#137641)</title>
<updated>2025-06-09T09:57:15+00:00</updated>
<author>
<name>Iris Shi</name>
<email>0.0@owo.li</email>
</author>
<published>2025-06-09T09:57:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=bfb48363b0c9a2978be9ec2b31dcb32910e0f274'/>
<id>bfb48363b0c9a2978be9ec2b31dcb32910e0f274</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[WebAssembly] Ofast pmin/pmax pattern matchers (#100107)</title>
<updated>2024-07-24T08:23:49+00:00</updated>
<author>
<name>Sam Parker</name>
<email>sam.parker@arm.com</email>
</author>
<published>2024-07-24T08:23:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a3de21cac1fb8f1dd98cfe1d1443e2d3f0a97351'/>
<id>a3de21cac1fb8f1dd98cfe1d1443e2d3f0a97351</id>
<content type='text'>
With fast-math, the ordered setcc nodes are converted to setcc nodes
which do not care about NaNs, so add patterns that use setlt, setle,
setgt and setge.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
With fast-math, the ordered setcc nodes are converted to setcc nodes
which do not care about NaNs, so add patterns that use setlt, setle,
setgt and setge.</pre>
</div>
</content>
</entry>
<entry>
<title>DAG: Pass flags to FoldConstantArithmetic (#93663)</title>
<updated>2024-06-06T14:44:07+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2024-06-06T14:44:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=84b026690ded7f7728b6d1ba48b233b6ca8317eb'/>
<id>84b026690ded7f7728b6d1ba48b233b6ca8317eb</id>
<content type='text'>
There is simply way too much going on inside getNode. The complicated
constant folding of vector handling works by looking for build_vector
operands, and then tries to getNode the scalar element and then checks
if
constants were the result. As a side effect, this produces unused scalar
operation nodes (previously, without flags). If the vector operation
were later scalarized, it would find the flagless constant folding
temporary and lose the flag. I don't think this is a reasonable way for
constant folding to operate, but for now fix this by ensuring flags
on the original operation are preserved in the temporary.
    
This yields a clear code improvement for AMDGPU when f16 isn't legal.
The Wasm cases switch from using a libcall to compare and select. We are
evidently
missing the fcmp+select to fminimum/fmaximum handling, but this would be
further
improved when that's handled. AArch64 also avoids the libcall, but looks
worse and
has a different call for some reason.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is simply way too much going on inside getNode. The complicated
constant folding of vector handling works by looking for build_vector
operands, and then tries to getNode the scalar element and then checks
if
constants were the result. As a side effect, this produces unused scalar
operation nodes (previously, without flags). If the vector operation
were later scalarized, it would find the flagless constant folding
temporary and lose the flag. I don't think this is a reasonable way for
constant folding to operate, but for now fix this by ensuring flags
on the original operation are preserved in the temporary.
    
This yields a clear code improvement for AMDGPU when f16 isn't legal.
The Wasm cases switch from using a libcall to compare and select. We are
evidently
missing the fcmp+select to fminimum/fmaximum handling, but this would be
further
improved when that's handled. AArch64 also avoids the libcall, but looks
worse and
has a different call for some reason.</pre>
</div>
</content>
</entry>
<entry>
<title>[DAG] Preserve NUW when reassociating (#87621)</title>
<updated>2024-04-04T14:47:25+00:00</updated>
<author>
<name>Piotr Sobczak</name>
<email>piotr.sobczak@amd.com</email>
</author>
<published>2024-04-04T14:47:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5b59ae423a9e86beddafb868b9d549b2f18825ab'/>
<id>5b59ae423a9e86beddafb868b9d549b2f18825ab</id>
<content type='text'>
Similarly to the generic case below, preserve the NUW flag when
reassociating adds with constants.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Similarly to the generic case below, preserve the NUW flag when
reassociating adds with constants.</pre>
</div>
</content>
</entry>
<entry>
<title>[WebAssembly] pmin/pmax fixes</title>
<updated>2023-02-22T10:02:16+00:00</updated>
<author>
<name>Samuel Parker</name>
<email>sam.parker@arm.com</email>
</author>
<published>2023-02-21T10:52:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=28ee6040710fff44ae1349eadabd4cb4a9b1b1b8'/>
<id>28ee6040710fff44ae1349eadabd4cb4a9b1b1b8</id>
<content type='text'>
Reverse the operand ordering to ? rhs : lhs.

Differential Revision: https://reviews.llvm.org/D144466
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverse the operand ordering to ? rhs : lhs.

Differential Revision: https://reviews.llvm.org/D144466
</pre>
</div>
</content>
</entry>
<entry>
<title>[WebAssembly] Additional patterns for pmin/pax</title>
<updated>2023-02-10T09:54:45+00:00</updated>
<author>
<name>Samuel Parker</name>
<email>sam.parker@arm.com</email>
</author>
<published>2023-02-08T14:09:06+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a674a12dd57ef990fe7da4b46b00b441540a2e4a'/>
<id>a674a12dd57ef990fe7da4b46b00b441540a2e4a</id>
<content type='text'>
Each operation was missing their inverted condition using olt or ogt.
Also, as we don't need to discern +/-0, I think we should also be
able to use ole and oge.

Differential Revision: https://reviews.llvm.org/D143581
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Each operation was missing their inverted condition using olt or ogt.
Also, as we don't need to discern +/-0, I think we should also be
able to use ole and oge.

Differential Revision: https://reviews.llvm.org/D143581
</pre>
</div>
</content>
</entry>
<entry>
<title>[SDAG] Check fminnum/fmaxnum for non-zero operand.</title>
<updated>2023-02-07T10:54:23+00:00</updated>
<author>
<name>Samuel Parker</name>
<email>sam.parker@arm.com</email>
</author>
<published>2023-02-06T15:32:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7bff37783f72ed99e4cdd0fd7dad1bf1f119f793'/>
<id>7bff37783f72ed99e4cdd0fd7dad1bf1f119f793</id>
<content type='text'>
Currently, in TargetLowering, if the target does not support fminnum, we lower
to fminimum if neither operand could be a NaN. But this isn't quite correct
because fminnum and fminimum treat +/-0 differently; so, we need to prove that
one of the operands isn't a zero, or we don't have signed zeros.

Differential Revision: https://reviews.llvm.org/D143256
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently, in TargetLowering, if the target does not support fminnum, we lower
to fminimum if neither operand could be a NaN. But this isn't quite correct
because fminnum and fminimum treat +/-0 differently; so, we need to prove that
one of the operands isn't a zero, or we don't have signed zeros.

Differential Revision: https://reviews.llvm.org/D143256
</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC] minnum/maxnum intrinsic tests</title>
<updated>2023-02-07T10:47:40+00:00</updated>
<author>
<name>Samuel Parker</name>
<email>sam.parker@arm.com</email>
</author>
<published>2023-02-07T10:45:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a7de5c82bbbcd534d3a11e719eea513e3435752b'/>
<id>a7de5c82bbbcd534d3a11e719eea513e3435752b</id>
<content type='text'>
ARM and WebAssembly tests.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
ARM and WebAssembly tests.
</pre>
</div>
</content>
</entry>
</feed>
