AArch64: use ldxp/stxp pair to implement 128-bit atomic loads.
authorTim Northover <tnorthover@apple.com>
Wed, 2 Dec 2015 18:12:57 +0000 (18:12 +0000)
committerTim Northover <tnorthover@apple.com>
Wed, 2 Dec 2015 18:12:57 +0000 (18:12 +0000)
commit57b1a9599b8b3a3c571103ed481932c2768d8da9
treee1b86a14e10e4591431ce62ac36a9caf82b791a9
parent454061bf3aeba2ac0b7b5dadb4f07e497139609f
AArch64: use ldxp/stxp pair to implement 128-bit atomic loads.

The ARM ARM is clear that 128-bit loads are only guaranteed to have been atomic
if there has been a corresponding successful stxp. It's less clear for AArch32, so
I'm leaving that alone for now.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@254524 91177308-0d34-0410-b5e6-96231b3b80d8
include/llvm/Target/TargetLowering.h
lib/CodeGen/AtomicExpandPass.cpp
lib/Target/ARM/ARMISelLowering.cpp
lib/Target/Hexagon/HexagonISelLowering.cpp
test/CodeGen/AArch64/arm64-atomic-128.ll
test/CodeGen/ARM/atomic-64bit.ll