<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/llvm/unittests/Transforms/Vectorize/SandboxVectorizer/InstrMapsTest.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>[SandboxVec][BottomUpVec] Separate vectorization decisions from code generation (#127727)</title>
<updated>2025-02-20T18:21:25+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-02-20T18:21:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=10b99e97ff866b43569531b890c11b4a3011f6a2'/>
<id>10b99e97ff866b43569531b890c11b4a3011f6a2</id>
<content type='text'>
Up until now the generation of vector instructions was taking place
during the top-down post-order traversal of vectorizeRec(). The issue
with this approach is that the vector instructions emitted during the
traversal can be reordered by the scheduler, making it challenging to
place them without breaking the def-before-uses rule.

With this patch we separate the vectorization decisions (done in
`vectorizeRec()`) from the code generation phase (`emitVectors()`). The
vectorization decisions are stored in the `Actions` vector and are used
by `emitVectors()` to drive code generation.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Up until now the generation of vector instructions was taking place
during the top-down post-order traversal of vectorizeRec(). The issue
with this approach is that the vector instructions emitted during the
traversal can be reordered by the scheduler, making it challenging to
place them without breaking the def-before-uses rule.

With this patch we separate the vectorization decisions (done in
`vectorizeRec()`) from the code generation phase (`emitVectors()`). The
vectorization decisions are stored in the `Actions` vector and are used
by `emitVectors()` to drive code generation.</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][Legality] Fix mask on diamond reuse with shuffle (#126963)</title>
<updated>2025-02-12T20:29:09+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-02-12T20:29:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7a7f9190d03e12dc5b57d3eb33a84d078de43104'/>
<id>7a7f9190d03e12dc5b57d3eb33a84d078de43104</id>
<content type='text'>
This patch fixes a bug in the creation of shuffle masks when vectorizing
vectors in case of a diamond reuse with shuffle. The mask needs to
enumerate all elements of a vector, not treat the original vector value
as a single element. That is: if vectorizing two &lt;2 x float&gt; vectors
into a &lt;4 x float&gt; the mask needs to have 4 indices, not just 2.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes a bug in the creation of shuffle masks when vectorizing
vectors in case of a diamond reuse with shuffle. The mask needs to
enumerate all elements of a vector, not treat the original vector value
as a single element. That is: if vectorizing two &lt;2 x float&gt; vectors
into a &lt;4 x float&gt; the mask needs to have 4 indices, not just 2.</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVectorizer] Fix a warning</title>
<updated>2025-01-17T22:06:15+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-01-17T22:06:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=358d65463b215a18e731b3a5494d51e1bcbd1356'/>
<id>358d65463b215a18e731b3a5494d51e1bcbd1356</id>
<content type='text'>
This patch fixes:

  third-party/unittest/googletest/include/gtest/gtest.h:1379:11:
  error: comparison of integers of different signs: 'const unsigned
  int' and 'const int' [-Werror,-Wsign-compare]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes:

  third-party/unittest/googletest/include/gtest/gtest.h:1379:11:
  error: comparison of integers of different signs: 'const unsigned
  int' and 'const int' [-Werror,-Wsign-compare]
</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][InstrMaps] EraseInstr callback (#123256)</title>
<updated>2025-01-17T21:36:42+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-01-17T21:36:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d6315afff078cb4309b5614562b32520f6e3a2eb'/>
<id>d6315afff078cb4309b5614562b32520f6e3a2eb</id>
<content type='text'>
This patch hooks up InstrMaps to the Sandbox IR callbacks such that it
gets updated when instructions get erased.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch hooks up InstrMaps to the Sandbox IR callbacks such that it
gets updated when instructions get erased.</pre>
</div>
</content>
</entry>
<entry>
<title>[Vectorize] Fix warnings</title>
<updated>2025-01-16T23:45:59+00:00</updated>
<author>
<name>Kazu Hirata</name>
<email>kazu@google.com</email>
</author>
<published>2025-01-16T23:45:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=13c761789753862a7cc31a2a26f23010afa668b9'/>
<id>13c761789753862a7cc31a2a26f23010afa668b9</id>
<content type='text'>
This patch fixes:

  third-party/unittest/googletest/include/gtest/gtest.h:1379:11:
  error: comparison of integers of different signs: 'const unsigned
  int' and 'const int' [-Werror,-Wsign-compare]

  llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/InstrMaps.h:57:12:
  error: unused variable 'Pair' [-Werror,-Wunused-variable]
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch fixes:

  third-party/unittest/googletest/include/gtest/gtest.h:1379:11:
  error: comparison of integers of different signs: 'const unsigned
  int' and 'const int' [-Werror,-Wsign-compare]

  llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/InstrMaps.h:57:12:
  error: unused variable 'Pair' [-Werror,-Wunused-variable]
</pre>
</div>
</content>
</entry>
<entry>
<title>[SandboxVec][BottomUpVec] Implement InstrMaps (#122848)</title>
<updated>2025-01-16T23:26:35+00:00</updated>
<author>
<name>vporpo</name>
<email>vporpodas@google.com</email>
</author>
<published>2025-01-16T23:26:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=e902c6960cff4372d4b3ef9ae424b24ec6b0ea38'/>
<id>e902c6960cff4372d4b3ef9ae424b24ec6b0ea38</id>
<content type='text'>
InstrMaps is a helper data structure that maps scalars to vectors and
the reverse. This is used by the vectorizer to figure out which vectors
it can extract scalar values from.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
InstrMaps is a helper data structure that maps scalars to vectors and
the reverse. This is used by the vectorizer to figure out which vectors
it can extract scalar values from.</pre>
</div>
</content>
</entry>
</feed>
