Name Strings

SPV_INTEL_arbitrary_precision_floating_point

Contact

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

Contributors

  • Ajaykumar Kannan, Intel

  • Shuo Niu, Intel

  • Daniel Zhang, Intel

Notice

Copyright (c) 2023 Intel Corporation

Status

Supported

Version

Last Modified Date

2023-03-29

Revision

1

Dependencies

This extension is written against the SPIR-V Specification Version 1.6, Revision 2.

While this extension does not require SPV_INTEL_arbitrary_precision_integers, the new operators it adds are significantly more useful when that extension is supported as the combination of the two extensions allows for more freedom in the width of arbitrary precision floating point data types that can be represented.

Overview

This extension adds instructions for performing arbitrary precision floating point computations. Each arbitrary-precision floating point value is represented as an OpTypeInt as described below. This datatype and its corresponding operations can be useful on targets that can take advantage of narrower representation such as FPGAs.

The datatype can be characterized by two parameters:

  • E: the number of exponent bits

  • M: the number of mantissa bits

The total width of the OpTypeInt container is E+M+1 where the extra bit is used to represent the sign. Note that the signedness capabilities of OpTypeInt are not used for any of the operations. The data layout is shown below:

[ S (sign bit) ][ E (Exponent) ][ M (Mantissa) ] ^--MSB LSB--^

The width of the data (E+M+1) is encoded with the width of the OpTypeInt. The other parameters regarding the type (namely E and M) are encoded in the arguments of the operations.

Operation Controls

Each of the operations will also provide some control over the Rounding Mode and the Subnormal support.

Extension Name

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

OpExtension "SPV_INTEL_arbitrary_precision_floating_point"

New Capabilities

This extension introduces a new capability:

ArbitraryPrecisionFloatingPointINTEL

New Instructions

Instructions added under the ArbitraryPrecisionFloatingPointINTEL capability:

OpArbitraryFloatAddINTEL
OpArbitraryFloatSubINTEL
OpArbitraryFloatMulINTEL
OpArbitraryFloatDivINTEL
OpArbitraryFloatGTINTEL
OpArbitraryFloatGEINTEL
OpArbitraryFloatLTINTEL
OpArbitraryFloatLEINTEL
OpArbitraryFloatEQINTEL
OpArbitraryFloatRecipINTEL
OpArbitraryFloatRSqrtINTEL
OpArbitraryFloatCbrtINTEL
OpArbitraryFloatHypotINTEL
OpArbitraryFloatSqrtINTEL
OpArbitraryFloatLogINTEL
OpArbitraryFloatLog2INTEL
OpArbitraryFloatLog10INTEL
OpArbitraryFloatLog1pINTEL
OpArbitraryFloatExpINTEL
OpArbitraryFloatExp2INTEL
OpArbitraryFloatExp10INTEL
OpArbitraryFloatExpm1INTEL
OpArbitraryFloatSinINTEL
OpArbitraryFloatCosINTEL
OpArbitraryFloatSinCosINTEL
OpArbitraryFloatSinPiINTEL
OpArbitraryFloatCosPiINTEL
OpArbitraryFloatSinCosPiINTEL
OpArbitraryFloatASinINTEL
OpArbitraryFloatASinPiINTEL
OpArbitraryFloatACosINTEL
OpArbitraryFloatACosPiINTEL
OpArbitraryFloatATanINTEL
OpArbitraryFloatATanPiINTEL
OpArbitraryFloatATan2INTEL
OpArbitraryFloatPowINTEL
OpArbitraryFloatPowRINTEL
OpArbitraryFloatPowNINTEL
OpArbitraryFloatConvertINTEL
OpArbitraryFloatConvertFromUIntINTEL
OpArbitraryFloatConvertFromSIntINTEL
OpArbitraryFloatConvertToUIntINTEL
OpArbitraryFloatConvertToSIntINTEL

Token Number Assignments

ArbitraryPrecisionFloatingPointINTEL

5845

OpArbitraryFloatAddINTEL

5846

OpArbitraryFloatSubINTEL

5847

OpArbitraryFloatMulINTEL

5848

OpArbitraryFloatDivINTEL

5849

OpArbitraryFloatGTINTEL

5850

OpArbitraryFloatGEINTEL

5851

OpArbitraryFloatLTINTEL

5852

OpArbitraryFloatLEINTEL

5853

OpArbitraryFloatEQINTEL

5854

OpArbitraryFloatRecipINTEL

5855

OpArbitraryFloatRSqrtINTEL

5856

OpArbitraryFloatCbrtINTEL

5857

OpArbitraryFloatHypotINTEL

5858

OpArbitraryFloatSqrtINTEL

5859

OpArbitraryFloatLogINTEL

5860

OpArbitraryFloatLog2INTEL

5861

OpArbitraryFloatLog10INTEL

5862

OpArbitraryFloatLog1pINTEL

5863

OpArbitraryFloatExpINTEL

5864

OpArbitraryFloatExp2INTEL

5865

OpArbitraryFloatExp10INTEL

5866

OpArbitraryFloatExpm1INTEL

5867

OpArbitraryFloatSinINTEL

5868

OpArbitraryFloatCosINTEL

5869

OpArbitraryFloatSinCosINTEL

5870

OpArbitraryFloatSinPiINTEL

5871

OpArbitraryFloatCosPiINTEL

5872

OpArbitraryFloatSinCosPiINTEL

5840

OpArbitraryFloatASinINTEL

5873

OpArbitraryFloatASinPiINTEL

5874

OpArbitraryFloatACosINTEL

5875

OpArbitraryFloatACosPiINTEL

5876

OpArbitraryFloatATanINTEL

5877

OpArbitraryFloatATanPiINTEL

5878

OpArbitraryFloatATan2INTEL

5879

OpArbitraryFloatPowINTEL

5880

OpArbitraryFloatPowRINTEL

5881

OpArbitraryFloatPowNINTEL

5882

OpArbitraryFloatConvertINTEL

5841

OpArbitraryFloatConvertFromUIntINTEL

5842

OpArbitraryFloatConvertFromSIntINTEL

5838

OpArbitraryFloatConvertToUIntINTEL

5843

OpArbitraryFloatConvertToSIntINTEL

5839

Modifications to the SPIR-V Specification Version 1.6

After Section 3.16, add a new section "3.16a Subnormal Support" as follows:

Subnormal Support

Control whether subnormal support is enabled or not.

Value Subnormal Support

0

Flush subnormal numbers to zero on inputs and outputs

1

Enable support for operating on subnormal numbers

After Section 3.16, add a new section "3.16d Rounding Accuracy" as follows:

Rounding Accuracy

Controls whether rounding operations can be relaxed to trade correctness for improved resource utilization.

Value Mode Behavior

0

CORRECT_INTEL

Conform to the rounding mode specified by the instruction’s rounding mode operand.

1

FAITHFUL_INTEL

Allow some tolerance for error (within 1ULP of the infinitely precise result) for rounding.
The returned result is one of the two floating point values closest to the mathematical result.

This mode is useful for devices that can trade CORRECT_INTEL rounding for improved resource utilization.

Capability

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

Capability Implicitly Declares

5845

ArbitraryPrecisionFloatingPointINTEL

Allows the use of various operations for arbitrary precision floating-point math

Instructions

In Section 3.32.13, Arithmetic Instructions, add the following instructions:

OpArbitraryFloatAddINTEL

Two OpTypeInt values representing two arbitrary precision floating point numbers are passed in as A and B and the result of A+B is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult, Ma and Mb are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result, A and B respectively. Note that the exponent values (Ea, Eb, Eresult) are inferred from the width of the OpTypeInt values used to represent their corresponding arguments (A, B, Result)

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

11

5846

<id> Result Type

Result <id>

A <id>

Literal Ma

B <id>

Literal Mb

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatSubINTEL

Two OpTypeInt values representing two arbitrary precision floating point numbers are passed in as A and B and the result of A-B is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult, Ma and Mb are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result, A and B respectively. Note that the exponent values (Ea, Eb, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

11

5847

<id> Result Type

Result <id>

A <id>

Literal Ma

B <id>

Literal Mb

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatMulINTEL

Two OpTypeInt values representing two arbitrary precision floating point numbers are passed in as A and B and the result of A*B is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult, Ma and Mb are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result, A and B respectively. Note that the exponent values (Ea, Eb, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

11

5848

<id> Result Type

Result <id>

A <id>

Literal Ma

B <id>

Literal Mb

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatDivINTEL

Two OpTypeInt values representing two arbitrary precision floating point numbers are passed in as A and B and the result of A/B is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult, Ma and Mb are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result, A and B respectively. Note that the exponent values (Ea, Eb, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

11

5849

<id> Result Type

Result <id>

A <id>

Literal Ma

B <id>

Literal Mb

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatGTINTEL

Two OpTypeInt values representing two arbitrary precision floating point numbers are passed in as A and B. The two numbers are compared and a value of true is returned in Result if A > B. Otherwise, a value of false is returned.

Result Type must be a Boolean type.

Result is of type OpTypeBool.

Ma and Mb are 32-bit unsigned integers that define the mantissa widths of the floating point types within A and B respectively. Note that the exponent values (Ea, Eb) are inferred from the width of the OpTypeInt.

Capability: ArbitraryPrecisionFloatingPointINTEL

7

5850

<id> Result Type

Result <id>

A <id>

Literal Ma

B <id>

Literal Mb

OpArbitraryFloatGEINTEL

Two OpTypeInt values representing two arbitrary precision floating point numbers are passed in as A and B. The two numbers are compared and a value of true is returned in Result if A >= B. Otherwise, a value of false is returned.

Result Type must be a Boolean type.

Result is of type OpTypeBool.

Ma and Mb are 32-bit unsigned integers that define the mantissa widths of the floating point types within A and B respectively. Note that the exponent values (Ea, Eb) are inferred from the width of the OpTypeInt.

Capability: ArbitraryPrecisionFloatingPointINTEL

7

5851

<id> Result Type

Result <id>

A <id>

Literal Ma

B <id>

Literal Mb

OpArbitraryFloatLTINTEL

Two OpTypeInt values representing two arbitrary precision floating point numbers are passed in as A and B. The two numbers are compared and a value of true is returned in Result if A < B. Otherwise, a value of false is returned.

Result Type must be a Boolean type.

Result is of type OpTypeBool.

Ma and Mb are 32-bit unsigned integers that define the mantissa widths of the floating point types within A and B respectively. Note that the exponent values (Ea, Eb) are inferred from the width of the OpTypeInt.

Capability: ArbitraryPrecisionFloatingPointINTEL

7

5852

<id> Result Type

Result <id>

A <id>

Literal Ma

B <id>

Literal Mb

OpArbitraryFloatLEINTEL

Two OpTypeInt values representing two arbitrary precision floating point numbers are passed in as A and B. The two numbers are compared and a value of true is returned in Result if A <= B. Otherwise, a value of false is returned.

Result Type must be a Boolean type.

Result is of type OpTypeBool.

Ma and Mb are 32-bit unsigned integers that define the mantissa widths of the floating point types within A and B respectively. Note that the exponent values (Ea, Eb) are inferred from the width of the OpTypeInt.

Capability: ArbitraryPrecisionFloatingPointINTEL

7

5853

<id> Result Type

Result <id>

A <id>

Literal Ma

B <id>

Literal Mb

OpArbitraryFloatEQINTEL

Two OpTypeInt values representing two arbitrary precision floating point numbers are passed in as A and B. The two numbers are compared and a value of true is returned in Result if A == B. Otherwise, a value of false is returned.

Result Type must be a Boolean type.

Result is of type OpTypeBool.

Ma and Mb are 32-bit unsigned integers that define the mantissa widths of the floating point types within A and B respectively. Note that the exponent values (Ea, Eb) are inferred from the width of the OpTypeInt.

Capability: ArbitraryPrecisionFloatingPointINTEL

7

5854

<id> Result Type

Result <id>

A <id>

Literal Ma

B <id>

Literal Mb

OpArbitraryFloatRecipINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the reciprocal of the value is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5855

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatRSqrtINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the reciprocal of the square root of the value is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5856

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatCbrtINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the cube root of the value is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5857

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatHypotINTEL

Two OpTypeInt values representing two arbitrary precision floating point numbers are passed in as A and B and the hypotenuse, sqrt(A^2 + B^2), is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult, Ma and Mb are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result, A and B respectively. Note that the exponent values (Ea, Eb, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

11

5858

<id> Result Type

Result <id>

A <id>

Literal Ma

B <id>

Literal Mb

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatSqrtINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the square root of the value is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5859

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatLogINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the ln(A) of the value is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5860

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatLog2INTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A the log2(A) of the value is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5861

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatLog10INTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the log10(A) of the value is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5862

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatLog1pINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the ln(1+A) of the value is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5863

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatExpINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the e^(A) of the value is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5864

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatExp2INTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the 2^(A) of the value is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5865

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatExp10INTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the 10^(A) of the value is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5866

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatExpm1INTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the (e^A)-1 of the value is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5867

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatSinINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the sine of the value is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5868

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatCosINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the cosine of the value is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5869

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatSinCosINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the sine and cosine of the value is returned in Result.

Result Type must be a two-component vector of OpTypeInt. The first component of the Result contains the sine of A and is an arbitrary precision floating point number. The second component of the Result contains the cosine of A and is also an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5870

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatSinPiINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the sin(A*pi) is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5871

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatCosPiINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the cos(A*pi) is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5872

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatSinCosPiINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the sine and cosine of A*pi is returned in Result.

Result Type must be a two-component vector of OpTypeInt. The first component of the Result contains the sine of A and is an arbitrary precision floating point number. The second component of the Result contains the cosine of A and is also an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5840

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatASinINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the arcsin(A) is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5873

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatASinPiINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the arcsin(A)/pi is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5874

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatACosINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the arccos(A) is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5875

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatACosPiINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the arccos(A)/pi is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5876

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatATanINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the arctan(A) is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5877

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatATanPiINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A and the arctan(A)/pi is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

9

5878

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatATan2INTEL

Two OpTypeInt values representing two arbitrary precision floating point numbers are passed in as A and B and the arctan2(A,B) = arctan(A/B) is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult, Ma and Mb are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result, A and B respectively. Note that the exponent values (Ea, Eb, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

11

5879

<id> Result Type

Result <id>

A <id>

Literal Ma

B <id>

Literal Mb

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatPowINTEL

Two OpTypeInt values representing two arbitrary precision floating point numbers are passed in as A and B and the value of A^B is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult, Ma and Mb are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result, A and B respectively. Note that the exponent values (Ea, Eb, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

11

5880

<id> Result Type

Result <id>

A <id>

Literal Ma

B <id>

Literal Mb

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatPowRINTEL

Two OpTypeInt values representing two arbitrary precision floating point numbers are passed in as A and B. The value of A^B is returned in Result. However, A >= 0, otherwise, the result is undefined.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult, Ma and Mb are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result, A and B respectively. Note that the exponent values (Ea, Eb, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

11

5881

<id> Result Type

Result <id>

A <id>

Literal Ma

B <id>

Literal Mb

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatPowNINTEL

Two OpTypeInt values representing an arbitrary precision floating point number and an arbitrary precision integer number of signedness SignOfB are passed in as A and B respectively. The value of A^B is returned in Result where B is a signed or unsigned integer of arbitrary size.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

SignOfB specifies whether B is signed or unsigned.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result. It is ignored if the Accuracy operand is set to "FAITHFUL_INTEL".

Accuracy is a RoundingAccuracy chosen from Table 3.16d that controls the rounding accuracy of the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

11

5882

<id> Result Type

Result <id>

A <id>

Literal Ma

B <id>

Literal SignOfB

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

RoundingAccuracy Accuracy

OpArbitraryFloatConvertINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A. It is type converted into an arbitrary precision floating point number with the new specification (Eresult, Mresult) and returned as Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult and Ma are 32-bit unsigned integers that define the mantissa widths of the floating point types within Result and A respectively. Note that the exponent values (Ea, Eresult) are inferred from the width of the OpTypeInt.

Subnormal is a SubnormalMode chosen from Table 3.16a that specifies whether subnormal numbers should be supported or flushed to zero before and after the operation.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

8

5841

<id> Result Type

Result <id>

A <id>

Literal Ma

Literal Mresult

SubnormalMode Subnormal

RoundingMode Rounding

OpArbitraryFloatConvertFromUIntINTEL

An OpTypeInt representing an unsigned integer passed in as A. It is type converted into an arbitrary precision floating point number with the specification (Eresult, Mresult). The result of the convert operation is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult is a 32-bit unsigned integer that defines the mantissa width of the floating point value in Result. Note that the exponent value (Eresult) is inferred from the width of the OpTypeInt.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

6

5842

<id> Result Type

Result <id>

A <id>

Literal Mresult

RoundingMode Rounding

OpArbitraryFloatConvertFromSIntINTEL

An OpTypeInt representing a signed integer passed in as A. It is type converted into an arbitrary precision floating point number with the new specification (Eresult, Mresult). The result of the convert operation is returned in Result.

Result Type must be OpTypeInt.

Result is the <id> of the operation’s result, which is an arbitrary precision floating point number.

Mresult is a 32-bit unsigned integer that defines the mantissa width of the floating point value in Result. Note that the exponent value (Eresult) is inferred from the width of the OpTypeInt.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

6

5838

<id> Result Type

Result <id>

A <id>

Literal Mresult

RoundingMode Rounding

OpArbitraryFloatConvertToUIntINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A. It is type converted into an unsigned integer and returned as Result.

Result Type must be OpTypeInt, whose Signedness operand is 0. Behaviour is undefined if Result Type is not wide enough to hold the converted value.

Result is the <id> of the operation’s result, which is an arbitrary precision integer.

Ma is a 32-bit unsigned integer that defines the mantissa width of the floating point value in A. Note that the exponent value (Ea) is inferred from the width of the OpTypeInt.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

6

5843

<id> Result Type

Result <id>

A <id>

Literal Ma

RoundingMode Rounding

OpArbitraryFloatConvertToSIntINTEL

An OpTypeInt representing an arbitrary precision floating point number is passed in as A. It is type converted into a signed integer and returned as Result.

Result Type must be OpTypeInt. Behaviour is undefined if Result Type is not wide enough to hold the converted value.

Result is the <id> of the operation’s result, which is an arbitrary precision integer.

Ma is a 32-bit unsigned integer that defines the mantissa width of the floating point value in A. Note that the exponent value (Ea) is inferred from the width of the OpTypeInt.

Rounding is a RoundingMode chosen from Table 3.16 that controls the rounding mode for the result.

Capability: ArbitraryPrecisionFloatingPointINTEL

6

5839

<id> Result Type

Result <id>

A <id>

Literal Ma

RoundingMode Rounding

Validation Rules

  • Any M* literal argument to any instruction added in this extension can’t exceed the width of its corresponding OpTypeInt argument minus 1

Issues

None.

Revision History

Rev Date Author Changes

1

2023-03-29

Ajaykumar Kannan

Initial Public Release