[ARM] Do not fuse VADD and VMUL on the Cortex-M4 and Cortex-M33
authorSjoerd Meijer <sjoerd.meijer@arm.com>
Mon, 24 Sep 2018 12:02:50 +0000 (12:02 +0000)
committerSjoerd Meijer <sjoerd.meijer@arm.com>
Mon, 24 Sep 2018 12:02:50 +0000 (12:02 +0000)
commitd986ede313227a5f473f83c8ba52130255955514
tree80aca1adfaa4dbbbeba0d7494484d9bbfb33a951
parent5555c009026eba9aef07544731ef6cd421cc7ccc
[ARM] Do not fuse VADD and VMUL on the Cortex-M4 and Cortex-M33

A sequence of VMUL and VADD instructions always give the same or better
performance than a fused VMLA instruction on the Cortex-M4 and Cortex-M33.
Executing the VMUL and VADD back-to-back requires the same cycles, but
having separate instructions allows scheduling to avoid the hazard between
these 2 instructions.

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

llvm-svn: 342874
llvm/lib/Target/ARM/ARM.td
llvm/lib/Target/ARM/ARMInstrInfo.td
llvm/test/CodeGen/ARM/fmacs.ll
llvm/test/CodeGen/Thumb2/float-intrinsics-float.ll