llvm/test/CodeGen/SPARC
James Y Knight 8d30502e60 Support expanding partial-word cmpxchg to full-word cmpxchg in AtomicExpandPass.
Many CPUs only have the ability to do a 4-byte cmpxchg (or ll/sc), not 1
or 2-byte. For those, you need to mask and shift the 1 or 2 byte values
appropriately to use the 4-byte instruction.

This change adds support for cmpxchg-based instruction sets (only SPARC,
in LLVM). The support can be extended for LL/SC-based PPC and MIPS in
the future, supplanting the ISel expansions those architectures
currently use.

Tests added for the IR transform and SPARCv9.

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

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273025 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-17 18:11:48 +00:00
..
32abi.ll
64abi.ll
64bit.ll
64cond.ll
64spill.ll
2006-01-22-BitConvertLegalize.ll
2007-05-09-JumpTables.ll
2007-07-05-LiveIntervalAssert.ll
2008-10-10-InlineAsmMemoryOperand.ll
2008-10-10-InlineAsmRegOperand.ll
2009-08-28-PIC.ll
2009-08-28-WeakLinkage.ll
2011-01-11-Call.ll
2011-01-11-CC.ll
2011-01-11-FrameAddr.ll
2011-01-19-DelaySlot.ll
2011-01-21-ByValArgs.ll
2011-01-22-SRet.ll
2011-12-03-TailDuplication.ll
2012-05-01-LowerArguments.ll
2013-05-17-CallFrame.ll
analyze-branch.ll
atomics.ll
basictest.ll
blockaddr.ll
constpool.ll
ctpop.ll
DbgValueOtherTargets.test
empty-functions.ll
exception.ll
float-constants.ll
float.ll
fp128.ll
func-addr.ll
globals.ll
inlineasm.ll
leafproc.ll
LeonInsertNOPLoadPassUT.ll
LeonItinerariesUT.ll
lit.local.cfg
mature-mc-support.ll
missing-sret.ll
missinglabel.ll
mult-alt-generic-sparc.ll
multiple-div.ll
obj-relocs.ll
parts.ll
private.ll
rem.ll
reserved-regs.ll
select-mask.ll
setjmp.ll
sjlj.ll
soft-float.ll
spill.ll
spillsize.ll
sret-secondary.ll
stack-align.ll
stack-protector.ll
thread-pointer.ll
tls.ll
trap.ll
varargs.ll
vector-call.ll
zerostructcall.ll