1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/lib/Target/VE
Kazushi (Jam) Marukawa 5bcab24086 [VE] Support atomic exchange instructions
Support atomic exchange and atomic compare and exchange instructions.
Change CAS and TS1AM instructions for ISel patterns.  Add selectADDRzi
pattern for them.  Add TS1AM pseudo instruction also for better ISel.
Add shouldExpandAtomicRMWInIR() function to expand all atomicrmw
instructions except atomicrmw xchg.  Add custom lower for i8/i16
atomicrmw xchg.  Modify replaceFI to support CAS/TS1AM instructions
which use "reg+disp" operands instead of "reg+imm+disp" operands.
And, add several regression tests to check the correctness.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D93161
2020-12-15 17:43:11 +09:00
..
AsmParser llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
Disassembler llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
MCTargetDesc [VE] Correct getMnemonic 2020-11-17 22:33:29 +09:00
TargetInfo llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
CMakeLists.txt [VE] LVLGen sets VL before vector insts 2020-11-16 09:19:14 +01:00
LVLGen.cpp [VE] Correct LVLGen (LVL instruction insert pass) 2020-12-09 06:33:53 +09:00
VE.h [VE] LVLGen sets VL before vector insts 2020-11-16 09:19:14 +01:00
VE.td
VEAsmPrinter.cpp
VECallingConv.td [VE] VEC_BROADCAST, lowering and isel 2020-11-19 09:44:56 +01:00
VEFrameLowering.cpp [VE][NFC] Update comments 2020-12-01 02:56:16 +09:00
VEFrameLowering.h [VE] Optimize prologue/epilogue instructions 2020-11-30 22:22:33 +09:00
VEInstrFormats.td
VEInstrInfo.cpp [VE] Add logical mask intrinsic instructions 2020-12-15 01:34:31 +09:00
VEInstrInfo.h
VEInstrInfo.td [VE] Support atomic exchange instructions 2020-12-15 17:43:11 +09:00
VEInstrIntrinsicVL.gen.td [VE] Add logical mask intrinsic instructions 2020-12-15 01:34:31 +09:00
VEInstrIntrinsicVL.td [VE] Add lsv/lvs intrinsic instructions 2020-11-16 23:42:51 +09:00
VEInstrPatternsVec.td [VE] VE Vector Predicated SDNode, vector add isel and tests 2020-11-23 17:17:07 +01:00
VEInstrVec.td [VE] Add logical mask intrinsic instructions 2020-12-15 01:34:31 +09:00
VEISelDAGToDAG.cpp [VE] Support atomic exchange instructions 2020-12-15 17:43:11 +09:00
VEISelLowering.cpp [VE] Support atomic exchange instructions 2020-12-15 17:43:11 +09:00
VEISelLowering.h [VE] Support atomic exchange instructions 2020-12-15 17:43:11 +09:00
VEMachineFunctionInfo.cpp
VEMachineFunctionInfo.h
VEMCInstLower.cpp [VE] Implement JumpTable 2020-11-17 22:43:10 +09:00
VERegisterInfo.cpp [VE] Support atomic exchange instructions 2020-12-15 17:43:11 +09:00
VERegisterInfo.h [VE] Clean canRealignStack implementation 2020-11-23 21:09:03 +09:00
VERegisterInfo.td [VE] VEC_BROADCAST, lowering and isel 2020-11-19 09:44:56 +01:00
VESubtarget.cpp [VE] Remove magic numbers 176 2020-11-24 00:13:24 +09:00
VESubtarget.h [VE] Remove magic numbers 176 2020-11-24 00:13:24 +09:00
VETargetMachine.cpp [VE] Specify vector alignments 2020-11-30 22:09:21 +09:00
VETargetMachine.h
VETargetTransformInfo.h
VVPInstrInfo.td [VE] VE Vector Predicated SDNode, vector add isel and tests 2020-11-23 17:17:07 +01:00
VVPInstrPatternsVec.td [VE] VE Vector Predicated SDNode, vector add isel and tests 2020-11-23 17:17:07 +01:00
VVPNodes.def [VE] VE Vector Predicated SDNode, vector add isel and tests 2020-11-23 17:17:07 +01:00