Formatting.
This commit is contained in:
parent
b38b9e43ea
commit
9e79babde0
|
@ -4493,26 +4493,26 @@ struct MUL_ADD_F32
|
|||
|
||||
// FMA extension
|
||||
if (e.IsFeatureEnabled(kX64EmitFMA)) {
|
||||
EmitCommutativeBinaryXmmOp(
|
||||
e, i,
|
||||
[&i](X64Emitter& e, const Xmm& dest, const Xmm& src1,
|
||||
const Xmm& src2) {
|
||||
Xmm src3 = i.src3.is_constant ? e.xmm1 : i.src3;
|
||||
if (i.src3.is_constant) {
|
||||
e.LoadConstantXmm(src3, i.src3.constant());
|
||||
}
|
||||
if (i.dest == src1) {
|
||||
e.vfmadd213ss(i.dest, src2, src3);
|
||||
} else if (i.dest == src2) {
|
||||
e.vfmadd213ss(i.dest, src1, src3);
|
||||
} else if (i.dest == i.src3) {
|
||||
e.vfmadd231ss(i.dest, src1, src2);
|
||||
} else {
|
||||
// Dest not equal to anything
|
||||
e.vmovss(i.dest, src1);
|
||||
e.vfmadd213ss(i.dest, src2, src3);
|
||||
}
|
||||
});
|
||||
EmitCommutativeBinaryXmmOp(e, i,
|
||||
[&i](X64Emitter& e, const Xmm& dest,
|
||||
const Xmm& src1, const Xmm& src2) {
|
||||
Xmm src3 =
|
||||
i.src3.is_constant ? e.xmm1 : i.src3;
|
||||
if (i.src3.is_constant) {
|
||||
e.LoadConstantXmm(src3, i.src3.constant());
|
||||
}
|
||||
if (i.dest == src1) {
|
||||
e.vfmadd213ss(i.dest, src2, src3);
|
||||
} else if (i.dest == src2) {
|
||||
e.vfmadd213ss(i.dest, src1, src3);
|
||||
} else if (i.dest == i.src3) {
|
||||
e.vfmadd231ss(i.dest, src1, src2);
|
||||
} else {
|
||||
// Dest not equal to anything
|
||||
e.vmovss(i.dest, src1);
|
||||
e.vfmadd213ss(i.dest, src2, src3);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
Xmm src3;
|
||||
if (i.src3.is_constant) {
|
||||
|
@ -4552,26 +4552,26 @@ struct MUL_ADD_F64
|
|||
|
||||
// FMA extension
|
||||
if (e.IsFeatureEnabled(kX64EmitFMA)) {
|
||||
EmitCommutativeBinaryXmmOp(
|
||||
e, i,
|
||||
[&i](X64Emitter& e, const Xmm& dest, const Xmm& src1,
|
||||
const Xmm& src2) {
|
||||
Xmm src3 = i.src3.is_constant ? e.xmm1 : i.src3;
|
||||
if (i.src3.is_constant) {
|
||||
e.LoadConstantXmm(src3, i.src3.constant());
|
||||
}
|
||||
if (i.dest == src1) {
|
||||
e.vfmadd213sd(i.dest, src2, src3);
|
||||
} else if (i.dest == src2) {
|
||||
e.vfmadd213sd(i.dest, src1, src3);
|
||||
} else if (i.dest == i.src3) {
|
||||
e.vfmadd231sd(i.dest, src1, src2);
|
||||
} else {
|
||||
// Dest not equal to anything
|
||||
e.vmovsd(i.dest, src1);
|
||||
e.vfmadd213sd(i.dest, src2, src3);
|
||||
}
|
||||
});
|
||||
EmitCommutativeBinaryXmmOp(e, i,
|
||||
[&i](X64Emitter& e, const Xmm& dest,
|
||||
const Xmm& src1, const Xmm& src2) {
|
||||
Xmm src3 =
|
||||
i.src3.is_constant ? e.xmm1 : i.src3;
|
||||
if (i.src3.is_constant) {
|
||||
e.LoadConstantXmm(src3, i.src3.constant());
|
||||
}
|
||||
if (i.dest == src1) {
|
||||
e.vfmadd213sd(i.dest, src2, src3);
|
||||
} else if (i.dest == src2) {
|
||||
e.vfmadd213sd(i.dest, src1, src3);
|
||||
} else if (i.dest == i.src3) {
|
||||
e.vfmadd231sd(i.dest, src1, src2);
|
||||
} else {
|
||||
// Dest not equal to anything
|
||||
e.vmovsd(i.dest, src1);
|
||||
e.vfmadd213sd(i.dest, src2, src3);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
Xmm src3;
|
||||
if (i.src3.is_constant) {
|
||||
|
@ -4617,26 +4617,26 @@ struct MUL_ADD_V128
|
|||
// than vmul+vadd and it'd be nice to know why. Until we know, it's
|
||||
// disabled so tests pass.
|
||||
if (false && e.IsFeatureEnabled(kX64EmitFMA)) {
|
||||
EmitCommutativeBinaryXmmOp(
|
||||
e, i,
|
||||
[&i](X64Emitter& e, const Xmm& dest, const Xmm& src1,
|
||||
const Xmm& src2) {
|
||||
Xmm src3 = i.src3.is_constant ? e.xmm1 : i.src3;
|
||||
if (i.src3.is_constant) {
|
||||
e.LoadConstantXmm(src3, i.src3.constant());
|
||||
}
|
||||
if (i.dest == src1) {
|
||||
e.vfmadd213ps(i.dest, src2, src3);
|
||||
} else if (i.dest == src2) {
|
||||
e.vfmadd213ps(i.dest, src1, src3);
|
||||
} else if (i.dest == i.src3) {
|
||||
e.vfmadd231ps(i.dest, src1, src2);
|
||||
} else {
|
||||
// Dest not equal to anything
|
||||
e.vmovdqa(i.dest, src1);
|
||||
e.vfmadd213ps(i.dest, src2, src3);
|
||||
}
|
||||
});
|
||||
EmitCommutativeBinaryXmmOp(e, i,
|
||||
[&i](X64Emitter& e, const Xmm& dest,
|
||||
const Xmm& src1, const Xmm& src2) {
|
||||
Xmm src3 =
|
||||
i.src3.is_constant ? e.xmm1 : i.src3;
|
||||
if (i.src3.is_constant) {
|
||||
e.LoadConstantXmm(src3, i.src3.constant());
|
||||
}
|
||||
if (i.dest == src1) {
|
||||
e.vfmadd213ps(i.dest, src2, src3);
|
||||
} else if (i.dest == src2) {
|
||||
e.vfmadd213ps(i.dest, src1, src3);
|
||||
} else if (i.dest == i.src3) {
|
||||
e.vfmadd231ps(i.dest, src1, src2);
|
||||
} else {
|
||||
// Dest not equal to anything
|
||||
e.vmovdqa(i.dest, src1);
|
||||
e.vfmadd213ps(i.dest, src2, src3);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
Xmm src3;
|
||||
if (i.src3.is_constant) {
|
||||
|
@ -4690,26 +4690,26 @@ struct MUL_SUB_F32
|
|||
|
||||
// FMA extension
|
||||
if (e.IsFeatureEnabled(kX64EmitFMA)) {
|
||||
EmitCommutativeBinaryXmmOp(
|
||||
e, i,
|
||||
[&i](X64Emitter& e, const Xmm& dest, const Xmm& src1,
|
||||
const Xmm& src2) {
|
||||
Xmm src3 = i.src3.is_constant ? e.xmm1 : i.src3;
|
||||
if (i.src3.is_constant) {
|
||||
e.LoadConstantXmm(src3, i.src3.constant());
|
||||
}
|
||||
if (i.dest == src1) {
|
||||
e.vfmsub213ss(i.dest, src2, src3);
|
||||
} else if (i.dest == src2) {
|
||||
e.vfmsub213ss(i.dest, src1, src3);
|
||||
} else if (i.dest == i.src3) {
|
||||
e.vfmsub231ss(i.dest, src1, src2);
|
||||
} else {
|
||||
// Dest not equal to anything
|
||||
e.vmovss(i.dest, src1);
|
||||
e.vfmsub213ss(i.dest, src2, src3);
|
||||
}
|
||||
});
|
||||
EmitCommutativeBinaryXmmOp(e, i,
|
||||
[&i](X64Emitter& e, const Xmm& dest,
|
||||
const Xmm& src1, const Xmm& src2) {
|
||||
Xmm src3 =
|
||||
i.src3.is_constant ? e.xmm1 : i.src3;
|
||||
if (i.src3.is_constant) {
|
||||
e.LoadConstantXmm(src3, i.src3.constant());
|
||||
}
|
||||
if (i.dest == src1) {
|
||||
e.vfmsub213ss(i.dest, src2, src3);
|
||||
} else if (i.dest == src2) {
|
||||
e.vfmsub213ss(i.dest, src1, src3);
|
||||
} else if (i.dest == i.src3) {
|
||||
e.vfmsub231ss(i.dest, src1, src2);
|
||||
} else {
|
||||
// Dest not equal to anything
|
||||
e.vmovss(i.dest, src1);
|
||||
e.vfmsub213ss(i.dest, src2, src3);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
Xmm src3;
|
||||
if (i.src3.is_constant) {
|
||||
|
@ -4749,26 +4749,26 @@ struct MUL_SUB_F64
|
|||
|
||||
// FMA extension
|
||||
if (e.IsFeatureEnabled(kX64EmitFMA)) {
|
||||
EmitCommutativeBinaryXmmOp(
|
||||
e, i,
|
||||
[&i](X64Emitter& e, const Xmm& dest, const Xmm& src1,
|
||||
const Xmm& src2) {
|
||||
Xmm src3 = i.src3.is_constant ? e.xmm1 : i.src3;
|
||||
if (i.src3.is_constant) {
|
||||
e.LoadConstantXmm(src3, i.src3.constant());
|
||||
}
|
||||
if (i.dest == src1) {
|
||||
e.vfmsub213sd(i.dest, src2, src3);
|
||||
} else if (i.dest == src2) {
|
||||
e.vfmsub213sd(i.dest, src1, src3);
|
||||
} else if (i.dest == i.src3) {
|
||||
e.vfmsub231sd(i.dest, src1, src2);
|
||||
} else {
|
||||
// Dest not equal to anything
|
||||
e.vmovsd(i.dest, src1);
|
||||
e.vfmsub213sd(i.dest, src2, src3);
|
||||
}
|
||||
});
|
||||
EmitCommutativeBinaryXmmOp(e, i,
|
||||
[&i](X64Emitter& e, const Xmm& dest,
|
||||
const Xmm& src1, const Xmm& src2) {
|
||||
Xmm src3 =
|
||||
i.src3.is_constant ? e.xmm1 : i.src3;
|
||||
if (i.src3.is_constant) {
|
||||
e.LoadConstantXmm(src3, i.src3.constant());
|
||||
}
|
||||
if (i.dest == src1) {
|
||||
e.vfmsub213sd(i.dest, src2, src3);
|
||||
} else if (i.dest == src2) {
|
||||
e.vfmsub213sd(i.dest, src1, src3);
|
||||
} else if (i.dest == i.src3) {
|
||||
e.vfmsub231sd(i.dest, src1, src2);
|
||||
} else {
|
||||
// Dest not equal to anything
|
||||
e.vmovsd(i.dest, src1);
|
||||
e.vfmsub213sd(i.dest, src2, src3);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
Xmm src3;
|
||||
if (i.src3.is_constant) {
|
||||
|
@ -4812,26 +4812,26 @@ struct MUL_SUB_V128
|
|||
|
||||
// FMA extension
|
||||
if (e.IsFeatureEnabled(kX64EmitFMA)) {
|
||||
EmitCommutativeBinaryXmmOp(
|
||||
e, i,
|
||||
[&i](X64Emitter& e, const Xmm& dest, const Xmm& src1,
|
||||
const Xmm& src2) {
|
||||
Xmm src3 = i.src3.is_constant ? e.xmm1 : i.src3;
|
||||
if (i.src3.is_constant) {
|
||||
e.LoadConstantXmm(src3, i.src3.constant());
|
||||
}
|
||||
if (i.dest == src1) {
|
||||
e.vfmsub213ps(i.dest, src2, src3);
|
||||
} else if (i.dest == src2) {
|
||||
e.vfmsub213ps(i.dest, src1, src3);
|
||||
} else if (i.dest == i.src3) {
|
||||
e.vfmsub231ps(i.dest, src1, src2);
|
||||
} else {
|
||||
// Dest not equal to anything
|
||||
e.vmovdqa(i.dest, src1);
|
||||
e.vfmsub213ps(i.dest, src2, src3);
|
||||
}
|
||||
});
|
||||
EmitCommutativeBinaryXmmOp(e, i,
|
||||
[&i](X64Emitter& e, const Xmm& dest,
|
||||
const Xmm& src1, const Xmm& src2) {
|
||||
Xmm src3 =
|
||||
i.src3.is_constant ? e.xmm1 : i.src3;
|
||||
if (i.src3.is_constant) {
|
||||
e.LoadConstantXmm(src3, i.src3.constant());
|
||||
}
|
||||
if (i.dest == src1) {
|
||||
e.vfmsub213ps(i.dest, src2, src3);
|
||||
} else if (i.dest == src2) {
|
||||
e.vfmsub213ps(i.dest, src1, src3);
|
||||
} else if (i.dest == i.src3) {
|
||||
e.vfmsub231ps(i.dest, src1, src2);
|
||||
} else {
|
||||
// Dest not equal to anything
|
||||
e.vmovdqa(i.dest, src1);
|
||||
e.vfmsub213ps(i.dest, src2, src3);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
Xmm src3;
|
||||
if (i.src3.is_constant) {
|
||||
|
|
Loading…
Reference in New Issue