forked from OSchip/llvm-project
parent
1ba406c9fc
commit
64feec7977
|
@ -2850,10 +2850,12 @@ void BoUpSLP::reorderAltShuffleOperands(const InstructionsState &S,
|
||||||
// The vectorizer is trying to either have all elements one side being
|
// The vectorizer is trying to either have all elements one side being
|
||||||
// instruction with the same opcode to enable further vectorization, or having
|
// instruction with the same opcode to enable further vectorization, or having
|
||||||
// a splat to lower the vectorizing cost.
|
// a splat to lower the vectorizing cost.
|
||||||
static bool shouldReorderOperands(
|
static bool shouldReorderOperands(int i, Instruction &I, ArrayRef<Value *> Left,
|
||||||
int i, unsigned Opcode, Instruction &I, ArrayRef<Value *> Left,
|
ArrayRef<Value *> Right,
|
||||||
ArrayRef<Value *> Right, bool AllSameOpcodeLeft, bool AllSameOpcodeRight,
|
bool AllSameOpcodeLeft,
|
||||||
bool SplatLeft, bool SplatRight, Value *&VLeft, Value *&VRight) {
|
bool AllSameOpcodeRight, bool SplatLeft,
|
||||||
|
bool SplatRight, Value *&VLeft,
|
||||||
|
Value *&VRight) {
|
||||||
VLeft = I.getOperand(0);
|
VLeft = I.getOperand(0);
|
||||||
VRight = I.getOperand(1);
|
VRight = I.getOperand(1);
|
||||||
// If we have "SplatRight", try to see if commuting is needed to preserve it.
|
// If we have "SplatRight", try to see if commuting is needed to preserve it.
|
||||||
|
@ -2946,7 +2948,7 @@ void BoUpSLP::reorderInputsAccordingToOpcode(const InstructionsState &S,
|
||||||
// one side.
|
// one side.
|
||||||
Value *VLeft;
|
Value *VLeft;
|
||||||
Value *VRight;
|
Value *VRight;
|
||||||
if (shouldReorderOperands(i, Opcode, *I, Left, Right, AllSameOpcodeLeft,
|
if (shouldReorderOperands(i, *I, Left, Right, AllSameOpcodeLeft,
|
||||||
AllSameOpcodeRight, SplatLeft, SplatRight, VLeft,
|
AllSameOpcodeRight, SplatLeft, SplatRight, VLeft,
|
||||||
VRight)) {
|
VRight)) {
|
||||||
Left.push_back(VRight);
|
Left.push_back(VRight);
|
||||||
|
|
Loading…
Reference in New Issue