/// <summary>
            /// Updates index and length registers.
            /// </summary>
            public Register HandleIntrinsicParameter(
                int parameterOffset,
                Parameter parameter)
            {
                IndexRegister = Parent.Allocate(parameter);

                if (!EntryPoint.IsExplicitlyGrouped)
                {
                    // This is an implicitly grouped kernel that needs
                    // boundary information to avoid out-of-bounds dispatches
                    LengthRegister = Parent.AllocateType(parameter.ParameterType);
                    parameter.AssertNotNull(LengthRegister);
                }
                return(LengthRegister);
            }