[all-commits] [llvm/llvm-project] 5110ff: [AArch64][CostModel] Fix cost for mul <2 x i64>
sjoerdmeijer via All-commits
all-commits at lists.llvm.org
Mon Nov 30 03:37:37 PST 2020
Branch: refs/heads/master
Home: https://github.com/llvm/llvm-project
Commit: 5110ff08176f29eefd7638e328d65dfd1c1ad042
https://github.com/llvm/llvm-project/commit/5110ff08176f29eefd7638e328d65dfd1c1ad042
Author: Sjoerd Meijer <sjoerd.meijer at arm.com>
Date: 2020-11-30 (Mon, 30 Nov 2020)
Changed paths:
M llvm/lib/Target/AArch64/AArch64TargetTransformInfo.cpp
M llvm/test/Analysis/CostModel/AArch64/mul.ll
M llvm/test/Transforms/LoopVectorize/AArch64/extractvalue-no-scalarization-required.ll
M llvm/test/Transforms/SLPVectorizer/AArch64/mul.ll
Log Message:
-----------
[AArch64][CostModel] Fix cost for mul <2 x i64>
This was modeled to have a cost of 1, but since we do not have a MUL.2d this is
scalarized into vector inserts/extracts and scalar muls.
Motivating precommitted test is test/Transforms/SLPVectorizer/AArch64/mul.ll,
which we don't want to SLP vectorize.
Test Transforms/LoopVectorize/AArch64/extractvalue-no-scalarization-required.ll
unfortunately needed changing, but the reason is documented in
LoopVectorize.cpp:6855:
// The cost of executing VF copies of the scalar instruction. This opcode
// is unknown. Assume that it is the same as 'mul'.
which I will address next as a follow up of this.
Differential Revision: https://reviews.llvm.org/D92208
More information about the All-commits
mailing list