Please enter what you're looking for to continue your search
 

vec_xst
ADD TO COMPARE ADDED TO COMPARE

 IBM-Z (64 bits)/ IBM-Z  View official documentation
Purpose:
Stores the elements of the 16-byte vector a to the effective address that is obtained by adding the displacement b in the address c. Note: It is preferred that you use pointers and the indirection operator * instead of this function to store vectors. vec_xst_be is available on the XL C/C++ compilers for some other platforms. You can define the following macro to migrate programs from other platforms to the z/OS XL C/C++ compiler. #define vec_xst_be(a, b) vec_xst(a,b). Minimum Arch: Z11.

Prototypes

Usage:
void result = vec_xst( vector float a, signed long long b, float* c )
Example:
#include <vecintrin.h>
#include <stdio.h>
int main() {
 vector float a = {
  1.0f, 2.0f, 3.0f, 4.0f
 };
 float data[12] = {
  0.0f
 };
 long b = 16;
 vec_xst(a, b, data);
 printf("a: ");
 for (int i = 0; i < 4; i++)
  printf("%3.0f ", a[i]);
  printf("\nb: %ld (displacement in bytes)\n", b);
  printf("data: ");
  for (int i = 0; i < 12; i++)
   printf("%3.0f ", data[i]);
   printf("\n");

   return 0;
  }
Usage:
void result = vec_xst( vector double a, signed long long b, double* c )
Example:
#include <vecintrin.h>
#include <stdio.h>
int main() {
 vector double a = {
  1.0, 2.0
 };
 double data[8] = {
  0.0
 };
 long b = 8;
 vec_xst(a, b, data);
 printf("a: ");
 for (int i = 0; i < 2; i++)
  printf("%3.0f ", a[i]);
  printf("\nb: %ld (displacement in bytes)\n", b);
  printf("data: ");
  for (int i = 0; i < 8; i++)
   printf("%3.0f ", data[i]);
   printf("\n");

   return 0;
  }
Usage:
void result = vec_xst( vector unsigned int a, signed long long b, unsigned int* c )
Example:
#include <vecintrin.h>
#include <stdio.h>
int main() {
 vector unsigned int a = {
  10, 20, 30, 40
 };
 unsigned int data[12] = {
  0
 };
 long b = 12;
 vec_xst(a, b, data);
 printf("a: ");
 for (int i = 0; i < 4; i++)
  printf("%3u ", a[i]);
  printf("\nb: %ld (displacement in bytes)\n", b);
  printf("data: ");
  for (int i = 0; i < 12; i++)
   printf("%3u ", data[i]);
   printf("\n");

   return 0;
  }
Usage:
void result = vec_xst( vector unsigned short a, signed long long b, unsigned short* c )
Example:
#include <vecintrin.h>
#include <stdio.h>
int main() {
 vector unsigned short a = {
  10, 20, 30, 40, 50, 60, 70, 80
 };
 unsigned short data[20] = {
  0
 };
 long b = 16;
 vec_xst(a, b, data);
 printf("a: ");
 for (int i = 0; i < 8; i++)
  printf("%3u ", a[i]);
  printf("\nb: %ld (displacement in bytes)\n", b);
  printf("data: ");
  for (int i = 0; i < 20; i++)
   printf("%3u ", data[i]);
   printf("\n");

   return 0;
  }
Usage:
void result = vec_xst( vector signed char a, signed long long b, signed char* c )
Example:
#include <vecintrin.h>
#include <stdio.h>
int main() {
 vector signed char a = {
  1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16
 };
 signed char data[32] = {
  0
 };
 long b = 8;
 vec_xst(a, b, data);
 printf("a: ");
 for (int i = 0; i < 16; i++)
  printf("%3d ", a[i]);
  printf("\nb: %ld (displacement)\n", b);
  printf("data: ");
  for (int i = 0; i < 32; i++)
   printf("%3d ", data[i]);
   printf("\n");

   return 0;
  }
Usage:
result = vec_xst( vector unsigned char a, signed long long b, unsigned char* c )
Example:
#include <vecintrin.h>
#include <stdio.h>
int main() {
 vector unsigned char a = {
  10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 110, 120, 130, 140, 150, 160
 };
 unsigned char data[32] = {
  0
 };
 long b = 0;
 vec_xst(a, b, data);
 printf("a: ");
 for (int i = 0; i < 16; i++)
  printf("%3u ", a[i]);
  printf("\nb: %ld (displacement)\n", b);
  printf("data: ");
  for (int i = 0; i < 32; i++)
   printf("%3u ", data[i]);
   printf("\n");

   return 0;
  }
Usage:
void result = vec_xst( vector unsigned long long a, signed long long b, unsigned long long* c )
Example:
#include <vecintrin.h>
#include <stdio.h>
int main() {
 vector unsigned long long a = {
  10, 20
 };
 unsigned long long data[8] = {
  0
 };
 long b = 0;
 vec_xst(a, b, data);
 printf("a: ");
 for (int i = 0; i < 2; i++)
  printf("%3llu ", a[i]);
  printf("\nb: %ld (displacement in bytes)\n", b);
  printf("data: ");
  for (int i = 0; i < 8; i++)
   printf("%3llu ", data[i]);
   printf("\n");

   return 0;
  }
Usage:
void result = vec_xst( vector signed long long a, signed long long b, signed long long* c )
Example:
#include <vecintrin.h>
#include <stdio.h>
int main() {
 vector signed long long a = {
  1, 2
 };
 signed long long data[8] = {
  0
 };
 long b = 16;
 vec_xst(a, b, data);
 printf("a: ");
 for (int i = 0; i < 2; i++)
  printf("%3lld ", a[i]);
  printf("\nb: %ld (displacement in bytes)\n", b);
  printf("data: ");
  for (int i = 0; i < 8; i++)
   printf("%3lld ", data[i]);
   printf("\n");

   return 0;
  }
Usage:
void result = vec_xst( vector signed short a, signed long long b, signed short* c )
Example:
#include <vecintrin.h>
#include <stdio.h>
int main() {
 vector signed short a = {
  1, 2, 3, 4, 5, 6, 7, 8
 };
 signed short data[20] = {
  0
 };
 long b = 4;
 vec_xst(a, b, data);
 printf("a: ");
 for (int i = 0; i < 8; i++)
  printf("%3d ", a[i]);
  printf("\nb: %ld (displacement in bytes)\n", b);
  printf("data: ");
  for (int i = 0; i < 20; i++)
   printf("%3d ", data[i]);
   printf("\n");

   return 0;
  }
Usage:
void result = vec_xst( vector signed int a, signed long long b, signed int* c )
Example:
#include <vecintrin.h>
#include <stdio.h>
int main() {
 vector signed int a = {
  1, 2, 3, 4
 };
 signed int data[12] = {
  0
 };
 long b = 8;
 vec_xst(a, b, data);
 printf("a: ");
 for (int i = 0; i < 4; i++)
  printf("%3d ", a[i]);
  printf("\nb: %ld (displacement in bytes)\n", b);
  printf("data: ");
  for (int i = 0; i < 12; i++)
   printf("%3d ", data[i]);
   printf("\n");

   return 0;
  }
SIMD Intrinsics Summary
SIMD Engines: 6
C Intrinsics: 10444
NEON: 4353
AVX2: 405
AVX512: 4717
SSE4.2: 598
VSX: 192
IBM-Z: 179