| AI Engine-ML Intrinsics User Guide (v2025.2)

Loading...
Searching...
No Matches
Functions
Locks
Scalar Operations

## Overview

Intrinsics to acquire and release locks.

## Functions
void | acquire_equal (const void *a, unsigned id, unsigned val)
| This call blocks until the value in the state of the lock ID (id) becomes equal to an Input value (val). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. This function doesn't modify the value in the state of lock ID (id).
void | acquire_equal (const void *a, unsigned id, unsigned val, int cond)
| This call will be issued if cond==1. This call blocks until the value in the state of the lock ID (id) becomes equal to an Input value (val). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. This function doesn't modify the value in the state of the lock ID (id).
void | acquire_equal (const void chess_storage(TM) *a, unsigned id, unsigned val)
void | acquire_equal (const void chess_storage(TM) *a, unsigned id, unsigned val, int cond)
void | acquire_equal (unsigned id, unsigned val)
| This call blocks until the value in the state of the lock ID (id) becomes equal to an Input value (val). This function doesn't modify the value in the state of lock ID (id).
void | acquire_equal (unsigned id, unsigned val, int cond)
| This call will be issued if cond==1. This call blocks until the value in the state of the lock ID (id) becomes equal to an Input value (val). This function doesn't modify the value in the state of the lock ID (id).
void | acquire_equal_inner (const void *a, char chess_storage(TM) *mem, unsigned id, unsigned val)
void | acquire_equal_inner (const void *a, char chess_storage(TM) *mem, unsigned id, unsigned val, int cond)
void | acquire_equal_inner (const void chess_storage(TM) *a, char chess_storage(TM) *mem, unsigned id, unsigned val)
void | acquire_equal_inner (const void chess_storage(TM) *a, char chess_storage(TM) *mem, unsigned id, unsigned val, int cond)
void | acquire_greater_equal (const void *a, unsigned id, unsigned val)
| This call blocks until the value in the state of the lock ID (id) becomes greater or equal to an Input value (val). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. When the comparison becomes True, value in the state of the lock ID (id) is decremented by input value (val).
void | acquire_greater_equal (const void *a, unsigned id, unsigned val, int cond)
| This call will be issued if cond==1. This call blocks until the value in the state of the lock ID (id) becomes greater or equal to an Input value (val). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. When the comparison becomes True, value in the state of the lock ID (id) is decremented by input value (val).
void | acquire_greater_equal (const void chess_storage(TM) *a, unsigned id, unsigned val)
void | acquire_greater_equal (const void chess_storage(TM) *a, unsigned id, unsigned val, int cond)
void | acquire_greater_equal (unsigned id, unsigned val)
| This call blocks until the value in the state of the lock ID (id) becomes greater or equal to an Input value (val). When the comparison becomes True, value in the state of the lock ID (id) is decremented by input value (val).
void | acquire_greater_equal (unsigned id, unsigned val, int cond)
| This call will be issued if cond==1. This call blocks until the value in the state of the lock ID (id) becomes greater or equal to an Input value (val). When the comparison becomes True, value in the state of the lock ID (id) is decremented by input value (val).
void | acquire_greater_equal_inner (const void *a, char chess_storage(TM) *mem, unsigned id, unsigned val)
void | acquire_greater_equal_inner (const void *a, char chess_storage(TM) *mem, unsigned id, unsigned val, int cond)
void | acquire_greater_equal_inner (const void chess_storage(TM) *a, char chess_storage(TM) *mem, unsigned id, unsigned val)
void | acquire_greater_equal_inner (const void chess_storage(TM) *a, char chess_storage(TM) *mem, unsigned id, unsigned val, int cond)
void | release (const void *a, unsigned id, signed val)
| This call will add input value (val) to the value in the state of lock ID (id). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. Input value (val) is signed.
void | release (const void *a, unsigned id, signed val, int cond)
| This call will be issued if cond==1. This call will add input value (val) to the value in the state of lock ID (id). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. Input value (val) is signed.
void | release (const void chess_storage(TM) *a, unsigned id, signed val)
void | release (const void chess_storage(TM) *a, unsigned id, signed val, int cond)
void | release (unsigned id, signed val)
| This call will add input value (val) to the value in the state of lock ID (id). Input value (val) is signed.
void | release (unsigned id, signed val, int cond)
| This call will be issued if cond==1. This call will add input value (val) to the value in the state of lock ID (id). Input value (val) is signed.
void | release_inner (const void *a, char chess_storage(TM) *mem, unsigned id, signed val)
void | release_inner (const void *a, char chess_storage(TM) *mem, unsigned id, signed val, int cond)
void | release_inner (const void chess_storage(TM) *a, char chess_storage(TM) *mem, unsigned id, signed val)
void | release_inner (const void chess_storage(TM) *a, char chess_storage(TM) *mem, unsigned id, signed val, int cond)

## Function Documentation

## ◆ acquire_equal() [1/6]

void acquire_equal | ( | const void * | a,
|  | unsigned | id,
|  | unsigned | val )

This call blocks until the value in the state of the lock ID (id) becomes equal to an Input value (val). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. This function doesn't modify the value in the state of lock ID (id).

Parameters

  [in] | a | Pointer to data
  [in] | id | Lock ID (0..63)
  [in] | val | Input value (0..63)

## ◆ acquire_equal() [2/6]

void acquire_equal | ( | const void * | a,
|  | unsigned | id,
|  | unsigned | val,
|  | int | cond )

This call will be issued if cond==1. This call blocks until the value in the state of the lock ID (id) becomes equal to an Input value (val). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. This function doesn't modify the value in the state of the lock ID (id).

Parameters

  [in] | a | Pointer to data
  [in] | id | Lock ID (0..63)
  [in] | val | Input value (0..63)
  [in] | cond | condition to issue intrinsic

## ◆ acquire_equal() [3/6]

void acquire_equal | ( | const void chess_storage(TM) * | a,
|  | unsigned | id,
|  | unsigned | val )

## ◆ acquire_equal() [4/6]

void acquire_equal | ( | const void chess_storage(TM) * | a,
|  | unsigned | id,
|  | unsigned | val,
|  | int | cond )

## ◆ acquire_equal() [5/6]

void acquire_equal | ( | unsigned | id,
|  | unsigned | val )

This call blocks until the value in the state of the lock ID (id) becomes equal to an Input value (val). This function doesn't modify the value in the state of lock ID (id).

Parameters

  [in] | id | Lock ID (0..63)
  [in] | val | Input value (0..63)

## ◆ acquire_equal() [6/6]

void acquire_equal | ( | unsigned | id,
|  | unsigned | val,
|  | int | cond )

This call will be issued if cond==1. This call blocks until the value in the state of the lock ID (id) becomes equal to an Input value (val). This function doesn't modify the value in the state of the lock ID (id).

Parameters

  [in] | id | Lock ID (0..63)
  [in] | val | Input value (0..63)
  [in] | cond | condition to issue intrinsic

## ◆ acquire_equal_inner() [1/4]

void acquire_equal_inner | ( | const void * | a,
|  | char chess_storage(TM) * | mem,
|  | unsigned | id,
|  | unsigned | val )

## ◆ acquire_equal_inner() [2/4]

void acquire_equal_inner | ( | const void * | a,
|  | char chess_storage(TM) * | mem,
|  | unsigned | id,
|  | unsigned | val,
|  | int | cond )

## ◆ acquire_equal_inner() [3/4]

void acquire_equal_inner | ( | const void chess_storage(TM) * | a,
|  | char chess_storage(TM) * | mem,
|  | unsigned | id,
|  | unsigned | val )

## ◆ acquire_equal_inner() [4/4]

void acquire_equal_inner | ( | const void chess_storage(TM) * | a,
|  | char chess_storage(TM) * | mem,
|  | unsigned | id,
|  | unsigned | val,
|  | int | cond )

## ◆ acquire_greater_equal() [1/6]

void acquire_greater_equal | ( | const void * | a,
|  | unsigned | id,
|  | unsigned | val )

This call blocks until the value in the state of the lock ID (id) becomes greater or equal to an Input value (val). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. When the comparison becomes True, value in the state of the lock ID (id) is decremented by input value (val).

Parameters

  [in] | a | Pointer to data
  [in] | id | Lock ID (0..63)
  [in] | val | Input value (0..63)

## ◆ acquire_greater_equal() [2/6]

void acquire_greater_equal | ( | const void * | a,
|  | unsigned | id,
|  | unsigned | val,
|  | int | cond )

This call will be issued if cond==1. This call blocks until the value in the state of the lock ID (id) becomes greater or equal to an Input value (val). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. When the comparison becomes True, value in the state of the lock ID (id) is decremented by input value (val).

Parameters

  [in] | a | Pointer to data
  [in] | id | Lock ID (0..63)
  [in] | val | Input value (0..63)
  [in] | cond | condition to issue intrinsic

## ◆ acquire_greater_equal() [3/6]

void acquire_greater_equal | ( | const void chess_storage(TM) * | a,
|  | unsigned | id,
|  | unsigned | val )

## ◆ acquire_greater_equal() [4/6]

void acquire_greater_equal | ( | const void chess_storage(TM) * | a,
|  | unsigned | id,
|  | unsigned | val,
|  | int | cond )

## ◆ acquire_greater_equal() [5/6]

void acquire_greater_equal | ( | unsigned | id,
|  | unsigned | val )

This call blocks until the value in the state of the lock ID (id) becomes greater or equal to an Input value (val). When the comparison becomes True, value in the state of the lock ID (id) is decremented by input value (val).

Parameters

  [in] | id | Lock ID (0..63)
  [in] | val | Input value (0..63)

## ◆ acquire_greater_equal() [6/6]

void acquire_greater_equal | ( | unsigned | id,
|  | unsigned | val,
|  | int | cond )

This call will be issued if cond==1. This call blocks until the value in the state of the lock ID (id) becomes greater or equal to an Input value (val). When the comparison becomes True, value in the state of the lock ID (id) is decremented by input value (val).

Parameters

  [in] | id | Lock ID (0..63)
  [in] | val | Input value (0..63)
  [in] | cond | condition to issue intrinsic

## ◆ acquire_greater_equal_inner() [1/4]

void acquire_greater_equal_inner | ( | const void * | a,
|  | char chess_storage(TM) * | mem,
|  | unsigned | id,
|  | unsigned | val )

## ◆ acquire_greater_equal_inner() [2/4]

void acquire_greater_equal_inner | ( | const void * | a,
|  | char chess_storage(TM) * | mem,
|  | unsigned | id,
|  | unsigned | val,
|  | int | cond )

## ◆ acquire_greater_equal_inner() [3/4]

void acquire_greater_equal_inner | ( | const void chess_storage(TM) * | a,
|  | char chess_storage(TM) * | mem,
|  | unsigned | id,
|  | unsigned | val )

## ◆ acquire_greater_equal_inner() [4/4]

void acquire_greater_equal_inner | ( | const void chess_storage(TM) * | a,
|  | char chess_storage(TM) * | mem,
|  | unsigned | id,
|  | unsigned | val,
|  | int | cond )

## ◆ release() [1/6]

void release | ( | const void * | a,
|  | unsigned | id,
|  | signed | val )

This call will add input value (val) to the value in the state of lock ID (id). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. Input value (val) is signed.

Parameters

  [in] | a | Pointer to data
  [in] | id | Lock ID (0..63)
  [in] | val | Input value (-63..63)

## ◆ release() [2/6]

void release | ( | const void * | a,
|  | unsigned | id,
|  | signed | val,
|  | int | cond )

This call will be issued if cond==1. This call will add input value (val) to the value in the state of lock ID (id). It also waits at the entry to all reads and writes to data pointer a and the TM space to be completed. Input value (val) is signed.

Parameters

  [in] | a | Pointer to data
  [in] | id | Lock ID (0..63)
  [in] | val | Input value (-63..63)
  [in] | cond | condition to issue intrinsic

## ◆ release() [3/6]

void release | ( | const void chess_storage(TM) * | a,
|  | unsigned | id,
|  | signed | val )

## ◆ release() [4/6]

void release | ( | const void chess_storage(TM) * | a,
|  | unsigned | id,
|  | signed | val,
|  | int | cond )

## ◆ release() [5/6]

void release | ( | unsigned | id,
|  | signed | val )

This call will add input value (val) to the value in the state of lock ID (id). Input value (val) is signed.

Parameters

  [in] | id | lock ID (0..63)
  [in] | val | Input value (-63..63)

## ◆ release() [6/6]

void release | ( | unsigned | id,
|  | signed | val,
|  | int | cond )

This call will be issued if cond==1. This call will add input value (val) to the value in the state of lock ID (id). Input value (val) is signed.

Parameters

  [in] | id | Lock ID (0..63)
  [in] | val | Input value (-63..63)
  [in] | cond | condition to issue intrinsic

## ◆ release_inner() [1/4]

void release_inner | ( | const void * | a,
|  | char chess_storage(TM) * | mem,
|  | unsigned | id,
|  | signed | val )

## ◆ release_inner() [2/4]

void release_inner | ( | const void * | a,
|  | char chess_storage(TM) * | mem,
|  | unsigned | id,
|  | signed | val,
|  | int | cond )

## ◆ release_inner() [3/4]

void release_inner | ( | const void chess_storage(TM) * | a,
|  | char chess_storage(TM) * | mem,
|  | unsigned | id,
|  | signed | val )

## ◆ release_inner() [4/4]

void release_inner | ( | const void chess_storage(TM) * | a,
|  | char chess_storage(TM) * | mem,
|  | unsigned | id,
|  | signed | val,
|  | int | cond )