AArch64: Macrofusion: Split features, add missing combinations.
authorMatthias Braun <matze@braunis.de>
Tue, 4 Oct 2016 19:28:21 +0000 (19:28 +0000)
committerMatthias Braun <matze@braunis.de>
Tue, 4 Oct 2016 19:28:21 +0000 (19:28 +0000)
commit46a5238682fc69457c70cca0e9bb950140062b7d
tree77a796443e9fe292be22195e951528f84ea5363b
parenta271d1a531ecfa5c1c71f644fc4aaebfd9ae4fbd
AArch64: Macrofusion: Split features, add missing combinations.

AArch64InstrInfo::shouldScheduleAdjacent() determines whether two
instruction can benefit from macroop fusion on apple CPUs. The list
turned out to be incomplete:
- the "rr" variants of the instructions were missing
- even the "rs" variants can have shift value == 0 and behave like the
  "rr" variants

This also splits the MacropFusion target feature into
ArithmeticBccFusion and ArithmeticCbzFusion.

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

llvm-svn: 283243
llvm/lib/Target/AArch64/AArch64.td
llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
llvm/lib/Target/AArch64/AArch64Subtarget.h
llvm/test/CodeGen/AArch64/misched-fusion.ll