xxspltib/vspltisb are 3 cycle PM instructions,
xxleqv is 2 cycle ALU instruction.
We should use xxleqv to set all one vectors.
Paths
| Differential D65529
[PowerPC] Use xxleqv to set all one vector IMM(-1). ClosedPublic Authored by jsji on Jul 31 2019, 11:58 AM.
Details Summary xxspltib/vspltisb are 3 cycle PM instructions, We should use xxleqv to set all one vectors.
Diff Detail
Event Timelinejsji added inline comments. jsji added a child revision: D65542: [PeepholeOptimizer] Don't assume bitcast def always has input.Aug 13 2019, 2:14 PM Comment Actions Only v4i32 is handled. We need to handle all the valid vector type.
This revision now requires changes to proceed.Aug 14 2019, 12:31 AM Comment Actions Thanks @steven.zhang and @wuzish.
jsji added inline comments.
This revision is now accepted and ready to land.Aug 15 2019, 1:00 AM
jsji added inline comments.
Closed by commit rL369006: [PowerPC] Use xxleqv to set all one vector IMM(-1). (authored by jsji). · Explain WhyAug 15 2019, 7:35 AM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 215233 llvm/lib/Target/PowerPC/P9InstrResources.td
llvm/lib/Target/PowerPC/PPCInstrInfo.cpp
llvm/lib/Target/PowerPC/PPCInstrInfo.td
llvm/lib/Target/PowerPC/PPCInstrVSX.td
llvm/test/CodeGen/PowerPC/build-vector-allones.ll
llvm/test/CodeGen/PowerPC/power9-moves-and-splats.ll
llvm/test/CodeGen/PowerPC/sat-add.ll
llvm/test/CodeGen/PowerPC/setcc-logic.ll
llvm/test/CodeGen/PowerPC/signbit-shift.ll
llvm/test/CodeGen/PowerPC/vec_add_sub_doubleword.ll
llvm/test/CodeGen/PowerPC/vselect-constants.ll
|
line too long. immAnyExt8NonAllOnes or immNonAllOnesAnyExt8?