aboutsummaryrefslogtreecommitdiff
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "prescheme.h"
#include "ps-init.h"
#include <simde/x86/avx512.h>



long main(void);
static long *Qvec_a;

long main(void)
{
  long arg0K0;
  long i_9X;
  long val_8X;
  simde__m256d avx_7X;
  simde__m256d odds_6X;
  simde__m256d evens_5X;
  double *b_4X;
  double *a_3X;
  char *target_2X;
  long i_1X;
  FILE * out_0X;
 {  out_0X = stdout;
  ps_write_string("SIMDE: Print vec-a with vector-for-each:\n", out_0X);
  arg0K0 = 0;
  goto L208;}
 L208: {
  i_1X = arg0K0;
  if ((5 == i_1X)) {
    { long ignoreXX;
    PS_WRITE_CHAR(10, out_0X, ignoreXX) }
    target_2X = (char *)calloc( 1, 1 + 20);
    a_3X = (double*)malloc(sizeof(double) * 10);
    b_4X = (double*)malloc(sizeof(double) * 10);
    gcvt(1.2, 4, target_2X);
    ps_write_string(target_2X, out_0X);
    { long ignoreXX;
    PS_WRITE_CHAR(10, out_0X, ignoreXX) }
    *(a_3X + 0) = 2.2;
    *(a_3X + 1) = 2.2;
    *(a_3X + 2) = 4.2;
    *(a_3X + 3) = 5.2;
    *(b_4X + 0) = 1.1;
    *(b_4X + 1) = 2.1;
    *(b_4X + 2) = 3.1;
    *(b_4X + 3) = 4.1;
    evens_5X = simde_mm256_loadu_pd(a_3X);
    odds_6X = simde_mm256_loadu_pd(b_4X);
    avx_7X = simde_mm256_sub_pd(evens_5X, odds_6X);simde_mm256_storeu_pd(a_3X, avx_7X);
    arg0K0 = 0;
    goto L253;}
  else {
    val_8X = *(Qvec_a + i_1X);
    ps_write_string(" vec-a[", out_0X);
    ps_write_integer(i_1X, out_0X);
    ps_write_string("] = ", out_0X);
    ps_write_integer(val_8X, out_0X);
    ps_write_string(", ", out_0X);
    arg0K0 = (1 + i_1X);
    goto L208;}}
 L253: {
  i_9X = arg0K0;
  if ((4 == i_9X)) {
    { long ignoreXX;
    PS_WRITE_CHAR(10, out_0X, ignoreXX) }
    return 0;}
  else {gcvt((*(a_3X + i_9X)), 4, target_2X);
    ps_write_string(target_2X, out_0X);
    { long ignoreXX;
    PS_WRITE_CHAR(10, out_0X, ignoreXX) }
    arg0K0 = (1 + i_9X);
    goto L253;}}
}void
ps_init(void)
{
Qvec_a = malloc(5 * sizeof(long));
Qvec_a[0] = 0;
Qvec_a[1] = 1;
Qvec_a[2] = 4;
Qvec_a[3] = 9;
Qvec_a[4] = 16;
}