Intel® oneAPI DPC++/C++ Compiler Developer Guide and Reference

ID 767253
Date 7/13/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

Debug Operations

The debug operations do not map to any compiler intrinsics for MMX™ technology or Intel® Streaming SIMD Extensions . They are provided for debugging programs only. Use of these operations may result in loss of performance, so you should not use them outside of debugging.

Output Operations

  • The two single, double-precision floating-point values of A are placed in the output buffer and printed in decimal format as follows:
    cout << F64vec2 A;
    "[1]:A1 [0]:A0"
    
    Corresponding intrinsics: none
  • The four, single-precision floating-point values of A are placed in the output buffer and printed in decimal format as follows:
    cout << F32vec4 A;
    "[3]:A3 [2]:A2 [1]:A1 [0]:A0"
    
    Corresponding intrinsics: none
  • The lowest, single-precision floating-point value of A is placed in the output buffer and printed.
    cout << F32vec1 A;
    Corresponding intrinsics: none

Element Access Operations

  • double d = F64vec2 A[int i]
    Read one of the two, double-precision floating-point values of A without modifying the corresponding floating-point value. Permitted values of i are 0 and 1. For example:
    double d = F64vec2 A[1]; 
    If DEBUG is enabled and i is not one of the permitted values (0 or 1), a diagnostic message is printed and the program aborts. Corresponding intrinsics: none
  • float f = F32vec4 A[int i]
    Read one of the four, single-precision floating-point values of A without modifying the corresponding floating point value. Permitted values of i are 0, 1, 2, and 3. For example:
    float f = F32vec4 A[2]; 
    		
    If DEBUG is enabled and i is not one of the permitted values (0-3), a diagnostic message is printed and the program aborts.
    Corresponding intrinsics: none

Element Assignment Operations

  • F64vec4 A[int i] = double d;
    Modify one of the two, double-precision floating-point values of A. Permitted values of int i are 0 and 1. For example:
    F32vec4 A[1] = double d;
    F32vec4 A[int i] = float f;
  • Modify one of the four, single-precision floating-point values of A. Permitted values of int i are 0, 1, 2, and 3. For example:
    F32vec4 A[3] = float f; 
    		
    If DEBUG is enabled and int i is not one of the permitted values (0-3), a diagnostic message is printed and the program aborts.
    Corresponding intrinsics: none.