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

ID 767253
Date 3/31/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™ instructions. 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 Examples

  • The four 32-bit values of A are placed in the output buffer and printed in the following format (default in decimal):
    cout << Is32vec4 A;
    cout << Iu32vec4 A;
    cout << hex << Iu32vec4 A; /* print in hex format */
    "[3]:A3 [2]:A2 [1]:A1 [0]:A0"
    
    Corresponding intrinsics: none
  • The two 32-bit values of A are placed in the output buffer and printed in the following format (default in decimal):
    cout << Is32vec2 A;
    cout << Iu32vec2 A;
    cout << hex << Iu32vec2 A; /* print in hex format */
    "[1]:A1 [0]:A0"
    
    Corresponding intrinsics: none
  • The eight 16-bit values of A are placed in the output buffer and printed in the following format (default in decimal):
    cout << Is16vec8 A;
    cout << Iu16vec8 A;
    cout << hex << Iu16vec8 A; /* print in hex format */
    "[7]:A7 [6]:A6 [5]:A5 [4]:A4 [3]:A3 [2]:A2 [1]:A1 [0]:A0"
    
    Corresponding intrinsics: none
  • The four 16-bit values of A are placed in the output buffer and printed in the following format (default in decimal):
    cout << Is16vec4 A;
    cout << Iu16vec4 A;
    cout << hex << Iu16vec4 A; /* print in hex format */
    "[3]:A3 [2]:A2 [1]:A1 [0]:A0"
    
    Corresponding intrinsics: none
  • The sixteen 8-bit values of A are placed in the output buffer and printed in the following format (default is decimal):
    cout << Is8vec16 A; cout << Iu8vec16 A; cout << hex << Iu8vec8 A;
    /* print in hex format instead of decimal*/
    "[15]:A15 [14]:A14 [13]:A13 [12]:A12 [11]:A11 [10]:A10 [9]:A9 [8]:A8 [7]:A7 [6]:A6 [5]:A5 [4]:A4 [3]:A3 [2]:A2 [1]:A1 [0]:A0"
    
    Corresponding intrinsics: none
  • The eight 8-bit values of A are placed in the output buffer and printed in the following format (default is decimal):
    cout << Is8vec8 A; cout << Iu8vec8 A;cout << hex << Iu8vec8 A;
    /* print in hex format instead of decimal*/
    "[7]:A7 [6]:A6 [5]:A5 [4]:A4 [3]:A3 [2]:A2 [1]:A1 [0]:A0"
    
    Corresponding intrinsics: none

Element Access Operators

Access and read element i of A. If DEBUG is enabled and the user tries to access an element outside of A, a diagnostic message is printed and the program aborts.

Corresponding intrinsics: none

Examples:

int R = Is64vec2 A[i];
unsigned int R = Iu64vec2 A[i];
int R = Is32vec4 A[i];
unsigned int R = Iu32vec4 A[i];
int R = Is32vec2 A[i];
unsigned int R = Iu32vec2 A[i];
short R = Is16vec8 A[i];
unsigned short R = Iu16vec8 A[i];
short R = Is16vec4 A[i];
unsigned short R = Iu16vec4 A[i];
signed char R = Is8vec16 A[i];
unsigned char R = Iu8vec16 A[i];
signed char R = Is8vec8 A[i];
unsigned char R = Iu8vec8 A[i];

Element Assignment Operators

Assign R to element i of A. If DEBUG is enabled and the user tries to assign a value to an element outside of A, a diagnostic message is printed and the program aborts.

Corresponding intrinsics: none

Examples:

Is64vec2 A[i] = int R;
Is32vec4 A[i] = int R;
Iu32vec4 A[i] = unsigned int R;
Is32vec2 A[i] = int R;
Iu32vec2 A[i] = unsigned int R;
Is16vec8 A[i] = short R;
Iu16vec8 A[i] = unsigned short R;
Is16vec4 A[i] = short R;
Iu16vec4 A[i] = unsigned short R;
Is8vec16 A[i] = signed char R;
Iu8vec16 A[i] = unsigned char R;
Is8vec8 A[i] = signed char R;
Iu8vec8 A[i] = unsigned char R;