Skip to content

Commit b96aa2e

Browse files
[SYCL] Added arbitrary integer SPIR-V spec as an extension (#1957)
Create a new extension to enable SPIR-V to use arbitrary precision integers, with a default maximum bitwidth (with this extension) up to 32 bits, but implementers are allowed to go up to any arbitrary bitwidth.
1 parent 50f05a7 commit b96aa2e

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed
Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
= SPV_INTEL_arbitrary_precision_integers
2+
3+
== Name Strings
4+
5+
SPV_INTEL_arbitrary_precision_integers
6+
7+
== Contact
8+
9+
To report problems with this extension, please open a new issue at:
10+
11+
https://github.com/KhronosGroup/SPIRV-Headers
12+
13+
== Contributors
14+
15+
* Ajaykumar Kannan, Intel
16+
* Joe Garvey, Intel
17+
18+
== Notice
19+
20+
Copyright (c) 2020 Intel Corporation
21+
22+
== Status
23+
24+
Final draft
25+
26+
=== Version
27+
28+
[width="40%",cols="25,25"]
29+
|========================================
30+
| Last Modified Date | {docdate}
31+
| Revision | 1
32+
|========================================
33+
34+
== Dependencies
35+
36+
This extension is written against the SPIR-V Specification Version 1.5, Revision 2.
37+
38+
== Overview
39+
40+
This extension relaxes the restriction that `OpTypeInt` must have a width of 32 bits.
41+
Ints of arbitrary bit widths can be beneficial on targets that can exploit narrower widths such as FPGAs.
42+
43+
== Extension Name
44+
45+
To use this extension within a SPIR-V module, the following *OpExtension* must be present in the module:
46+
47+
----
48+
OpExtension "SPV_INTEL_arbitrary_precision_integers"
49+
----
50+
51+
== New Capabilities
52+
53+
This extension introduces a new capability:
54+
55+
----
56+
ArbitraryPrecisionIntegersINTEL
57+
----
58+
59+
== Token Number Assignments
60+
[width="40%"]
61+
[cols="70%,30%"]
62+
[grid="rows"]
63+
|====
64+
|`ArbitraryPrecisionIntegersINTEL` | 5844
65+
|====
66+
67+
== Modifications to the SPIR-V Specification Version 1.5
68+
69+
=== Capability
70+
Modify Section 3.31, *Capability*, adding a row to the Capability table:
71+
[options="header"]
72+
|====
73+
2+^| Capability ^| Implicitly Declares
74+
| 5844 | *ArbitraryPrecisionIntegersINTEL* +
75+
76+
Allows the use of the *OpTypeInt* to declare integers of any arbitrary width.
77+
The minimum requirement is that all bitwidths up to 32-bits must be supported, but implementations can extend the support beyond 32-bits.
78+
| Int8, Int16
79+
|====
80+
81+
=== Validation Rules
82+
83+
None.
84+
85+
== Issues
86+
87+
None.
88+
89+
== Revision History
90+
91+
[cols="^,<,<,<",options="header",]
92+
|================================================
93+
|Rev |Date |Author |Changes
94+
|1 |2020-03-27 |Ajaykumar Kannan |*Initial public release*
95+
|================================================

0 commit comments

Comments
 (0)