Lines Matching full:dxil

2 Specification of DXIL Operations using TableGen Representation
14 encapsulates, among other information, various DXIL Operations in
16 DXIL Operations are represented in one of the following `two ways
17 <https://github.com/microsoft/DirectXShaderCompiler/blob/main/docs/DXIL.rst#operations>`_:
27 Following is the complete list of properties of DXIL Ops with the corresponding field name
28 as used in ``hctdb.py``. A DXIL Op is represented by a set of associated properties. These
29 are consumed in DXIL backend passes as well as in other usage scenarios such as validation,
30 DXIL reader, etc.
32 A. Properties consumed in DXIL backend passes
40 This string is an integral part of the DXIL Op function name and is constructed in
41 the format ``dx.op.<class-name>.<overload-type>``. Each DXIL Op call target function name
44 7. Required DXIL Version with support for the operation.
61 DXIL backend passes depend on various properties of DXIL Operations. For example, ``DXILOpLowering``
62 pass will need information such as the DXIL operation an LLVM intrinsic is to be lowered to,
64 ``llvm/lib/Target/DirectX/DXIL.td`` - is used to represent DXIL Operations
65 by specifying their properties listed above. ``DXIL.td`` is designed to be the single source
66 of reference of DXIL Operations primarily for the implementation of passes in DXIL backend in
69 but do not pertain to DXIL Operations. It needs to have a rich representation capabilities that
70 TableGen backends (such as ``DXILEmitter``) can rely on. Additionally, the DXIL Op specification
73 This note provides the design of the specification DXIL Ops as TableGen class ``DXILOp``
76 DXIL Operation Specification
79 The DXIL Operation is represented using the TableGen class ``DXILOp``. The DXIL operation
82 1. Each DXIL Operation is represented as a TableGen record. The name of each of the records
88 5. DXIL Operation Class is represented as follows
92 // Abstraction of DXIL Operation class.
98 like ``int32Ty``, DXIL types like ``dx.types.Handle``, and a special
104 8. Valid operation overload types predicated on DXIL version are specified as
107 9. Valid shader stages predicated on DXIL version are specified as a list of
110 10. Various attributes of the DXIL Operation are represented as a ``list`` of
114 Types specific to DXIL
121 Specification of DXIL Operation
124 A DXIL Operation is represented by the following TableGen class that encapsulates the various
129 // Abstraction DXIL Operation
134 // Opcode of DXIL Operation
137 // Class of DXIL Operation.
140 // LLVM Intrinsic DXIL Operation maps to
149 // List of valid overload types predicated by DXIL version
152 // List of valid shader stages predicated by DXIL version
155 // List of valid attributes predicated by DXIL version
162 DXIL version is used to specify various version-dependent operation properties in
177 Concrete representations of valid DXIL versions are defined as follows:
181 // Definition of DXIL Version 1.0 - 1.8
220 DXIL Operation properties such as valid overload types, shader stages and
221 attributes are predicated on DXIL version. These are represented as list of
228 overloads predicated on DXIL version as list of records of the following class
254 stages predicated on DXIL version as list of records of the following class
279 specified DXIL version and later.
281 DXIL version and later.
284 is supported in all DXIL versions and all stages it is required to be specified as
295 attributes predicated on DXIL version as list of records of the following class
316 attribute records are valid for the predicated DXIL version. Only
317 the properties corresponding to latest minimal DXIL version are applicable.
319 that remain valid in a later DXIL version need to be specified in full.
329 It specifies that the overload types ``halfTy`` and ``floatTy`` are valid for DXIL
331 in DXIL version 1.2 and later.
337 DXIL Operation Specification Examples
340 Following examples illustrate the specification of some of the DXIL Ops.
342 ``Sin`` operation - an operation valid in all DXIL versions and all stages
343 and has valid overload types predicated on DXIL version.
358 overload types, and valid stages and attributes predicated by DXIL Version.
372 predicated by DXIL Version and valid in all DXIL versions and stages.
391 by DXIL Version.
408 and stages predicated by DXIL Version.
424 predicated by DXIL version.
446 DXIL Ops in ``DXIL.td`` intended to serve as a single source of reference for TableGen
447 backends (such as ``DXILEmitter``) that generate C++ representations used in DXIL