/// <summary> /// Constructs a new value. /// </summary> /// <param name="context">The current IR context.</param> /// <param name="basicBlock">The parent basic block.</param> /// <param name="dimension">The constant dimension.</param> internal GroupDimensionValue( IRContext context, BasicBlock basicBlock, DeviceConstantDimension3D dimension) : base(context, basicBlock, dimension) { }
public GridIntrinsicAttribute( GridIntrinsicKind intrinsicKind, DeviceConstantDimension3D dimension) { IntrinsicKind = intrinsicKind; Dimension = dimension; }
private void MakeIntrinsicValue( Value value, string operation, DeviceConstantDimension3D dimension) => MakeIntrinsicValue( value, operation, ((int)dimension).ToString());
/// <summary> /// Constructs a new value. /// </summary> /// <param name="context">The current IR context.</param> /// <param name="basicBlock">The parent basic block.</param> /// <param name="dimension">The device constant dimension.</param> internal DeviceConstantDimensionValue( IRContext context, BasicBlock basicBlock, DeviceConstantDimension3D dimension) : base( basicBlock, context.GetPrimitiveType(BasicValueType.Int32)) { Dimension = dimension; }
/// <summary> /// Creates a node that represents of a <see cref="Group.Dimension"/> property. /// </summary> /// <param name="dimension">The constant dimension.</param> /// <returns>A reference to the requested value.</returns> public ValueReference CreateGroupDimensionValue(DeviceConstantDimension3D dimension) { Debug.Assert( dimension >= DeviceConstantDimension3D.X && dimension <= DeviceConstantDimension3D.Z, "Invalid dimension value"); return(Append(new GroupDimensionValue( Context, BasicBlock, dimension))); }
/// <summary> /// Constructs a new value. /// </summary> /// <param name="context">The current IR context.</param> /// <param name="basicBlock">The parent basic block.</param> /// <param name="dimension">The constant dimension.</param> internal GridDimensionValue( IRContext context, BasicBlock basicBlock, DeviceConstantDimension3D dimension) : base( ValueKind.GridDimension, context, basicBlock, dimension) { }
/// <summary> /// Creates a node that represents of a <see cref="Group.Dimension"/> property. /// </summary> /// <param name="location">The current location.</param> /// <param name="dimension">The constant dimension.</param> /// <returns>A reference to the requested value.</returns> public ValueReference CreateGroupDimensionValue( Location location, DeviceConstantDimension3D dimension) { if (dimension < DeviceConstantDimension3D.X || dimension > DeviceConstantDimension3D.Z) { throw location.GetArgumentException(nameof(dimension)); } return(Append(new GroupDimensionValue( GetInitializer(location), dimension))); }