Const src1 permute.
This commit is contained in:
parent
43a3b4f3c0
commit
052dca5010
|
@ -4497,7 +4497,12 @@ EMITTER(PERMUTE_V128, MATCH(I<OPCODE_PERMUTE, V128<>, V128<>, V128<>, V128<>>))
|
||||||
e.vpxor(i.dest, i.dest);
|
e.vpxor(i.dest, i.dest);
|
||||||
} else {
|
} else {
|
||||||
// Control mask needs to be shuffled.
|
// Control mask needs to be shuffled.
|
||||||
e.vpshufb(e.xmm0, i.src1, e.GetXmmConstPtr(XMMByteSwapMask));
|
if (i.src1.is_constant) {
|
||||||
|
e.LoadConstantXmm(e.xmm0, i.src1.constant());
|
||||||
|
e.vpshufb(e.xmm0, e.xmm0, e.GetXmmConstPtr(XMMByteSwapMask));
|
||||||
|
} else {
|
||||||
|
e.vpshufb(e.xmm0, i.src1, e.GetXmmConstPtr(XMMByteSwapMask));
|
||||||
|
}
|
||||||
if (i.src2.is_constant) {
|
if (i.src2.is_constant) {
|
||||||
e.LoadConstantXmm(i.dest, i.src2.constant());
|
e.LoadConstantXmm(i.dest, i.src2.constant());
|
||||||
e.vpshufb(i.dest, i.dest, e.xmm0);
|
e.vpshufb(i.dest, i.dest, e.xmm0);
|
||||||
|
|
Loading…
Reference in New Issue