<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/lib/Target/ARM, branch testing</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/lib/Target/ARM?h=testing</id>
<link rel='self' href='https://git.amat.us/llvm/atom/lib/Target/ARM?h=testing'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2013-03-21T18:47:47Z</updated>
<entry>
<title>Avoid NEON SP-FP unless unsafe-math or Darwin</title>
<updated>2013-03-21T18:47:47Z</updated>
<author>
<name>Renato Golin</name>
<email>renato.golin@linaro.org</email>
</author>
<published>2013-03-21T18:47:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=3382a840747c42c4a98eac802ee7b347a8ded1e4'/>
<id>urn:sha1:3382a840747c42c4a98eac802ee7b347a8ded1e4</id>
<content type='text'>
NEON is not IEEE 754 compliant, so we should avoid lowering single-precision
floating point operations with NEON unless unsafe-math is turned on. The
equivalent VFP instructions are IEEE 754 compliant, but in some cores they're
much slower, so some archs/OSs might still request it to be on by default,
such as Swift and Darwin.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177651 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix pr13145 - Naming a function like a register name confuses the asm parser.</title>
<updated>2013-03-19T23:44:03Z</updated>
<author>
<name>Chad Rosier</name>
<email>mcrosier@apple.com</email>
</author>
<published>2013-03-19T23:44:03Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=580f9c85fd7a3c90884ed7ee7c2d613923a53bb3'/>
<id>urn:sha1:580f9c85fd7a3c90884ed7ee7c2d613923a53bb3</id>
<content type='text'>
Patch by Stepan Dyatkovskiy &lt;stpworld@narod.ru&gt;
rdar://13457826

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177463 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Improve long vector sext/zext lowering on ARM</title>
<updated>2013-03-19T08:15:38Z</updated>
<author>
<name>Renato Golin</name>
<email>renato.golin@linaro.org</email>
</author>
<published>2013-03-19T08:15:38Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=5ad5f5931e34d5be410b1e901640bc1c2d308612'/>
<id>urn:sha1:5ad5f5931e34d5be410b1e901640bc1c2d308612</id>
<content type='text'>
The ARM backend currently has poor codegen for long sext/zext
operations, such as v8i8 -&gt; v8i32. This patch addresses this
by performing a custom expansion in ARMISelLowering. It also
adds/changes the cost of such lowering in ARMTTI.

This partially addresses PR14867.

Patch by Pete Couperus

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177380 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>ARM cost model: Make some vector integer to float casts cheaper</title>
<updated>2013-03-18T22:47:09Z</updated>
<author>
<name>Arnold Schwaighofer</name>
<email>aschwaighofer@apple.com</email>
</author>
<published>2013-03-18T22:47:09Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=bf37bf9e21653f2439960d906a9c28cc19042bb0'/>
<id>urn:sha1:bf37bf9e21653f2439960d906a9c28cc19042bb0</id>
<content type='text'>
The default logic marks them as too expensive.

For example, before this patch we estimated:
  cost of 16 for instruction:   %r = uitofp &lt;4 x i16&gt; %v0 to &lt;4 x float&gt;

While this translates to:
  vmovl.u16 q8, d16
  vcvt.f32.u32  q8, q8

All other costs are left to the values assigned by the fallback logic. Theses
costs are mostly reasonable in the sense that they get progressively more
expensive as the instruction sequences emitted get longer.

radar://13445992

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177334 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>ARM cost model: Correct cost for some cheap float to integer conversions</title>
<updated>2013-03-18T22:47:06Z</updated>
<author>
<name>Arnold Schwaighofer</name>
<email>aschwaighofer@apple.com</email>
</author>
<published>2013-03-18T22:47:06Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=01f25710148721f9fc2dece5eec17899ca414bcc'/>
<id>urn:sha1:01f25710148721f9fc2dece5eec17899ca414bcc</id>
<content type='text'>
Fix cost of some "cheap" cast instructions. Before this patch we used to
estimate for example:
  cost of 16 for instruction:   %r = fptoui &lt;4 x float&gt; %v0 to &lt;4 x i16&gt;

While we would emit:
  vcvt.s32.f32  q8, q8
  vmovn.i32 d16, q8
  vuzp.8  d16, d17

All other costs are left to the values assigned by the fallback logic. Theses
costs are mostly reasonable in the sense that they get progressively more
expensive as the instruction sequences emitted get longer.

radar://13434072

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177333 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>ARM cost model: Fix costs for some vector selects</title>
<updated>2013-03-15T18:31:01Z</updated>
<author>
<name>Arnold Schwaighofer</name>
<email>aschwaighofer@apple.com</email>
</author>
<published>2013-03-15T18:31:01Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=5193e4ebe216dd5a07ab9cc58d40de5aafaa990c'/>
<id>urn:sha1:5193e4ebe216dd5a07ab9cc58d40de5aafaa990c</id>
<content type='text'>
I was too pessimistic in r177105. Vector selects that fit into a legal register
type lower just fine. I was mislead by the code fragment that I was using. The
stores/loads that I saw in those cases came from lowering the conditional off
an address.

Changing the code fragment to:

%T0_3 = type &lt;8 x i18&gt;
%T1_3 = type &lt;8 x i1&gt;

define void @func_blend3(%T0_3* %loadaddr, %T0_3* %loadaddr2,
                         %T1_3* %blend, %T0_3* %storeaddr) {
  %v0 = load %T0_3* %loadaddr
  %v1 = load %T0_3* %loadaddr2
==&gt; FROM:
  ;%c = load %T1_3* %blend
==&gt; TO:
  %c = icmp slt %T0_3 %v0, %v1
==&gt; USE:
  %r = select %T1_3 %c, %T0_3 %v0, %T0_3 %v1

  store %T0_3 %r, %T0_3* %storeaddr
  ret void
}

revealed this mistake.

radar://13403975

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177170 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Adding an A15 specific optimization pass for interactions between S/D/Q registers. The pass handles all the required transformations pre-regalloc.</title>
<updated>2013-03-15T18:28:25Z</updated>
<author>
<name>Silviu Baranga</name>
<email>silviu.baranga@arm.com</email>
</author>
<published>2013-03-15T18:28:25Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=bcbf3fddef46f1f6e2f2408064c4b75e4b6c90f5'/>
<id>urn:sha1:bcbf3fddef46f1f6e2f2408064c4b75e4b6c90f5</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177169 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>ARM: Fix an old refacto.</title>
<updated>2013-03-15T17:27:39Z</updated>
<author>
<name>Benjamin Kramer</name>
<email>benny.kra@googlemail.com</email>
</author>
<published>2013-03-15T17:27:39Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=133c0d36e1fdeda88d784017bafa8a1b22af8aca'/>
<id>urn:sha1:133c0d36e1fdeda88d784017bafa8a1b22af8aca</id>
<content type='text'>
Fixes PR15520.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177167 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>ARM cost model: Fix cost of fptrunc and fpext instructions</title>
<updated>2013-03-15T15:10:47Z</updated>
<author>
<name>Arnold Schwaighofer</name>
<email>aschwaighofer@apple.com</email>
</author>
<published>2013-03-15T15:10:47Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=c0d8dc0eb6e1df872affadba01f60e42275e2863'/>
<id>urn:sha1:c0d8dc0eb6e1df872affadba01f60e42275e2863</id>
<content type='text'>
A vector fptrunc and fpext simply gets split into scalar instructions.

radar://13192358

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177159 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Silence anonymous type in anonymous union warnings.</title>
<updated>2013-03-15T00:42:55Z</updated>
<author>
<name>Eric Christopher</name>
<email>echristo@gmail.com</email>
</author>
<published>2013-03-15T00:42:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=a286fc065a5bc846d73c8407a534a1d3c1d70b59'/>
<id>urn:sha1:a286fc065a5bc846d73c8407a534a1d3c1d70b59</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@177135 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
</feed>
