Lines Matching defs:conversion
1 # SPIR-V Dialect to LLVM Dialect conversion manual
3 This manual describes the conversion from [SPIR-V Dialect](Dialects/SPIR-V.md)
6 Dialect. The conversion is an ongoing work, and is expected to grow as more
9 Conversion can be performed by invoking an appropriate conversion pass:
43 A SPIR-V pointer also takes a Storage Class. At the moment, conversion does
69 Currently, there is **no** support of member decorations conversion for structs.
70 For more information see section on [Decorations](#Decorations-conversion).
86 a design would require index recalculation in the conversion of ops that
89 Examples of SPIR-V struct conversion are: ```mlir !spirv.struct<i8, i32> =>
98 conversion. This includes `ImageType` and `MatrixType`.
103 Dialect. It lists already working conversion patterns, as well as those that are
134 may have a specific conversion pattern.
136 #### Direct conversion
167 outline the general design of conversion patterns for this ops, and then
180 To be able to proceed with conversion algorithms described below, all
213 Now, having these two cases in mind, we can proceed with conversion for the ops
293 conversion, apart from regular scalar or vector of numerical type.
358 Currently, conversion supports rewrite patterns for `spirv.CompositeExtract` and
417 `spirv.LogicalNot` has the same conversion pattern as bitwise `spirv.Not`. It is
427 This section describes the conversion patterns for SPIR-V dialect operations
466 ["Volatile"] : f32` Otherwise the conversion fails as other cases
500 The SPIR-V to LLVM conversion does not involve modelling of workgroups. Hence,
501 we say that only current invocation is in conversion's scope. This means that
507 `built_in` that specifies SPIR-V `BuiltIn` decoration have no conversion into
547 Note that simple conversion to `alloca` may not be sufficient if the code has
555 converted directly to LLVM dialect. Their conversion is addressed in this
571 * if `base` has the same bitwidth as `shift`, the conversion is
577 * otherwise, the conversion is considered to be illegal.
590 At the moment `spirv.Constant` conversion supports scalar and vector constants
596 conversion pattern with a special case when the argument is signed or unsigned.
603 The conversion casts constant value attribute to a signless integer or a vector
607 to handle it case-by-case, given that the purpose of the conversion is not to
648 ## Control flow conversion
670 to LLVM via branch ops. The conversion can only be applied to selection or loop
720 ## Decorations conversion
777 ## Function conversion and related ops
779 This section describes the conversion of function-related operations from SPIR-V
785 `llvm.func`. This conversion handles signature conversion, and function control
821 CPU via SPIR-V to LLVM dialect conversion. This is referred to as the "SPIR-V
841 * Convert SPIR-V dialect kernel to LLVM dialect via the new conversion path.