mirror of
https://github.com/azahar-emu/dynarmic
synced 2025-11-07 15:40:00 +01:00
A32/asimd_two_regs_misc: Remove use of VectorShuffleWords in VUZP
This commit is contained in:
parent
4417314619
commit
99d5caa06d
@ -486,13 +486,8 @@ bool TranslatorVisitor::asimd_VUZP(bool D, size_t sz, size_t Vd, bool Q, bool M,
|
|||||||
|
|
||||||
const auto reg_d = ir.GetVector(d);
|
const auto reg_d = ir.GetVector(d);
|
||||||
const auto reg_m = ir.GetVector(m);
|
const auto reg_m = ir.GetVector(m);
|
||||||
auto result_d = ir.VectorDeinterleaveEven(esize, reg_d, reg_m);
|
auto result_d = Q ? ir.VectorDeinterleaveEven(esize, reg_d, reg_m) : ir.VectorDeinterleaveEvenLower(esize, reg_d, reg_m);
|
||||||
auto result_m = ir.VectorDeinterleaveOdd(esize, reg_d, reg_m);
|
auto result_m = Q ? ir.VectorDeinterleaveOdd(esize, reg_d, reg_m) : ir.VectorDeinterleaveOddLower(esize, reg_d, reg_m);
|
||||||
|
|
||||||
if (!Q) {
|
|
||||||
result_d = ir.VectorShuffleWords(result_d, 0b11011000);
|
|
||||||
result_m = ir.VectorShuffleWords(result_m, 0b11011000);
|
|
||||||
}
|
|
||||||
|
|
||||||
ir.SetVector(d, result_d);
|
ir.SetVector(d, result_d);
|
||||||
ir.SetVector(m, result_m);
|
ir.SetVector(m, result_m);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user