diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp index 2b7f57ca5..df2b9ee0c 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp @@ -4466,7 +4466,7 @@ void OpDispatchBuilder::BSFOp(OpcodeArgs) { OrderedNode *Src = LoadSource(GPRClass, Op, Op->Src[0], Op->Flags, -1); // Find the LSB of this source - auto Result = _FindLSB(Src); + auto Result = _FindLSB(IR::SizeToOpSize(GetSrcSize(Op)), Src); auto ZeroConst = _Constant(0); diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher/Vector.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher/Vector.cpp index e533da48f..11160c7e2 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher/Vector.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher/Vector.cpp @@ -4723,7 +4723,7 @@ void OpDispatchBuilder::PCMPXSTRXOpImpl(OpcodeArgs, bool IsExplicit, bool IsMask OrderedNode *IfZero = _Constant(16 >> (Control & 1)); OrderedNode *IfNotZero = UseMSBIndex ? _FindMSB(ResultNoFlags) - : _FindLSB(ResultNoFlags); + : _FindLSB(IR::OpSize::i32Bit, ResultNoFlags); OrderedNode *Result = _Select(IR::COND_EQ, ResultNoFlags, ZeroConst, IfZero, IfNotZero); diff --git a/FEXCore/include/FEXCore/IR/IREmitter.h b/FEXCore/include/FEXCore/IR/IREmitter.h index 4e69c3d46..5f83f84de 100644 --- a/FEXCore/include/FEXCore/IR/IREmitter.h +++ b/FEXCore/include/FEXCore/IR/IREmitter.h @@ -167,9 +167,6 @@ friend class FEXCore::IR::PassManager; IRPair _Popcount(OrderedNode *_Src) { return _Popcount(static_cast(GetOpSize(_Src)), _Src); } - IRPair _FindLSB(OrderedNode *_Src) { - return _FindLSB(static_cast(GetOpSize(_Src)), _Src); - } IRPair _FindMSB(OrderedNode *_Src) { return _FindMSB(static_cast(GetOpSize(_Src)), _Src); }