These three subtarget features are meant to control where MVE instructions take 1 vs 2 vs 4 architectural beats. The mve1beat feature is described as "Model MVE instructions as a 1 beat per tick architecture", meaning MVE instruction will execute over 4 cycles. mve4beat is the opposite where the entire 4 beats of the MVE instruction execute in a single cycle. The costs for the two were backwards though, not matching the cycle counts like they should. This patch switches the costs on the two to bring them in-line with expectations.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
Good job on catching this oversight. LGTM with a question about a test change.
llvm/test/Transforms/LoopVectorize/ARM/pointer_iv.ll | ||
---|---|---|
2 | Is this required, considering it doesn't change the rest of the test? |
llvm/test/Transforms/LoopVectorize/ARM/pointer_iv.ll | ||
---|---|---|
2 | It is needed to keep the test checking the same thing. It requires that the MVE instructions have a cost of 1 for the same vectorization to happen. |
Is this required, considering it doesn't change the rest of the test?