core.simd

Builtin SIMD intrinsics

Members

Aliases

byte16
alias byte16 = Vector!(byte[16])
Undocumented in source.
byte32
alias byte32 = Vector!(byte[32])
Undocumented in source.
byte4
alias byte4 = Vector!(byte[4])
Undocumented in source.
byte64
alias byte64 = Vector!(byte[64])
Undocumented in source.
byte8
alias byte8 = Vector!(byte[8])
Undocumented in source.
double1
alias double1 = Vector!(double[1])
Undocumented in source.
double2
alias double2 = Vector!(double[2])
Undocumented in source.
double4
alias double4 = Vector!(double[4])
Undocumented in source.
double8
alias double8 = Vector!(double[8])
Undocumented in source.
float16
alias float16 = Vector!(float[16])
Undocumented in source.
float2
alias float2 = Vector!(float[2])
Undocumented in source.
float4
alias float4 = Vector!(float[4])
Undocumented in source.
float8
alias float8 = Vector!(float[8])
Undocumented in source.
int16
alias int16 = Vector!(int[16])
Undocumented in source.
int2
alias int2 = Vector!(int[2])
Undocumented in source.
int4
alias int4 = Vector!(int[4])
Undocumented in source.
int8
alias int8 = Vector!(int[8])
Undocumented in source.
long1
alias long1 = Vector!(long[1])
Undocumented in source.
long2
alias long2 = Vector!(long[2])
Undocumented in source.
long4
alias long4 = Vector!(long[4])
Undocumented in source.
long8
alias long8 = Vector!(long[8])
Undocumented in source.
short16
alias short16 = Vector!(short[16])
Undocumented in source.
short2
alias short2 = Vector!(short[2])
Undocumented in source.
short32
alias short32 = Vector!(short[32])
Undocumented in source.
short4
alias short4 = Vector!(short[4])
Undocumented in source.
short8
alias short8 = Vector!(short[8])
Undocumented in source.
ubyte16
alias ubyte16 = Vector!(ubyte[16])
Undocumented in source.
ubyte32
alias ubyte32 = Vector!(ubyte[32])
Undocumented in source.
ubyte4
alias ubyte4 = Vector!(ubyte[4])
Undocumented in source.
ubyte64
alias ubyte64 = Vector!(ubyte[64])
Undocumented in source.
ubyte8
alias ubyte8 = Vector!(ubyte[8])
Undocumented in source.
uint16
alias uint16 = Vector!(uint[16])
Undocumented in source.
uint2
alias uint2 = Vector!(uint[2])
Undocumented in source.
uint4
alias uint4 = Vector!(uint[4])
Undocumented in source.
uint8
alias uint8 = Vector!(uint[8])
Undocumented in source.
ulong1
alias ulong1 = Vector!(ulong[1])
Undocumented in source.
ulong2
alias ulong2 = Vector!(ulong[2])
Undocumented in source.
ulong4
alias ulong4 = Vector!(ulong[4])
Undocumented in source.
ulong8
alias ulong8 = Vector!(ulong[8])
Undocumented in source.
ushort16
alias ushort16 = Vector!(ushort[16])
Undocumented in source.
ushort2
alias ushort2 = Vector!(ushort[2])
Undocumented in source.
ushort32
alias ushort32 = Vector!(ushort[32])
Undocumented in source.
ushort4
alias ushort4 = Vector!(ushort[4])
Undocumented in source.
ushort8
alias ushort8 = Vector!(ushort[8])
Undocumented in source.
void16
alias void16 = Vector!(void[16])
Undocumented in source.
void32
alias void32 = Vector!(void[32])
Undocumented in source.
void4
alias void4 = Vector!(void[4])
Undocumented in source.
void64
alias void64 = Vector!(void[64])
Undocumented in source.
void8
alias void8 = Vector!(void[8])
Undocumented in source.

Enums

XMM
enum XMM

XMM opcodes that conform to the following:

Functions

__simd
void16 __simd(XMM opcode, void16 op1, void16 op2)

Generate two operand instruction with XMM 128 bit operands.

__simd
void16 __simd(XMM opcode, void16 op1)

Unary SIMD instructions.

__simd
void16 __simd(XMM opcode, double d)
Undocumented in source.
__simd
void16 __simd(XMM opcode, float f)
Undocumented in source.
__simd
void16 __simd(XMM opcode, void16 op1, void16 op2, ubyte imm8)

For instructions: CMPPD, CMPSS, CMPSD, CMPPS, PSHUFD, PSHUFHW, PSHUFLW, BLENDPD, BLENDPS, DPPD, DPPS, MPSADBW, PBLENDW, ROUNDPD, ROUNDPS, ROUNDSD, ROUNDSS

__simd_ib
void16 __simd_ib(XMM opcode, void16 op1, ubyte imm8)

For instructions with the imm8 version: PSLLD, PSLLQ, PSLLW, PSRAD, PSRAW, PSRLD, PSRLQ, PSRLW, PSRLDQ, PSLLDQ

__simd_sto
void16 __simd_sto(XMM opcode, void16 op1, void16 op2)

For "store" operations of the form: op1 op= op2 such as MOVLPS.

__simd_sto
void16 __simd_sto(XMM opcode, double op1, void16 op2)
Undocumented in source.
__simd_sto
void16 __simd_sto(XMM opcode, float op1, void16 op2)
Undocumented in source.
__simd_sto
void16 __simd_sto(XMM opcode, void16 op1, long op2)
Undocumented in source.
loadUnaligned
V loadUnaligned(V* p)

Load unaligned vector from address. This is a compiler intrinsic.

pcmpeq
short8 pcmpeq(short8 v1, short8 v2)
Undocumented in source. Be warned that the author may not have intended to support it.
pcmpeq
ushort8 pcmpeq(ushort8 v1, ushort8 v2)
Undocumented in source. Be warned that the author may not have intended to support it.
prefetch
void prefetch(const(void)* address)

Emit prefetch instruction.

prefetch
void prefetch(const(void)* address)

Emit prefetch instruction.

storeUnaligned
V storeUnaligned(V* p, V value)

Store vector to unaligned address. This is a compiler intrinsic.

Imports

loadUnaligned (from ldc.simd)
public import ldc.simd : loadUnaligned, storeUnaligned;
Undocumented in source.
storeUnaligned (from ldc.simd)
public import ldc.simd : loadUnaligned, storeUnaligned;
Undocumented in source.

Templates

Vector
template Vector(T)

Create a vector type.

Meta