diff options
| author | Eli Friedman <efriedma@codeaurora.org> | 2017-04-07 22:01:23 +0000 |
|---|---|---|
| committer | Eli Friedman <efriedma@codeaurora.org> | 2017-04-07 22:01:23 +0000 |
| commit | 75631c97ba0c195c9ba7eb6fb6effca6b68ea14a (patch) | |
| tree | 20d7af9a4e7d7c3971ecd605f9692b5a63517d4f /llvm/lib | |
| parent | eb80a51b52b669e63778dbdca1f25ed34c5a8149 (diff) | |
| download | bcm5719-llvm-75631c97ba0c195c9ba7eb6fb6effca6b68ea14a.tar.gz bcm5719-llvm-75631c97ba0c195c9ba7eb6fb6effca6b68ea14a.zip | |
[ARM] Prefer BIC over BFC in ARM mode.
BIC is generally faster, and it can put the output in a different
register from the input.
We already do this in Thumb2 mode; not sure why the equivalent fix
never got applied to ARM mode.
Differential Revision: https://reviews.llvm.org/D31797
llvm-svn: 299803
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/ARM/ARMInstrInfo.td | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/llvm/lib/Target/ARM/ARMInstrInfo.td b/llvm/lib/Target/ARM/ARMInstrInfo.td index f94b3090800..cc0e7d4d9c3 100644 --- a/llvm/lib/Target/ARM/ARMInstrInfo.td +++ b/llvm/lib/Target/ARM/ARMInstrInfo.td @@ -3893,6 +3893,7 @@ def MVNi : AsI1<0b1111, (outs GPR:$Rd), (ins mod_imm:$imm), DPFrm, let Inst{11-0} = imm; } +let AddedComplexity = 1 in def : ARMPat<(and GPR:$src, mod_imm_not:$imm), (BICri GPR:$src, mod_imm_not:$imm)>; |

