1- import "apps/blas/axpy/axpy .fil";
1+ import "apps/blas/axpy/harness .fil";
22
3- comp main<'G:II>(
3+ comp main[W, N, MultsN, AddsN] <'G:II>(
44 go: interface['G],
55 a: ['G, 'G+1] W,
6- x_0: ['G, 'G+1] W,
7- x_1: ['G, 'G+1] W,
8- x_2: ['G, 'G+1] W,
9- x_3: ['G, 'G+1] W,
10- x_4: ['G, 'G+1] W,
11- x_5: ['G, 'G+1] W,
12- x_6: ['G, 'G+1] W,
13- x_7: ['G, 'G+1] W,
14- x_8: ['G, 'G+1] W,
15- x_9: ['G, 'G+1] W,
16- x_10: ['G, 'G+1] W,
17- x_11: ['G, 'G+1] W,
18- x_12: ['G, 'G+1] W,
19- x_13: ['G, 'G+1] W,
20- x_14: ['G, 'G+1] W,
21- x_15: ['G, 'G+1] W,
22- y_0: ['G, 'G+1] W,
23- y_1: ['G, 'G+1] W,
24- y_2: ['G, 'G+1] W,
25- y_3: ['G, 'G+1] W,
26- y_4: ['G, 'G+1] W,
27- y_5: ['G, 'G+1] W,
28- y_6: ['G, 'G+1] W,
29- y_7: ['G, 'G+1] W,
30- y_8: ['G, 'G+1] W,
31- y_9: ['G, 'G+1] W,
32- y_10: ['G, 'G+1] W,
33- y_11: ['G, 'G+1] W,
34- y_12: ['G, 'G+1] W,
35- y_13: ['G, 'G+1] W,
36- y_14: ['G, 'G+1] W,
37- y_15: ['G, 'G+1] W,
6+ x: ['G, 'G+1] W*N,
7+ y: ['G, 'G+1] W*N
388) -> (
39- out_0: ['G+L, 'G+L+1] W,
40- out_1: ['G+L, 'G+L+1] W,
41- out_2: ['G+L, 'G+L+1] W,
42- out_3: ['G+L, 'G+L+1] W,
43- out_4: ['G+L, 'G+L+1] W,
44- out_5: ['G+L, 'G+L+1] W,
45- out_6: ['G+L, 'G+L+1] W,
46- out_7: ['G+L, 'G+L+1] W,
47- out_8: ['G+L, 'G+L+1] W,
48- out_9: ['G+L, 'G+L+1] W,
49- out_10: ['G+L, 'G+L+1] W,
50- out_11: ['G+L, 'G+L+1] W,
51- out_12: ['G+L, 'G+L+1] W,
52- out_13: ['G+L, 'G+L+1] W,
53- out_14: ['G+L, 'G+L+1] W,
54- out_15: ['G+L, 'G+L+1] W,
9+ out: ['G+L, 'G+L+1] W*N
5510) with {
56- let M = 8;
57- let N = 16;
58- let W = 32;
59- let A = 8;
6011 some L where L > 0;
6112 some II where II > 0;
62- } {
63-
64- A := new Axpy[W, N, M, A];
65-
66- bundle x[N]: ['G, 'G+1] W;
67- bundle y[N]: ['G, 'G+1] W;
68-
69- x{0} = x_0; x{1} = x_1; x{2} = x_2; x{3} = x_3;
70- x{4} = x_4; x{5} = x_5; x{6} = x_6; x{7} = x_7;
71- x{8} = x_8; x{9} = x_9; x{10} = x_10; x{11} = x_11;
72- x{12} = x_12; x{13} = x_13; x{14} = x_14; x{15} = x_15;
73-
74- y{0} = y_0; y{1} = y_1; y{2} = y_2; y{3} = y_3;
75- y{4} = y_4; y{5} = y_5; y{6} = y_6; y{7} = y_7;
76- y{8} = y_8; y{9} = y_9; y{10} = y_10; y{11} = y_11;
77- y{12} = y_12; y{13} = y_13; y{14} = y_14; y{15} = y_15;
78-
79- L := A::L;
80- II := A::II;
81-
82- a := A<'G>(a, x{0..N}, y{0..N});
83-
84- out_0 = a.out{0}; out_1 = a.out{1}; out_2 = a.out{2}; out_3 = a.out{3};
85- out_4 = a.out{4}; out_5 = a.out{5}; out_6 = a.out{6}; out_7 = a.out{7};
86- out_8 = a.out{8}; out_9 = a.out{9}; out_10 = a.out{10}; out_11 = a.out{11};
87- out_12 = a.out{12}; out_13 = a.out{13}; out_14 = a.out{14}; out_15 = a.out{15};
13+ } where W > 0,
14+ N > 0,
15+ MultsN > 0,
16+ AddsN > 0,
17+ N % MultsN == 0,
18+ MultsN % AddsN == 0
19+ {
20+
21+ har := new Harness[W, N, MultsN, AddsN];
22+ h := har<'G>(a, x, y);
23+ out = h.out;
24+
25+ II := har::II;
26+ L := har::L;
8827}
0 commit comments