Edit

IABSD.fr/xenocara/lib/mesa/src/compiler/spirv/OpenCL.std.h

Branch :

  • Show log

    Commit

  • Author : jsg
    Date : 2025-06-05 11:23:11
    Hash : 67d6f117
    Message : Import Mesa 25.0.7

  • lib/mesa/src/compiler/spirv/OpenCL.std.h
  • /*
    ** Copyright (c) 2015-2024 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.
    */
    
    #ifndef OPENCLstd_H
    #define OPENCLstd_H
    
    #ifdef __cplusplus
    namespace OpenCLLIB {
    
    enum Entrypoints {
    
        // Section 2.1: Math extended instructions
        Acos = 0,
        Acosh = 1,
        Acospi = 2,
        Asin = 3,
        Asinh = 4,
        Asinpi = 5,
        Atan = 6,
        Atan2 = 7,
        Atanh = 8,
        Atanpi = 9,
        Atan2pi = 10,
        Cbrt = 11,
        Ceil = 12,
        Copysign = 13,
        Cos = 14,
        Cosh = 15,
        Cospi = 16,
        Erfc = 17,
        Erf = 18,
        Exp = 19,
        Exp2 = 20,
        Exp10 = 21,
        Expm1 = 22,
        Fabs = 23,
        Fdim = 24,
        Floor = 25,
        Fma = 26,
        Fmax = 27,
        Fmin = 28,
        Fmod = 29,
        Fract = 30, 
        Frexp = 31,
        Hypot = 32,
        Ilogb = 33,
        Ldexp = 34,
        Lgamma = 35,
        Lgamma_r = 36,
        Log = 37,
        Log2 = 38,
        Log10 = 39,
        Log1p = 40,
        Logb = 41,
        Mad = 42,
        Maxmag = 43,
        Minmag = 44,
        Modf = 45,
        Nan = 46,
        Nextafter = 47,
        Pow = 48,
        Pown = 49,
        Powr = 50,
        Remainder = 51,
        Remquo = 52,
        Rint = 53,
        Rootn = 54,
        Round = 55,
        Rsqrt = 56,
        Sin = 57,
        Sincos = 58,
        Sinh = 59,
        Sinpi = 60,
        Sqrt = 61,
        Tan = 62,
        Tanh = 63,
        Tanpi = 64,
        Tgamma = 65,
        Trunc = 66,
        Half_cos = 67,
        Half_divide = 68,
        Half_exp = 69,
        Half_exp2 = 70,
        Half_exp10 = 71,
        Half_log = 72,
        Half_log2 = 73,
        Half_log10 = 74,
        Half_powr = 75,
        Half_recip = 76,
        Half_rsqrt = 77,
        Half_sin = 78,
        Half_sqrt = 79,
        Half_tan = 80,
        Native_cos = 81,
        Native_divide = 82,
        Native_exp = 83,
        Native_exp2 = 84,
        Native_exp10 = 85,
        Native_log = 86,
        Native_log2 = 87,
        Native_log10 = 88,
        Native_powr = 89,
        Native_recip = 90,
        Native_rsqrt = 91,
        Native_sin = 92,
        Native_sqrt = 93,
        Native_tan = 94,
        
        // Section 2.2: Integer instructions
        SAbs = 141,
        SAbs_diff = 142,
        SAdd_sat = 143,
        UAdd_sat = 144,
        SHadd = 145,
        UHadd = 146,
        SRhadd = 147,
        URhadd = 148,
        SClamp = 149,
        UClamp = 150, 
        Clz = 151,
        Ctz = 152,    
        SMad_hi = 153,
        UMad_sat = 154,
        SMad_sat = 155,
        SMax = 156,
        UMax = 157,
        SMin = 158,
        UMin = 159,
        SMul_hi = 160,
        Rotate = 161,
        SSub_sat = 162,
        USub_sat = 163,
        U_Upsample = 164,
        S_Upsample = 165,
        Popcount = 166,
        SMad24 = 167,
        UMad24 = 168,
        SMul24 = 169,
        UMul24 = 170,
        UAbs = 201,
        UAbs_diff = 202,
        UMul_hi = 203,
        UMad_hi = 204,
    
        // Section 2.3: Common instructions
        FClamp = 95,
        Degrees = 96,
        FMax_common = 97,
        FMin_common = 98, 
        Mix = 99,
        Radians = 100,
        Step = 101,
        Smoothstep = 102,
        Sign = 103,
    
        // Section 2.4: Geometric instructions
        Cross = 104,
        Distance = 105, 
        Length = 106,
        Normalize = 107,
        Fast_distance = 108,
        Fast_length = 109,
        Fast_normalize = 110,
    
        // Section 2.5: Relational instructions
        Bitselect = 186,
        Select = 187,
    
        // Section 2.6: Vector Data Load and Store instructions
        Vloadn = 171,
        Vstoren = 172,
        Vload_half = 173,
        Vload_halfn = 174,
        Vstore_half = 175,
        Vstore_half_r = 176,
        Vstore_halfn = 177,
        Vstore_halfn_r = 178,
        Vloada_halfn = 179,
        Vstorea_halfn = 180,
        Vstorea_halfn_r = 181,
    
        // Section 2.7: Miscellaneous Vector instructions
        Shuffle = 182,
        Shuffle2 = 183,
    
        // Section 2.8: Misc instructions 
        Printf = 184,
        Prefetch = 185,
    };
    
    } // end namespace OpenCLLIB
    
    #else
    
    enum OpenCLstd_Entrypoints {
    
        // Section 2.1: Math extended instructions
        OpenCLstd_Acos = 0,
        OpenCLstd_Acosh = 1,
        OpenCLstd_Acospi = 2,
        OpenCLstd_Asin = 3,
        OpenCLstd_Asinh = 4,
        OpenCLstd_Asinpi = 5,
        OpenCLstd_Atan = 6,
        OpenCLstd_Atan2 = 7,
        OpenCLstd_Atanh = 8,
        OpenCLstd_Atanpi = 9,
        OpenCLstd_Atan2pi = 10,
        OpenCLstd_Cbrt = 11,
        OpenCLstd_Ceil = 12,
        OpenCLstd_Copysign = 13,
        OpenCLstd_Cos = 14,
        OpenCLstd_Cosh = 15,
        OpenCLstd_Cospi = 16,
        OpenCLstd_Erfc = 17,
        OpenCLstd_Erf = 18,
        OpenCLstd_Exp = 19,
        OpenCLstd_Exp2 = 20,
        OpenCLstd_Exp10 = 21,
        OpenCLstd_Expm1 = 22,
        OpenCLstd_Fabs = 23,
        OpenCLstd_Fdim = 24,
        OpenCLstd_Floor = 25,
        OpenCLstd_Fma = 26,
        OpenCLstd_Fmax = 27,
        OpenCLstd_Fmin = 28,
        OpenCLstd_Fmod = 29,
        OpenCLstd_Fract = 30, 
        OpenCLstd_Frexp = 31,
        OpenCLstd_Hypot = 32,
        OpenCLstd_Ilogb = 33,
        OpenCLstd_Ldexp = 34,
        OpenCLstd_Lgamma = 35,
        OpenCLstd_Lgamma_r = 36,
        OpenCLstd_Log = 37,
        OpenCLstd_Log2 = 38,
        OpenCLstd_Log10 = 39,
        OpenCLstd_Log1p = 40,
        OpenCLstd_Logb = 41,
        OpenCLstd_Mad = 42,
        OpenCLstd_Maxmag = 43,
        OpenCLstd_Minmag = 44,
        OpenCLstd_Modf = 45,
        OpenCLstd_Nan = 46,
        OpenCLstd_Nextafter = 47,
        OpenCLstd_Pow = 48,
        OpenCLstd_Pown = 49,
        OpenCLstd_Powr = 50,
        OpenCLstd_Remainder = 51,
        OpenCLstd_Remquo = 52,
        OpenCLstd_Rint = 53,
        OpenCLstd_Rootn = 54,
        OpenCLstd_Round = 55,
        OpenCLstd_Rsqrt = 56,
        OpenCLstd_Sin = 57,
        OpenCLstd_Sincos = 58,
        OpenCLstd_Sinh = 59,
        OpenCLstd_Sinpi = 60,
        OpenCLstd_Sqrt = 61,
        OpenCLstd_Tan = 62,
        OpenCLstd_Tanh = 63,
        OpenCLstd_Tanpi = 64,
        OpenCLstd_Tgamma = 65,
        OpenCLstd_Trunc = 66,
        OpenCLstd_Half_cos = 67,
        OpenCLstd_Half_divide = 68,
        OpenCLstd_Half_exp = 69,
        OpenCLstd_Half_exp2 = 70,
        OpenCLstd_Half_exp10 = 71,
        OpenCLstd_Half_log = 72,
        OpenCLstd_Half_log2 = 73,
        OpenCLstd_Half_log10 = 74,
        OpenCLstd_Half_powr = 75,
        OpenCLstd_Half_recip = 76,
        OpenCLstd_Half_rsqrt = 77,
        OpenCLstd_Half_sin = 78,
        OpenCLstd_Half_sqrt = 79,
        OpenCLstd_Half_tan = 80,
        OpenCLstd_Native_cos = 81,
        OpenCLstd_Native_divide = 82,
        OpenCLstd_Native_exp = 83,
        OpenCLstd_Native_exp2 = 84,
        OpenCLstd_Native_exp10 = 85,
        OpenCLstd_Native_log = 86,
        OpenCLstd_Native_log2 = 87,
        OpenCLstd_Native_log10 = 88,
        OpenCLstd_Native_powr = 89,
        OpenCLstd_Native_recip = 90,
        OpenCLstd_Native_rsqrt = 91,
        OpenCLstd_Native_sin = 92,
        OpenCLstd_Native_sqrt = 93,
        OpenCLstd_Native_tan = 94,
        
        // Section 2.2: Integer instructions
        OpenCLstd_SAbs = 141,
        OpenCLstd_SAbs_diff = 142,
        OpenCLstd_SAdd_sat = 143,
        OpenCLstd_UAdd_sat = 144,
        OpenCLstd_SHadd = 145,
        OpenCLstd_UHadd = 146,
        OpenCLstd_SRhadd = 147,
        OpenCLstd_URhadd = 148,
        OpenCLstd_SClamp = 149,
        OpenCLstd_UClamp = 150, 
        OpenCLstd_Clz = 151,
        OpenCLstd_Ctz = 152,    
        OpenCLstd_SMad_hi = 153,
        OpenCLstd_UMad_sat = 154,
        OpenCLstd_SMad_sat = 155,
        OpenCLstd_SMax = 156,
        OpenCLstd_UMax = 157,
        OpenCLstd_SMin = 158,
        OpenCLstd_UMin = 159,
        OpenCLstd_SMul_hi = 160,
        OpenCLstd_Rotate = 161,
        OpenCLstd_SSub_sat = 162,
        OpenCLstd_USub_sat = 163,
        OpenCLstd_U_Upsample = 164,
        OpenCLstd_S_Upsample = 165,
        OpenCLstd_Popcount = 166,
        OpenCLstd_SMad24 = 167,
        OpenCLstd_UMad24 = 168,
        OpenCLstd_SMul24 = 169,
        OpenCLstd_UMul24 = 170,
        OpenCLstd_UAbs = 201,
        OpenCLstd_UAbs_diff = 202,
        OpenCLstd_UMul_hi = 203,
        OpenCLstd_UMad_hi = 204,
    
        // Section 2.3: Common instructions
        OpenCLstd_FClamp = 95,
        OpenCLstd_Degrees = 96,
        OpenCLstd_FMax_common = 97,
        OpenCLstd_FMin_common = 98, 
        OpenCLstd_Mix = 99,
        OpenCLstd_Radians = 100,
        OpenCLstd_Step = 101,
        OpenCLstd_Smoothstep = 102,
        OpenCLstd_Sign = 103,
    
        // Section 2.4: Geometric instructions
        OpenCLstd_Cross = 104,
        OpenCLstd_Distance = 105, 
        OpenCLstd_Length = 106,
        OpenCLstd_Normalize = 107,
        OpenCLstd_Fast_distance = 108,
        OpenCLstd_Fast_length = 109,
        OpenCLstd_Fast_normalize = 110,
    
        // Section 2.5: Relational instructions
        OpenCLstd_Bitselect = 186,
        OpenCLstd_Select = 187,
    
        // Section 2.6: Vector Data Load and Store instructions
        OpenCLstd_Vloadn = 171,
        OpenCLstd_Vstoren = 172,
        OpenCLstd_Vload_half = 173,
        OpenCLstd_Vload_halfn = 174,
        OpenCLstd_Vstore_half = 175,
        OpenCLstd_Vstore_half_r = 176,
        OpenCLstd_Vstore_halfn = 177,
        OpenCLstd_Vstore_halfn_r = 178,
        OpenCLstd_Vloada_halfn = 179,
        OpenCLstd_Vstorea_halfn = 180,
        OpenCLstd_Vstorea_halfn_r = 181,
    
        // Section 2.7: Miscellaneous Vector instructions
        OpenCLstd_Shuffle = 182,
        OpenCLstd_Shuffle2 = 183,
    
        // Section 2.8: Misc instructions 
        OpenCLstd_Printf = 184,
        OpenCLstd_Prefetch = 185,
    };
    
    #endif
    
    #endif  // #ifndef OPENCLstd_H