PIPS
shuffle.c
Go to the documentation of this file.
1
#include <stdint.h>
2
#include <stdarg.h>
3
#include <stdio.h>
4
#include <stdlib.h>
5
6
#include "SIMD.h"
7
#include "
SIMD_types.h
"
8
9
void
shuffle
(
int
n,
float
r[n],
float
r3[n],
float
r2[n],
float
a[n],
float
b[n])
10
{
11
int
i;
12
for
(i=0; i<n; i += 4)
13
{
14
r[i] = a[i]+b[i];
15
r[i+1] = a[i+1]+b[i+1];
16
r[i+2] = a[i+2]+b[i+2];
17
r[i+3] = a[i+3]+b[i+3];
18
19
r2[i] = a[i]+b[i+2];
20
r2[i+1] = a[i+1]+b[i+1];
21
r2[i+2] = a[i+2]+b[i+3];
22
r2[i+3] = a[i+3]+b[i];
23
24
r3[i] = a[i]+b[i];
25
r3[i+1] = a[i+1]+b[i+3];
26
r3[i+2] = a[i+2]+b[i+2];
27
r3[i+3] = a[i+3]+b[i+1];
28
}
29
}
30
31
int
main
(
int
argc,
char
** argv)
32
{
33
int
n = (argc>1)?atoi(argv[0]):10;
34
float
* r = (
float
*)
malloc
(
sizeof
(
float
)*n);
35
float
* r2 = (
float
*)
malloc
(
sizeof
(
float
)*n);
36
float
* r3 = (
float
*)
malloc
(
sizeof
(
float
)*n);
37
float
* a = (
float
*)
malloc
(
sizeof
(
float
)*n);
38
float
* b = (
float
*)
malloc
(
sizeof
(
float
)*n);
39
int
i;
40
41
for
(i=0;i<n;i++)
42
{
43
a[i] = i;
44
b[i] = i;
45
}
46
shuffle
(n, r, r2, r3, a, b);
47
48
for
(i=0;i<n;i++)
49
printf
(
"%f %f\n"
, r[i], r2[i]);
50
return
0;
51
}
malloc
void * malloc(YYSIZE_T)
printf
int printf()
shuffle
void shuffle(int n, float r[n], float r3[n], float r2[n], float a[n], float b[n])
Definition:
shuffle.c:9
main
int main(int argc, char **argv)
Definition:
shuffle.c:31
SIMD_types.h
pips
src
Passes
pyps
drivers
sac
validation
shuffle
shuffle.c
Generated on Thu Sep 26 2024 22:11:50 for PIPS by
1.9.1