diff --git a/FEXCore/Source/Interface/Core/JIT/VectorOps.cpp b/FEXCore/Source/Interface/Core/JIT/VectorOps.cpp index 1e032ddb7..a29810bdf 100644 --- a/FEXCore/Source/Interface/Core/JIT/VectorOps.cpp +++ b/FEXCore/Source/Interface/Core/JIT/VectorOps.cpp @@ -3201,48 +3201,6 @@ DEF_OP(VUShrI) { } } -DEF_OP(VUShraI) { - const auto Op = IROp->C(); - const auto OpSize = IROp->Size; - - const auto BitShift = Op->BitShift; - const auto SubRegSize = ConvertSubRegSize8(IROp); - const auto Is256Bit = OpSize == IR::OpSize::i256Bit; - LOGMAN_THROW_A_FMT(!Is256Bit || HostSupportsSVE256, "Need SVE256 support in order to use {} with 256-bit operation", __func__); - - const auto Dst = GetVReg(Node); - const auto DestVector = GetVReg(Op->DestVector); - const auto Vector = GetVReg(Op->Vector); - - if (HostSupportsSVE256 && Is256Bit) { - if (Dst == DestVector) { - usra(SubRegSize, Dst.Z(), Vector.Z(), BitShift); - } else { - if (Dst != Vector) { - mov(Dst.Z(), DestVector.Z()); - usra(SubRegSize, Dst.Z(), Vector.Z(), BitShift); - } else { - mov(VTMP1.Z(), DestVector.Z()); - usra(SubRegSize, Dst.Z(), Vector.Z(), BitShift); - mov(Dst.Z(), VTMP1.Z()); - } - } - } else { - if (Dst == DestVector) { - usra(SubRegSize, Dst.Q(), Vector.Q(), BitShift); - } else { - if (Dst != Vector) { - mov(Dst.Q(), DestVector.Q()); - usra(SubRegSize, Dst.Q(), Vector.Q(), BitShift); - } else { - mov(VTMP1.Q(), DestVector.Q()); - usra(SubRegSize, VTMP1.Q(), Vector.Q(), BitShift); - mov(Dst.Q(), VTMP1.Q()); - } - } - } -} - DEF_OP(VSShrI) { const auto Op = IROp->C(); const auto OpSize = IROp->Size; diff --git a/FEXCore/Source/Interface/IR/IR.json b/FEXCore/Source/Interface/IR/IR.json index 665a87593..14b6df9d5 100644 --- a/FEXCore/Source/Interface/IR/IR.json +++ b/FEXCore/Source/Interface/IR/IR.json @@ -2004,15 +2004,6 @@ "BitShift > 0" ] }, - "FPR = VUShraI OpSize:#RegisterSize, OpSize:#ElementSize, FPR:$DestVector, FPR:$Vector, u8:$BitShift": { - "TiedSource": 0, - "DestSize": "RegisterSize", - "ElementSize": "ElementSize", - "EmitValidation": [ - "ElementSize >= FEXCore::IR::OpSize::i8Bit && ElementSize <= FEXCore::IR::OpSize::i64Bit", - "BitShift > 0 && BitShift <= IR::OpSizeAsBits(ElementSize)" - ] - }, "FPR = VSShrI OpSize:#RegisterSize, OpSize:#ElementSize, FPR:$Vector, u8:$BitShift": { "TiedSource": 0, "DestSize": "RegisterSize",