llvm-project/llvm/test/CodeGen/Thumb
James Molloy feb9f4243b [Thumb] Select a BIC instead of AND if the immediate can be encoded more optimally negated
If an immediate is only used in an AND node, it is possible that the immediate can be more optimally materialized when negated. If this is the case, we can negate the immediate and use a BIC instead;

  int i(int a) {
    return a & 0xfffffeec;
  }

Used to produce:
    ldr r1, [CONSTPOOL]
    ands r0, r1
  CONSTPOOL: 0xfffffeec

And now produces:
    movs    r1, #255
    adds    r1, #20  ; Less costly immediate generation
    bics    r0, r1

llvm-svn: 272251
2016-06-09 07:39:08 +00: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 [MC] Use .p2align instead of .align 2016-01-26 00:03:25 +00:00
2010-07-15-debugOrdering.ll ARM: stop emitting blx instructions for most calls on MachO. 2016-05-10 19:17:47 +00:00
2011-05-11-DAGLegalizer.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00: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
asmprinter-bug.ll
barrier.ll ARM: stop emitting blx instructions for most calls on MachO. 2016-05-10 19:17:47 +00:00
bic_imm.ll [Thumb] Select a BIC instead of AND if the immediate can be encoded more optimally negated 2016-06-09 07:39:08 +00:00
constants.ll [Thumb-1] Add optimized constant materialization for integers [256..512) 2016-06-07 13:10:14 +00:00
copy_thumb.ll
cortex-m0-unaligned-access.ll
dyn-stackalloc.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
fastcc.ll
fpconv.ll
fpow.ll
frame_thumb.ll
iabs.ll
inlineasm-imm-thumb.ll
inlineasm-thumb.ll
ispositive.ll
large-stack.ll Revert r265817 2016-04-08 18:15:37 +00:00
ldm-merge-call.ll
ldm-merge-struct.ll Fix tests that used CHECK-NEXT-NOT and CHECK-DAG-NOT. 2016-02-26 19:40:34 +00:00
ldm-stm-base-materialization-thumb2.ll
ldm-stm-base-materialization.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
ldr_ext.ll
ldr_frame.ll
lit.local.cfg
long-setcc.ll
long.ll
long_shift.ll
mature-mc-support.ll
mul.ll
pop.ll
push.ll
rev.ll
segmented-stacks-dynamic.ll
segmented-stacks.ll [MC] Use .p2align instead of .align 2016-01-26 00:03:25 +00:00
select.ll
sjljehprepare-lower-vector.ll
stack-access.ll
stack-coloring-without-frame-ptr.ll Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
stack-frame.ll
stack_guard_remat.ll
stm-merge.ll
thumb-imm.ll
thumb-ldm.ll
thumb-shrink-wrapping.ll [Thumb] Fix assembler error 'cannot honor width suffix pop {lr}' 2015-12-28 21:40:45 +00:00
trap.ll
triple.ll
tst_teq.ll
unord.ll
vargs.ll