hanchenye-llvm-project/llvm/lib/Target/ARM64
Benjamin Kramer 4dae598bc8 DAGCombiner: Turn divs of vector splats into vectorized multiplications.
Otherwise the legalizer would just scalarize everything. Support for
mulhi in the targets isn't that great yet so on most targets we get
exactly the same scalarized output. Add a test for x86 vector udiv.

I had to disable the mulhi nodes on ARM because there aren't any patterns
for it. As far as I know ARM has instructions for getting the high part of
a multiply so this should be fixed.

llvm-svn: 207315
2014-04-26 12:06:28 +00:00
..
AsmParser [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
Disassembler [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
InstPrinter [ARM64] Print preferred aliases for SFBM/UBFM in InstPrinter 2014-04-25 10:25:29 +00:00
MCTargetDesc [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +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 Simple fix for build failures resulting from r205867. 2014-04-09 18:34:45 +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 [ARM64] Support crc predicate on ARM64. 2014-04-25 09:25:42 +00:00
ARM64AddressTypePromotion.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
ARM64AdvSIMDScalarPass.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:41:26 +00:00
ARM64AsmPrinter.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
ARM64BranchRelaxation.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:41:26 +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] Handle fp128 for parameter passing on stack 2014-04-25 12:07:03 +00:00
ARM64CleanupLocalDynamicTLSPass.cpp Make a few more range-based loops use explicit types. 2014-04-02 20:21:22 +00:00
ARM64CollectLOH.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
ARM64ConditionalCompares.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
ARM64DeadRegisterDefinitionsPass.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:41:26 +00:00
ARM64ExpandPseudoInsts.cpp AArch64/ARM64: make use of ANDS and BICS instructions for comparisons. 2014-04-22 12:45:42 +00:00
ARM64FastISel.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
ARM64FrameLowering.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:41:26 +00:00
ARM64FrameLowering.h
ARM64ISelDAGToDAG.cpp ARM64: fix assertion in ISelDAGToDAG 2014-04-25 10:48:47 +00:00
ARM64ISelLowering.cpp DAGCombiner: Turn divs of vector splats into vectorized multiplications. 2014-04-26 12:06:28 +00:00
ARM64ISelLowering.h AArch64/ARM64: port BSL logic from AArch64 & enable test. 2014-04-18 09:31:01 +00:00
ARM64InstrAtomics.td ARM64: switch to IR-based atomic operations. 2014-04-17 20:00:33 +00:00
ARM64InstrFormats.td [ARM64] Support crc predicate on ARM64. 2014-04-25 09:25:42 +00:00
ARM64InstrInfo.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
ARM64InstrInfo.h [ARM64] Enable feature predicates for NEON / FP / CRYPTO. 2014-04-23 06:22:48 +00:00
ARM64InstrInfo.td [ARM64] Support crc predicate on ARM64. 2014-04-25 09:25:42 +00:00
ARM64LoadStoreOptimizer.cpp [Modules] Fix potential ODR violations by sinking the DEBUG_TYPE 2014-04-22 02:41:26 +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
ARM64MachineFunctionInfo.h
ARM64PerfectShuffle.h
ARM64PromoteConstant.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
ARM64RegisterInfo.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
ARM64RegisterInfo.h Make consistent use of MCPhysReg instead of uint16_t throughout the tree. 2014-04-04 05:16:06 +00:00
ARM64RegisterInfo.td AArch64/ARM64: add half as a storage type on ARM64. 2014-04-15 14:00:03 +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
ARM64StorePairSuppress.cpp [C++] Use 'nullptr'. Target edition. 2014-04-25 05:30:21 +00:00
ARM64Subtarget.cpp [ARM64] When compiling for ELF in PIC mode, local symbols shouldn't go through the GOT 2014-04-25 13:43:18 +00:00
ARM64Subtarget.h [ARM64] Support crc predicate on ARM64. 2014-04-25 09:25:42 +00:00
ARM64TargetMachine.cpp [ARM64] Add a big endian version of the ARM64 target machine, and update all users. 2014-04-23 10:26:40 +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
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 ARM64/*/LLVMBuild.txt: Prune redundant deps. 2014-04-10 12:46:13 +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