Name Strings

SPV_INTEL_loop_fuse

Contact

To report problems with this extension, please open a new issue at:

Contributors

  • Jessica Davies, Intel

Notice

Copyright (c) 2020 Intel Corporation. All rights reserved.

Status

Final draft

Version

Last Modified Date

2020-11-24

Revision

1

Dependencies

This extension is written against the SPIR-V Specification, Version 1.5 Revision 3.

This extension requires SPIR-V 1.0.

Overview

This extension adds a function decoration to request that loops meeting defined conditions be fused with each other.

Extension Name

To use this extension within a SPIR-V module, the following OpExtension must be present in the module:

OpExtension "SPV_INTEL_loop_fuse"

New capabilities

This extension introduces a new capability:

LoopFuseINTEL

New Decorations

This extension adds the following decoration under the LoopFuseINTEL capability:

FuseLoopsInFunctionINTEL

Token Number Assignments

LoopFuseINTEL

5906

FuseLoopsInFunctionINTEL

5907

Modifications to the SPIR-V Specification, Version 1.5

Decoration

Modify Section 3.20, Decoration, adding the following row to the Decoration table:

Decoration Extra Operands Enabling Capabilities

5907

FuseLoopsInFunctionINTEL
Only valid on OpFunction. Request, to the extent possible, that loops in the function be fused if they are contained in strictly fewer than Depth other loops in the function. Depth is a 32-bit unsigned integer type scalar. Independent is a 32-bit unsigned integer type scalar. If Independent is non-zero, it guarantees that fusing loops in the function that are contained in strictly fewer than Depth other loops within the function does not change the order of any dependent memory accesses.

Literal
Depth

Literal
Independent

LoopFuseINTEL

Capability

Modify Section 3.31, Capability, adding a row to the Capability table:

Capability Implicitly Declares

5906

LoopFuseINTEL

Validation Rules

None.

Issues

None.

Revision History

Rev Date Author Changes

1

2020-11-24

Jessica Davies

Initial public release