// AUTOGENERATED: DO NOT EDIT
// Last update date: 2021-01-06 23:02:27.020534
#region Grammar License
// Copyright (c) 2014-2016 The Khronos Group Inc.
// 
// Permission is hereby granted, free of charge, to any person obtaining a copy
// of this software and/or associated documentation files (the "Materials"),
// to deal in the Materials without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Materials, and to permit persons to whom the
// Materials are furnished to do so, subject to the following conditions:
// 
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Materials.
// 
// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS KHRONOS
// STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS SPECIFICATIONS AND
// HEADER INFORMATION ARE LOCATED AT https://www.khronos.org/registry/ 
// 
// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// FROM,OUT OF OR IN CONNECTION WITH THE MATERIALS OR THE USE OR OTHER DEALINGS
// IN THE MATERIALS.
#endregion

using static Spv.Specification;

namespace Spv.Generator
{
    public partial class Module
    {
        public Instruction OpenClAcos(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 0, x);
        }
        
        public Instruction OpenClAcosh(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 1, x);
        }
        
        public Instruction OpenClAcospi(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 2, x);
        }
        
        public Instruction OpenClAsin(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 3, x);
        }
        
        public Instruction OpenClAsinh(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 4, x);
        }
        
        public Instruction OpenClAsinpi(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 5, x);
        }
        
        public Instruction OpenClAtan(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 6, x);
        }
        
        public Instruction OpenClAtan2(Instruction resultType, Instruction y, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 7, y, x);
        }
        
        public Instruction OpenClAtanh(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 8, x);
        }
        
        public Instruction OpenClAtanpi(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 9, x);
        }
        
        public Instruction OpenClAtan2pi(Instruction resultType, Instruction y, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 10, y, x);
        }
        
        public Instruction OpenClCbrt(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 11, x);
        }
        
        public Instruction OpenClCeil(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 12, x);
        }
        
        public Instruction OpenClCopysign(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 13, x, y);
        }
        
        public Instruction OpenClCos(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 14, x);
        }
        
        public Instruction OpenClCosh(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 15, x);
        }
        
        public Instruction OpenClCospi(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 16, x);
        }
        
        public Instruction OpenClErfc(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 17, x);
        }
        
        public Instruction OpenClErf(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 18, x);
        }
        
        public Instruction OpenClExp(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 19, x);
        }
        
        public Instruction OpenClExp2(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 20, x);
        }
        
        public Instruction OpenClExp10(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 21, x);
        }
        
        public Instruction OpenClExpm1(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 22, x);
        }
        
        public Instruction OpenClFabs(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 23, x);
        }
        
        public Instruction OpenClFdim(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 24, x, y);
        }
        
        public Instruction OpenClFloor(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 25, x);
        }
        
        public Instruction OpenClFma(Instruction resultType, Instruction a, Instruction b, Instruction c)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 26, a, b, c);
        }
        
        public Instruction OpenClFmax(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 27, x, y);
        }
        
        public Instruction OpenClFmin(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 28, x, y);
        }
        
        public Instruction OpenClFmod(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 29, x, y);
        }
        
        public Instruction OpenClFract(Instruction resultType, Instruction x, Instruction ptr)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 30, x, ptr);
        }
        
        public Instruction OpenClFrexp(Instruction resultType, Instruction x, Instruction exp)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 31, x, exp);
        }
        
        public Instruction OpenClHypot(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 32, x, y);
        }
        
        public Instruction OpenClIlogb(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 33, x);
        }
        
        public Instruction OpenClLdexp(Instruction resultType, Instruction x, Instruction k)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 34, x, k);
        }
        
        public Instruction OpenClLgamma(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 35, x);
        }
        
        public Instruction OpenClLgamma_r(Instruction resultType, Instruction x, Instruction signp)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 36, x, signp);
        }
        
        public Instruction OpenClLog(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 37, x);
        }
        
        public Instruction OpenClLog2(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 38, x);
        }
        
        public Instruction OpenClLog10(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 39, x);
        }
        
        public Instruction OpenClLog1p(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 40, x);
        }
        
        public Instruction OpenClLogb(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 41, x);
        }
        
        public Instruction OpenClMad(Instruction resultType, Instruction a, Instruction b, Instruction c)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 42, a, b, c);
        }
        
        public Instruction OpenClMaxmag(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 43, x, y);
        }
        
        public Instruction OpenClMinmag(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 44, x, y);
        }
        
        public Instruction OpenClModf(Instruction resultType, Instruction x, Instruction iptr)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 45, x, iptr);
        }
        
        public Instruction OpenClNan(Instruction resultType, Instruction nancode)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 46, nancode);
        }
        
        public Instruction OpenClNextafter(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 47, x, y);
        }
        
        public Instruction OpenClPow(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 48, x, y);
        }
        
        public Instruction OpenClPown(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 49, x, y);
        }
        
        public Instruction OpenClPowr(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 50, x, y);
        }
        
        public Instruction OpenClRemainder(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 51, x, y);
        }
        
        public Instruction OpenClRemquo(Instruction resultType, Instruction x, Instruction y, Instruction quo)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 52, x, y, quo);
        }
        
        public Instruction OpenClRint(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 53, x);
        }
        
        public Instruction OpenClRootn(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 54, x, y);
        }
        
        public Instruction OpenClRound(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 55, x);
        }
        
        public Instruction OpenClRsqrt(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 56, x);
        }
        
        public Instruction OpenClSin(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 57, x);
        }
        
        public Instruction OpenClSincos(Instruction resultType, Instruction x, Instruction cosval)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 58, x, cosval);
        }
        
        public Instruction OpenClSinh(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 59, x);
        }
        
        public Instruction OpenClSinpi(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 60, x);
        }
        
        public Instruction OpenClSqrt(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 61, x);
        }
        
        public Instruction OpenClTan(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 62, x);
        }
        
        public Instruction OpenClTanh(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 63, x);
        }
        
        public Instruction OpenClTanpi(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 64, x);
        }
        
        public Instruction OpenClTgamma(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 65, x);
        }
        
        public Instruction OpenClTrunc(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 66, x);
        }
        
        public Instruction OpenClHalf_cos(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 67, x);
        }
        
        public Instruction OpenClHalf_divide(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 68, x, y);
        }
        
        public Instruction OpenClHalf_exp(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 69, x);
        }
        
        public Instruction OpenClHalf_exp2(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 70, x);
        }
        
        public Instruction OpenClHalf_exp10(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 71, x);
        }
        
        public Instruction OpenClHalf_log(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 72, x);
        }
        
        public Instruction OpenClHalf_log2(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 73, x);
        }
        
        public Instruction OpenClHalf_log10(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 74, x);
        }
        
        public Instruction OpenClHalf_powr(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 75, x, y);
        }
        
        public Instruction OpenClHalf_recip(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 76, x);
        }
        
        public Instruction OpenClHalf_rsqrt(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 77, x);
        }
        
        public Instruction OpenClHalf_sin(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 78, x);
        }
        
        public Instruction OpenClHalf_sqrt(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 79, x);
        }
        
        public Instruction OpenClHalf_tan(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 80, x);
        }
        
        public Instruction OpenClNative_cos(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 81, x);
        }
        
        public Instruction OpenClNative_divide(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 82, x, y);
        }
        
        public Instruction OpenClNative_exp(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 83, x);
        }
        
        public Instruction OpenClNative_exp2(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 84, x);
        }
        
        public Instruction OpenClNative_exp10(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 85, x);
        }
        
        public Instruction OpenClNative_log(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 86, x);
        }
        
        public Instruction OpenClNative_log2(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 87, x);
        }
        
        public Instruction OpenClNative_log10(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 88, x);
        }
        
        public Instruction OpenClNative_powr(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 89, x, y);
        }
        
        public Instruction OpenClNative_recip(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 90, x);
        }
        
        public Instruction OpenClNative_rsqrt(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 91, x);
        }
        
        public Instruction OpenClNative_sin(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 92, x);
        }
        
        public Instruction OpenClNative_sqrt(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 93, x);
        }
        
        public Instruction OpenClNative_tan(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 94, x);
        }
        
        public Instruction OpenClS_abs(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 141, x);
        }
        
        public Instruction OpenClS_abs_diff(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 142, x, y);
        }
        
        public Instruction OpenClS_add_sat(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 143, x, y);
        }
        
        public Instruction OpenClU_add_sat(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 144, x, y);
        }
        
        public Instruction OpenClS_hadd(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 145, x, y);
        }
        
        public Instruction OpenClU_hadd(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 146, x, y);
        }
        
        public Instruction OpenClS_rhadd(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 147, x, y);
        }
        
        public Instruction OpenClU_rhadd(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 148, x, y);
        }
        
        public Instruction OpenClS_clamp(Instruction resultType, Instruction x, Instruction minval, Instruction maxval)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 149, x, minval, maxval);
        }
        
        public Instruction OpenClU_clamp(Instruction resultType, Instruction x, Instruction minval, Instruction maxval)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 150, x, minval, maxval);
        }
        
        public Instruction OpenClClz(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 151, x);
        }
        
        public Instruction OpenClCtz(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 152, x);
        }
        
        public Instruction OpenClS_mad_hi(Instruction resultType, Instruction a, Instruction b, Instruction c)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 153, a, b, c);
        }
        
        public Instruction OpenClU_mad_sat(Instruction resultType, Instruction x, Instruction y, Instruction z)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 154, x, y, z);
        }
        
        public Instruction OpenClS_mad_sat(Instruction resultType, Instruction x, Instruction y, Instruction z)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 155, x, y, z);
        }
        
        public Instruction OpenClS_max(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 156, x, y);
        }
        
        public Instruction OpenClU_max(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 157, x, y);
        }
        
        public Instruction OpenClS_min(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 158, x, y);
        }
        
        public Instruction OpenClU_min(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 159, x, y);
        }
        
        public Instruction OpenClS_mul_hi(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 160, x, y);
        }
        
        public Instruction OpenClRotate(Instruction resultType, Instruction v, Instruction i)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 161, v, i);
        }
        
        public Instruction OpenClS_sub_sat(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 162, x, y);
        }
        
        public Instruction OpenClU_sub_sat(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 163, x, y);
        }
        
        public Instruction OpenClU_upsample(Instruction resultType, Instruction hi, Instruction lo)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 164, hi, lo);
        }
        
        public Instruction OpenClS_upsample(Instruction resultType, Instruction hi, Instruction lo)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 165, hi, lo);
        }
        
        public Instruction OpenClPopcount(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 166, x);
        }
        
        public Instruction OpenClS_mad24(Instruction resultType, Instruction x, Instruction y, Instruction z)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 167, x, y, z);
        }
        
        public Instruction OpenClU_mad24(Instruction resultType, Instruction x, Instruction y, Instruction z)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 168, x, y, z);
        }
        
        public Instruction OpenClS_mul24(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 169, x, y);
        }
        
        public Instruction OpenClU_mul24(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 170, x, y);
        }
        
        public Instruction OpenClU_abs(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 201, x);
        }
        
        public Instruction OpenClU_abs_diff(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 202, x, y);
        }
        
        public Instruction OpenClU_mul_hi(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 203, x, y);
        }
        
        public Instruction OpenClU_mad_hi(Instruction resultType, Instruction a, Instruction b, Instruction c)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 204, a, b, c);
        }
        
        public Instruction OpenClFclamp(Instruction resultType, Instruction x, Instruction minval, Instruction maxval)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 95, x, minval, maxval);
        }
        
        public Instruction OpenClDegrees(Instruction resultType, Instruction radians)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 96, radians);
        }
        
        public Instruction OpenClFmax_common(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 97, x, y);
        }
        
        public Instruction OpenClFmin_common(Instruction resultType, Instruction x, Instruction y)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 98, x, y);
        }
        
        public Instruction OpenClMix(Instruction resultType, Instruction x, Instruction y, Instruction a)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 99, x, y, a);
        }
        
        public Instruction OpenClRadians(Instruction resultType, Instruction degrees)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 100, degrees);
        }
        
        public Instruction OpenClStep(Instruction resultType, Instruction edge, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 101, edge, x);
        }
        
        public Instruction OpenClSmoothstep(Instruction resultType, Instruction edge0, Instruction edge1, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 102, edge0, edge1, x);
        }
        
        public Instruction OpenClSign(Instruction resultType, Instruction x)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 103, x);
        }
        
        public Instruction OpenClCross(Instruction resultType, Instruction p0, Instruction p1)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 104, p0, p1);
        }
        
        public Instruction OpenClDistance(Instruction resultType, Instruction p0, Instruction p1)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 105, p0, p1);
        }
        
        public Instruction OpenClLength(Instruction resultType, Instruction p)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 106, p);
        }
        
        public Instruction OpenClNormalize(Instruction resultType, Instruction p)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 107, p);
        }
        
        public Instruction OpenClFast_distance(Instruction resultType, Instruction p0, Instruction p1)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 108, p0, p1);
        }
        
        public Instruction OpenClFast_length(Instruction resultType, Instruction p)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 109, p);
        }
        
        public Instruction OpenClFast_normalize(Instruction resultType, Instruction p)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 110, p);
        }
        
        public Instruction OpenClBitselect(Instruction resultType, Instruction a, Instruction b, Instruction c)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 186, a, b, c);
        }
        
        public Instruction OpenClSelect(Instruction resultType, Instruction a, Instruction b, Instruction c)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 187, a, b, c);
        }
        
        public Instruction OpenClVloadn(Instruction resultType, Instruction offset, Instruction p, LiteralInteger n)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 171, offset, p, n);
        }
        
        public Instruction OpenClVstoren(Instruction resultType, Instruction data, Instruction offset, Instruction p)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 172, data, offset, p);
        }
        
        public Instruction OpenClVload_half(Instruction resultType, Instruction offset, Instruction p)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 173, offset, p);
        }
        
        public Instruction OpenClVload_halfn(Instruction resultType, Instruction offset, Instruction p, LiteralInteger n)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 174, offset, p, n);
        }
        
        public Instruction OpenClVstore_half(Instruction resultType, Instruction data, Instruction offset, Instruction p)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 175, data, offset, p);
        }
        
        public Instruction OpenClVstore_half_r(Instruction resultType, Instruction data, Instruction offset, Instruction p, FPRoundingMode mode)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 176, data, offset, p, LiteralInteger.CreateForEnum(mode));
        }
        
        public Instruction OpenClVstore_halfn(Instruction resultType, Instruction data, Instruction offset, Instruction p)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 177, data, offset, p);
        }
        
        public Instruction OpenClVstore_halfn_r(Instruction resultType, Instruction data, Instruction offset, Instruction p, FPRoundingMode mode)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 178, data, offset, p, LiteralInteger.CreateForEnum(mode));
        }
        
        public Instruction OpenClVloada_halfn(Instruction resultType, Instruction offset, Instruction p, LiteralInteger n)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 179, offset, p, n);
        }
        
        public Instruction OpenClVstorea_halfn(Instruction resultType, Instruction data, Instruction offset, Instruction p)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 180, data, offset, p);
        }
        
        public Instruction OpenClVstorea_halfn_r(Instruction resultType, Instruction data, Instruction offset, Instruction p, FPRoundingMode mode)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 181, data, offset, p, LiteralInteger.CreateForEnum(mode));
        }
        
        public Instruction OpenClShuffle(Instruction resultType, Instruction x, Instruction shufflemask)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 182, x, shufflemask);
        }
        
        public Instruction OpenClShuffle2(Instruction resultType, Instruction x, Instruction y, Instruction shufflemask)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 183, x, y, shufflemask);
        }
        
        public Instruction OpenClPrefetch(Instruction resultType, Instruction ptr, Instruction numelements)
        {
            return ExtInst(resultType, AddExtInstImport("OpenCL.std"), 185, ptr, numelements);
        }
        
    }
}
