llvm-project/llvm/lib/Target/AArch64
Jessica Paquette 0aa9b453c4 [GlobalISel][AArch64] Legalize/select G_(S/Z/ANY)_EXT for v8s8s
This adds legalization for G_SEXT, G_ZEXT, and G_ANYEXT for v8s8s.

We were falling back on G_ZEXT in arm64-vabs.ll before, preventing us from
selecting the @llvm.aarch64.neon.sabd.v8i8 intrinsic.

This adds legalizer support for those 3, which gives us selection via the
importer. Update the relevant tests (legalize-ext.mir, select-int-ext.mir) and
add a GISel line to arm64-vabs.ll.

Differential Revision: https://reviews.llvm.org/D60881

llvm-svn: 358715
2019-04-18 21:15:48 +00:00
..
AsmParser [AArch64][AsmParser] Fix .arch_extension directive parsing 2019-04-04 09:11:17 +00:00
Disassembler [AArch64] Add v8.5-a Memory Tagging STGM/LDGM instructions 2019-04-01 14:52:18 +00:00
InstPrinter [AArch64] Print instruction before atomic semantic annotations 2019-02-21 10:42:49 +00:00
MCTargetDesc Add explicit dependencies on MCSection.h and MCDwarf.h to the .cpp 2019-04-12 07:40:01 +00:00
TargetInfo Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
Utils AArch64: annotate atomics with dropped acquire semantics when printing. 2019-02-06 15:07:59 +00:00
AArch64.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64.td [AArch64, ARM] Add support for Exynos M5 2019-03-22 18:42:14 +00:00
AArch64A53Fix835769.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64A57FPLoadBalancing.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64AdvSIMDScalarPass.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64AsmPrinter.cpp [AsmPrinter] hoist %a output template to base class for ARM+Aarch64 2019-04-17 22:21:10 +00:00
AArch64BranchTargets.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64CallLowering.cpp [GlobalISel][AArch64] Allow CallLowering to handle types which are normally 2019-04-09 21:22:33 +00:00
AArch64CallLowering.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64CallingConvention.cpp [AArch64] Include AArch64GenCallingConv.inc once 2019-01-28 21:28:40 +00:00
AArch64CallingConvention.h [AArch64] Include AArch64GenCallingConv.inc once 2019-01-28 21:28:40 +00:00
AArch64CallingConvention.td [AArch64] Include AArch64GenCallingConv.inc once 2019-01-28 21:28:40 +00:00
AArch64CleanupLocalDynamicTLSPass.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64CollectLOH.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64CompressJumpTables.cpp [IR] Refactor attribute methods in Function class (NFC) 2019-04-04 22:40:06 +00:00
AArch64CondBrTuning.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64ConditionOptimizer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64ConditionalCompares.cpp [IR] Refactor attribute methods in Function class (NFC) 2019-04-04 22:40:06 +00:00
AArch64DeadRegisterDefinitionsPass.cpp [AArch64] Fix bug 35094 atomicrmw on Armv8.1-A+lse 2019-03-18 09:21:06 +00:00
AArch64ExpandImm.cpp [AArch64] Prefer "mov" over "orr" to materialize constants. 2019-03-25 21:25:28 +00:00
AArch64ExpandImm.h [AArch64] Refactor floating point materialization. NFC 2019-03-18 18:23:23 +00:00
AArch64ExpandPseudoInsts.cpp [AArch64] Allow -mattr=tpidr-el[1|2|3] 2019-03-21 11:30:17 +00:00
AArch64FalkorHWPFFix.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64FastISel.cpp [AArch64] Optimize floating point materialization 2019-02-01 12:26:06 +00:00
AArch64FrameLowering.cpp [AArch64] [Windows] Don't skip constructing UnwindHelp. 2019-02-28 20:38:45 +00:00
AArch64FrameLowering.h [COFF, ARM64] Fix localaddress to handle stack realignment and variable size objects 2019-02-01 21:41:33 +00:00
AArch64GenRegisterBankInfo.def Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64ISelDAGToDAG.cpp [IR] Refactor attribute methods in Function class (NFC) 2019-04-04 22:40:06 +00:00
AArch64ISelLowering.cpp [AArch64] Teach getTestBitOperand to look through ANY_EXTENDS 2019-04-10 17:27:29 +00:00
AArch64ISelLowering.h [IR] Refactor attribute methods in Function class (NFC) 2019-04-04 22:40:06 +00:00
AArch64InstrAtomics.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64InstrFormats.td [AArch64] Update v8.5a MTE LDG/STG instructions 2019-04-03 14:12:13 +00:00
AArch64InstrInfo.cpp [IR] Refactor attribute methods in Function class (NFC) 2019-04-04 22:40:06 +00:00
AArch64InstrInfo.h [AArch64] NFC: Cleanup isAArch64FrameOffsetLegal 2019-03-27 13:16:19 +00:00
AArch64InstrInfo.td [AArch64] Add lowering pattern for llvm.aarch64.neon.vcvtfxs2fp.f16.i64 2019-04-11 14:19:43 +00:00
AArch64InstructionSelector.cpp [AArch64][GlobalISel] Fix a crash when selecting shufflevectors with an undef mask element. 2019-04-12 21:31:21 +00:00
AArch64LegalizerInfo.cpp [GlobalISel][AArch64] Legalize/select G_(S/Z/ANY)_EXT for v8s8s 2019-04-18 21:15:48 +00:00
AArch64LegalizerInfo.h [AArch64][GlobalISel] Legalization and ISel support for load/stores of vectors of pointers. 2019-04-11 20:32:24 +00:00
AArch64LoadStoreOptimizer.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64MCInstLower.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64MCInstLower.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64MachineFunctionInfo.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64MacroFusion.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64MacroFusion.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64PBQPRegAlloc.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64PBQPRegAlloc.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64PerfectShuffle.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64PfmCounters.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64PreLegalizerCombiner.cpp [AArch64][GlobalISel] Enable copy elision in the pre-legalizer combine and fix a crash. 2019-04-13 00:33:25 +00:00
AArch64PromoteConstant.cpp [opaque pointer types] Pass value type to LoadInst creation. 2019-02-01 20:44:24 +00:00
AArch64RedundantCopyElimination.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64RegisterBankInfo.cpp [AArch64][GlobalISel] Regbankselect: Fix G_BUILD_VECTOR trying to use s16 gpr sources. 2019-03-15 18:00:01 +00:00
AArch64RegisterBankInfo.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64RegisterBanks.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64RegisterInfo.cpp [AArch64] Support reserving arbitrary general purpose registers 2019-02-13 17:28:47 +00:00
AArch64RegisterInfo.h [COFF, ARM64] Fix localaddress to handle stack realignment and variable size objects 2019-02-01 21:41:33 +00:00
AArch64RegisterInfo.td [AArch64] Support reserving arbitrary general purpose registers 2019-02-13 17:28:47 +00:00
AArch64SIMDInstrOpt.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SVEInstrInfo.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SchedA53.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SchedA57.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SchedA57WriteRes.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SchedCyclone.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SchedExynosM1.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SchedExynosM3.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SchedExynosM4.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SchedFalkor.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SchedFalkorDetails.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SchedKryo.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SchedKryoDetails.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SchedPredExynos.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SchedPredicates.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SchedThunderX.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SchedThunderX2T99.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64Schedule.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SelectionDAGInfo.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SelectionDAGInfo.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64SpeculationHardening.cpp [SLH] AArch64: correctly pick temporary register to mask SP 2019-01-23 08:18:39 +00:00
AArch64StorePairSuppress.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64Subtarget.cpp [AArch64] Add support for Cortex-A76 and Cortex-A76AE 2019-02-25 15:08:27 +00:00
AArch64Subtarget.h [AArch64] Allow -mattr=tpidr-el[1|2|3] 2019-03-21 11:30:17 +00:00
AArch64SystemOperands.td [AArch64] Add v8.5-a Memory Tagging GMID_EL1 register 2019-04-01 14:41:14 +00:00
AArch64TargetMachine.cpp [GlobalISel] Introduce a CSEConfigBase class to allow targets to define their own CSE configs. 2019-04-15 04:53:46 +00:00
AArch64TargetMachine.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64TargetObjectFile.cpp Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64TargetObjectFile.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
AArch64TargetTransformInfo.cpp [AArch64] Small fix for getIntImmCost 2019-03-18 18:50:58 +00:00
AArch64TargetTransformInfo.h Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
CMakeLists.txt [AArch64] Refactor floating point materialization. NFC 2019-03-18 18:23:23 +00:00
LLVMBuild.txt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
SVEInstrFormats.td Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00