<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/mlir/lib/Dialect/Vector/Transforms/VectorUnroll.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][Vector] Add unroll pattern for vector.shape_cast (#167738)</title>
<updated>2025-11-20T00:16:44+00:00</updated>
<author>
<name>Nishant Patel</name>
<email>nishant.b.patel@intel.com</email>
</author>
<published>2025-11-20T00:16:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=af73aeaa19929127655d544b48a5145105e9e28c'/>
<id>af73aeaa19929127655d544b48a5145105e9e28c</id>
<content type='text'>
This PR adds pattern for unrolling shape_cast given a targetShape. This
PR is a follow up of #164010 which was very general and was using
inserts and extracts on each element (which is also
LowerVectorShapeCast.cpp is doing).
After doing some more research on use cases, we (me and @Jianhui-Li )
realized that the previous version in #164010 is unnecessarily generic
and doesn't fit our performance needs.

Our use case requires that targetShape is contiguous in both source and
result vector.

This pattern only applies when contiguous slices can be extracted from
the source vector and inserted into the result vector such that each
slice remains in vector form with targetShape (and not decompose to
scalars). In these cases, the unrolling proceeds as:

vector.extract_strided_slice -&gt; vector.shape_cast (on the slice
unrolled) -&gt; vector.insert_strided_slice</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR adds pattern for unrolling shape_cast given a targetShape. This
PR is a follow up of #164010 which was very general and was using
inserts and extracts on each element (which is also
LowerVectorShapeCast.cpp is doing).
After doing some more research on use cases, we (me and @Jianhui-Li )
realized that the previous version in #164010 is unnecessarily generic
and doesn't fit our performance needs.

Our use case requires that targetShape is contiguous in both source and
result vector.

This pattern only applies when contiguous slices can be extracted from
the source vector and inserted into the result vector such that each
slice remains in vector form with targetShape (and not decompose to
scalars). In these cases, the unrolling proceeds as:

vector.extract_strided_slice -&gt; vector.shape_cast (on the slice
unrolled) -&gt; vector.insert_strided_slice</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR][Vector] Extend elementwise pattern to support unrolling from higher rank to lower rank (#162515)</title>
<updated>2025-10-15T13:51:23+00:00</updated>
<author>
<name>Nishant Patel</name>
<email>nishant.b.patel@intel.com</email>
</author>
<published>2025-10-15T13:51:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=4ff8f118cc91870aed357be351230df63ef14dcf'/>
<id>4ff8f118cc91870aed357be351230df63ef14dcf</id>
<content type='text'>
This PR enhances the elementwise unrolling pattern to support higher
rank to lower rank unroll. The approach is to add leading unit dims to
lower rank targetShape to match the rank of original vector (because
ExtractStridedSlice requires same rank to extractSlices), extract slice,
reshape to targetShape's rank and perform the operation.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR enhances the elementwise unrolling pattern to support higher
rank to lower rank unroll. The approach is to add leading unit dims to
lower rank targetShape to match the rank of original vector (because
ExtractStridedSlice requires same rank to extractSlices), extract slice,
reshape to targetShape's rank and perform the operation.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] Move vector.{to_elements,from_elements} unrolling to `VectorUnroll.cpp` (#159118)</title>
<updated>2025-09-18T16:03:54+00:00</updated>
<author>
<name>Erick Ochoa Lopez</name>
<email>erick.ochoalopez@amd.com</email>
</author>
<published>2025-09-18T16:03:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8b9c70dcdbc80f01945c6560232717afd228d532'/>
<id>8b9c70dcdbc80f01945c6560232717afd228d532</id>
<content type='text'>
This PR moves the patterns that unroll vector.to_elements and
vector.from_elements into the file with other vector unrolling
operations. This PR also adds these unrolling patterns into the
`populateVectorUnrollPatterns`. And renames
`populateVectorToElementsLoweringPatterns`
`populateVectorFromElementsLoweringPatterns` to
`populateVectorToElementsUnrollPatterns`
`populateVectorFromElementsUnrollPatterns`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR moves the patterns that unroll vector.to_elements and
vector.from_elements into the file with other vector unrolling
operations. This PR also adds these unrolling patterns into the
`populateVectorUnrollPatterns`. And renames
`populateVectorToElementsLoweringPatterns`
`populateVectorFromElementsLoweringPatterns` to
`populateVectorToElementsUnrollPatterns`
`populateVectorFromElementsUnrollPatterns`.</pre>
</div>
</content>
</entry>
<entry>
<title>[MLIR][Vector] Add unrolling pattern for vector StepOp (#157752)</title>
<updated>2025-09-16T22:33:08+00:00</updated>
<author>
<name>Nishant Patel</name>
<email>nishant.b.patel@intel.com</email>
</author>
<published>2025-09-16T22:33:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=0e5c32bd6d305f417d1b4fc023616711206eccc4'/>
<id>0e5c32bd6d305f417d1b4fc023616711206eccc4</id>
<content type='text'>
This PR adds unrolling pattern for vector.step op to VectorUnroll
transform.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR adds unrolling pattern for vector.step op to VectorUnroll
transform.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][vector] Rename gather/scatter arguments (nfc) (#153640)</title>
<updated>2025-08-25T16:02:11+00:00</updated>
<author>
<name>Andrzej Warzyński</name>
<email>andrzej.warzynski@arm.com</email>
</author>
<published>2025-08-25T16:02:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=613ec4c24c145eb20ef1967a714d74c9cf403da5'/>
<id>613ec4c24c145eb20ef1967a714d74c9cf403da5</id>
<content type='text'>
Renames `indices` as `offsets` and `index_vec` as `indices`. This is
primarily to make clearer distinction between the arguments.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Renames `indices` as `offsets` and `index_vec` as `indices`. This is
primarily to make clearer distinction between the arguments.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir] Switch to new LDBG macro (#150616)</title>
<updated>2025-07-25T16:22:46+00:00</updated>
<author>
<name>Jacques Pienaar</name>
<email>jpienaar@google.com</email>
</author>
<published>2025-07-25T16:22:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=07967d4af854e50f94ce217788fa75c3e7e9ea86'/>
<id>07967d4af854e50f94ce217788fa75c3e7e9ea86</id>
<content type='text'>
Change local variants to use new central one.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Change local variants to use new central one.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][vector] Add a check to ensure input vector rank equals target shape rank (#149239)</title>
<updated>2025-07-25T02:37:33+00:00</updated>
<author>
<name>Longsheng Mou</name>
<email>longshengmou@gmail.com</email>
</author>
<published>2025-07-25T02:37:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=75aa629269c2cea94352f4029a84668bf157dc86'/>
<id>75aa629269c2cea94352f4029a84668bf157dc86</id>
<content type='text'>
The crash is caused because, during IR transformation, the
vector-unrolling pass (using ExtractStridedSliceOp) attempts to slice an
input vector of higher rank using a target vector of lower rank, which
is not supported. Fixes #148368.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The crash is caused because, during IR transformation, the
vector-unrolling pass (using ExtractStridedSliceOp) attempts to slice an
input vector of higher rank using a target vector of lower rank, which
is not supported. Fixes #148368.</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][NFC] update `mlir/Dialect` create APIs (24/n) (#149931)</title>
<updated>2025-07-22T12:16:15+00:00</updated>
<author>
<name>Maksim Levental</name>
<email>maksim.levental@gmail.com</email>
</author>
<published>2025-07-22T12:16:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f904cdd6c3049e605d24ed17680e80e7133908a0'/>
<id>f904cdd6c3049e605d24ed17680e80e7133908a0</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][vector] Add unroll patterns for vector.load and vector.store (#143420)</title>
<updated>2025-06-20T20:50:25+00:00</updated>
<author>
<name>Nishant Patel</name>
<email>nishant.b.patel@intel.com</email>
</author>
<published>2025-06-20T20:50:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=9c1ce31f546368d6296bc881e9f576ad25c20c73'/>
<id>9c1ce31f546368d6296bc881e9f576ad25c20c73</id>
<content type='text'>
This PR adds unroll patterns for vector.load and vector.store. This PR is follow up of #137558</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR adds unroll patterns for vector.load and vector.store. This PR is follow up of #137558</pre>
</div>
</content>
</entry>
<entry>
<title>[mlir][vector] add unroll pattern for broadcast (#142011)</title>
<updated>2025-06-05T17:42:16+00:00</updated>
<author>
<name>Chao Chen</name>
<email>chao.chen@intel.com</email>
</author>
<published>2025-06-05T17:42:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=def37f7e3a66601e044ce49c034293e7e32d2a3b'/>
<id>def37f7e3a66601e044ce49c034293e7e32d2a3b</id>
<content type='text'>
This PR adds `UnrollBroadcastPattern` to `VectorUnroll` transform. 
To support this, it also extends `BroadcastOp` definition with
`VectorUnrollOpInterface`</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This PR adds `UnrollBroadcastPattern` to `VectorUnroll` transform. 
To support this, it also extends `BroadcastOp` definition with
`VectorUnrollOpInterface`</pre>
</div>
</content>
</entry>
</feed>
