OpenCL.std.h 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  1. /*
  2. ** SPDX-FileCopyrightText: 2015-2017 The Khronos Group Inc.
  3. ** SPDX-License-Identifier: MIT
  4. **
  5. ** MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
  6. ** KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
  7. ** SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
  8. ** https://www.khronos.org/registry/
  9. */
  10. namespace OpenCLLIB {
  11. enum Entrypoints {
  12. // Section 2.1: Math extended instructions
  13. Acos = 0,
  14. Acosh = 1,
  15. Acospi = 2,
  16. Asin = 3,
  17. Asinh = 4,
  18. Asinpi = 5,
  19. Atan = 6,
  20. Atan2 = 7,
  21. Atanh = 8,
  22. Atanpi = 9,
  23. Atan2pi = 10,
  24. Cbrt = 11,
  25. Ceil = 12,
  26. Copysign = 13,
  27. Cos = 14,
  28. Cosh = 15,
  29. Cospi = 16,
  30. Erfc = 17,
  31. Erf = 18,
  32. Exp = 19,
  33. Exp2 = 20,
  34. Exp10 = 21,
  35. Expm1 = 22,
  36. Fabs = 23,
  37. Fdim = 24,
  38. Floor = 25,
  39. Fma = 26,
  40. Fmax = 27,
  41. Fmin = 28,
  42. Fmod = 29,
  43. Fract = 30,
  44. Frexp = 31,
  45. Hypot = 32,
  46. Ilogb = 33,
  47. Ldexp = 34,
  48. Lgamma = 35,
  49. Lgamma_r = 36,
  50. Log = 37,
  51. Log2 = 38,
  52. Log10 = 39,
  53. Log1p = 40,
  54. Logb = 41,
  55. Mad = 42,
  56. Maxmag = 43,
  57. Minmag = 44,
  58. Modf = 45,
  59. Nan = 46,
  60. Nextafter = 47,
  61. Pow = 48,
  62. Pown = 49,
  63. Powr = 50,
  64. Remainder = 51,
  65. Remquo = 52,
  66. Rint = 53,
  67. Rootn = 54,
  68. Round = 55,
  69. Rsqrt = 56,
  70. Sin = 57,
  71. Sincos = 58,
  72. Sinh = 59,
  73. Sinpi = 60,
  74. Sqrt = 61,
  75. Tan = 62,
  76. Tanh = 63,
  77. Tanpi = 64,
  78. Tgamma = 65,
  79. Trunc = 66,
  80. Half_cos = 67,
  81. Half_divide = 68,
  82. Half_exp = 69,
  83. Half_exp2 = 70,
  84. Half_exp10 = 71,
  85. Half_log = 72,
  86. Half_log2 = 73,
  87. Half_log10 = 74,
  88. Half_powr = 75,
  89. Half_recip = 76,
  90. Half_rsqrt = 77,
  91. Half_sin = 78,
  92. Half_sqrt = 79,
  93. Half_tan = 80,
  94. Native_cos = 81,
  95. Native_divide = 82,
  96. Native_exp = 83,
  97. Native_exp2 = 84,
  98. Native_exp10 = 85,
  99. Native_log = 86,
  100. Native_log2 = 87,
  101. Native_log10 = 88,
  102. Native_powr = 89,
  103. Native_recip = 90,
  104. Native_rsqrt = 91,
  105. Native_sin = 92,
  106. Native_sqrt = 93,
  107. Native_tan = 94,
  108. // Section 2.2: Integer instructions
  109. SAbs = 141,
  110. SAbs_diff = 142,
  111. SAdd_sat = 143,
  112. UAdd_sat = 144,
  113. SHadd = 145,
  114. UHadd = 146,
  115. SRhadd = 147,
  116. URhadd = 148,
  117. SClamp = 149,
  118. UClamp = 150,
  119. Clz = 151,
  120. Ctz = 152,
  121. SMad_hi = 153,
  122. UMad_sat = 154,
  123. SMad_sat = 155,
  124. SMax = 156,
  125. UMax = 157,
  126. SMin = 158,
  127. UMin = 159,
  128. SMul_hi = 160,
  129. Rotate = 161,
  130. SSub_sat = 162,
  131. USub_sat = 163,
  132. U_Upsample = 164,
  133. S_Upsample = 165,
  134. Popcount = 166,
  135. SMad24 = 167,
  136. UMad24 = 168,
  137. SMul24 = 169,
  138. UMul24 = 170,
  139. UAbs = 201,
  140. UAbs_diff = 202,
  141. UMul_hi = 203,
  142. UMad_hi = 204,
  143. // Section 2.3: Common instructions
  144. FClamp = 95,
  145. Degrees = 96,
  146. FMax_common = 97,
  147. FMin_common = 98,
  148. Mix = 99,
  149. Radians = 100,
  150. Step = 101,
  151. Smoothstep = 102,
  152. Sign = 103,
  153. // Section 2.4: Geometric instructions
  154. Cross = 104,
  155. Distance = 105,
  156. Length = 106,
  157. Normalize = 107,
  158. Fast_distance = 108,
  159. Fast_length = 109,
  160. Fast_normalize = 110,
  161. // Section 2.5: Relational instructions
  162. Bitselect = 186,
  163. Select = 187,
  164. // Section 2.6: Vector Data Load and Store instructions
  165. Vloadn = 171,
  166. Vstoren = 172,
  167. Vload_half = 173,
  168. Vload_halfn = 174,
  169. Vstore_half = 175,
  170. Vstore_half_r = 176,
  171. Vstore_halfn = 177,
  172. Vstore_halfn_r = 178,
  173. Vloada_halfn = 179,
  174. Vstorea_halfn = 180,
  175. Vstorea_halfn_r = 181,
  176. // Section 2.7: Miscellaneous Vector instructions
  177. Shuffle = 182,
  178. Shuffle2 = 183,
  179. // Section 2.8: Misc instructions
  180. Printf = 184,
  181. Prefetch = 185,
  182. };
  183. } // end namespace OpenCLLIB