GTPin
Public Member Functions

HLI argument that represents mask of scalar operations performed by the instruction on the vector of data elements. More...

#include <gt_iarg_defs.h>

Public Member Functions

 IargInsOpMask (const IGtIns &ins)
 Construct HLI argument that evaluates the mask of scalar operations performed by the instruction on the vector of data elements ceMask = ins.IsWriteMaskEnabled() ? ChannelEnableReg() : 0xffffffff insOpMask = ceMask & DispatchMaskReg() & ins.ExecMask().Bits() & Mask(ins.Predicate())
template<typename PRMT >
const IGtIargMake (IGtIargFactory &factory) const
 Create IGtIarg object that assigns this argument value to the formal parameter of type PRMT.

Detailed Description

HLI argument that represents mask of scalar operations performed by the instruction on the vector of data elements.

Note:
This argument is similar to the SIMD mask generated by the IargSimdMask argument. However, there is one significant difference: the operation mask starts with the state of the GtExecMask::ChannelOffset() channel in the LSB position of the mask, while SIMD mask always holds state of the channel #0 in the LSB position. In other words, insOpMask = (simdMask >> GtExecMask::ChannelOffset())
The HLI function with this argument should be called immediately before the instruction for which operation mask is evaluated. If (!ins.IsFlowControl() && !ins.IsFlagModifier()), this argument can be used after instruction 'ins'.

Constructor & Destructor Documentation

gtpin::IargInsOpMask::IargInsOpMask ( const IGtIns ins) [inline]

Construct HLI argument that evaluates the mask of scalar operations performed by the instruction on the vector of data elements ceMask = ins.IsWriteMaskEnabled() ? ChannelEnableReg() : 0xffffffff insOpMask = ceMask & DispatchMaskReg() & ins.ExecMask().Bits() & Mask(ins.Predicate())

Parameters:
[in]insInstruction, the operation mask is evaluated for

Member Function Documentation

template<typename PRMT >
const IGtIarg& gtpin::IargInsOpMask::Make ( IGtIargFactory factory) const [inline]

Create IGtIarg object that assigns this argument value to the formal parameter of type PRMT.

Note:
The array of GRF registers is passed by pointer
Parameters:
PRMTType of the formal parameter of the function
Returns:
New IGtIarg object of type GtIargType::INS_OP_MASK
Precondition:
PRMT is a pointer type
 All Data Structures Functions Variables Typedefs Enumerations Enumerator


  Copyright (C) 2013-2025 Intel Corporation
SPDX-License-Identifier: MIT