<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/mlir/lib/Conversion/MathToLLVM/MathToLLVM.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>[mlir] Switch uses of deprecated .create methods to free function. NFC. (#164635)</title>
<updated>2025-10-22T14:51:03+00:00</updated>
<author>
<name>Jakub Kuderski</name>
<email>jakub@nod-labs.com</email>
</author>
<published>2025-10-22T14:51:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=ae11c5c2c4d7ae4cba4a8e05f0c7d85b316a2cf0'/>
<id>ae11c5c2c4d7ae4cba4a8e05f0c7d85b316a2cf0</id>
<content type='text'>
See https://discourse.llvm.org/t/psa-opty-create-now-with-100-more-tab-complete/87339.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See https://discourse.llvm.org/t/psa-opty-create-now-with-100-more-tab-complete/87339.</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR] Add sincos op to math dialect (#160772)</title>
<updated>2025-09-30T14:36:13+00:00</updated>
<author>
<name>Asher Mancinelli</name>
<email>ashermancinelli@gmail.com</email>
</author>
<published>2025-09-30T14:36:13+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=82efd72ed505c6ec183eca700290a29051c2d6e6'/>
<id>82efd72ed505c6ec183eca700290a29051c2d6e6</id>
<content type='text'>
Now that `sincos` is a supported intrinsic in the LLVM dialect
(#160561) we are able to add the corresponding operation in 
the math dialect and add conversion patterns for LLVM and NVVM.

We have several benchmarks that use sine and cosine in hot-loops, and
saving some calculations by performing them together can benefit
performance. We would like to have a way to represent sincos in the math
dialect.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Now that `sincos` is a supported intrinsic in the LLVM dialect
(#160561) we are able to add the corresponding operation in 
the math dialect and add conversion patterns for LLVM and NVVM.

We have several benchmarks that use sine and cosine in hot-loops, and
saving some calculations by performing them together can benefit
performance. We would like to have a way to represent sincos in the math
dialect.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][NFC] update `Conversion` create APIs (6/n) (#149888)</title>
<updated>2025-07-22T12:16:53+00:00</updated>
<author>
<name>Maksim Levental</name>
<email>maksim.levental@gmail.com</email>
</author>
<published>2025-07-22T12:16:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4ae9fdca8af095afd91705f8dd143e93b304b6fb'/>
<id>4ae9fdca8af095afd91705f8dd143e93b304b6fb</id>
<content type='text'>
See https://github.com/llvm/llvm-project/pull/147168 for more info.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
See https://github.com/llvm/llvm-project/pull/147168 for more info.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][math] Fix intrinsic conversions to LLVM for 0D-vector types (#141020)</title>
<updated>2025-06-02T11:27:44+00:00</updated>
<author>
<name>Artem Gindinson</name>
<email>gindinson@roofline.ai</email>
</author>
<published>2025-06-02T11:27:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=af6e3c045b07ebc7ce09318c90048f407a15b391'/>
<id>af6e3c045b07ebc7ce09318c90048f407a15b391</id>
<content type='text'>
`vector&lt;t&gt;` types are not compatible with the LLVM type system – with
the current approach employed within `LLVMTypeConverter`, they must be
explicitly converted into `vector&lt;1xt&gt;` when lowering. Employ this rule
within the conversion patterns for intrinsics that are handled directly
within `MathToLLVM`: `math.ctlz` `.cttz`, `.absi`, `.expm1`, `.log1p`,
`.rsqrt`, `.isnan`, `.isfinite`.

This change does not cover/test patterns that are based off
`VectorConvertToLLVMPattern` template from `LLVMCommon/VectorPattern.h`.

---------

Signed-off-by: Artem Gindinson &lt;gindinson@roofline.ai&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
`vector&lt;t&gt;` types are not compatible with the LLVM type system – with
the current approach employed within `LLVMTypeConverter`, they must be
explicitly converted into `vector&lt;1xt&gt;` when lowering. Employ this rule
within the conversion patterns for intrinsics that are handled directly
within `MathToLLVM`: `math.ctlz` `.cttz`, `.absi`, `.expm1`, `.log1p`,
`.rsqrt`, `.isnan`, `.isfinite`.

This change does not cover/test patterns that are based off
`VectorConvertToLLVMPattern` template from `LLVMCommon/VectorPattern.h`.

---------

Signed-off-by: Artem Gindinson &lt;gindinson@roofline.ai&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][math] Add missing trig math-to-llvm conversion patterns (#141069)</title>
<updated>2025-05-27T15:09:48+00:00</updated>
<author>
<name>Asher Mancinelli</name>
<email>ashermancinelli@gmail.com</email>
</author>
<published>2025-05-27T15:09:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=42b1df43e73391f035dd370f219d2fca3482769d'/>
<id>42b1df43e73391f035dd370f219d2fca3482769d</id>
<content type='text'>
asin, acos, atan, and atan2 were being lowered to libm calls instead of
llvm intrinsics. Add the conversion patterns to handle these intrinsics
and update tests to expect this.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
asin, acos, atan, and atan2 were being lowered to libm calls instead of
llvm intrinsics. Add the conversion patterns to handle these intrinsics
and update tests to expect this.</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR][Math] Add lowering for isnan and isfinite (#128125)</title>
<updated>2025-02-21T05:40:35+00:00</updated>
<author>
<name>William Moses</name>
<email>gh@wsmoses.com</email>
</author>
<published>2025-02-21T05:40:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f0134e6d312e8a805b8fe799ec27d936c8658cb2'/>
<id>f0134e6d312e8a805b8fe799ec27d936c8658cb2</id>
<content type='text'>
Co-authored-by: Ivan R. Ivanov &lt;ivanov.i.aa@m.titech.ac.jp&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Ivan R. Ivanov &lt;ivanov.i.aa@m.titech.ac.jp&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR][Math] Add optional benefit arg to populate math lowering patterns (#127291)</title>
<updated>2025-02-15T04:38:11+00:00</updated>
<author>
<name>William Moses</name>
<email>gh@wsmoses.com</email>
</author>
<published>2025-02-15T04:38:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5c93eb56dc9bc0c0210483cdd5d31e6b6580454f'/>
<id>5c93eb56dc9bc0c0210483cdd5d31e6b6580454f</id>
<content type='text'>
Co-authored-by: Ivan R. Ivanov &lt;ivanov.i.aa@m.titech.ac.jp&gt;</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Co-authored-by: Ivan R. Ivanov &lt;ivanov.i.aa@m.titech.ac.jp&gt;</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] Add math to LLVM lowering support for missing trigonometric &amp; hyperbolic ops (#125753)</title>
<updated>2025-02-06T00:02:29+00:00</updated>
<author>
<name>Paul Carabas</name>
<email>paulcaraa@gmail.com</email>
</author>
<published>2025-02-06T00:02:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=df1bee03de1cdc1505a4e9dde3ed064eb7db785f'/>
<id>df1bee03de1cdc1505a4e9dde3ed064eb7db785f</id>
<content type='text'>
The patch adds support for math -&gt; LLVM dialect lowering for TanOp,
Sinh, Cosh, Tanh</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The patch adds support for math -&gt; LLVM dialect lowering for TanOp,
Sinh, Cosh, Tanh</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][NFC] Mark type converter in `populate...` functions as `const` (#111250)</title>
<updated>2024-10-05T19:32:40+00:00</updated>
<author>
<name>Matthias Springer</name>
<email>me@m-sp.org</email>
</author>
<published>2024-10-05T19:32:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=206fad0e218e83799e49ca15545d997c6c5e8a03'/>
<id>206fad0e218e83799e49ca15545d997c6c5e8a03</id>
<content type='text'>
This commit marks the type converter in `populate...` functions as
`const`. This is useful for debugging.

Patterns already take a `const` type converter. However, some
`populate...` functions do not only add new patterns, but also add
additional type conversion rules. That makes it difficult to find the
place where a type conversion was added in the code base. With this
change, all `populate...` functions that only populate pattern now have
a `const` type converter. Programmers can then conclude from the
function signature that these functions do not register any new type
conversion rules.

Also some minor cleanups around the 1:N dialect conversion
infrastructure, which did not always pass the type converter as a
`const` object internally.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This commit marks the type converter in `populate...` functions as
`const`. This is useful for debugging.

Patterns already take a `const` type converter. However, some
`populate...` functions do not only add new patterns, but also add
additional type conversion rules. That makes it difficult to find the
place where a type conversion was added in the code base. With this
change, all `populate...` functions that only populate pattern now have
a `const` type converter. Programmers can then conclude from the
function signature that these functions do not register any new type
conversion rules.

Also some minor cleanups around the 1:N dialect conversion
infrastructure, which did not always pass the type converter as a
`const` object internally.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][math] Propagate scalability in `convert-math-to-llvm` (#82635)</title>
<updated>2024-02-23T09:48:58+00:00</updated>
<author>
<name>Benjamin Maxwell</name>
<email>benjamin.maxwell@arm.com</email>
</author>
<published>2024-02-23T09:48:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=78890904c41cc4221839dafb7ae906971a9db51a'/>
<id>78890904c41cc4221839dafb7ae906971a9db51a</id>
<content type='text'>
This also generally increases the coverage of scalable vector types in
the math-to-llvm tests.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This also generally increases the coverage of scalable vector types in
the math-to-llvm tests.</pre>
</div>
</content>
</entry>
</feed>
