core.simd
Source: core/simd.d
- Create a vector type.
Parameters: T = one of double[2], float[4], void[16], byte[16], ubyte[16], short[8], ushort[8], int[4], uint[4], long[2], ulong[2]. For 256 bit vectors, one of double[4], float[8], void[32], byte[32], ubyte[32], short[16], ushort[16], int[8], uint[8], long[4], ulong[4]
-
opcode xmm1,xmm2/mem and do not have side effects (i.e. do not write to memory).
- Generate two operand instruction with XMM 128 bit operands.This is a compiler magic function - it doesn't behave like regular D functions.
Parameters: opcode any of the XMM opcodes; it must be a compile time constant op1 first operand op2 second operand
Returns:result of opcode - Unary SIMD instructions.
- For instructions: CMPPD, CMPSS, CMPSD, CMPPS, PSHUFD, PSHUFHW, PSHUFLW, BLENDPD, BLENDPS, DPPD, DPPS, MPSADBW, PBLENDW, ROUNDPD, ROUNDPS, ROUNDSD, ROUNDSS
Parameters: opcode any of the above XMM opcodes; it must be a compile time constant op1 first operand op2 second operand imm8 third operand; must be a compile time constant
Returns:result of opcode - For instructions with the imm8 version: PSLLD, PSLLQ, PSLLW, PSRAD, PSRAW, PSRLD, PSRLQ, PSRLW, PSRLDQ, PSLLDQ
Parameters: opcode any of the XMM opcodes; it must be a compile time constant op1 first operand imm8 second operand; must be a compile time constant
Returns:result of opcode - For "store" operations of the form: op1 op= op2Returns:op2 These cannot be marked as pure, as semantic() doesn't check them.