From c8c8ddbd4f8cc95eae476f1b9d4e0d1cb68b4e24 Mon Sep 17 00:00:00 2001 From: Ryan Houdek Date: Sun, 27 Aug 2023 21:52:22 -0700 Subject: [PATCH] IR: Removes implicit sized PDEP/PEXT --- FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp | 4 ++-- FEXCore/include/FEXCore/IR/IREmitter.h | 6 ------ 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp b/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp index b6f70e15a..c58a949bc 100644 --- a/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp +++ b/FEXCore/Source/Interface/Core/OpcodeDispatcher.cpp @@ -2460,7 +2460,7 @@ void OpDispatchBuilder::MULX(OpcodeArgs) { void OpDispatchBuilder::PDEP(OpcodeArgs) { auto* Input = LoadSource(GPRClass, Op, Op->Src[0], Op->Flags, -1); auto* Mask = LoadSource(GPRClass, Op, Op->Src[1], Op->Flags, -1); - auto Result = _PDep(Input, Mask); + auto Result = _PDep(IR::SizeToOpSize(GetSrcSize(Op)), Input, Mask); StoreResult(GPRClass, Op, Op->Dest, Result, -1); } @@ -2468,7 +2468,7 @@ void OpDispatchBuilder::PDEP(OpcodeArgs) { void OpDispatchBuilder::PEXT(OpcodeArgs) { auto* Input = LoadSource(GPRClass, Op, Op->Src[0], Op->Flags, -1); auto* Mask = LoadSource(GPRClass, Op, Op->Src[1], Op->Flags, -1); - auto Result = _PExt(Input, Mask); + auto Result = _PExt(IR::SizeToOpSize(GetSrcSize(Op)), Input, Mask); StoreResult(GPRClass, Op, Op->Dest, Result, -1); } diff --git a/FEXCore/include/FEXCore/IR/IREmitter.h b/FEXCore/include/FEXCore/IR/IREmitter.h index 419560811..da970b126 100644 --- a/FEXCore/include/FEXCore/IR/IREmitter.h +++ b/FEXCore/include/FEXCore/IR/IREmitter.h @@ -263,12 +263,6 @@ friend class FEXCore::IR::PassManager; IRPair _Extr(OrderedNode *_Upper, OrderedNode *_Lower, uint8_t _LSB) { return _Extr(static_cast(std::max(GetOpSize(_Upper), GetOpSize(_Lower))), _Upper, _Lower, _LSB); } - IRPair _PDep(OrderedNode *_Input, OrderedNode *_Mask) { - return _PDep(static_cast(std::max(GetOpSize(_Input), GetOpSize(_Mask))), _Input, _Mask); - } - IRPair _PExt(OrderedNode *_Input, OrderedNode *_Mask) { - return _PExt(static_cast(std::max(GetOpSize(_Input), GetOpSize(_Mask))), _Input, _Mask); - } // End of Temporary naughty implicit IR operation handlers void AddPhiValue(IR::IROp_Phi *Phi, OrderedNode *Value) {