<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp, branch main</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>[WebAssembly] Lower ANY_EXTEND_VECTOR_INREG (#167529)</title>
<updated>2025-11-20T08:57:08+00:00</updated>
<author>
<name>Sam Parker</name>
<email>sam.parker@arm.com</email>
</author>
<published>2025-11-20T08:57:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e44646b79594006c9dc7deda6a9ae447243bd9e3'/>
<id>e44646b79594006c9dc7deda6a9ae447243bd9e3</id>
<content type='text'>
Treat it in the same manner of zero_extend_vector_inreg and generate an
extend_low_u if possible. This is to try an prevent expensive shuffles
from being generated instead. computeKnownBitsForTargetNode has also
been updated to specify known zeros on extend_low_u. </content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Treat it in the same manner of zero_extend_vector_inreg and generate an
extend_low_u if possible. This is to try an prevent expensive shuffles
from being generated instead. computeKnownBitsForTargetNode has also
been updated to specify known zeros on extend_low_u. </pre>
</div>
</content>
</entry>
<entry>
<title>CodeGen: Add subtarget to TargetLoweringBase constructor (#168620)</title>
<updated>2025-11-19T19:18:13+00:00</updated>
<author>
<name>Matt Arsenault</name>
<email>Matthew.Arsenault@amd.com</email>
</author>
<published>2025-11-19T19:18:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a757c4e74e6a3130c708b26903d5117a9279bef8'/>
<id>a757c4e74e6a3130c708b26903d5117a9279bef8</id>
<content type='text'>
Currently LibcallLoweringInfo is defined inside of TargetLowering,
which is owned by the subtarget. Pass in the subtarget so we can
construct LibcallLoweringInfo with the subtarget. This is a temporary
step that should be revertable in the future, after LibcallLoweringInfo
is moved out of TargetLowering.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Currently LibcallLoweringInfo is defined inside of TargetLowering,
which is owned by the subtarget. Pass in the subtarget so we can
construct LibcallLoweringInfo with the subtarget. This is a temporary
step that should be revertable in the future, after LibcallLoweringInfo
is moved out of TargetLowering.</pre>
</div>
</content>
</entry>
<entry>
<title>[WebAssembly] Truncate extra bits of large elements in BUILD_VECTOR (#167223)</title>
<updated>2025-11-17T10:39:18+00:00</updated>
<author>
<name>Hongyu Chen</name>
<email>xxs_chy@outlook.com</email>
</author>
<published>2025-11-17T10:39:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=63e6373efd82b0ccd53955a10ced9fa9b6a8db77'/>
<id>63e6373efd82b0ccd53955a10ced9fa9b6a8db77</id>
<content type='text'>
Fixes https://github.com/llvm/llvm-project/issues/165713
This patch handles out-of-bound vector elements and truncates extra
bits.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Fixes https://github.com/llvm/llvm-project/issues/165713
This patch handles out-of-bound vector elements and truncates extra
bits.</pre>
</div>
</content>
</entry>
<entry>
<title>[WebAssembly] vf32 to vi8, vi16 lowering (#164644)</title>
<updated>2025-11-06T08:32:44+00:00</updated>
<author>
<name>Sam Parker</name>
<email>sam.parker@arm.com</email>
</author>
<published>2025-11-06T08:32:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9e6a31f832a424646c141460335ef535c70e491b'/>
<id>9e6a31f832a424646c141460335ef535c70e491b</id>
<content type='text'>
Avoid scalarizing the conversion and use trunc_sat and narrow instead.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Avoid scalarizing the conversion and use trunc_sat and narrow instead.</pre>
</div>
</content>
</entry>
<entry>
<title>[WebAssembly] TableGen-erate SDNode descriptions (#166259)</title>
<updated>2025-11-05T03:24:53+00:00</updated>
<author>
<name>Sergei Barannikov</name>
<email>barannikov88@gmail.com</email>
</author>
<published>2025-11-05T03:24:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0c73009236384033fc65be4fefb3c3b9b0d19c77'/>
<id>0c73009236384033fc65be4fefb3c3b9b0d19c77</id>
<content type='text'>
This allows SDNodes to be validated against their expected type profiles
and reduces the number of changes required to add a new node.

CALL and RET_CALL do not have a description in td files, and it is not
currently possible to add one as these nodes have both variable operands
and variable results.

This also fixes a subtle bug detected by the enabled verification
functionality. `LOCAL_GET` is declared with `SDNPHasChain` property, and
thus should have both a chain operand and a chain result. The original
code created a node without a chain result, which caused a check in
`SDNodeInfo::verifyNode()` to fail.

Part of #119709.

Pull Request: https://github.com/llvm/llvm-project/pull/166259</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This allows SDNodes to be validated against their expected type profiles
and reduces the number of changes required to add a new node.

CALL and RET_CALL do not have a description in td files, and it is not
currently possible to add one as these nodes have both variable operands
and variable results.

This also fixes a subtle bug detected by the enabled verification
functionality. `LOCAL_GET` is declared with `SDNPHasChain` property, and
thus should have both a chain operand and a chain result. The original
code created a node without a chain result, which caused a check in
`SDNodeInfo::verifyNode()` to fail.

Part of #119709.

Pull Request: https://github.com/llvm/llvm-project/pull/166259</pre>
</div>
</content>
</entry>
<entry>
<title>[WebAssembly] [Codegen] Add pattern for relaxed min max from fminimum/fmaximum over v4f32 and v2f64 (#162948)</title>
<updated>2025-10-22T10:08:24+00:00</updated>
<author>
<name>Jasmine Tang</name>
<email>jjasmine@igalia.com</email>
</author>
<published>2025-10-22T10:08:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1fbfac30f107cbf63f91101fa5b34dee397089af'/>
<id>1fbfac30f107cbf63f91101fa5b34dee397089af</id>
<content type='text'>
Related to #55932</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Related to #55932</pre>
</div>
</content>
</entry>
<entry>
<title>[WebAssembly] Optimize lowering of constant-sized memcpy and memset (#163294)</title>
<updated>2025-10-14T22:00:25+00:00</updated>
<author>
<name>Derek Schuff</name>
<email>dschuff@chromium.org</email>
</author>
<published>2025-10-14T22:00:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=19a58a520820a0678e767abdf418f101cfd5ca1a'/>
<id>19a58a520820a0678e767abdf418f101cfd5ca1a</id>
<content type='text'>
We currently emit a check that the size operand isn't zero, to avoid
executing the wasm memory.copy instruction when it would trap.
But this isn't necessary if the operand is a constant.

Fixes #163245</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
We currently emit a check that the size operand isn't zero, to avoid
executing the wasm memory.copy instruction when it would trap.
But this isn't necessary if the operand is a constant.

Fixes #163245</pre>
</div>
</content>
</entry>
<entry>
<title>Wasm fmuladd relaxed (#163177)</title>
<updated>2025-10-13T15:50:53+00:00</updated>
<author>
<name>Sam Parker</name>
<email>sam.parker@arm.com</email>
</author>
<published>2025-10-13T15:50:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=1820102167a5ace14a5c1f79d11d5eb4cce93001'/>
<id>1820102167a5ace14a5c1f79d11d5eb4cce93001</id>
<content type='text'>
Reland #161355, after fixing up the cross-projects-tests for the wasm
simd intrinsics.

Original commit message:
Lower v4f32 and v2f64 fmuladd calls to relaxed_madd instructions.
If we have FP16, then lower v8f16 fmuladds to FMA.

I've introduced an ISD node for fmuladd to maintain the rounding
ambiguity through legalization / combine / isel.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reland #161355, after fixing up the cross-projects-tests for the wasm
simd intrinsics.

Original commit message:
Lower v4f32 and v2f64 fmuladd calls to relaxed_madd instructions.
If we have FP16, then lower v8f16 fmuladds to FMA.

I've introduced an ISD node for fmuladd to maintain the rounding
ambiguity through legalization / combine / isel.</pre>
</div>
</content>
</entry>
<entry>
<title>Revert "[WebAssembly] Lower fmuladd to madd and nmadd" (#163171)</title>
<updated>2025-10-13T10:53:40+00:00</updated>
<author>
<name>Sam Parker</name>
<email>sam.parker@arm.com</email>
</author>
<published>2025-10-13T10:53:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=30d3441cf082c3672cd7b8495cb8cc1d6ca2c8e0'/>
<id>30d3441cf082c3672cd7b8495cb8cc1d6ca2c8e0</id>
<content type='text'>
Reverts llvm/llvm-project#161355

Looks like I've broken some intrinsic code generation.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reverts llvm/llvm-project#161355

Looks like I've broken some intrinsic code generation.</pre>
</div>
</content>
</entry>
<entry>
<title>[WebAssembly] Lower fmuladd to madd and nmadd (#161355)</title>
<updated>2025-10-13T09:36:08+00:00</updated>
<author>
<name>Sam Parker</name>
<email>sam.parker@arm.com</email>
</author>
<published>2025-10-13T09:36:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a4eb7ea22575afa40d79475c15fc2d0ad3f4498a'/>
<id>a4eb7ea22575afa40d79475c15fc2d0ad3f4498a</id>
<content type='text'>
Lower v4f32 and v2f64 fmuladd calls to relaxed_madd instructions.
If we have FP16, then lower v8f16 fmuladds to FMA.

I've introduced an ISD node for fmuladd to maintain the rounding
ambiguity through legalization / combine / isel.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Lower v4f32 and v2f64 fmuladd calls to relaxed_madd instructions.
If we have FP16, then lower v8f16 fmuladds to FMA.

I've introduced an ISD node for fmuladd to maintain the rounding
ambiguity through legalization / combine / isel.</pre>
</div>
</content>
</entry>
</feed>
