Beispiel #1
0
// 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)))
}
Beispiel #2
0
// 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)))
}