mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Bug 1073478 - IonMonkey: Commute SIMD binary operators r=bbouvier
This commit is contained in:
parent
9d74dbfe56
commit
d518e5ce17
@ -3806,6 +3806,9 @@ LIRGenerator::visitSimdBinaryComp(MSimdBinaryComp *ins)
|
||||
{
|
||||
MOZ_ASSERT(ins->type() == MIRType_Int32x4);
|
||||
|
||||
if (ShouldReorderCommutative(ins->lhs(), ins->rhs(), ins))
|
||||
ins->reverse();
|
||||
|
||||
if (ins->compareType() == MSimdBinaryComp::CompareInt32x4) {
|
||||
LSimdBinaryCompIx4 *add = new(alloc()) LSimdBinaryCompIx4();
|
||||
return lowerForCompIx4(add, ins, ins->lhs(), ins->rhs());
|
||||
@ -3825,14 +3828,19 @@ LIRGenerator::visitSimdBinaryArith(MSimdBinaryArith *ins)
|
||||
{
|
||||
MOZ_ASSERT(IsSimdType(ins->type()));
|
||||
|
||||
MDefinition *lhs = ins->lhs();
|
||||
MDefinition *rhs = ins->rhs();
|
||||
if (ins->isCommutative())
|
||||
ReorderCommutative(&lhs, &rhs, ins);
|
||||
|
||||
if (ins->type() == MIRType_Int32x4) {
|
||||
LSimdBinaryArithIx4 *add = new(alloc()) LSimdBinaryArithIx4();
|
||||
return lowerForFPU(add, ins, ins->lhs(), ins->rhs());
|
||||
return lowerForFPU(add, ins, lhs, rhs);
|
||||
}
|
||||
|
||||
if (ins->type() == MIRType_Float32x4) {
|
||||
LSimdBinaryArithFx4 *add = new(alloc()) LSimdBinaryArithFx4();
|
||||
return lowerForFPU(add, ins, ins->lhs(), ins->rhs());
|
||||
return lowerForFPU(add, ins, lhs, rhs);
|
||||
}
|
||||
|
||||
MOZ_CRASH("Unknown SIMD kind when adding values");
|
||||
@ -3843,9 +3851,13 @@ LIRGenerator::visitSimdBinaryBitwise(MSimdBinaryBitwise *ins)
|
||||
{
|
||||
MOZ_ASSERT(IsSimdType(ins->type()));
|
||||
|
||||
MDefinition *lhs = ins->lhs();
|
||||
MDefinition *rhs = ins->rhs();
|
||||
ReorderCommutative(&lhs, &rhs, ins);
|
||||
|
||||
if (ins->type() == MIRType_Int32x4 || ins->type() == MIRType_Float32x4) {
|
||||
LSimdBinaryBitwiseX4 *lir = new(alloc()) LSimdBinaryBitwiseX4;
|
||||
return lowerForFPU(lir, ins, ins->lhs(), ins->rhs());
|
||||
return lowerForFPU(lir, ins, lhs, rhs);
|
||||
}
|
||||
|
||||
MOZ_CRASH("Unknown SIMD kind when doing bitwise operations");
|
||||
|
Loading…
Reference in New Issue
Block a user