llvm-6502/lib/Target/ARM64
Weiming Zhao 0449d522a6 Folding into CSEL when there is ZEXT between SETCC and ADD
Normally, patterns like (add x, (setcc cc ...)) will be folded into
(csel x, x+1, not cc). However, if there is a ZEXT after SETCC, they
won't be folded. This patch recognizes the ZEXT and allows the
generation of CSINC.

This patch fixes bug 19680.




git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@208660 91177308-0d34-0410-b5e6-96231b3b80d8
2014-05-13 00:40:58 +00:00
..
AsmParser AArch64/ARM64: use InstAliases for NEON logical (imm) instructions. 2014-05-12 18:03:42 +00:00
Disassembler AArch64/ARM64: implement diagnosis of unpredictable loads & stores 2014-05-06 14:15:14 +00:00
InstPrinter TableGen: use PrintMethods to print more aliases 2014-05-12 18:04:06 +00:00
MCTargetDesc ARM64: merge "extend" and "shift" addressing-mode enums. 2014-05-12 14:13:17 +00:00
TargetInfo [ARM64] Add a big endian version of the ARM64 target machine, and update all users. 2014-04-23 10:26:40 +00:00
Utils [ARM64] Conditionalize CPU specific system registers on subtarget features 2014-05-01 10:25:36 +00:00
ARM64.h [ARM64] Move ARM64BaseInfo.{cpp,h} into a Utils/ subdirectory, a la AArch64. These files are required in the decoder, disassembler and parser, and a layering violation was imminent. 2014-04-09 14:42:27 +00:00
ARM64.td Fix typo. 2014-05-05 21:50:57 +00:00
ARM64AddressTypePromotion.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. ARM64 edition 2014-04-29 07:58:25 +00:00
ARM64AdvSIMDScalarPass.cpp [ARM64][fast-isel] Disable target specific optimizations at -O0. Functionally, 2014-05-07 16:41:55 +00:00
ARM64AsmPrinter.cpp AArch64/ARM64: support indexed loads/stores on vector types. 2014-05-02 14:54:15 +00:00
ARM64BranchRelaxation.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. ARM64 edition 2014-04-29 07:58:25 +00:00
ARM64CallingConv.h Make consistent use of MCPhysReg instead of uint16_t throughout the tree. 2014-04-04 05:16:06 +00:00
ARM64CallingConvention.td [ARM64-BE] Implement the lane-twiddling logic at AAPCS boundaries for big endian. 2014-05-07 12:33:41 +00:00
ARM64CleanupLocalDynamicTLSPass.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. ARM64 edition 2014-04-29 07:58:25 +00:00
ARM64CollectLOH.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. ARM64 edition 2014-04-29 07:58:25 +00:00
ARM64ConditionalCompares.cpp AArch64/ARM64: expunge CPSR from the sources 2014-04-30 13:14:14 +00:00
ARM64DeadRegisterDefinitionsPass.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. ARM64 edition 2014-04-29 07:58:25 +00:00
ARM64ExpandPseudoInsts.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. ARM64 edition 2014-04-29 07:58:25 +00:00
ARM64FastISel.cpp [ARM64-BE] Teach fast-isel about how to set up sub-word stack arguments for big endian calls. 2014-05-08 12:53:50 +00:00
ARM64FrameLowering.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:41:26 +00:00
ARM64FrameLowering.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. ARM64 edition 2014-04-29 07:58:25 +00:00
ARM64InstrAtomics.td ARM64: switch to IR-based atomic operations. 2014-04-17 20:00:33 +00:00
ARM64InstrFormats.td TableGen: use PrintMethods to print more aliases 2014-05-12 18:04:06 +00:00
ARM64InstrInfo.cpp ARM64: merge "extend" and "shift" addressing-mode enums. 2014-05-12 14:13:17 +00:00
ARM64InstrInfo.h AArch64/ARM64: expunge CPSR from the sources 2014-04-30 13:14:14 +00:00
ARM64InstrInfo.td TableGen: use PrintMethods to print more aliases 2014-05-12 18:04:06 +00:00
ARM64ISelDAGToDAG.cpp ARM64: merge "extend" and "shift" addressing-mode enums. 2014-05-12 14:13:17 +00:00
ARM64ISelLowering.cpp Folding into CSEL when there is ZEXT between SETCC and ADD 2014-05-13 00:40:58 +00:00
ARM64ISelLowering.h Pass the value type to TLI::getRegisterByName 2014-05-11 19:29:07 +00:00
ARM64LoadStoreOptimizer.cpp [ARM64][fast-isel] Disable target specific optimizations at -O0. Functionally, 2014-05-07 16:41:55 +00:00
ARM64MachineFunctionInfo.h Detemplatize LOHDirective. 2014-03-29 19:21:20 +00:00
ARM64MCInstLower.cpp [ARM64] Move ARM64BaseInfo.{cpp,h} into a Utils/ subdirectory, a la AArch64. These files are required in the decoder, disassembler and parser, and a layering violation was imminent. 2014-04-09 14:42:27 +00:00
ARM64MCInstLower.h
ARM64PerfectShuffle.h
ARM64PromoteConstant.cpp [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. ARM64 edition 2014-04-29 07:58:25 +00:00
ARM64RegisterInfo.cpp AArch64/ARM64: expunge CPSR from the sources 2014-04-30 13:14:14 +00:00
ARM64RegisterInfo.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. ARM64 edition 2014-04-29 07:58:25 +00:00
ARM64RegisterInfo.td TableGen: use PrintMethods to print more aliases 2014-05-12 18:04:06 +00:00
ARM64SchedA53.td [ARM64] Ports the Cortex-A53 Machine Model description from AArch64. 2014-04-18 21:22:04 +00:00
ARM64SchedCyclone.td [ARM64] Ports the Cortex-A53 Machine Model description from AArch64. 2014-04-18 21:22:04 +00:00
ARM64Schedule.td
ARM64SelectionDAGInfo.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
ARM64SelectionDAGInfo.h ARM64: override all the things. 2014-03-30 07:25:18 +00:00
ARM64StorePairSuppress.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
ARM64Subtarget.cpp [ARM64] Prefer generation of bzero on Darwin only 2014-05-01 13:11:59 +00:00
ARM64Subtarget.h [C++11] Add 'override' keywords and remove 'virtual'. Additionally add 'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. ARM64 edition 2014-04-29 07:58:25 +00:00
ARM64TargetMachine.cpp [ARM64][fast-isel] Disable target specific optimizations at -O0. Functionally, 2014-05-07 16:41:55 +00:00
ARM64TargetMachine.h [ARM64] Add a big endian version of the ARM64 target machine, and update all users. 2014-04-23 10:26:40 +00:00
ARM64TargetObjectFile.cpp
ARM64TargetObjectFile.h ARM64: override all the things. 2014-03-30 07:25:18 +00:00
ARM64TargetTransformInfo.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
CMakeLists.txt [ARM64] Move ARM64BaseInfo.{cpp,h} into a Utils/ subdirectory, a la AArch64. These files are required in the decoder, disassembler and parser, and a layering violation was imminent. 2014-04-09 14:42:27 +00:00
LLVMBuild.txt Fix broken build 2014-05-09 18:06:22 +00:00
Makefile [ARM64] Move ARM64BaseInfo.{cpp,h} into a Utils/ subdirectory, a la AArch64. These files are required in the decoder, disassembler and parser, and a layering violation was imminent. 2014-04-09 14:42:27 +00:00