Name Strings

SPV_INTEL_fpga_reg

Contact

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

Contributors

  • Joe Garvey, Intel

  • Michael Kinsner, Intel

Notice

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

Status

Final draft

Version

Last Modified Date

2019-07-12

Revision

1

Dependencies

This extension is written against the SPIR-V Specification, Version 1.4 Revision 1.

This extension requires SPIR-V 1.0.

Overview

This extension adds an instruction which explicitly requests that a pipelining register be introduced at a particular point in a program (on a specific assignment). The instruction is useful for FPGA targets, to separate regions of the program that are expected to end up in geographically distant regions of a device. This instruction is purely an optimization hint, and is functionally equivalent to an assignment.

Extension Name

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

OpExtension "SPV_INTEL_fpga_reg"

New capabilities

This extension introduces a new capability:

FPGARegINTEL

New Instructions

Instructions added under the FPGARegINTEL capability:

OpFPGARegINTEL

Token Number Assignments

FPGARegINTEL

5948

OpFPGARegINTEL

5949

Modifications to the SPIR-V Specification, Version 1.4

Capability

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

Capability Implicitly Declares

5948

FPGARegINTEL

Instructions

In section 3.32.1, Miscellaneous Instructions, add a new instruction, OpFPGARegINTEL, as follows:

OpFPGARegINTEL

Used to indicate to FPGA backends that pipelining registers should be inserted between the definition of Input and uses of Result. The value passed in as Input is returned in Result. This instruction is strictly an optimization hint and thus it would be functionally correct for a consumer to treat it as an assignment.

Result Type can be any type and is the type of both Result and Input.

Capability: FPGARegINTEL

4

5949

<id>
Result Type

Result <id>

Input <id>

Validation Rules

None.

Issues

None.

Revision History

Rev Date Author Changes

1

2019-07-12

Joe Garvey

Initial public release