mirror of
https://github.com/FEX-Emu/FEX.git
synced 2026-10-06 09:00:17 +02:00
VectorOps: Make SVE shift==0 case symmetric with ASIMD
Ensures that we have consistent behavior.
This commit is contained in:
1 parent
46ec2797ff
commit
24720b67da
1 file changed
+7
-2
@@ -3296,8 +3296,13 @@ DEF_OP(VUShrNI) {
|
||||
const auto Vector = GetVReg(Op->Vector);
|
||||
|
||||
if (HostSupportsSVE256 && Is256Bit) {
|
||||
shrnb(SubRegSize, Dst.Z(), Vector.Z(), BitShift);
|
||||
uzp1(SubRegSize, Dst.Z(), Dst.Z(), Dst.Z());
|
||||
if (BitShift == 0) {
|
||||
mov_imm(ARMEmitter::SubRegSize::i64Bit, VTMP1.Z(), 0);
|
||||
uzp1(SubRegSize, Dst.Z(), Dst.Z(), VTMP1.Z());
|
||||
} else {
|
||||
shrnb(SubRegSize, Dst.Z(), Vector.Z(), BitShift);
|
||||
uzp1(SubRegSize, Dst.Z(), Dst.Z(), Dst.Z());
|
||||
}
|
||||
} else {
|
||||
if (BitShift == 0) {
|
||||
xtn(SubRegSize, Dst.D(), Vector.D());
|
||||
|
||||
Reference in new issue
Block a user