| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
MLIR.AST.Dialect.X86Vector
Synopsis
- pattern DotBF16 :: Location -> Type -> operand -> operand -> operand -> AbstractOperation operand
- avx512_dot :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> m Value
- pattern DotBF16Ps128Intr :: Location -> Type -> operand -> operand -> operand -> AbstractOperation operand
- avx512_intr_dpbf16ps_128 :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> m Value
- pattern DotBF16Ps256Intr :: Location -> Type -> operand -> operand -> operand -> AbstractOperation operand
- avx512_intr_dpbf16ps_256 :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> m Value
- pattern DotBF16Ps512Intr :: Location -> Type -> operand -> operand -> operand -> AbstractOperation operand
- avx512_intr_dpbf16ps_512 :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> m Value
- pattern DotIntr :: Location -> Type -> operand -> operand -> operand -> AbstractOperation operand
- avx_intr_dp_ps_256 :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> m Value
- pattern Dot :: Location -> Type -> operand -> operand -> AbstractOperation operand
- avx_intr_dot :: MonadBlockBuilder m => Value -> Value -> m Value
- pattern MaskCompressIntr :: Location -> Type -> operand -> operand -> operand -> AbstractOperation operand
- avx512_intr_mask_compress :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> m Value
- avx512_mask_compress :: MonadBlockBuilder m => Type -> Value -> Value -> Maybe Value -> m Value
- pattern MaskRndScale :: Location -> Type -> operand -> operand -> operand -> operand -> operand -> AbstractOperation operand
- avx512_mask_rndscale :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> Value -> Value -> m Value
- pattern MaskRndScalePDIntr :: Location -> Type -> operand -> operand -> operand -> operand -> operand -> AbstractOperation operand
- avx512_intr_mask_rndscale_pd_512 :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> Value -> Value -> m Value
- pattern MaskRndScalePSIntr :: Location -> Type -> operand -> operand -> operand -> operand -> operand -> AbstractOperation operand
- avx512_intr_mask_rndscale_ps_512 :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> Value -> Value -> m Value
- pattern MaskScaleF :: Location -> Type -> operand -> operand -> operand -> operand -> operand -> AbstractOperation operand
- avx512_mask_scalef :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> Value -> Value -> m Value
- pattern MaskScaleFPDIntr :: Location -> Type -> operand -> operand -> operand -> operand -> operand -> AbstractOperation operand
- avx512_intr_mask_scalef_pd_512 :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> Value -> Value -> m Value
- pattern MaskScaleFPSIntr :: Location -> Type -> operand -> operand -> operand -> operand -> operand -> AbstractOperation operand
- avx512_intr_mask_scalef_ps_512 :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> Value -> Value -> m Value
- pattern RsqrtIntr :: Location -> Type -> operand -> AbstractOperation operand
- avx_intr_rsqrt_ps_256 :: MonadBlockBuilder m => Value -> m Value
- pattern Rsqrt :: Location -> Type -> operand -> AbstractOperation operand
- avx_rsqrt :: MonadBlockBuilder m => Value -> m Value
- pattern Vp2IntersectDIntr :: Location -> Type -> operand -> operand -> AbstractOperation operand
- avx512_intr_vp2intersect_d_512 :: MonadBlockBuilder m => Type -> Value -> Value -> m Value
- pattern Vp2Intersect :: Location -> Type -> Type -> operand -> operand -> AbstractOperation operand
- avx512_vp2intersect :: MonadBlockBuilder m => Type -> Type -> Value -> Value -> m [Value]
- pattern Vp2IntersectQIntr :: Location -> Type -> operand -> operand -> AbstractOperation operand
- avx512_intr_vp2intersect_q_512 :: MonadBlockBuilder m => Type -> Value -> Value -> m Value
avx512.dot
The dot op is an AVX512-BF16 specific op that can lower to the proper
LLVMAVX512BF16 operation llvm.dpbf16ps depending on the width of MLIR
vectors it is applied to.
#### From the Intel Intrinsics Guide:
Compute dot-product of BF16 (16-bit) floating-point pairs in a and b,
accumulating the intermediate single-precision (32-bit) floating-point
elements with elements in src, and store the results in dst.
Example:
%0 = x86vector.avx512.dot %src, %a, %b : vector<32xbf16> -> vector<16xf32>
pattern DotBF16 :: Location -> Type -> operand -> operand -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx512.dot.
avx512_dot :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> m Value Source #
A builder for x86vector.avx512.dot.
pattern DotBF16Ps128Intr :: Location -> Type -> operand -> operand -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx512.intr.dpbf16ps.128.
avx512_intr_dpbf16ps_128 :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> m Value Source #
A builder for x86vector.avx512.intr.dpbf16ps.128.
pattern DotBF16Ps256Intr :: Location -> Type -> operand -> operand -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx512.intr.dpbf16ps.256.
avx512_intr_dpbf16ps_256 :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> m Value Source #
A builder for x86vector.avx512.intr.dpbf16ps.256.
pattern DotBF16Ps512Intr :: Location -> Type -> operand -> operand -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx512.intr.dpbf16ps.512.
avx512_intr_dpbf16ps_512 :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> m Value Source #
A builder for x86vector.avx512.intr.dpbf16ps.512.
pattern DotIntr :: Location -> Type -> operand -> operand -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx.intr.dp.ps.256.
avx_intr_dp_ps_256 :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> m Value Source #
A builder for x86vector.avx.intr.dp.ps.256.
avx.intr.dot
Computes the 4-way dot products of the lower and higher parts of the source vectors and broadcasts the two results to the lower and higher elements of the destination vector, respectively. Adding one element of the lower part to one element of the higher part in the destination vector yields the full dot product of the two source vectors.
Example:
%0 = x86vector.avx.intr.dot %a, %b : vector<8xf32> %1 = vector.extractelement %0[%i0 : i32]: vector<8xf32> %2 = vector.extractelement %0[%i4 : i32]: vector<8xf32> %d = arith.addf %1, %2 : f32
pattern Dot :: Location -> Type -> operand -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx.intr.dot.
avx_intr_dot :: MonadBlockBuilder m => Value -> Value -> m Value Source #
A builder for x86vector.avx.intr.dot.
pattern MaskCompressIntr :: Location -> Type -> operand -> operand -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx512.intr.mask.compress.
avx512_intr_mask_compress :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> m Value Source #
A builder for x86vector.avx512.intr.mask.compress.
avx512.mask.compress
The mask.compress op is an AVX512 specific op that can lower to the
llvm.mask.compress instruction. Instead of src, a constant vector
vector attribute constant_src may be specified. If neither src nor
constant_src is specified, the remaining elements in the result vector are
set to zero.
#### From the Intel Intrinsics Guide:
Contiguously store the active integer/floating-point elements in a (those
with their respective bit set in writemask k) to dst, and pass through the
remaining elements from src.
avx512_mask_compress :: MonadBlockBuilder m => Type -> Value -> Value -> Maybe Value -> m Value Source #
A builder for x86vector.avx512.mask.compress.
avx512.mask.rndscale
The mask.rndscale op is an AVX512 specific op that can lower to the proper
LLVMAVX512 operation: llvm.mask.rndscale.ps.512 or
llvm.mask.rndscale.pd.512 instruction depending on the type of vectors it
is applied to.
#### From the Intel Intrinsics Guide:
Round packed floating-point elements in a to the number of fraction bits
specified by imm, and store the results in dst using writemask k
(elements are copied from src when the corresponding mask bit is not set).
pattern MaskRndScale :: Location -> Type -> operand -> operand -> operand -> operand -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx512.mask.rndscale.
avx512_mask_rndscale :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> Value -> Value -> m Value Source #
A builder for x86vector.avx512.mask.rndscale.
pattern MaskRndScalePDIntr :: Location -> Type -> operand -> operand -> operand -> operand -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx512.intr.mask.rndscale.pd.512.
avx512_intr_mask_rndscale_pd_512 :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> Value -> Value -> m Value Source #
A builder for x86vector.avx512.intr.mask.rndscale.pd.512.
pattern MaskRndScalePSIntr :: Location -> Type -> operand -> operand -> operand -> operand -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx512.intr.mask.rndscale.ps.512.
avx512_intr_mask_rndscale_ps_512 :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> Value -> Value -> m Value Source #
A builder for x86vector.avx512.intr.mask.rndscale.ps.512.
avx512.mask.scalef
The mask.scalef op is an AVX512 specific op that can lower to the proper
LLVMAVX512 operation: llvm.mask.scalef.ps.512 or
llvm.mask.scalef.pd.512 depending on the type of MLIR vectors it is
applied to.
#### From the Intel Intrinsics Guide:
Scale the packed floating-point elements in a using values from b, and
store the results in dst using writemask k (elements are copied from src
when the corresponding mask bit is not set).
pattern MaskScaleF :: Location -> Type -> operand -> operand -> operand -> operand -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx512.mask.scalef.
avx512_mask_scalef :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> Value -> Value -> m Value Source #
A builder for x86vector.avx512.mask.scalef.
pattern MaskScaleFPDIntr :: Location -> Type -> operand -> operand -> operand -> operand -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx512.intr.mask.scalef.pd.512.
avx512_intr_mask_scalef_pd_512 :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> Value -> Value -> m Value Source #
A builder for x86vector.avx512.intr.mask.scalef.pd.512.
pattern MaskScaleFPSIntr :: Location -> Type -> operand -> operand -> operand -> operand -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx512.intr.mask.scalef.ps.512.
avx512_intr_mask_scalef_ps_512 :: MonadBlockBuilder m => Type -> Value -> Value -> Value -> Value -> Value -> m Value Source #
A builder for x86vector.avx512.intr.mask.scalef.ps.512.
pattern RsqrtIntr :: Location -> Type -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx.intr.rsqrt.ps.256.
avx_intr_rsqrt_ps_256 :: MonadBlockBuilder m => Value -> m Value Source #
A builder for x86vector.avx.intr.rsqrt.ps.256.
pattern Rsqrt :: Location -> Type -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx.rsqrt.
pattern Vp2IntersectDIntr :: Location -> Type -> operand -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx512.intr.vp2intersect.d.512.
avx512_intr_vp2intersect_d_512 :: MonadBlockBuilder m => Type -> Value -> Value -> m Value Source #
A builder for x86vector.avx512.intr.vp2intersect.d.512.
avx512.vp2intersect
The vp2intersect op is an AVX512 specific op that can lower to the proper
LLVMAVX512 operation: llvm.vp2intersect.d.512 or
llvm.vp2intersect.q.512 depending on the type of MLIR vectors it is
applied to.
#### From the Intel Intrinsics Guide:
Compute intersection of packed integer vectors a and b, and store
indication of match in the corresponding bit of two mask registers
specified by k1 and k2. A match in corresponding elements of a and
b is indicated by a set bit in the corresponding bit of the mask
registers.
pattern Vp2Intersect :: Location -> Type -> Type -> operand -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx512.vp2intersect.
avx512_vp2intersect :: MonadBlockBuilder m => Type -> Type -> Value -> Value -> m [Value] Source #
A builder for x86vector.avx512.vp2intersect.
pattern Vp2IntersectQIntr :: Location -> Type -> operand -> operand -> AbstractOperation operand Source #
A pattern for x86vector.avx512.intr.vp2intersect.q.512.
avx512_intr_vp2intersect_q_512 :: MonadBlockBuilder m => Type -> Value -> Value -> m Value Source #
A builder for x86vector.avx512.intr.vp2intersect.q.512.