SPIRV-Tools/source/opencl_std_ext_inst.inc
David Neto d02f68ae79 Update to 1.0 Rev 2 work-in-progress headers
Updated readme.

Note: The header advertises itself as Rev 1, but contains
many (all?) the updates intended for Rev 2.  We might need
to update one more time before SPIR-V 1.0 Rev2 is published.

Regenerated syntax tables for 1.0.

Changed names:
  InputTriangles -> Triangles
  InputQuads -> Quads
  InputIsolines -> Isolines
  WorkgroupLocal -> Workgroup
  WorkgroupGlobal -> CrossWorkgroup
  PrivateGlobal -> Private
  (Dim) InputTarget -> SubpassData
  WorkgroupLocalMemoryMask -> WorkgroupMemoryMask
  WorkgroupGlobalMemoryMask -> CrossWorkgroupMemoryMask
  AsyncGroupCopy -> GroupAsyncCopy
  WaitGroupEvents -> GroupWaitEvents

Remove:
  IndependentForwardProgress capability
  Smooth decoration
  FragColor BuiltIn
  WorkgroupLinearId in favour of LocalInvocationId
  ImageSRGBWrite capability
  Special OpenCL image instructions

Add:
  image channel data type UnormInt101010_2
  AcquireReleaseMask

InputTargetIndex updates:
  InputTargetIndex -> InputAttachmentIndex
  InputAttachmentIndex depends on InputAttachment capability,
  and it takes a literal number argument.

Capability StorageImageExtendedFormats updates:
  Enum value changed from 26 to 49. (Changes position in tables).
  Replaces AdvancedImageFormat capability.

OpenCL source language -> OpenCL_C, OpenCL_CPP
2015-11-12 09:43:12 -05:00

170 lines
7.6 KiB
SQL

// OpenCL extended instructions table, one instruction per line.
// All instructions have a result type and a result ID.
// Fields in this file are:
// - name
// - extended instruction index
// - EmptyList, or List of operand classes.
ExtInst(acos, 0, List(OperandId))
ExtInst(acosh, 1, List(OperandId))
ExtInst(acospi, 2, List(OperandId))
ExtInst(asin, 3, List(OperandId))
ExtInst(asinh, 4, List(OperandId))
ExtInst(asinpi, 5, List(OperandId))
ExtInst(atan, 6, List(OperandId))
ExtInst(atan2, 7, List(OperandId, OperandId))
ExtInst(atanh, 8, List(OperandId))
ExtInst(atanpi, 9, List(OperandId))
ExtInst(atan2pi, 10, List(OperandId, OperandId))
ExtInst(cbrt, 11, List(OperandId))
ExtInst(ceil, 12, List(OperandId))
ExtInst(copysign, 13, List(OperandId, OperandId))
ExtInst(cos, 14, List(OperandId))
ExtInst(cosh, 15, List(OperandId))
ExtInst(cospi, 16, List(OperandId))
ExtInst(erfc, 17, List(OperandId))
ExtInst(erf, 18, List(OperandId))
ExtInst(exp, 19, List(OperandId))
ExtInst(exp2, 20, List(OperandId))
ExtInst(exp10, 21, List(OperandId))
ExtInst(expm1, 22, List(OperandId))
ExtInst(fabs, 23, List(OperandId))
ExtInst(fdim, 24, List(OperandId, OperandId))
ExtInst(floor, 25, List(OperandId))
ExtInst(fma, 26, List(OperandId, OperandId, OperandId))
ExtInst(fmax, 27, List(OperandId, OperandId))
ExtInst(fmin, 28, List(OperandId, OperandId))
ExtInst(fmod, 29, List(OperandId, OperandId))
ExtInst(fract, 30, List(OperandId, OperandId))
ExtInst(frexp, 31, List(OperandId, OperandId))
ExtInst(hypot, 32, List(OperandId, OperandId))
ExtInst(ilogb, 33, List(OperandId))
ExtInst(ldexp, 34, List(OperandId, OperandId))
ExtInst(lgamma, 35, List(OperandId))
ExtInst(lgamma_r, 36, List(OperandId, OperandId))
ExtInst(log, 37, List(OperandId))
ExtInst(log2, 38, List(OperandId))
ExtInst(log10, 39, List(OperandId))
ExtInst(log1p, 40, List(OperandId))
ExtInst(logb, 41, List(OperandId))
ExtInst(mad, 42, List(OperandId, OperandId, OperandId))
ExtInst(maxmag, 43, List(OperandId, OperandId))
ExtInst(minmag, 44, List(OperandId, OperandId))
ExtInst(modf, 45, List(OperandId, OperandId))
ExtInst(nan, 46, List(OperandId))
ExtInst(nextafter, 47, List(OperandId, OperandId))
ExtInst(pow, 48, List(OperandId, OperandId, OperandId))
ExtInst(pown, 49, List(OperandId))
ExtInst(powr, 50, List(OperandId, OperandId))
ExtInst(remainder, 51, List(OperandId, OperandId))
ExtInst(remquo, 52, List(OperandId, OperandId, OperandId))
ExtInst(rint, 53, List(OperandId))
ExtInst(rootn, 54, List(OperandId, OperandId))
ExtInst(round, 55, List(OperandId))
ExtInst(rsqrt, 56, List(OperandId))
ExtInst(sin, 57, List(OperandId))
ExtInst(sincos, 58, List(OperandId, OperandId))
ExtInst(sinh, 59, List(OperandId))
ExtInst(sinpi, 60, List(OperandId))
ExtInst(sqrt, 61, List(OperandId))
ExtInst(tan, 62, List(OperandId))
ExtInst(tanh, 63, List(OperandId))
ExtInst(tanpi, 64, List(OperandId))
ExtInst(tgamma, 65, List(OperandId))
ExtInst(trunc, 66, List(OperandId))
ExtInst(half_cos, 67, List(OperandId))
ExtInst(half_divide, 68, List(OperandId, OperandId))
ExtInst(half_exp, 69, List(OperandId))
ExtInst(half_exp2, 70, List(OperandId))
ExtInst(half_exp10, 71, List(OperandId))
ExtInst(half_log, 72, List(OperandId))
ExtInst(half_log2, 73, List(OperandId))
ExtInst(half_log10, 74, List(OperandId))
ExtInst(half_powr, 75, List(OperandId, OperandId))
ExtInst(half_recip, 76, List(OperandId))
ExtInst(half_rsqrt, 77, List(OperandId))
ExtInst(half_sin, 78, List(OperandId))
ExtInst(half_sqrt, 79, List(OperandId))
ExtInst(half_tan, 80, List(OperandId))
ExtInst(native_cos, 81, List(OperandId))
ExtInst(native_divide, 82, List(OperandId, OperandId))
ExtInst(native_exp, 83, List(OperandId))
ExtInst(native_exp2, 84, List(OperandId))
ExtInst(native_exp10, 85, List(OperandId))
ExtInst(native_log, 86, List(OperandId))
ExtInst(native_log2, 87, List(OperandId))
ExtInst(native_log10, 88, List(OperandId))
ExtInst(native_powr, 89, List(OperandId, OperandId))
ExtInst(native_recip, 90, List(OperandId))
ExtInst(native_rsqrt, 91, List(OperandId))
ExtInst(native_sin, 92, List(OperandId))
ExtInst(native_sqrt, 93, List(OperandId))
ExtInst(native_tan, 94, List(OperandId))
ExtInst(fclamp, 95, List(OperandId, OperandId, OperandId))
ExtInst(degrees, 96, List(OperandId))
ExtInst(fmax_common, 97, List(OperandId, OperandId))
ExtInst(fmin_common, 98, List(OperandId, OperandId))
ExtInst(mix, 99, List(OperandId, OperandId, OperandId))
ExtInst(radians, 100, List(OperandId))
ExtInst(step, 101, List(OperandId, OperandId))
ExtInst(smoothstep, 102, List(OperandId, OperandId, OperandId))
ExtInst(sign, 103, List(OperandId))
ExtInst(cross, 104, List(OperandId, OperandId))
ExtInst(distance, 105, List(OperandId, OperandId))
ExtInst(length, 106, List(OperandId))
ExtInst(normalize, 107, List(OperandId))
ExtInst(fast_distance, 108, List(OperandId, OperandId))
ExtInst(fast_length, 109, List(OperandId))
ExtInst(fast_normalize, 110, List(OperandId))
ExtInst(s_abs, 141, List(OperandId))
ExtInst(s_abs_diff, 142, List(OperandId, OperandId))
ExtInst(s_add_sat, 143, List(OperandId, OperandId))
ExtInst(u_add_sat, 144, List(OperandId, OperandId))
ExtInst(s_hadd, 145, List(OperandId, OperandId))
ExtInst(u_hadd, 146, List(OperandId, OperandId))
ExtInst(s_rhadd, 147, List(OperandId, OperandId))
ExtInst(u_rhadd, 148, List(OperandId, OperandId))
ExtInst(s_clamp, 149, List(OperandId, OperandId, OperandId))
ExtInst(u_clamp, 150, List(OperandId, OperandId, OperandId))
ExtInst(clz, 151, List(OperandId))
ExtInst(ctz, 152, List(OperandId))
ExtInst(s_mad_hi, 153, List(OperandId, OperandId, OperandId))
ExtInst(u_mad_sat, 154, List(OperandId, OperandId, OperandId))
ExtInst(s_mad_sat, 155, List(OperandId, OperandId, OperandId))
ExtInst(s_max, 156, List(OperandId, OperandId))
ExtInst(u_max, 157, List(OperandId, OperandId))
ExtInst(s_min, 158, List(OperandId, OperandId))
ExtInst(u_min, 159, List(OperandId, OperandId))
ExtInst(s_mul_hi, 160, List(OperandId, OperandId))
ExtInst(rotate, 161, List(OperandId, OperandId))
ExtInst(s_sub_sat, 162, List(OperandId, OperandId))
ExtInst(u_sub_sat, 163, List(OperandId, OperandId))
ExtInst(u_upsample, 164, List(OperandId, OperandId))
ExtInst(s_upsample, 165, List(OperandId, OperandId))
ExtInst(popcount, 166, List(OperandId))
ExtInst(s_mad24, 167, List(OperandId, OperandId, OperandId))
ExtInst(u_mad24, 168, List(OperandId, OperandId, OperandId))
ExtInst(s_mul24, 169, List(OperandId, OperandId))
ExtInst(u_mul24, 170, List(OperandId, OperandId))
ExtInst(vloadn, 171, List(OperandId, OperandId, OperandLiteralNumber))
ExtInst(vstoren, 172, List(OperandId, OperandId, OperandId))
ExtInst(vload_half, 173, List(OperandId, OperandId))
ExtInst(vload_halfn, 174, List(OperandId, OperandId, OperandLiteralNumber))
ExtInst(vstore_half, 175, List(OperandId, OperandId, OperandId))
ExtInst(vstore_half_r, 176, List(OperandId, OperandId, OperandId, OperandFPRoundingMode))
ExtInst(vstore_halfn, 177, List(OperandId, OperandId, OperandId))
ExtInst(vstore_halfn_r, 178, List(OperandId, OperandId, OperandId, OperandFPRoundingMode))
ExtInst(vloada_halfn, 179, List(OperandId, OperandId, OperandLiteralNumber))
ExtInst(vstorea_halfn, 180, List(OperandId, OperandId, OperandId))
ExtInst(vstorea_halfn_r, 181, List(OperandId, OperandId, OperandId, OperandFPRoundingMode))
ExtInst(shuffle, 182, List(OperandId, OperandId))
ExtInst(shuffle2, 183, List(OperandId, OperandId, OperandId))
ExtInst(printf, 184, List(OperandId, OperandVariableIds))
ExtInst(prefetch, 185, List(OperandId, OperandId))
ExtInst(bitselect, 186, List(OperandId, OperandId, OperandId))
ExtInst(select, 187, List(OperandId, OperandId, OperandId))
ExtInst(u_abs, 201, List(OperandId))
ExtInst(u_abs_diff, 202, List(OperandId, OperandId))
ExtInst(u_mul_hi, 203, List(OperandId, OperandId))
ExtInst(u_mad_hi, 204, List(OperandId, OperandId, OperandId))