<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/test/Transforms/LoopVectorize, branch stable</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/test/Transforms/LoopVectorize?h=stable</id>
<link rel='self' href='https://git.amat.us/llvm/atom/test/Transforms/LoopVectorize?h=stable'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2013-04-01T10:23:49Z</updated>
<entry>
<title>X86TTI: Add accurate costs for itofp operations, based on the actual instruction counts.</title>
<updated>2013-04-01T10:23:49Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2013-04-01T10:23:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=13497b3aa7589fc4f9e924f850a7e5151e9ddd2f'/>
<id>urn:sha1:13497b3aa7589fc4f9e924f850a7e5151e9ddd2f</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178459 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>LoopVectorizer: Insert some white space to make test case more readable</title>
<updated>2013-03-14T21:31:09Z</updated>
<author>
<name>Arnold Schwaighofer</name>
<email>aschwaighofer@apple.com</email>
</author>
<published>2013-03-14T21:31:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=c184a5f4cad9415ee93ff6d24da2ed676573b61c'/>
<id>urn:sha1:c184a5f4cad9415ee93ff6d24da2ed676573b61c</id>
<content type='text'>
Also remove some unneeded function attributes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177114 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Add missing asserts flag to test - it uses debug flags</title>
<updated>2013-03-14T19:01:58Z</updated>
<author>
<name>Arnold Schwaighofer</name>
<email>aschwaighofer@apple.com</email>
</author>
<published>2013-03-14T19:01:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=e2188d9c43d9e81407d2c7b7ef887e27f028a8ff'/>
<id>urn:sha1:e2188d9c43d9e81407d2c7b7ef887e27f028a8ff</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177102 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>LoopVectorize: Invert case when we use a vector cmp value to query select cost</title>
<updated>2013-03-14T18:54:36Z</updated>
<author>
<name>Arnold Schwaighofer</name>
<email>aschwaighofer@apple.com</email>
</author>
<published>2013-03-14T18:54:36Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=d517da33b712b5d8d687ee5e5974056a4787ec4f'/>
<id>urn:sha1:d517da33b712b5d8d687ee5e5974056a4787ec4f</id>
<content type='text'>
We generate a select with a vectorized condition argument when the condition is
NOT loop invariant. Not the other way around.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177098 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Test case hygiene.</title>
<updated>2013-03-09T18:25:40Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2013-03-09T18:25:40Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=1cb47b9afe77231d6b87b8445dfec475fb5e59cd'/>
<id>urn:sha1:1cb47b9afe77231d6b87b8445dfec475fb5e59cd</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176772 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>LoopVectorizer: Ignore dbg.value instructions</title>
<updated>2013-03-09T15:56:34Z</updated>
<author>
<name>Arnold Schwaighofer</name>
<email>aschwaighofer@apple.com</email>
</author>
<published>2013-03-09T15:56:34Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=56ee544a3af2b019329f06422c00e8a3645b895c'/>
<id>urn:sha1:56ee544a3af2b019329f06422c00e8a3645b895c</id>
<content type='text'>
We want vectorization to happen at -g. Ignore calls to the dbg.value intrinsic
and don't transfer them to the vectorized code.

radar://13378964

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176768 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Force cpu in test.</title>
<updated>2013-03-08T17:01:18Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2013-03-08T17:01:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=35a4a0ca510feb21aeffb27982b9610f65f55e61'/>
<id>urn:sha1:35a4a0ca510feb21aeffb27982b9610f65f55e61</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176702 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Insert the reduction start value into the first bypass block to preserve domination.</title>
<updated>2013-03-08T16:58:37Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2013-03-08T16:58:37Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=f22d9cfa6d145ce26930804cc3ac54340f49c38b'/>
<id>urn:sha1:f22d9cfa6d145ce26930804cc3ac54340f49c38b</id>
<content type='text'>
Fixes PR15344.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176701 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>X86 cost model: Adjust cost for custom lowered vector multiplies</title>
<updated>2013-03-02T04:02:52Z</updated>
<author>
<name>Arnold Schwaighofer</name>
<email>aschwaighofer@apple.com</email>
</author>
<published>2013-03-02T04:02:52Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=5f0d9dbdf48a9efe16bfadf88e5335f7b9a8ec3f'/>
<id>urn:sha1:5f0d9dbdf48a9efe16bfadf88e5335f7b9a8ec3f</id>
<content type='text'>
This matters for example in following matrix multiply:

int **mmult(int rows, int cols, int **m1, int **m2, int **m3) {
  int i, j, k, val;
  for (i=0; i&lt;rows; i++) {
    for (j=0; j&lt;cols; j++) {
      val = 0;
      for (k=0; k&lt;cols; k++) {
        val += m1[i][k] * m2[k][j];
      }
      m3[i][j] = val;
    }
  }
  return(m3);
}

Taken from the test-suite benchmark Shootout.

We estimate the cost of the multiply to be 2 while we generate 9 instructions
for it and end up being quite a bit slower than the scalar version (48% on my
machine).

Also, properly differentiate between avx1 and avx2. On avx-1 we still split the
vector into 2 128bits and handle the subvector muls like above with 9
instructions.
Only on avx-2 will we have a cost of 9 for v4i64.

I changed the test case in test/Transforms/LoopVectorize/X86/avx1.ll to use an
add instead of a mul because with a mul we now no longer vectorize. I did
verify that the mul would be indeed more expensive when vectorized with 3
kernels:

for (i ...)
   r += a[i] * 3;
for (i ...)
  m1[i] = m1[i] * 3; // This matches the test case in avx1.ll
and a matrix multiply.

In each case the vectorized version was considerably slower.

radar://13304919

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176403 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>PR14448 - prevent the loop vectorizer from vectorizing the same loop twice.</title>
<updated>2013-03-02T01:33:49Z</updated>
<author>
<name>Nadav Rotem</name>
<email>nrotem@apple.com</email>
</author>
<published>2013-03-02T01:33:49Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=5290baacb8ca4fb75d798e873a441cad11cbfb2c'/>
<id>urn:sha1:5290baacb8ca4fb75d798e873a441cad11cbfb2c</id>
<content type='text'>
The LoopVectorizer often runs multiple times on the same function due to inlining.
When this happens the loop vectorizer often vectorizes the same loops multiple times, increasing code size and adding unneeded branches.
With this patch, the vectorizer during vectorization puts metadata on scalar loops and marks them as 'already vectorized' so that it knows to ignore them when it sees them a second time.

PR14448.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@176399 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
</feed>
