[all-commits] [llvm/llvm-project] 99fc6e: [AArch64][SVE][CodeGen] Generate fused mul+add/sub...
sushgokh via All-commits
all-commits at lists.llvm.org
Tue Apr 4 22:47:43 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 99fc6ec34cc1b023a837830d266fbbd523a509c3
https://github.com/llvm/llvm-project/commit/99fc6ec34cc1b023a837830d266fbbd523a509c3
Author: sgokhale <sgokhale at nvidia.com>
Date: 2023-04-05 (Wed, 05 Apr 2023)
Changed paths:
M llvm/lib/Target/AArch64/SVEInstrFormats.td
M llvm/test/CodeGen/AArch64/sve-int-arith.ll
Log Message:
-----------
[AArch64][SVE][CodeGen] Generate fused mul+add/sub ops with one of add/sub operands as splat
Currently, depending upon whether the add/sub instruction can synthesize immediate directly,
its decided whether to generate mul+(add/sub immediate) or mov+mla/mad/msb/mls ops.
If the add/sub can synthesize immediate directly, then fused ops wont get generated. This
patch tries to address this by having makeshift higher priority for the fused ops.
Specifically, patch aims at transformation similar to below:
add ( mul, splat_vector(C))
->
MOV C
MAD
Differential Revision: https://reviews.llvm.org/D142656
More information about the All-commits
mailing list