llvm-project/llvm/test/CodeGen/Thumb
Simonas Kazlauskas 777a58e05b Support {S,U}REMEqFold before legalization
This allows these optimisations to apply to e.g. `urem i16` directly
before `urem` is promoted to i32 on architectures where i16 operations
are not intrinsically legal (such as on Aarch64). The legalization then
later can happen more directly and generated code gets a chance to avoid
wasting time on computing results in types wider than necessary, in the end.

Seems like mostly an improvement in terms of results at least as far as x86_64 and aarch64 are concerned, with a few regressions here and there. It also helps in preventing regressions in changes like {D87976}.

Reviewed By: lebedev.ri

Differential Revision: https://reviews.llvm.org/D88785
2021-04-01 01:35:41 +03:00
..
2007-01-31-RegInfoAssert.ll
2007-02-02-JoinIntervalsCrash.ll
2007-05-05-InvalidPushPop.ll
2009-06-18-ThumbCommuteMul.ll
2009-07-20-TwoAddrBug.ll
2009-07-27-PEIAssert.ll
2009-08-12-ConstIslandAssert.ll
2009-08-12-RegInfoAssert.ll
2009-08-20-ISelBug.ll
2009-12-17-pre-regalloc-taildup.ll
2010-06-18-SibCallCrash.ll
2010-07-01-FuncAlign.ll
2010-07-15-debugOrdering.ll OpaquePtr: Update more tests to use typed sret 2020-11-20 20:08:43 -05:00
2011-05-11-DAGLegalizer.ll OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
2011-06-16-NoGPRs.ll
2011-EpilogueBug.ll
2012-04-26-M0ISelBug.ll
2014-06-10-thumb1-ldst-opt-bug.ll
DbgValueOtherTargets.test
PR17309.ll OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
PR35481.ll [ARM] Remove more unused check prefixes, NFC 2020-11-14 15:37:53 +00:00
PR36658.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
addr-modes.ll CodeGenPrep: preserve inbounds attribute when sinking GEPs. 2019-03-12 15:22:23 +00:00
and_neg.ll
asmprinter-bug.ll
barrier.ll
bic_imm.ll
branchless-cmp.ll
callee_save.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
cmp-add-fold.ll [ARM] Regenerate some test checks. NFC 2021-03-24 15:34:34 +00:00
cmp-and-fold.ll [ARM] Lower "(x<<c) > 0x80000000U" to "lsls" on Thumb1. 2019-07-31 23:19:21 +00:00
cmp-fold.ll [ARM] Regenerate some test checks. NFC 2021-03-24 15:34:34 +00:00
constants.ll
consthoist-few-dependents.ll
consthoist-imm8-costs-1.ll
consthoist-physical-addr.ll Revert [MBP] Disable aggressive loop rotate in plain mode 2019-08-29 19:03:58 +00:00
copy_thumb.ll
cortex-m0-unaligned-access.ll
dyn-stackalloc.ll
emergency-spill-slot.ll [RISCV][PrologEpilogInserter] "Float" emergency spill slots to avoid making them immediately unreachable from the stack pointer 2021-01-23 09:10:03 +00:00
fastcc.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
fpconv.ll
fpow.ll
frame-access.ll OpaquePtr: Bulk update tests to use typed byval 2020-11-20 14:00:46 -05:00
frame_thumb.ll
i8-phi-ext.ll
iabs-vector.ll [Thumb] Fix infinite loop in ABS expansion (PR41160) 2019-03-21 12:41:18 +00:00
iabs.ll [Thumb] Add some integer abs testcases for different typesizes. 2019-03-01 12:08:50 +00:00
inline-asm-i-constraint-i1.ll [TargetLowering] Extend bool args to inline-asm according to getBooleanType 2019-05-22 16:16:15 +00:00
inlineasm-imm-thumb.ll
inlineasm-thumb.ll
ispositive.ll [ARM] Regenerate some test checks. NFC 2021-03-24 15:34:34 +00:00
large-fn-switch.ll [ARM] Make sure to save/restore LR when we use tBfar. 2019-03-19 21:48:08 +00:00
large-stack.ll [ARM] Remove more unused check prefixes, NFC 2020-11-14 15:37:53 +00:00
ldm-merge-call.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
ldm-merge-struct.ll
ldm-stm-base-materialization-thumb2.ll
ldm-stm-base-materialization.ll
ldm-stm-postinc.ll
ldr_ext.ll [ARM] Use lrdsb for more thumb1 loads. 2021-03-17 15:29:02 +00:00
ldr_frame.ll
lit.local.cfg [lit] Delete empty lines at the end of lit.local.cfg NFC 2019-06-17 09:51:07 +00:00
litpoolremat.ll
long-setcc.ll
long.ll Revert "ARM-Darwin: keep the frame register reserved even if not updated." 2019-12-06 10:59:26 -08:00
long_shift.ll
machine-cse-deadreg.mir [Codegen] Remove dead flags on Physical Defs in machine cse 2019-02-20 10:22:18 +00:00
machine-cse-physreg.mir
mature-mc-support.ll
mul.ll
mvn.ll [DAGCombiner] If a TokenFactor would be merged into its user, consider the user later. 2019-03-13 17:07:09 +00:00
opt-phis.mir [Codegen] Make sure kill flags are not incorrect from removed machine phi's 2019-02-12 15:02:57 +00:00
optionaldef-scheduling.ll
peephole-cmp.mir [MIR][ARM] MachineOperand comments 2020-02-24 14:19:21 +00:00
peephole-mi.mir [MIR][ARM] MachineOperand comments 2020-02-24 14:19:21 +00:00
pop.ll
pr35836.ll
pr35836_2.ll [ARM] Eliminate redundant "mov rN, sp" instructions in Thumb1. 2019-03-20 19:40:45 +00:00
pr42760.ll Revert [MBP] Disable aggressive loop rotate in plain mode 2019-08-29 19:03:58 +00:00
push.ll
ragreedy-implicit-def.ll
rev.ll (Re)generate various tests. NFC 2019-10-08 16:16:26 +00:00
scheduler-clone-cpsr-def.ll [ScheduleDAG] When a node is cloned, add an edge between the nodes. 2019-10-04 19:51:40 +00:00
segmented-stacks-dynamic.ll
segmented-stacks.ll
select.ll [ARM] Favour PL/MI over GE/LT when possible 2019-07-04 08:58:58 +00:00
shift-and.ll
sjljehprepare-lower-vector.ll
srem-seteq-illegal-types.ll Support {S,U}REMEqFold before legalization 2021-04-01 01:35:41 +03:00
stack-access.ll
stack-coloring-without-frame-ptr.ll
stack-frame.ll
stack-mis-alignment.ll [ARM][ConstantIslands] Fix stack mis-alignment caused by undoLRSpillRestore. 2020-03-02 16:28:57 -08:00
stack_guard_remat.ll Use SETNE directly rather than SUB/SETNE 0 for stack guard check 2020-02-18 13:21:26 +00:00
stm-deprecated.ll [ARM] Don't shrink STM if it would cause an unknown base register store 2020-04-22 14:50:42 +01:00
stm-merge.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
stm-scavenging.ll Migrate function attribute "no-frame-pointer-elim" to "frame-pointer"="all" as cleanups after D56351 2019-12-24 15:57:33 -08:00
tbb-reuse.mir [Alignment] Use llvm::Align in MachineFunction and TargetLowering - fixes mir parsing 2019-09-11 11:16:48 +00:00
thumb-imm.ll
thumb-ldm.ll
thumb-shrink-wrapping.ll [FIX] Forces shrink wrapping to consider any memory access as aliasing with the stack 2019-06-13 13:56:19 +00:00
thumb1-cmp.ll
trap.ll
triple.ll
tst_teq.ll
umulo-32-legalisation-lowering.ll [ARM] Optimize expressions like "return x != 0;" for Thumb1. 2019-04-02 00:01:23 +00:00
umulo-128-legalisation-lowering.ll [ARM] Optimize expressions like "return x != 0;" for Thumb1. 2019-04-02 00:01:23 +00:00
unord.ll
urem-seteq-illegal-types.ll Support {S,U}REMEqFold before legalization 2021-04-01 01:35:41 +03:00
uxth.ll [ARM] Mark 255 and 65535 as cheap for Thumb1 "And" 2019-02-04 11:58:48 +00:00
vargs.ll