// HsubPd: Horizontally subtract adjacent pairs of double-precision (64-bit) // floating-point elements in 'a' and 'b', and pack the results in 'dst'. // // dst[63:0] := a[63:0] - a[127:64] // dst[127:64] := b[63:0] - b[127:64] // // Instruction: 'HSUBPD'. Intrinsic: '_mm_hsub_pd'. // Requires SSE3. func HsubPd(a x86.M128d, b x86.M128d) (dst x86.M128d) { return x86.M128d(hsubPd([2]float64(a), [2]float64(b))) }
// MovedupPd: Duplicate the low double-precision (64-bit) floating-point // element from 'a', and store the results in 'dst'. // // tmp[63:0] := a[63:0] // tmp[127:64] := a[63:0] // // Instruction: 'MOVDDUP'. Intrinsic: '_mm_movedup_pd'. // Requires SSE3. func MovedupPd(a x86.M128d) (dst x86.M128d) { return x86.M128d(movedupPd([2]float64(a))) }