mirror of
https://github.com/FEX-Emu/FEX.git
synced 2025-02-05 13:57:24 +00:00
x86_64/VectorOps: Separate 128-bit VFCMPNEQ path
This commit is contained in:
parent
48900662ae
commit
b951f4ad4b
@ -2156,6 +2156,7 @@ DEF_OP(VFCMPNEQ) {
|
||||
const auto OpSize = IROp->Size;
|
||||
|
||||
const auto ElementSize = Op->Header.ElementSize;
|
||||
const auto Is256Bit = OpSize == Core::CPUState::XMM_AVX_REG_SIZE;
|
||||
const auto IsScalar = ElementSize == OpSize;
|
||||
|
||||
const auto Dst = GetDst(Node);
|
||||
@ -2174,18 +2175,21 @@ DEF_OP(VFCMPNEQ) {
|
||||
LOGMAN_MSG_A_FMT("Unsupported element size: {}", ElementSize);
|
||||
break;
|
||||
}
|
||||
}
|
||||
else {
|
||||
const auto DstYMM = ToYMM(Dst);
|
||||
const auto Vector1YMM = ToYMM(Vector1);
|
||||
const auto Vector2YMM = ToYMM(Vector2);
|
||||
|
||||
} else {
|
||||
switch (ElementSize) {
|
||||
case 4:
|
||||
vcmpps(DstYMM, Vector1YMM, Vector2YMM, 4);
|
||||
if (Is256Bit) {
|
||||
vcmpps(ToYMM(Dst), ToYMM(Vector1), ToYMM(Vector2), 4);
|
||||
} else {
|
||||
vcmpps(Dst, Vector1, Vector2, 4);
|
||||
}
|
||||
break;
|
||||
case 8:
|
||||
vcmppd(DstYMM, Vector1YMM, Vector2YMM, 4);
|
||||
if (Is256Bit) {
|
||||
vcmppd(ToYMM(Dst), ToYMM(Vector1), ToYMM(Vector2), 4);
|
||||
} else {
|
||||
vcmppd(Dst, Vector1, Vector2, 4);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
LOGMAN_MSG_A_FMT("Unsupported element size: {}", ElementSize);
|
||||
|
Loading…
x
Reference in New Issue
Block a user