class

SIMD::SSE41

Inherits SIMD::SSE2 / SIMD::Base / Reference / Object


SSE4.1 backend for x86_64 Extends SSE2 with blendvps, dpps, pshufb, and other ops

Instance methods

bswap(dst : Slice(UInt32), a : Slice(UInt32)) : Nil
Source
bswap(dst : Slice(UInt64), a : Slice(UInt64)) : Nil
Source
bswap(dst : Slice(UInt16), a : Slice(UInt16)) : Nil
Source
ceil(dst : Slice(Float32), a : Slice(Float32)) : Nil

dst[i] = ceil(a[i])

Source
ceil(dst : Slice(Float64), a : Slice(Float64)) : Nil
Source
convert(dst : Slice(Float64), src : Slice(Int16)) : Nil

Int16 -> Float64

Source
floor(dst : Slice(Float32), a : Slice(Float32)) : Nil

SSE2 doesn't provide vector floor/ceil/round for Float32. (SSE4.1 overrides these in SIMD::SSE41.)

Source
floor(dst : Slice(Float64), a : Slice(Float64)) : Nil
Source
max(dst : Slice(Int8), a : Slice(Int8), b : Slice(Int8)) : Nil
Source
max(dst : Slice(Int16), a : Slice(Int16), b : Slice(Int16)) : Nil
Source
max(dst : Slice(Int32), a : Slice(Int32), b : Slice(Int32)) : Nil
Source
max(a : Slice(UInt32)) : UInt32
Source
min(dst : Slice(Int8), a : Slice(Int8), b : Slice(Int8)) : Nil
Source
min(dst : Slice(Int16), a : Slice(Int16), b : Slice(Int16)) : Nil
Source
min(dst : Slice(Int32), a : Slice(Int32), b : Slice(Int32)) : Nil
Source
min(a : Slice(UInt32)) : UInt32
Source
mul(dst : Slice(UInt32), a : Slice(UInt32), b : Slice(UInt32)) : Nil
Source
round(dst : Slice(Float32), a : Slice(Float32)) : Nil

dst[i] = round(a[i])

Source
round(dst : Slice(Float64), a : Slice(Float64)) : Nil
Source