[AArch64][CGP] Sink zext feeding stxr/stlxr into the same block.
authorAhmed Bougacha <ahmed.bougacha@gmail.com>
Fri, 22 May 2015 21:37:17 +0000 (21:37 +0000)
committerAhmed Bougacha <ahmed.bougacha@gmail.com>
Fri, 22 May 2015 21:37:17 +0000 (21:37 +0000)
commitd8319655f209cf2605a61d4a60b779e51baa29cc
treed71c0373f899030e67cb2b5750e3b67e9fb2eec4
parent6af60ebd5773478f93afd1bc848e660934346119
[AArch64][CGP] Sink zext feeding stxr/stlxr into the same block.

The usual CodeGenPrepare trickery, on a target-specific intrinsic.
Without this, the expansion of atomics will usually have the zext
be hoisted out of the loop, defeating the various patterns we have
to catch this precise case.

Differential Revision: http://reviews.llvm.org/D9930

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@238054 91177308-0d34-0410-b5e6-96231b3b80d8
lib/CodeGen/CodeGenPrepare.cpp
test/CodeGen/AArch64/arm64-atomic.ll