From 2cfa5406e74bc989b6ba621fa10226d7fccc15cf Mon Sep 17 00:00:00 2001 From: Malcolm Jestadt Date: Thu, 30 Sep 2021 04:45:41 -0400 Subject: [PATCH] LLVM DSL: reimplement vdbpsadbw --- rpcs3/Emu/CPU/CPUTranslator.h | 21 ++++++--------------- 1 file changed, 6 insertions(+), 15 deletions(-) diff --git a/rpcs3/Emu/CPU/CPUTranslator.h b/rpcs3/Emu/CPU/CPUTranslator.h index d25783989a..93b795ca2e 100644 --- a/rpcs3/Emu/CPU/CPUTranslator.h +++ b/rpcs3/Emu/CPU/CPUTranslator.h @@ -3366,21 +3366,6 @@ public: return result; } - template - value_t vdbpsadbw(T1 a, T2 b, u8 c) - { - value_t result; - - const auto data0 = a.eval(m_ir); - const auto data1 = b.eval(m_ir); - - const auto immediate = (llvm_const_int{c}); - const auto imm8 = immediate.eval(m_ir); - - result.value = m_ir->CreateCall(get_intrinsic(llvm::Intrinsic::x86_avx512_dbpsadbw_128), {data0, data1, imm8}); - return result; - } - template value_t vpermb(T1 a, T2 b) { @@ -3579,6 +3564,12 @@ public: { return llvm_calli{"llvm.x86.sse.min.ps", {std::forward(a), std::forward(b)}}; } + + template , u8[16]>>> + static auto vdbpsadbw(T&& a, U&& b, u8 c) + { + return llvm_calli>{"llvm.x86.avx512.dbpsadbw.128", {std::forward(a), std::forward(b), llvm_const_int{c}}}; + } }; // Format llvm::SizeType