Files
archived-llvm/test/CodeGen/AArch64
Tom Stellard b2d6212d1a Merging r288418:
------------------------------------------------------------------------
r288418 | tnorthover | 2016-12-01 13:31:59 -0800 (Thu, 01 Dec 2016) | 13 lines

AArch64: fix 128-bit cmpxchg at -O0 (again, again).

This time the issue is fortunately just a simple mistake rather than a horrible
design spectre. I thought SUBS/SBCS provided sufficient NZCV flags for
comparing two 64-bit values, but they don't.

The fix is slightly clunkier in AArch64 because we can't use conditional
execution to emit a pair of CMPs. Traditionally an "icmp ne i128" would map to
an EOR/EOR/ORR/CBNZ, but that uses more registers so it's easier to go with a
CSET/CINC/CBNZ combination. Slightly less efficient, but this is -O0 anyway.

Thanks to Anton Korobeynikov for pointing out the issue.

------------------------------------------------------------------------

git-svn-id: https://llvm.org/svn/llvm-project/llvm/branches/release_39@288846 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-06 20:09:32 +00:00
..
2016-08-10 16:27:26 +00:00
2015-02-13 10:48:30 +00:00
2016-12-06 20:09:32 +00:00
2016-05-31 18:31:14 +00:00
2016-08-18 19:43:50 +00:00
2016-08-18 18:14:41 +00:00
2015-08-11 14:35:29 +00:00
2016-05-03 05:21:53 +00:00
2016-05-26 12:42:55 +00:00
2014-08-20 10:40:20 +00:00