More UNPACK forms - likely right.
This commit is contained in:
parent
0950e9f53c
commit
deaf8308fc
|
@ -4891,16 +4891,20 @@ EMITTER(UNPACK, MATCH(I<OPCODE_UNPACK, V128<>, V128<>>)) {
|
||||||
e.vaddps(i.dest, e.GetXmmConstPtr(XMM3301));
|
e.vaddps(i.dest, e.GetXmmConstPtr(XMM3301));
|
||||||
}
|
}
|
||||||
static void EmitS8_IN_16_LO(X64Emitter& e, const EmitArgType& i) {
|
static void EmitS8_IN_16_LO(X64Emitter& e, const EmitArgType& i) {
|
||||||
XEASSERTALWAYS();
|
e.vpunpckhbw(i.dest, i.src1, i.src1);
|
||||||
|
e.vpsrad(i.dest, 8);
|
||||||
}
|
}
|
||||||
static void EmitS8_IN_16_HI(X64Emitter& e, const EmitArgType& i) {
|
static void EmitS8_IN_16_HI(X64Emitter& e, const EmitArgType& i) {
|
||||||
XEASSERTALWAYS();
|
e.vpunpcklbw(i.dest, i.src1, i.src1);
|
||||||
|
e.vpsrad(i.dest, 8);
|
||||||
}
|
}
|
||||||
static void EmitS16_IN_32_LO(X64Emitter& e, const EmitArgType& i) {
|
static void EmitS16_IN_32_LO(X64Emitter& e, const EmitArgType& i) {
|
||||||
XEASSERTALWAYS();
|
e.vpunpckhwd(i.dest, i.src1, i.src1);
|
||||||
|
e.vpsrad(i.dest, 16);
|
||||||
}
|
}
|
||||||
static void EmitS16_IN_32_HI(X64Emitter& e, const EmitArgType& i) {
|
static void EmitS16_IN_32_HI(X64Emitter& e, const EmitArgType& i) {
|
||||||
XEASSERTALWAYS();
|
e.vpunpcklwd(i.dest, i.src1, i.src1);
|
||||||
|
e.vpsrad(i.dest, 16);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
EMITTER_OPCODE_TABLE(
|
EMITTER_OPCODE_TABLE(
|
||||||
|
|
Loading…
Reference in New Issue