[SIMD][x86_64] Add encoding for PMADDWD (#2530)
* [SIMD][x86_64] Add encoding for PMADDWD * also for "experimental_x64"
This commit is contained in:
@@ -1691,6 +1691,7 @@ fn define_simd(
|
||||
let usub_sat = shared.by_name("usub_sat");
|
||||
let vconst = shared.by_name("vconst");
|
||||
let vselect = shared.by_name("vselect");
|
||||
let widening_pairwise_dot_product_s = shared.by_name("widening_pairwise_dot_product_s");
|
||||
let x86_cvtt2si = x86.by_name("x86_cvtt2si");
|
||||
let x86_insertps = x86.by_name("x86_insertps");
|
||||
let x86_fmax = x86.by_name("x86_fmax");
|
||||
@@ -2213,6 +2214,9 @@ fn define_simd(
|
||||
// SIMD multiplication with lane expansion.
|
||||
e.enc_both_inferred(x86_pmuludq, rec_fa.opcodes(&PMULUDQ));
|
||||
|
||||
// SIMD multiplication and add adjacent pairs, from SSE2.
|
||||
e.enc_both_inferred(widening_pairwise_dot_product_s, rec_fa.opcodes(&PMADDWD));
|
||||
|
||||
// SIMD integer multiplication for I64x2 using a AVX512.
|
||||
{
|
||||
e.enc_32_64_maybe_isap(
|
||||
|
||||
@@ -508,6 +508,9 @@ pub static VPMULLQ: [u8; 4] = [0x66, 0x0f, 0x38, 0x40];
|
||||
/// in xmm2/m128, and store the quadword results in xmm1 (SSE2).
|
||||
pub static PMULUDQ: [u8; 3] = [0x66, 0x0f, 0xf4];
|
||||
|
||||
/// Multiply the packed word integers, add adjacent doubleword results.
|
||||
pub static PMADDWD: [u8; 3] = [0x66, 0x0f, 0xf5];
|
||||
|
||||
/// Pop top of stack into r{16,32,64}; increment stack pointer.
|
||||
pub static POP_REG: [u8; 1] = [0x58];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user