<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm/test/CodeGen/PowerPC, branch stable</title>
<subtitle>http://llvm.org</subtitle>
<id>https://git.amat.us/llvm/atom/test/CodeGen/PowerPC?h=stable</id>
<link rel='self' href='https://git.amat.us/llvm/atom/test/CodeGen/PowerPC?h=stable'/>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/'/>
<updated>2013-04-01T18:42:58Z</updated>
<entry>
<title>Fix a bad assert in PPCTargetLowering</title>
<updated>2013-04-01T18:42:58Z</updated>
<author>
<name>Hal Finkel</name>
<email>hfinkel@anl.gov</email>
</author>
<published>2013-04-01T18:42:58Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=a1646ceb9a5da080607e503c8bd36241aa465613'/>
<id>urn:sha1:a1646ceb9a5da080607e503c8bd36241aa465613</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178489 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Add triple to test/CodeGen/PowerPC/stfiwx-2</title>
<updated>2013-04-01T18:18:44Z</updated>
<author>
<name>Hal Finkel</name>
<email>hfinkel@anl.gov</email>
</author>
<published>2013-04-01T18:18:44Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=6c81b118caf83e579aaf85c7dca9aebc389abae9'/>
<id>urn:sha1:6c81b118caf83e579aaf85c7dca9aebc389abae9</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178486 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Add more PPC floating-point conversion instructions</title>
<updated>2013-04-01T17:52:07Z</updated>
<author>
<name>Hal Finkel</name>
<email>hfinkel@anl.gov</email>
</author>
<published>2013-04-01T17:52:07Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=46479197843ecb651adc9417c49bbd1b00acfcb6'/>
<id>urn:sha1:46479197843ecb651adc9417c49bbd1b00acfcb6</id>
<content type='text'>
The P7 and A2 have additional floating-point conversion instructions which
allow a direct two-instruction sequence (plus load/store) to convert from all
combinations (signed/unsigned i32/i64) &lt;--&gt; (float/double) (on previous cores,
only some combinations were directly available).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178480 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Fix PowerPC/cttz.ll to specify a cpu (and use FileCheck)</title>
<updated>2013-04-01T16:31:56Z</updated>
<author>
<name>Hal Finkel</name>
<email>hfinkel@anl.gov</email>
</author>
<published>2013-04-01T16:31:56Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=dc8efbae143626074fbb2420dde357d16e17bf57'/>
<id>urn:sha1:dc8efbae143626074fbb2420dde357d16e17bf57</id>
<content type='text'>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178472 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Add the PPC popcntw instruction</title>
<updated>2013-04-01T15:58:15Z</updated>
<author>
<name>Hal Finkel</name>
<email>hfinkel@anl.gov</email>
</author>
<published>2013-04-01T15:58:15Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=1fce88313e4d46fdd432b68f7c54fde972c0b526'/>
<id>urn:sha1:1fce88313e4d46fdd432b68f7c54fde972c0b526</id>
<content type='text'>
The popcntw instruction is available whenever the popcntd instruction is
available, and performs a separate popcnt on the lower and upper 32-bits.
Ignoring the high-order count, this can be used for the 32-bit input case
(saving on the explicit zero extension otherwise required to use popcntd).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178470 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Add the PPC lfiwax instruction</title>
<updated>2013-03-31T10:12:51Z</updated>
<author>
<name>Hal Finkel</name>
<email>hfinkel@anl.gov</email>
</author>
<published>2013-03-31T10:12:51Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=8049ab15e4b638a07d6f230329945c2310eca27b'/>
<id>urn:sha1:8049ab15e4b638a07d6f230329945c2310eca27b</id>
<content type='text'>
This instruction is available on modern PPC64 CPUs, and is now used
to improve the SINT_TO_FP lowering (by eliminating the need for the
separate sign extension instruction and decreasing the amount of
needed stack space).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178446 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Cleanup PPC(64) i32 -&gt; float/double conversion</title>
<updated>2013-03-31T01:58:02Z</updated>
<author>
<name>Hal Finkel</name>
<email>hfinkel@anl.gov</email>
</author>
<published>2013-03-31T01:58:02Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=9ad0f4907b3ba0916a8b6cdb95d298d2ddb7d405'/>
<id>urn:sha1:9ad0f4907b3ba0916a8b6cdb95d298d2ddb7d405</id>
<content type='text'>
The existing SINT_TO_FP code for i32 -&gt; float/double conversion was disabled
because it relied on broken EXTSW_32/STD_32 instruction definitions. The
original intent had been to enable these 64-bit instructions to be used on CPUs
that support them even in 32-bit mode.  Unfortunately, this form of lying to
the infrastructure was buggy (as explained in the FIXME comment) and had
therefore been disabled.

This re-enables this functionality, using regular DAG nodes, but only when
compiling in 64-bit mode. The old STD_32/EXTSW_32 definitions (which were dead)
are removed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178438 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Implement FRINT lowering on PPC using frin</title>
<updated>2013-03-29T19:41:55Z</updated>
<author>
<name>Hal Finkel</name>
<email>hfinkel@anl.gov</email>
</author>
<published>2013-03-29T19:41:55Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=0882fd6c4f90f1cbaa4bb6f6ceec289428cca734'/>
<id>urn:sha1:0882fd6c4f90f1cbaa4bb6f6ceec289428cca734</id>
<content type='text'>
Like nearbyint, rint can be implemented on PPC using the frin instruction. The
complication comes from the fact that rint needs to set the FE_INEXACT flag
when the result does not equal the input value (and frin does not do that). As
a result, we use a custom inserter which, after the rounding, compares the
rounded value with the original, and if they differ, explicitly sets the XX bit
in the FPSCR register (which corresponds to FE_INEXACT).

Once LLVM has better modeling of the floating-point environment we should be
able to (often) eliminate this extra complexity.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178362 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Add PPC FP rounding instructions fri[mnpz]</title>
<updated>2013-03-29T08:57:48Z</updated>
<author>
<name>Hal Finkel</name>
<email>hfinkel@anl.gov</email>
</author>
<published>2013-03-29T08:57:48Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=f5d5c434606161fb017a34cb656fa4aa5a3e076b'/>
<id>urn:sha1:f5d5c434606161fb017a34cb656fa4aa5a3e076b</id>
<content type='text'>
These instructions are available on the P5x (and later) and on the A2. They
implement the standard floating-point rounding operations (floor, trunc, etc.).
One caveat: frin (round to nearest) does not implement "ties to even", and so
is only enabled in fast-math mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@178337 91177308-0d34-0410-b5e6-96231b3b80d8
</content>
</entry>
<entry>
<title>Specify CPUs on the PPC bswap-load-store test</title>
<updated>2013-03-28T20:35:18Z</updated>
<author>
<name>Hal Finkel</name>
<email>hfinkel@anl.gov</email>
</author>
<published>2013-03-28T20:35:18Z</published>
<link rel='alternate' type='text/html' href='https://git.amat.us/llvm/commit/?id=af0d148b2038e7f4ba1894f975353890faf0eeb5'/>
<id>urn:sha1:af0d148b2038e7f4ba1894f975353890faf0eeb5</id>
<content type='text'>
Otherwise, the CHECK-NOT's might trigger depending on the host's CPU.

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