aboutsummaryrefslogtreecommitdiff
path: root/prescheme-nim-local/simde.c
blob: e34f7c7d031e28b9424ea8a19186d387a8be698c (about) (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#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;
}