~ubuntu-branches/ubuntu/vivid/atlas/vivid

« back to all changes in this revision

Viewing changes to makes/Make.mvtune

  • Committer: Package Import Robot
  • Author(s): Sébastien Villemot
  • Date: 2013-06-11 15:58:16 UTC
  • mfrom: (1.1.3 upstream)
  • mto: (2.2.21 experimental)
  • mto: This revision was merged to the branch mainline in revision 26.
  • Revision ID: package-import@ubuntu.com-20130611155816-b72z8f621tuhbzn0
Tags: upstream-3.10.1
Import upstream version 3.10.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
include Make.inc
2
2
mySRCdir = $(SRCdir)/tune/blas/gemv
 
3
mvSRCdir = $(SRCdir)/src/blas/gemv
 
4
MVNKdir = $(mySRCdir)/MVNCASES/
 
5
MVTKdir = $(mySRCdir)/MVTCASES/
3
6
 
4
7
cas=0
5
8
lat=0
12
15
yregs=$(nY)
13
16
Mt=997
14
17
Nt=177
 
18
ldat=1111
15
19
M=1000
16
20
N=1000
 
21
lda=M
17
22
mvrout=bogus
18
23
ta=N
19
24
nta=T
20
25
iflag=0
21
 
yu=4
22
 
xu=16
23
26
l1mul=80
24
27
outf=
 
28
align = -Fx 16 -Fy 16 -Fa 16
25
29
sMVCC = $(SKC)
26
30
sMVFLAGS = $(SKCFLAGS)
27
31
cMVCC = $(SKC)
41
45
zSVFLAGS = $(DKCFLAGS)
42
46
SEXTFLAGS = 
43
47
opt=
 
48
BETA=1
 
49
beta=1
 
50
flushKB=-1
 
51
salphas = 3 0.0 1.0 0.5
 
52
sbetas = 3 0.0 1.0 0.2
 
53
calphas = 4 0.0 0.0 1.0 0.0 2.3 0.0 0.5 0.25
 
54
cbetas = 4 0.0 0.0 1.0 0.0 0.8 0.0 0.2 0.6
 
55
incs = -y 4 -1 1 2 -3 -x 4 -1 1 -5 4
 
56
dalphas = $(salphas)
 
57
dbetas = $(sbetas)
 
58
zalphas = $(calphas)
 
59
zbetas = $(cbetas)
 
60
ntlb=
 
61
#
 
62
# Macros for generator
 
63
#
 
64
mu=1
 
65
nu=1
 
66
minM=$(mu)
 
67
minN=$(nu)
 
68
genflags=
 
69
order=clmajor
44
70
 
45
 
xmvsearch : xemit_head mvsearch.o l1lib tstlib auxlib \
46
 
            dcases.dsc scases.dsc zcases.dsc ccases.dsc
47
 
        $(XCC) $(XCCFLAGS) -o xmvsearch mvsearch.o
48
 
mvsearch.o : $(mySRCdir)/mvsearch.c
49
 
        $(XCC) -c $(XCCFLAGS) -o mvsearch.o $(mySRCdir)/mvsearch.c
50
 
xgmvsearchT : gmvsearchT.o
51
 
        $(XCC) $(XCCFLAGS) -o $@ gmvsearchT.o
52
 
gmvsearchT.o : $(mySRCdir)/gmvsearchT.c
53
 
        $(XCC) -c $(XCCFLAGS) -o gmvsearchT.o $(mySRCdir)/gmvsearchT.c
54
 
xemit_head : emit_head.o
55
 
        $(XCC) $(XCCFLAGS) -o xemit_head emit_head.o
56
 
emit_head.o : $(INCAdir)/atlas_type.h $(mySRCdir)/emit_head.c
57
 
        $(XCC) -c $(XCCFLAGS) -o emit_head.o $(mySRCdir)/emit_head.c
58
 
xemit_rmvT : emit_rmvT.o
59
 
        $(XCC) $(XCCFLAGS) -o xemit_rmvT emit_rmvT.o
60
 
emit_rmvT.o : $(mySRCdir)/emit_rmvT.c
61
 
        $(XCC) -c $(XCCFLAGS) -o emit_rmvT.o $(mySRCdir)/emit_rmvT.c
 
71
all:
 
72
$(BINdir)/xextract :
 
73
        cd $(BINdir) ; make xextract
 
74
xmvnhgen : mvnhgen.o
 
75
        $(XCC) $(XCCFLAGS) -o $@ mvnhgen.o
 
76
mvnhgen.o : $(mySRCdir)/mvnhgen.c $(INCSdir)/atlas_mvparse.h \
 
77
          $(INCSdir)/atlas_mvtesttime.h
 
78
        $(XCC) -c $(XCCFLAGS) -o $@ $(mySRCdir)/mvnhgen.c
 
79
xmvthgen : mvthgen.o
 
80
        $(XCC) $(XCCFLAGS) -o $@ mvthgen.o
 
81
mvthgen.o : $(mySRCdir)/mvthgen.c $(INCSdir)/atlas_mvparse.h \
 
82
          $(INCSdir)/atlas_mvtesttime.h
 
83
        $(XCC) -c $(XCCFLAGS) -o $@ $(mySRCdir)/mvthgen.c
 
84
xmvtksearch : mvtksearch.o
 
85
        $(XCC) $(XCCFLAGS) -o $@ mvtksearch.o
 
86
mvtksearch.o : $(mySRCdir)/mvtksearch.c $(INCSdir)/atlas_mvparse.h \
 
87
          $(INCSdir)/atlas_mvtesttime.h
 
88
        $(XCC) -c $(XCCFLAGS) -o $@ $(mySRCdir)/mvtksearch.c
 
89
xmvnksearch : mvnksearch.o
 
90
        $(XCC) $(XCCFLAGS) -o $@ mvnksearch.o
 
91
mvnksearch.o : $(mySRCdir)/mvnksearch.c $(INCSdir)/atlas_mvparse.h \
 
92
          $(INCSdir)/atlas_mvtesttime.h
 
93
        $(XCC) -c $(XCCFLAGS) -o $@ $(mySRCdir)/mvnksearch.c
62
94
$(INCAdir)/atlas_type.h :
63
95
        cd $(SYSdir) ; $(MAKE) RunTyp
 
96
res/goodgcc.txt :
 
97
        echo "'$(GOODGCC)'" > res/goodgcc.txt
64
98
 
65
99
auxlib :
66
100
        cd $(AUXdir) ; $(MAKE) lib
79
113
ststTobj = ATL_sgemvT_b0.o ATL_sgemvT_b1.o ATL_sgemvT_bX.o
80
114
sobj = ATL_sgemv.o $(ststNobj) $(ststTobj)
81
115
ststobj = $(ststNobj) $(ststTobj)
82
 
 
83
 
syobj = ssymvtune.o ATL_sgemvT.o ATL_sgemvT.o
84
 
ssvcase : ssymvtune.o xemit_head xccobj
85
 
        rm -f res/ssymvN_0_* ATL_sgemvT_b1.o ATL_sgemvN_b1.o \
86
 
             ATL_ssymv.o
87
 
        ./xemit_head -p s -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
88
 
          -T -x $(xu) -y $(yu) -f $(iflag) -S -x $(xu) -y $(yu) -f $(iflag)
89
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_sgemvT.c
90
 
        cp -f $(mySRCdir)/CASES/$(svrout) ATL_sgemvN.c
91
 
        $(MAKE) ATL_ssymv.o
92
 
        $(MAKE) ATL_sgemvT_b1.o \
93
 
                sMVCC="$(sMVCC)" sMVFLAGS="$(sMVFLAGS)" EXTFLAGS="$(EXTFLAGS)"
94
 
        $(MAKE) ATL_sgemvN_b1.o sMVCC="$(sSVCC)" sMVFLAGS="$(sSVFLAGS)" \
95
 
                EXTFLAGS="$(SEXTFLAGS) -DATL_NOL1PREFETCH -DATL_NOL2PREFETCH"
96
 
        $(CLINKER) $(CLINKFLAGS) -o xssv ssymvtune.o \
97
 
                   ATL_ssymv.o ATL_sgemvT_b1.o ATL_sgemvN_b1.o \
98
 
                   $(TESTlib) $(ATLASlib)
99
 
        $(ATLRUN) $(MVTdir) xssv -C $(cas) -l $(l1mul) -A N \
100
 
                  -m $(M) -n $(N) -f $(iflag) $(gmvout) $(opt)
101
 
smvcaseN : sgemvtune.o xemit_head xccobj
102
 
        rm -f res/sgemvN_0_*
103
 
        rm -f $(sobj) ATL_sgemv[N,T].c $(INCAdir)/atlas_smvN.h
104
 
        ./xemit_head -p s -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
105
 
                     -T -x $(xu) -y $(yu) -f $(iflag)
106
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_sgemvN.c
107
 
        cp -f $(mySRCdir)/CASES/ATL_gemvT_dummy.c ATL_sgemvT.c
108
 
        $(MAKE) ATL_sgemv.o
109
 
        $(MAKE) $(ststNobj) sMVCC="$(sMVCC)" sMVFLAGS="$(sMVFLAGS)" \
110
 
                EXTFLAGS="$(EXTFLAGS)"
111
 
        $(MAKE) $(ststTobj) sMVCC="$(SKC)" sMVFLAGS="$(SKCFLAGS)" EXTFLAGS=""
112
 
        $(CLINKER) $(CLINKFLAGS) -o xsmv sgemvtune.o \
113
 
                   $(sobj) $(TESTlib) $(ATLASlib)
114
 
        $(ATLRUN) $(MVTdir) xsmv -C $(cas) -l $(l1mul) -A N \
115
 
                  -m $(M) -n $(N) -f $(iflag) $(gmvout) $(opt)
116
 
smvcaseT :  sgemvtune.o xemit_head xccobj
117
 
        rm -f res/sgemvT_0_*
118
 
        rm -f $(sobj) ATL_sgemv[N,T].c $(INCAdir)/atlas_smvT.h
119
 
        ./xemit_head -p s -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
120
 
                     -T -x $(xu) -y $(yu) -f $(iflag)
121
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_sgemvT.c
122
 
        cp -f $(mySRCdir)/CASES/ATL_gemvN_dummy.c ATL_sgemvN.c
123
 
        $(MAKE) ATL_sgemv.o
124
 
        $(MAKE) $(ststNobj) sMVCC="$(SKC)" sMVFLAGS="$(SKCFLAGS)" EXTFLAGS=""
125
 
        $(MAKE) $(ststTobj) sMVCC="$(sMVCC)" sMVFLAGS="$(sMVFLAGS)" \
126
 
                EXTFLAGS="$(EXTFLAGS)"
127
 
        $(CLINKER) $(CLINKFLAGS) -o xsmv sgemvtune.o \
128
 
                   $(sobj) $(TESTlib) $(ATLASlib)
129
 
        $(ATLRUN) $(MVTdir) xsmv -C $(cas) -l $(l1mul) -A T \
130
 
                  -m $(M) -n $(N) -f $(iflag) $(gmvout) $(opt)
131
 
sgmvcaseTT : sgmvtstcaseT sgmvcaseT
132
 
sgmvtstcaseT : xemit_rmvT
133
 
        rm -f res/sgemvT_0
134
 
        ./xemit_rmvT -l $(lat) -y $(nY) -G $(ngap) -g $(agap) -M $(gapmul) \
135
 
                     -X $(xregs) -A $(aregs) -Y $(yregs) -b -3 \
136
 
                     -f $(mySRCdir)/CASES/ATL_smv.c
137
 
        $(MAKE) smvtstcaseT mvrout=ATL_smv.c cas=0 \
138
 
                xu=$(xu) yu=$(yu) iflag=$(iflag) l1mul=$(l1mul) M=$(M) N=$(N)
139
 
sgmvcaseT : xemit_rmvT
140
 
        rm -f res/sgemvT_0
141
 
        ./xemit_rmvT -l $(lat) -y $(nY) -G $(ngap) -g $(agap) -M $(gapmul) \
142
 
                     -X $(xregs) -A $(aregs) -Y $(yregs) -b -3 \
143
 
                     -f $(mySRCdir)/CASES/ATL_smv.c
144
 
        $(MAKE) smvcase ta=T nta=N mvrout=ATL_smv.c cas=0 \
145
 
                xu=$(xu) yu=$(yu) iflag=$(iflag) l1mul=$(l1mul) M=$(M) N=$(N) \
146
 
                gmvout="$(gmvout)"
147
 
 
148
 
smvtstcaseN : smvtest.o xemit_head
149
 
        rm -f $(ststobj) xsmvtst $(INCAdir)/atlas_smvN.h
150
 
        ./xemit_head -p s -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
151
 
                     -T -x $(xu) -y $(yu) -f $(iflag)
152
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_sgemvN.c
153
 
        cp -f $(mySRCdir)/CASES/ATL_gemvT_dummy2.c ATL_sgemvT.c
154
 
        $(MAKE) $(ststNobj) sMVCC="$(sMVCC)" sMVFLAGS="$(sMVFLAGS)" \
155
 
                EXTFLAGS="$(EXTFLAGS)"
156
 
        $(MAKE) $(ststTobj) sMVCC="$(SKC)" sMVFLAGS="$(SKCFLAGS)" EXTFLAGS=""
157
 
        $(CLINKER) $(CLINKFLAGS) -o xsmvtst smvtest.o \
158
 
                   $(ststobj) $(TESTlib) $(ATLASlib)
159
 
        $(ATLRUN) $(MVTdir) xsmvtst -A N -m $(Mt) -n $(Nt)
160
 
 
161
 
smvtstcaseT : smvtest.o xemit_head
162
 
        rm -f $(ststobj) xsmvtst $(INCAdir)/atlas_smvT.h
163
 
        ./xemit_head -p s -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
164
 
                     -T -x $(xu) -y $(yu) -f $(iflag)
165
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_sgemvT.c
166
 
        cp -f $(mySRCdir)/CASES/ATL_gemvN_dummy2.c ATL_sgemvN.c
167
 
        $(MAKE) $(ststTobj) sMVCC="$(sMVCC)" sMVFLAGS="$(sMVFLAGS)" \
168
 
                EXTFLAGS="$(EXTFLAGS)"
169
 
        $(MAKE) $(ststNobj) sMVCC="$(SKC)" sMVFLAGS="$(SKCFLAGS)" EXTFLAGS=""
170
 
        $(CLINKER) $(CLINKFLAGS) -o xsmvtst smvtest.o \
171
 
                   $(ststobj) $(TESTlib) $(ATLASlib)
172
 
        $(ATLRUN) $(MVTdir) xsmvtst -A T -m $(Mt) -n $(Nt)
173
 
 
174
 
smvtest.o : $(mySRCdir)/mvtest.c
175
 
        $(ICC) -c $(ICCFLAGS) -o $@ -DSREAL $(mySRCdir)/mvtest.c
176
 
ssymvtune.o : $(mySRCdir)/gemvtune.c
177
 
        $(ICC) -c $(ICCFLAGS) -o $@ -DSYMM_ -DSREAL $(mySRCdir)/gemvtune.c
178
 
sgemvtune.o : $(mySRCdir)/gemvtune.c
179
 
        $(ICC) -c $(ICCFLAGS) -o $@ -DSREAL $(mySRCdir)/gemvtune.c
180
 
ATL_ssymv.o : $(mySRCdir)/ATL_symv.c atlas_smvN.h atlas_smvS.h
181
 
        $(SKC) -c -I$(MVTdir) $(sKCFLAGS) -o $@ -DSREAL $(mySRCdir)/ATL_symv.c
182
 
ATL_sgemv.o : ATL_gemv.c atlas_smv.h atlas_smvN.h atlas_smvT.h
 
116
smvttstobj = ATL_smvtk.o ATL_smvtk_smallN.o ATL_smvtk_Mlt16.o
 
117
smvttobj = ATL_smvtk_b0.o ATL_smvtk_b1.o \
 
118
           ATL_smvtk_smallN.o ATL_smvtk_Mlt16.o
 
119
smvntstobj = ATL_smvnk.o ATL_smvnk_smallN.o ATL_smvnk_Mlt16.o
 
120
smvntobj = ATL_smvnk_b0.o ATL_smvnk_b1.o \
 
121
           ATL_smvnk_smallN.o ATL_smvnk_Mlt16.o
 
122
 
 
123
#
 
124
# This target searches for best kernels and installs them
 
125
#
 
126
res/sMVNK.sum : xmvnksearch force_build
 
127
        ./xmvnksearch -p s
 
128
        $(MAKE) smvninstall
 
129
#
 
130
# This target uses extract to generate a MVN kernel
 
131
#
 
132
smvnext_C : $(BINdir)/xextract EXTDIR
 
133
        $(BINdir)/xextract -b $(mySRCdir)/atlas-l2g.base -langC \
 
134
                           order=$(order) rout=mvn_C nu=$(nu) type=SREAL \
 
135
                           -def MU $(mu) $(genflags) -o EXTDIR/smvn_C.c
 
136
smvnext_sse : $(BINdir)/xextract EXTDIR
 
137
        $(BINdir)/xextract -b $(mySRCdir)/atlas-l2g.base order=$(order) \
 
138
                           rout=mvn_sse nu=$(nu) type=SREAL -def MU $(mu) \
 
139
                           $(genflags) -o EXTDIR/smvn_sse.c
 
140
#
 
141
# This target calls the kernel directly, with the only cache flush coming 
 
142
# from the size of the operands themselves
 
143
#
 
144
smvnktime : smvktimeN.o 
 
145
        rm -f ATL_smvnk.c ATL_sgemvN.o xsmvnktime
 
146
        cp -f $(MVNKdir)/$(mvnrout) ATL_smvnk.c
 
147
        $(sMVCC) -c $(CDEFS) $(sMVFLAGS) -I$(MVTdir) -o ATL_smvnk.o \
 
148
           -DSREAL ATL_smvnk.c
 
149
        $(CLINKER) $(CLINKFLAGS) -o xsmvnktime smvktimeN.o \
 
150
                   ATL_smvnk.o \
 
151
                   $(TESTlib) $(ATLASlib)
 
152
        $(ATLRUN) $(MVTdir) xsmvnktime -m $(M) -n $(N) -l $(lda) \
 
153
                  -C $(flushKB) $(align) $(tflags)
 
154
#
 
155
# This target calls the driver (which blocks), with cache flushing
 
156
#
 
157
smvntime : smvntime.o xmvnhgen
 
158
        - rm -f $(smvntobj) ATL_smvnk.c atlas_smvn.h \
 
159
                mvnh.bak ATL_sgemvN.o xsmvntime
 
160
        - mv $(INCAdir)/atlas_smvn.h mvnh.bak
 
161
        ./xmvnhgen -p s -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
162
        cp -f $(MVNKdir)/$(mvnrout) ATL_smvnk.c
 
163
        $(MAKE) $(smvntobj) ATL_sgemvN.o
 
164
        $(CLINKER) $(CLINKFLAGS) -o xsmvntime smvntime.o \
 
165
                   ATL_sgemvN.o $(smvntobj) \
 
166
                   $(TESTlib) $(ATLASlib)
 
167
        $(ATLRUN) $(MVTdir) xsmvntime -m $(M) -n $(N) -l $(lda) \
 
168
                  -C $(flushKB) $(align) $(tflags)
 
169
        - mv mvnh.bak $(INCAdir)/atlas_smvn.h
 
170
#
 
171
# This tester calls the driver routine that blocks
 
172
#
 
173
smvntest : xmvnhgen smvntest.o
 
174
        rm -f $(smvntobj) ATL_smvnk.c  ATL_sgemvN.o \
 
175
              xsmvntest
 
176
        - mv $(INCAdir)/atlas_smvn.h mvnh.bak
 
177
        ./xmvnhgen -p s -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
178
        cp -f $(MVNKdir)/$(mvnrout) ATL_smvnk.c
 
179
        $(MAKE) $(smvntobj) ATL_sgemvN.o
 
180
        $(CLINKER) $(CLINKFLAGS) -o xsmvntest smvntest.o \
 
181
                   ATL_sgemvN.o $(smvntobj) \
 
182
                   $(TESTlib) $(ATLASlib)
 
183
        $(ATLRUN) $(MVTdir) xsmvntest -m 1 $(Mt) -n 1 $(Nt) $(incs) \
 
184
                  -l 1 $(ldat) $(align) -a $(salphas) -b $(sbetas) 
 
185
        - mv mvnh.bak $(INCAdir)/atlas_smvn.h
 
186
 
 
187
smvnktest : xmvnhgen
 
188
        rm -f $(smvntstobj) ATL_smvnk.c smvnktest.o \
 
189
              ATL_sgemvN.o xsmvnktest
 
190
        - mv $(INCAdir)/atlas_smvn.h mvnh.bak
 
191
        ./xmvnhgen -p s -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
192
        cp -f $(MVNKdir)/$(mvnrout) ATL_smvnk.c
 
193
        $(MAKE) smvnktest.o $(smvntstobj) beta=$(beta)
 
194
        $(CLINKER) $(CLINKFLAGS) -o xsmvnktest smvnktest.o \
 
195
                   $(smvntstobj) $(TESTlib) $(ATLASlib)
 
196
        $(ATLRUN) $(MVTdir) xsmvnktest -m 1 $(Mt) -n 1 $(Nt) \
 
197
                  -l 1 $(ldat) $(align)
 
198
        - mv mvnh.bak $(INCAdir)/atlas_smvn.h
 
199
 
 
200
smvntime.o : $(mySRCdir)/mvktime.c
 
201
        $(KC) -c $(KCFLAGS) -o $@ -DSREAL   $(mySRCdir)/mvktime.c
 
202
smvtimeN.o : $(mySRCdir)/mvktime.c
 
203
        $(KC) -c $(KCFLAGS) -o $@ -DSREAL   $(mySRCdir)/mvktime.c
 
204
 
 
205
smvktimeN.o : $(mySRCdir)/mvktime.c
 
206
        $(KC) -c $(KCFLAGS) -o $@ -DSREAL   -DTIME_KERNEL $(mySRCdir)/mvktime.c
 
207
smvnktest.o : $(mySRCdir)/mvnktest.c
 
208
        $(KC) -c $(KCFLAGS) -o $@ -DSREAL -DBETA$(beta)   $(mySRCdir)/mvnktest.c
 
209
smvntest.o : $(mySRCdir)/mvntest.c
 
210
        $(KC) -c $(KCFLAGS) -o $@ -DSREAL $(mySRCdir)/mvntest.c
 
211
 
 
212
ATL_sgemvN.o : $(mvSRCdir)/ATL_gemvN.c
 
213
        $(SKC) -c $(SKCFLAGS) $(CDEFS) -I$(MVTdir) \
 
214
                       -o $@ -DSREAL $(mvSRCdir)/ATL_gemvN.c
 
215
#
 
216
# This target searches for best kernels and installs them
 
217
#
 
218
res/sMVTK.sum : xmvtksearch force_build
 
219
        ./xmvtksearch -p s
 
220
        $(MAKE) smvtinstall
 
221
#
 
222
# This target uses extract to generate a MVT kernel
 
223
#
 
224
smvtext_C : $(BINdir)/xextract EXTDIR
 
225
        $(BINdir)/xextract -b $(mySRCdir)/atlas-l2g.base -langC \
 
226
                           order=$(order) rout=mvt_C nu=$(nu) type=SREAL \
 
227
                           -def MU $(mu) $(genflags) -o EXTDIR/smvt_C.c
 
228
smvtext_sse : $(BINdir)/xextract EXTDIR
 
229
        $(BINdir)/xextract -b $(mySRCdir)/atlas-l2g.base order=$(order) \
 
230
                           rout=mvt_sse nu=$(nu) type=SREAL -def MU $(mu) \
 
231
                           $(genflags) -o EXTDIR/smvt_sse.c
 
232
#
 
233
# This target calls the kernel directly, with the only cache flush coming 
 
234
# from the size of the operands themselves
 
235
#
 
236
smvtktime : smvktimeT.o 
 
237
        rm -f ATL_smvtk.c ATL_sgemvT.o xsmvtktime
 
238
        cp -f $(MVTKdir)/$(mvtrout) ATL_smvtk.c
 
239
        $(sMVCC) -c $(CDEFS) $(sMVFLAGS) -I$(MVTdir) -o ATL_smvtk.o \
 
240
           -DSREAL ATL_smvtk.c
 
241
        $(CLINKER) $(CLINKFLAGS) -o xsmvtktime smvktimeT.o \
 
242
                   ATL_smvtk.o \
 
243
                   $(TESTlib) $(ATLASlib)
 
244
        $(ATLRUN) $(MVTdir) xsmvtktime -m $(M) -n $(N) -l $(lda) \
 
245
                  -C $(flushKB) $(align) $(tflags)
 
246
#
 
247
# This target calls the driver (which blocks), with cache flushing
 
248
#
 
249
smvttime : smvttime.o xmvthgen
 
250
        - rm -f $(smvttobj) ATL_smvtk.c atlas_smvt.h \
 
251
                mvth.bak ATL_sgemvT.o xsmvttime
 
252
        - mv $(INCAdir)/atlas_smvt.h mvth.bak
 
253
        ./xmvthgen -p s -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
254
        cp -f $(MVTKdir)/$(mvtrout) ATL_smvtk.c
 
255
        $(MAKE) $(smvttobj) ATL_sgemvT.o
 
256
        $(CLINKER) $(CLINKFLAGS) -o xsmvttime smvttime.o \
 
257
                   ATL_sgemvT.o $(smvttobj) \
 
258
                   $(TESTlib) $(ATLASlib)
 
259
        $(ATLRUN) $(MVTdir) xsmvttime -m $(M) -n $(N) -l $(lda) \
 
260
                  -C $(flushKB) $(align) $(tflags)
 
261
        - mv mvth.bak $(INCAdir)/atlas_smvt.h
 
262
#
 
263
# This tester calls the driver routine that blocks
 
264
#
 
265
smvttest : xmvthgen smvttest.o
 
266
        rm -f $(smvttobj) ATL_smvtk.c  ATL_sgemvT.o \
 
267
              xsmvttest
 
268
        - mv $(INCAdir)/atlas_smvt.h mvth.bak
 
269
        ./xmvthgen -p s -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
270
        cp -f $(MVTKdir)/$(mvtrout) ATL_smvtk.c
 
271
        $(MAKE) $(smvttobj) ATL_sgemvT.o
 
272
        $(CLINKER) $(CLINKFLAGS) -o xsmvttest smvttest.o \
 
273
                   ATL_sgemvT.o $(smvttobj) \
 
274
                   $(TESTlib) $(ATLASlib)
 
275
        $(ATLRUN) $(MVTdir) xsmvttest -m 1 $(Mt) -n 1 $(Nt) $(incs) \
 
276
                  -l 1 $(ldat) $(align) -a $(salphas) -b $(sbetas) 
 
277
        - mv mvth.bak $(INCAdir)/atlas_smvt.h
 
278
 
 
279
smvtktest : xmvthgen
 
280
        rm -f $(smvttstobj) ATL_smvtk.c smvtktest.o \
 
281
              ATL_sgemvT.o xsmvtktest
 
282
        - mv $(INCAdir)/atlas_smvt.h mvth.bak
 
283
        ./xmvthgen -p s -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
284
        cp -f $(MVTKdir)/$(mvtrout) ATL_smvtk.c
 
285
        $(MAKE) smvtktest.o $(smvttstobj) beta=$(beta)
 
286
        $(CLINKER) $(CLINKFLAGS) -o xsmvtktest smvtktest.o \
 
287
                   $(smvttstobj) $(TESTlib) $(ATLASlib)
 
288
        $(ATLRUN) $(MVTdir) xsmvtktest -m 1 $(Mt) -n 1 $(Nt) \
 
289
                  -l 1 $(ldat) $(align)
 
290
        - mv mvth.bak $(INCAdir)/atlas_smvt.h
 
291
 
 
292
smvttime.o : $(mySRCdir)/mvktime.c
 
293
        $(KC) -c $(KCFLAGS) -o $@ -DSREAL -DATL_TRANS_ $(mySRCdir)/mvktime.c
 
294
smvtimeT.o : $(mySRCdir)/mvktime.c
 
295
        $(KC) -c $(KCFLAGS) -o $@ -DSREAL -DATL_TRANS_ $(mySRCdir)/mvktime.c
 
296
 
 
297
smvktimeT.o : $(mySRCdir)/mvktime.c
 
298
        $(KC) -c $(KCFLAGS) -o $@ -DSREAL -DATL_TRANS_ -DTIME_KERNEL $(mySRCdir)/mvktime.c
 
299
smvtktest.o : $(mySRCdir)/mvtktest.c
 
300
        $(KC) -c $(KCFLAGS) -o $@ -DSREAL -DBETA$(beta) -DATL_TRANS_ $(mySRCdir)/mvtktest.c
 
301
smvttest.o : $(mySRCdir)/mvttest.c
 
302
        $(KC) -c $(KCFLAGS) -o $@ -DSREAL $(mySRCdir)/mvttest.c
 
303
 
 
304
ATL_sgemvT.o : $(mvSRCdir)/ATL_gemvT.c
 
305
        $(SKC) -c $(SKCFLAGS) $(CDEFS) -I$(MVTdir) \
 
306
                       -o $@ -DSREAL $(mvSRCdir)/ATL_gemvT.c
 
307
 
 
308
ATL_smvtk_smallN.o : $(mvSRCdir)/ATL_mvtk_smallN.c
 
309
        $(SKC) -c $(SKCFLAGS) $(CDEFS) -I$(MVTdir) -DTUNING=1 \
 
310
                       -o $@ -DSREAL $(mvSRCdir)/ATL_mvtk_smallN.c
 
311
ATL_smvtk_Mlt16.o : $(mvSRCdir)/ATL_mvtk_Mlt16.c
 
312
        $(SKC) -c $(SKCFLAGS) $(CDEFS) -I$(MVTdir) -DTUNING=1 \
 
313
                       -o $@ -DSREAL $(mvSRCdir)/ATL_mvtk_Mlt16.c
 
314
ATL_smvtk_b0.o : ATL_smvtk.c
 
315
        $(sMVCC) $(sMVFLAGS) $(CDEFS) $(EXTFLAGS) -DSREAL \
 
316
                 -DBETA0 -DATL_UGEMV=ATL_UGEMVTK_b0 -o ATL_smvtk_b0.o \
 
317
                 -c ATL_smvtk.c
 
318
ATL_smvtk_b1.o : ATL_smvtk.c
 
319
        $(sMVCC) $(sMVFLAGS) $(CDEFS) $(EXTFLAGS) -DSREAL \
 
320
                 -DBETA1 -DATL_UGEMV=ATL_UGEMVTK -o ATL_smvtk_b1.o \
 
321
                 -c ATL_smvtk.c
 
322
ATL_smvtk.o : ATL_smvtk.c
 
323
        $(sMVCC) $(sMVFLAGS) $(CDEFS) $(EXTFLAGS) -DSREAL \
 
324
                 -DBETA$(beta) -o ATL_smvtk.o -c ATL_smvtk.c
 
325
 
 
326
ATL_smvnk_smallN.o : $(mvSRCdir)/ATL_mvnk_smallN.c
 
327
        $(SKC) -c $(SKCFLAGS) $(CDEFS) -I$(MVTdir) -DTUNING=1 \
 
328
                       -o $@ -DSREAL $(mvSRCdir)/ATL_mvnk_smallN.c
 
329
ATL_smvnk_Mlt16.o : $(mvSRCdir)/ATL_mvnk_Mlt16.c
 
330
        $(SKC) -c $(SKCFLAGS) $(CDEFS) -I$(MVTdir) -DTUNING=1 \
 
331
                       -o $@ -DSREAL $(mvSRCdir)/ATL_mvnk_Mlt16.c
 
332
ATL_smvnk_b0.o : ATL_smvnk.c
 
333
        $(sMVCC) $(sMVFLAGS) $(CDEFS) $(EXTFLAGS) -DSREAL \
 
334
                 -DBETA0 -DATL_UGEMV=ATL_UGEMVNK_b0 -o ATL_smvnk_b0.o \
 
335
                 -c ATL_smvnk.c
 
336
ATL_smvnk_b1.o : ATL_smvnk.c
 
337
        $(sMVCC) $(sMVFLAGS) $(CDEFS) $(EXTFLAGS) -DSREAL \
 
338
                 -DBETA1 -DATL_UGEMV=ATL_UGEMVNK -o ATL_smvnk_b1.o \
 
339
                 -c ATL_smvnk.c
 
340
ATL_smvnk.o : ATL_smvnk.c
 
341
        $(sMVCC) $(sMVFLAGS) $(CDEFS) $(EXTFLAGS) -DSREAL \
 
342
                 -DBETA$(beta) -o ATL_smvnk.o -c ATL_smvnk.c
 
343
 
 
344
ATL_sgemv.o : ATL_gemv.c atlas_smvn.h atlas_smvt.h
183
345
        $(SKC) -c -I$(MVTdir) $(sKCFLAGS) -o $@ -DSREAL ATL_gemv.c
184
346
ATL_sgemvN_b0.o : ATL_sgemvN.c
185
347
        $(sMVCC) -c -I$(MVTdir) $(sMVFLAGS) $(CDEFS) $(EXTFLAGS) -o $@ \
200
362
        $(sMVCC) -c -I$(MVTdir) $(sMVFLAGS) $(CDEFS) $(EXTFLAGS) -o $@ \
201
363
              -DSREAL -DBETAX -DALPHA1 ATL_sgemvT.c
202
364
 
203
 
res/sMVRES : xmvsearch force_build
204
 
        ./xmvsearch -p s
205
 
sinstall : xccobj
206
 
        cp -f $(mySRCdir)/CASES/$(mvNrout) $(GMVdir)/ATL_sgemvN.c
207
 
        cp -f $(mySRCdir)/CASES/$(mvTrout) $(GMVdir)/ATL_sgemvT.c
208
 
        cp -f $(mySRCdir)/CASES/$(mvSrout) $(GMVdir)/ATL_sgemvS.c
209
 
        cp -f Make_smv $(GMVdir)/.
210
 
        -@ cp -f xccobj $(GMVdir)/.
211
 
        -@ cp -f xccobj.exe $(GMVdir)/.
212
 
        cp -f atlas_smv.h $(INCAdir)/.
213
 
        cp -f atlas_smv[N,T,S].h $(INCAdir)/.
214
 
        touch $(INCSdir)/atlas_mv.h
 
365
smvtoutd :
 
366
        mkdir smvtoutd
 
367
smvtinstall : xccobj smvtoutd xmvthgen force_build
 
368
        rm -f smvtoutd/*
 
369
        if [ -s "$(GMVdir)/Make_smvt" ]; then \
 
370
           cd  $(GMVdir) ; $(MAKE) -f Make_smvt killall ; \
 
371
           rm -f $(GMVdir)/Make_smvt ; \
 
372
        fi
 
373
        ./xmvthgen -p s -F res/sMVTK.sum -d smvtoutd
 
374
        cp -f smvtoutd/Make_smvt $(GMVdir)/.
 
375
        cp smvtoutd/*.c $(GMVdir)/.
 
376
        cp -f smvtoutd/*.h $(INCAdir)/.
 
377
        if [ -s "xccobj.exe" ] ; then \
 
378
           cp -f xccobj.exe $(GMVdir)/. ; \
 
379
        elif [ -s "xccobj" ]; then \
 
380
           cp -f xccobj $(GMVdir)/. ; \
 
381
        fi
 
382
        touch $(INCSdir)/atlas_mv.h
 
383
        rm -f smvtoutd/* ; rmdir smvtoutd
 
384
smvnoutd :
 
385
        mkdir smvnoutd
 
386
smvninstall : xccobj smvnoutd xmvnhgen force_build
 
387
        rm -f smvnoutd/*
 
388
        if [ -s "$(GMVdir)/Make_smvn" ]; then \
 
389
           cd  $(GMVdir) ; $(MAKE) -f Make_smvn killall ; \
 
390
           rm -f $(GMVdir)/Make_smvn ; \
 
391
        fi
 
392
        ./xmvnhgen -p s -F res/sMVNK.sum -d smvnoutd
 
393
        cp -f smvnoutd/Make_smvn $(GMVdir)/.
 
394
        cp smvnoutd/*.c $(GMVdir)/.
 
395
        cp -f smvnoutd/*.h $(INCAdir)/.
 
396
        if [ -s "xccobj.exe" ] ; then \
 
397
           cp -f xccobj.exe $(GMVdir)/. ; \
 
398
        elif [ -s "xccobj" ]; then \
 
399
           cp -f xccobj $(GMVdir)/. ; \
 
400
        fi
 
401
        touch $(INCSdir)/atlas_mv.h
 
402
        rm -f smvnoutd/* ; rmdir smvnoutd
215
403
sl1lib :
216
404
        cd $(BINdir) ; $(MAKE) sl1lib
217
405
ststlib :
218
406
        cd $(BINdir) ; $(MAKE) ststlib
219
 
scases.dsc : $(BINdir)/xsubstr $(mySRCdir)/CASES/scases.dsc
220
 
        $(BINdir)/xsubstr -i $(mySRCdir)/CASES/scases.dsc -o $@ \
221
 
           -s '^gcc' '$(GOODGCC)' -s ' gcc' ' $(GOODGCC)'
222
 
        
223
407
dtstNobj = ATL_dgemvN_b0.o ATL_dgemvN_b1.o ATL_dgemvN_bX.o
224
408
dtstTobj = ATL_dgemvT_b0.o ATL_dgemvT_b1.o ATL_dgemvT_bX.o
225
409
dobj = ATL_dgemv.o $(dtstNobj) $(dtstTobj)
226
410
dtstobj = $(dtstNobj) $(dtstTobj)
227
 
 
228
 
syobj = dsymvtune.o ATL_dgemvT.o ATL_dgemvT.o
229
 
dsvcase : dsymvtune.o xemit_head xccobj
230
 
        rm -f res/dsymvN_0_* ATL_dgemvT_b1.o ATL_dgemvN_b1.o \
231
 
             ATL_dsymv.o
232
 
        ./xemit_head -p d -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
233
 
          -T -x $(xu) -y $(yu) -f $(iflag) -S -x $(xu) -y $(yu) -f $(iflag)
234
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_dgemvT.c
235
 
        cp -f $(mySRCdir)/CASES/$(svrout) ATL_dgemvN.c
236
 
        $(MAKE) ATL_dsymv.o
237
 
        $(MAKE) ATL_dgemvT_b1.o \
238
 
                dMVCC="$(dMVCC)" dMVFLAGS="$(dMVFLAGS)" EXTFLAGS="$(EXTFLAGS)"
239
 
        $(MAKE) ATL_dgemvN_b1.o dMVCC="$(dSVCC)" dMVFLAGS="$(dSVFLAGS)" \
240
 
                EXTFLAGS="$(SEXTFLAGS) -DATL_NOL1PREFETCH -DATL_NOL2PREFETCH"
241
 
        $(CLINKER) $(CLINKFLAGS) -o xdsv dsymvtune.o \
242
 
                   ATL_dsymv.o ATL_dgemvT_b1.o ATL_dgemvN_b1.o \
243
 
                   $(TESTlib) $(ATLASlib)
244
 
        $(ATLRUN) $(MVTdir) xdsv -C $(cas) -l $(l1mul) -A N \
245
 
                  -m $(M) -n $(N) -f $(iflag) $(gmvout) $(opt)
246
 
dmvcaseN : dgemvtune.o xemit_head xccobj
247
 
        rm -f res/dgemvN_0_*
248
 
        rm -f $(dobj) ATL_dgemv[N,T].c $(INCAdir)/atlas_dmvN.h
249
 
        ./xemit_head -p d -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
250
 
                     -T -x $(xu) -y $(yu) -f $(iflag)
251
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_dgemvN.c
252
 
        cp -f $(mySRCdir)/CASES/ATL_gemvT_dummy.c ATL_dgemvT.c
253
 
        $(MAKE) ATL_dgemv.o
254
 
        $(MAKE) $(dtstNobj) dMVCC="$(dMVCC)" dMVFLAGS="$(dMVFLAGS)" \
255
 
                EXTFLAGS="$(EXTFLAGS)"
256
 
        $(MAKE) $(dtstTobj) dMVCC="$(DKC)" dMVFLAGS="$(DKCFLAGS)" EXTFLAGS=""
257
 
        $(CLINKER) $(CLINKFLAGS) -o xdmv dgemvtune.o \
258
 
                   $(dobj) $(TESTlib) $(ATLASlib)
259
 
        $(ATLRUN) $(MVTdir) xdmv -C $(cas) -l $(l1mul) -A N \
260
 
                  -m $(M) -n $(N) -f $(iflag) $(gmvout) $(opt)
261
 
dmvcaseT :  dgemvtune.o xemit_head xccobj
262
 
        rm -f res/dgemvT_0_*
263
 
        rm -f $(dobj) ATL_dgemv[N,T].c $(INCAdir)/atlas_dmvT.h
264
 
        ./xemit_head -p d -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
265
 
                     -T -x $(xu) -y $(yu) -f $(iflag)
266
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_dgemvT.c
267
 
        cp -f $(mySRCdir)/CASES/ATL_gemvN_dummy.c ATL_dgemvN.c
268
 
        $(MAKE) ATL_dgemv.o
269
 
        $(MAKE) $(dtstNobj) dMVCC="$(DKC)" dMVFLAGS="$(DKCFLAGS)" EXTFLAGS=""
270
 
        $(MAKE) $(dtstTobj) dMVCC="$(dMVCC)" dMVFLAGS="$(dMVFLAGS)" \
271
 
                EXTFLAGS="$(EXTFLAGS)"
272
 
        $(CLINKER) $(CLINKFLAGS) -o xdmv dgemvtune.o \
273
 
                   $(dobj) $(TESTlib) $(ATLASlib)
274
 
        $(ATLRUN) $(MVTdir) xdmv -C $(cas) -l $(l1mul) -A T \
275
 
                  -m $(M) -n $(N) -f $(iflag) $(gmvout) $(opt)
276
 
dgmvcaseTT : dgmvtstcaseT dgmvcaseT
277
 
dgmvtstcaseT : xemit_rmvT
278
 
        rm -f res/dgemvT_0
279
 
        ./xemit_rmvT -l $(lat) -y $(nY) -G $(ngap) -g $(agap) -M $(gapmul) \
280
 
                     -X $(xregs) -A $(aregs) -Y $(yregs) -b -3 \
281
 
                     -f $(mySRCdir)/CASES/ATL_dmv.c
282
 
        $(MAKE) dmvtstcaseT mvrout=ATL_dmv.c cas=0 \
283
 
                xu=$(xu) yu=$(yu) iflag=$(iflag) l1mul=$(l1mul) M=$(M) N=$(N)
284
 
dgmvcaseT : xemit_rmvT
285
 
        rm -f res/dgemvT_0
286
 
        ./xemit_rmvT -l $(lat) -y $(nY) -G $(ngap) -g $(agap) -M $(gapmul) \
287
 
                     -X $(xregs) -A $(aregs) -Y $(yregs) -b -3 \
288
 
                     -f $(mySRCdir)/CASES/ATL_dmv.c
289
 
        $(MAKE) dmvcase ta=T nta=N mvrout=ATL_dmv.c cas=0 \
290
 
                xu=$(xu) yu=$(yu) iflag=$(iflag) l1mul=$(l1mul) M=$(M) N=$(N) \
291
 
                gmvout="$(gmvout)"
292
 
 
293
 
dmvtstcaseN : dmvtest.o xemit_head
294
 
        rm -f $(dtstobj) xdmvtst $(INCAdir)/atlas_dmvN.h
295
 
        ./xemit_head -p d -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
296
 
                     -T -x $(xu) -y $(yu) -f $(iflag)
297
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_dgemvN.c
298
 
        cp -f $(mySRCdir)/CASES/ATL_gemvT_dummy2.c ATL_dgemvT.c
299
 
        $(MAKE) $(dtstNobj) dMVCC="$(dMVCC)" dMVFLAGS="$(dMVFLAGS)" \
300
 
                EXTFLAGS="$(EXTFLAGS)"
301
 
        $(MAKE) $(dtstTobj) dMVCC="$(DKC)" dMVFLAGS="$(DKCFLAGS)" EXTFLAGS=""
302
 
        $(CLINKER) $(CLINKFLAGS) -o xdmvtst dmvtest.o \
303
 
                   $(dtstobj) $(TESTlib) $(ATLASlib)
304
 
        $(ATLRUN) $(MVTdir) xdmvtst -A N -m $(Mt) -n $(Nt)
305
 
 
306
 
dmvtstcaseT : dmvtest.o xemit_head
307
 
        rm -f $(dtstobj) xdmvtst $(INCAdir)/atlas_dmvT.h
308
 
        ./xemit_head -p d -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
309
 
                     -T -x $(xu) -y $(yu) -f $(iflag)
310
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_dgemvT.c
311
 
        cp -f $(mySRCdir)/CASES/ATL_gemvN_dummy2.c ATL_dgemvN.c
312
 
        $(MAKE) $(dtstTobj) dMVCC="$(dMVCC)" dMVFLAGS="$(dMVFLAGS)" \
313
 
                EXTFLAGS="$(EXTFLAGS)"
314
 
        $(MAKE) $(dtstNobj) dMVCC="$(DKC)" dMVFLAGS="$(DKCFLAGS)" EXTFLAGS=""
315
 
        $(CLINKER) $(CLINKFLAGS) -o xdmvtst dmvtest.o \
316
 
                   $(dtstobj) $(TESTlib) $(ATLASlib)
317
 
        $(ATLRUN) $(MVTdir) xdmvtst -A T -m $(Mt) -n $(Nt)
318
 
 
319
 
dmvtest.o : $(mySRCdir)/mvtest.c
320
 
        $(ICC) -c $(ICCFLAGS) -o $@ -DDREAL $(mySRCdir)/mvtest.c
321
 
dsymvtune.o : $(mySRCdir)/gemvtune.c
322
 
        $(ICC) -c $(ICCFLAGS) -o $@ -DSYMM_ -DDREAL $(mySRCdir)/gemvtune.c
323
 
dgemvtune.o : $(mySRCdir)/gemvtune.c
324
 
        $(ICC) -c $(ICCFLAGS) -o $@ -DDREAL $(mySRCdir)/gemvtune.c
325
 
ATL_dsymv.o : $(mySRCdir)/ATL_symv.c atlas_dmvN.h atlas_dmvS.h
326
 
        $(DKC) -c -I$(MVTdir) $(dKCFLAGS) -o $@ -DDREAL $(mySRCdir)/ATL_symv.c
327
 
ATL_dgemv.o : ATL_gemv.c atlas_dmv.h atlas_dmvN.h atlas_dmvT.h
 
411
dmvttstobj = ATL_dmvtk.o ATL_dmvtk_smallN.o ATL_dmvtk_Mlt16.o
 
412
dmvttobj = ATL_dmvtk_b0.o ATL_dmvtk_b1.o \
 
413
           ATL_dmvtk_smallN.o ATL_dmvtk_Mlt16.o
 
414
dmvntstobj = ATL_dmvnk.o ATL_dmvnk_smallN.o ATL_dmvnk_Mlt16.o
 
415
dmvntobj = ATL_dmvnk_b0.o ATL_dmvnk_b1.o \
 
416
           ATL_dmvnk_smallN.o ATL_dmvnk_Mlt16.o
 
417
 
 
418
#
 
419
# This target searches for best kernels and installs them
 
420
#
 
421
res/dMVNK.sum : xmvnksearch force_build
 
422
        ./xmvnksearch -p d
 
423
        $(MAKE) dmvninstall
 
424
#
 
425
# This target uses extract to generate a MVN kernel
 
426
#
 
427
dmvnext_C : $(BINdir)/xextract EXTDIR
 
428
        $(BINdir)/xextract -b $(mySRCdir)/atlas-l2g.base -langC \
 
429
                           order=$(order) rout=mvn_C nu=$(nu) type=DREAL \
 
430
                           -def MU $(mu) $(genflags) -o EXTDIR/dmvn_C.c
 
431
dmvnext_sse : $(BINdir)/xextract EXTDIR
 
432
        $(BINdir)/xextract -b $(mySRCdir)/atlas-l2g.base order=$(order) \
 
433
                           rout=mvn_sse nu=$(nu) type=DREAL -def MU $(mu) \
 
434
                           $(genflags) -o EXTDIR/dmvn_sse.c
 
435
#
 
436
# This target calls the kernel directly, with the only cache flush coming 
 
437
# from the size of the operands themselves
 
438
#
 
439
dmvnktime : dmvktimeN.o 
 
440
        rm -f ATL_dmvnk.c ATL_dgemvN.o xdmvnktime
 
441
        cp -f $(MVNKdir)/$(mvnrout) ATL_dmvnk.c
 
442
        $(dMVCC) -c $(CDEFS) $(dMVFLAGS) -I$(MVTdir) -o ATL_dmvnk.o \
 
443
           -DDREAL ATL_dmvnk.c
 
444
        $(CLINKER) $(CLINKFLAGS) -o xdmvnktime dmvktimeN.o \
 
445
                   ATL_dmvnk.o \
 
446
                   $(TESTlib) $(ATLASlib)
 
447
        $(ATLRUN) $(MVTdir) xdmvnktime -m $(M) -n $(N) -l $(lda) \
 
448
                  -C $(flushKB) $(align) $(tflags)
 
449
#
 
450
# This target calls the driver (which blocks), with cache flushing
 
451
#
 
452
dmvntime : dmvntime.o xmvnhgen
 
453
        - rm -f $(dmvntobj) ATL_dmvnk.c atlas_dmvn.h \
 
454
                mvnh.bak ATL_dgemvN.o xdmvntime
 
455
        - mv $(INCAdir)/atlas_dmvn.h mvnh.bak
 
456
        ./xmvnhgen -p d -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
457
        cp -f $(MVNKdir)/$(mvnrout) ATL_dmvnk.c
 
458
        $(MAKE) $(dmvntobj) ATL_dgemvN.o
 
459
        $(CLINKER) $(CLINKFLAGS) -o xdmvntime dmvntime.o \
 
460
                   ATL_dgemvN.o $(dmvntobj) \
 
461
                   $(TESTlib) $(ATLASlib)
 
462
        $(ATLRUN) $(MVTdir) xdmvntime -m $(M) -n $(N) -l $(lda) \
 
463
                  -C $(flushKB) $(align) $(tflags)
 
464
        - mv mvnh.bak $(INCAdir)/atlas_dmvn.h
 
465
#
 
466
# This tester calls the driver routine that blocks
 
467
#
 
468
dmvntest : xmvnhgen dmvntest.o
 
469
        rm -f $(dmvntobj) ATL_dmvnk.c  ATL_dgemvN.o \
 
470
              xdmvntest
 
471
        - mv $(INCAdir)/atlas_dmvn.h mvnh.bak
 
472
        ./xmvnhgen -p d -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
473
        cp -f $(MVNKdir)/$(mvnrout) ATL_dmvnk.c
 
474
        $(MAKE) $(dmvntobj) ATL_dgemvN.o
 
475
        $(CLINKER) $(CLINKFLAGS) -o xdmvntest dmvntest.o \
 
476
                   ATL_dgemvN.o $(dmvntobj) \
 
477
                   $(TESTlib) $(ATLASlib)
 
478
        $(ATLRUN) $(MVTdir) xdmvntest -m 1 $(Mt) -n 1 $(Nt) $(incs) \
 
479
                  -l 1 $(ldat) $(align) -a $(dalphas) -b $(dbetas) 
 
480
        - mv mvnh.bak $(INCAdir)/atlas_dmvn.h
 
481
 
 
482
dmvnktest : xmvnhgen
 
483
        rm -f $(dmvntstobj) ATL_dmvnk.c dmvnktest.o \
 
484
              ATL_dgemvN.o xdmvnktest
 
485
        - mv $(INCAdir)/atlas_dmvn.h mvnh.bak
 
486
        ./xmvnhgen -p d -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
487
        cp -f $(MVNKdir)/$(mvnrout) ATL_dmvnk.c
 
488
        $(MAKE) dmvnktest.o $(dmvntstobj) beta=$(beta)
 
489
        $(CLINKER) $(CLINKFLAGS) -o xdmvnktest dmvnktest.o \
 
490
                   $(dmvntstobj) $(TESTlib) $(ATLASlib)
 
491
        $(ATLRUN) $(MVTdir) xdmvnktest -m 1 $(Mt) -n 1 $(Nt) \
 
492
                  -l 1 $(ldat) $(align)
 
493
        - mv mvnh.bak $(INCAdir)/atlas_dmvn.h
 
494
 
 
495
dmvntime.o : $(mySRCdir)/mvktime.c
 
496
        $(KC) -c $(KCFLAGS) -o $@ -DDREAL   $(mySRCdir)/mvktime.c
 
497
dmvtimeN.o : $(mySRCdir)/mvktime.c
 
498
        $(KC) -c $(KCFLAGS) -o $@ -DDREAL   $(mySRCdir)/mvktime.c
 
499
 
 
500
dmvktimeN.o : $(mySRCdir)/mvktime.c
 
501
        $(KC) -c $(KCFLAGS) -o $@ -DDREAL   -DTIME_KERNEL $(mySRCdir)/mvktime.c
 
502
dmvnktest.o : $(mySRCdir)/mvnktest.c
 
503
        $(KC) -c $(KCFLAGS) -o $@ -DDREAL -DBETA$(beta)   $(mySRCdir)/mvnktest.c
 
504
dmvntest.o : $(mySRCdir)/mvntest.c
 
505
        $(KC) -c $(KCFLAGS) -o $@ -DDREAL $(mySRCdir)/mvntest.c
 
506
 
 
507
ATL_dgemvN.o : $(mvSRCdir)/ATL_gemvN.c
 
508
        $(DKC) -c $(DKCFLAGS) $(CDEFS) -I$(MVTdir) \
 
509
                       -o $@ -DDREAL $(mvSRCdir)/ATL_gemvN.c
 
510
#
 
511
# This target searches for best kernels and installs them
 
512
#
 
513
res/dMVTK.sum : xmvtksearch force_build
 
514
        ./xmvtksearch -p d
 
515
        $(MAKE) dmvtinstall
 
516
#
 
517
# This target uses extract to generate a MVT kernel
 
518
#
 
519
dmvtext_C : $(BINdir)/xextract EXTDIR
 
520
        $(BINdir)/xextract -b $(mySRCdir)/atlas-l2g.base -langC \
 
521
                           order=$(order) rout=mvt_C nu=$(nu) type=DREAL \
 
522
                           -def MU $(mu) $(genflags) -o EXTDIR/dmvt_C.c
 
523
dmvtext_sse : $(BINdir)/xextract EXTDIR
 
524
        $(BINdir)/xextract -b $(mySRCdir)/atlas-l2g.base order=$(order) \
 
525
                           rout=mvt_sse nu=$(nu) type=DREAL -def MU $(mu) \
 
526
                           $(genflags) -o EXTDIR/dmvt_sse.c
 
527
#
 
528
# This target calls the kernel directly, with the only cache flush coming 
 
529
# from the size of the operands themselves
 
530
#
 
531
dmvtktime : dmvktimeT.o 
 
532
        rm -f ATL_dmvtk.c ATL_dgemvT.o xdmvtktime
 
533
        cp -f $(MVTKdir)/$(mvtrout) ATL_dmvtk.c
 
534
        $(dMVCC) -c $(CDEFS) $(dMVFLAGS) -I$(MVTdir) -o ATL_dmvtk.o \
 
535
           -DDREAL ATL_dmvtk.c
 
536
        $(CLINKER) $(CLINKFLAGS) -o xdmvtktime dmvktimeT.o \
 
537
                   ATL_dmvtk.o \
 
538
                   $(TESTlib) $(ATLASlib)
 
539
        $(ATLRUN) $(MVTdir) xdmvtktime -m $(M) -n $(N) -l $(lda) \
 
540
                  -C $(flushKB) $(align) $(tflags)
 
541
#
 
542
# This target calls the driver (which blocks), with cache flushing
 
543
#
 
544
dmvttime : dmvttime.o xmvthgen
 
545
        - rm -f $(dmvttobj) ATL_dmvtk.c atlas_dmvt.h \
 
546
                mvth.bak ATL_dgemvT.o xdmvttime
 
547
        - mv $(INCAdir)/atlas_dmvt.h mvth.bak
 
548
        ./xmvthgen -p d -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
549
        cp -f $(MVTKdir)/$(mvtrout) ATL_dmvtk.c
 
550
        $(MAKE) $(dmvttobj) ATL_dgemvT.o
 
551
        $(CLINKER) $(CLINKFLAGS) -o xdmvttime dmvttime.o \
 
552
                   ATL_dgemvT.o $(dmvttobj) \
 
553
                   $(TESTlib) $(ATLASlib)
 
554
        $(ATLRUN) $(MVTdir) xdmvttime -m $(M) -n $(N) -l $(lda) \
 
555
                  -C $(flushKB) $(align) $(tflags)
 
556
        - mv mvth.bak $(INCAdir)/atlas_dmvt.h
 
557
#
 
558
# This tester calls the driver routine that blocks
 
559
#
 
560
dmvttest : xmvthgen dmvttest.o
 
561
        rm -f $(dmvttobj) ATL_dmvtk.c  ATL_dgemvT.o \
 
562
              xdmvttest
 
563
        - mv $(INCAdir)/atlas_dmvt.h mvth.bak
 
564
        ./xmvthgen -p d -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
565
        cp -f $(MVTKdir)/$(mvtrout) ATL_dmvtk.c
 
566
        $(MAKE) $(dmvttobj) ATL_dgemvT.o
 
567
        $(CLINKER) $(CLINKFLAGS) -o xdmvttest dmvttest.o \
 
568
                   ATL_dgemvT.o $(dmvttobj) \
 
569
                   $(TESTlib) $(ATLASlib)
 
570
        $(ATLRUN) $(MVTdir) xdmvttest -m 1 $(Mt) -n 1 $(Nt) $(incs) \
 
571
                  -l 1 $(ldat) $(align) -a $(dalphas) -b $(dbetas) 
 
572
        - mv mvth.bak $(INCAdir)/atlas_dmvt.h
 
573
 
 
574
dmvtktest : xmvthgen
 
575
        rm -f $(dmvttstobj) ATL_dmvtk.c dmvtktest.o \
 
576
              ATL_dgemvT.o xdmvtktest
 
577
        - mv $(INCAdir)/atlas_dmvt.h mvth.bak
 
578
        ./xmvthgen -p d -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
579
        cp -f $(MVTKdir)/$(mvtrout) ATL_dmvtk.c
 
580
        $(MAKE) dmvtktest.o $(dmvttstobj) beta=$(beta)
 
581
        $(CLINKER) $(CLINKFLAGS) -o xdmvtktest dmvtktest.o \
 
582
                   $(dmvttstobj) $(TESTlib) $(ATLASlib)
 
583
        $(ATLRUN) $(MVTdir) xdmvtktest -m 1 $(Mt) -n 1 $(Nt) \
 
584
                  -l 1 $(ldat) $(align)
 
585
        - mv mvth.bak $(INCAdir)/atlas_dmvt.h
 
586
 
 
587
dmvttime.o : $(mySRCdir)/mvktime.c
 
588
        $(KC) -c $(KCFLAGS) -o $@ -DDREAL -DATL_TRANS_ $(mySRCdir)/mvktime.c
 
589
dmvtimeT.o : $(mySRCdir)/mvktime.c
 
590
        $(KC) -c $(KCFLAGS) -o $@ -DDREAL -DATL_TRANS_ $(mySRCdir)/mvktime.c
 
591
 
 
592
dmvktimeT.o : $(mySRCdir)/mvktime.c
 
593
        $(KC) -c $(KCFLAGS) -o $@ -DDREAL -DATL_TRANS_ -DTIME_KERNEL $(mySRCdir)/mvktime.c
 
594
dmvtktest.o : $(mySRCdir)/mvtktest.c
 
595
        $(KC) -c $(KCFLAGS) -o $@ -DDREAL -DBETA$(beta) -DATL_TRANS_ $(mySRCdir)/mvtktest.c
 
596
dmvttest.o : $(mySRCdir)/mvttest.c
 
597
        $(KC) -c $(KCFLAGS) -o $@ -DDREAL $(mySRCdir)/mvttest.c
 
598
 
 
599
ATL_dgemvT.o : $(mvSRCdir)/ATL_gemvT.c
 
600
        $(DKC) -c $(DKCFLAGS) $(CDEFS) -I$(MVTdir) \
 
601
                       -o $@ -DDREAL $(mvSRCdir)/ATL_gemvT.c
 
602
 
 
603
ATL_dmvtk_smallN.o : $(mvSRCdir)/ATL_mvtk_smallN.c
 
604
        $(DKC) -c $(DKCFLAGS) $(CDEFS) -I$(MVTdir) -DTUNING=1 \
 
605
                       -o $@ -DDREAL $(mvSRCdir)/ATL_mvtk_smallN.c
 
606
ATL_dmvtk_Mlt16.o : $(mvSRCdir)/ATL_mvtk_Mlt16.c
 
607
        $(DKC) -c $(DKCFLAGS) $(CDEFS) -I$(MVTdir) -DTUNING=1 \
 
608
                       -o $@ -DDREAL $(mvSRCdir)/ATL_mvtk_Mlt16.c
 
609
ATL_dmvtk_b0.o : ATL_dmvtk.c
 
610
        $(dMVCC) $(dMVFLAGS) $(CDEFS) $(EXTFLAGS) -DDREAL \
 
611
                 -DBETA0 -DATL_UGEMV=ATL_UGEMVTK_b0 -o ATL_dmvtk_b0.o \
 
612
                 -c ATL_dmvtk.c
 
613
ATL_dmvtk_b1.o : ATL_dmvtk.c
 
614
        $(dMVCC) $(dMVFLAGS) $(CDEFS) $(EXTFLAGS) -DDREAL \
 
615
                 -DBETA1 -DATL_UGEMV=ATL_UGEMVTK -o ATL_dmvtk_b1.o \
 
616
                 -c ATL_dmvtk.c
 
617
ATL_dmvtk.o : ATL_dmvtk.c
 
618
        $(dMVCC) $(dMVFLAGS) $(CDEFS) $(EXTFLAGS) -DDREAL \
 
619
                 -DBETA$(beta) -o ATL_dmvtk.o -c ATL_dmvtk.c
 
620
 
 
621
ATL_dmvnk_smallN.o : $(mvSRCdir)/ATL_mvnk_smallN.c
 
622
        $(DKC) -c $(DKCFLAGS) $(CDEFS) -I$(MVTdir) -DTUNING=1 \
 
623
                       -o $@ -DDREAL $(mvSRCdir)/ATL_mvnk_smallN.c
 
624
ATL_dmvnk_Mlt16.o : $(mvSRCdir)/ATL_mvnk_Mlt16.c
 
625
        $(DKC) -c $(DKCFLAGS) $(CDEFS) -I$(MVTdir) -DTUNING=1 \
 
626
                       -o $@ -DDREAL $(mvSRCdir)/ATL_mvnk_Mlt16.c
 
627
ATL_dmvnk_b0.o : ATL_dmvnk.c
 
628
        $(dMVCC) $(dMVFLAGS) $(CDEFS) $(EXTFLAGS) -DDREAL \
 
629
                 -DBETA0 -DATL_UGEMV=ATL_UGEMVNK_b0 -o ATL_dmvnk_b0.o \
 
630
                 -c ATL_dmvnk.c
 
631
ATL_dmvnk_b1.o : ATL_dmvnk.c
 
632
        $(dMVCC) $(dMVFLAGS) $(CDEFS) $(EXTFLAGS) -DDREAL \
 
633
                 -DBETA1 -DATL_UGEMV=ATL_UGEMVNK -o ATL_dmvnk_b1.o \
 
634
                 -c ATL_dmvnk.c
 
635
ATL_dmvnk.o : ATL_dmvnk.c
 
636
        $(dMVCC) $(dMVFLAGS) $(CDEFS) $(EXTFLAGS) -DDREAL \
 
637
                 -DBETA$(beta) -o ATL_dmvnk.o -c ATL_dmvnk.c
 
638
 
 
639
ATL_dgemv.o : ATL_gemv.c atlas_dmvn.h atlas_dmvt.h
328
640
        $(DKC) -c -I$(MVTdir) $(dKCFLAGS) -o $@ -DDREAL ATL_gemv.c
329
641
ATL_dgemvN_b0.o : ATL_dgemvN.c
330
642
        $(dMVCC) -c -I$(MVTdir) $(dMVFLAGS) $(CDEFS) $(EXTFLAGS) -o $@ \
345
657
        $(dMVCC) -c -I$(MVTdir) $(dMVFLAGS) $(CDEFS) $(EXTFLAGS) -o $@ \
346
658
              -DDREAL -DBETAX -DALPHA1 ATL_dgemvT.c
347
659
 
348
 
res/dMVRES : xmvsearch force_build
349
 
        ./xmvsearch -p d
350
 
dinstall : xccobj
351
 
        cp -f $(mySRCdir)/CASES/$(mvNrout) $(GMVdir)/ATL_dgemvN.c
352
 
        cp -f $(mySRCdir)/CASES/$(mvTrout) $(GMVdir)/ATL_dgemvT.c
353
 
        cp -f $(mySRCdir)/CASES/$(mvSrout) $(GMVdir)/ATL_dgemvS.c
354
 
        cp -f Make_dmv $(GMVdir)/.
355
 
        -@ cp -f xccobj $(GMVdir)/.
356
 
        -@ cp -f xccobj.exe $(GMVdir)/.
357
 
        cp -f atlas_dmv.h $(INCAdir)/.
358
 
        cp -f atlas_dmv[N,T,S].h $(INCAdir)/.
359
 
        touch $(INCSdir)/atlas_mv.h
 
660
dmvtoutd :
 
661
        mkdir dmvtoutd
 
662
dmvtinstall : xccobj dmvtoutd xmvthgen force_build
 
663
        rm -f dmvtoutd/*
 
664
        if [ -s "$(GMVdir)/Make_dmvt" ]; then \
 
665
           cd  $(GMVdir) ; $(MAKE) -f Make_dmvt killall ; \
 
666
           rm -f $(GMVdir)/Make_dmvt ; \
 
667
        fi
 
668
        ./xmvthgen -p d -F res/dMVTK.sum -d dmvtoutd
 
669
        cp -f dmvtoutd/Make_dmvt $(GMVdir)/.
 
670
        cp dmvtoutd/*.c $(GMVdir)/.
 
671
        cp -f dmvtoutd/*.h $(INCAdir)/.
 
672
        if [ -s "xccobj.exe" ] ; then \
 
673
           cp -f xccobj.exe $(GMVdir)/. ; \
 
674
        elif [ -s "xccobj" ]; then \
 
675
           cp -f xccobj $(GMVdir)/. ; \
 
676
        fi
 
677
        touch $(INCSdir)/atlas_mv.h
 
678
        rm -f dmvtoutd/* ; rmdir dmvtoutd
 
679
dmvnoutd :
 
680
        mkdir dmvnoutd
 
681
dmvninstall : xccobj dmvnoutd xmvnhgen force_build
 
682
        rm -f dmvnoutd/*
 
683
        if [ -s "$(GMVdir)/Make_dmvn" ]; then \
 
684
           cd  $(GMVdir) ; $(MAKE) -f Make_dmvn killall ; \
 
685
           rm -f $(GMVdir)/Make_dmvn ; \
 
686
        fi
 
687
        ./xmvnhgen -p d -F res/dMVNK.sum -d dmvnoutd
 
688
        cp -f dmvnoutd/Make_dmvn $(GMVdir)/.
 
689
        cp dmvnoutd/*.c $(GMVdir)/.
 
690
        cp -f dmvnoutd/*.h $(INCAdir)/.
 
691
        if [ -s "xccobj.exe" ] ; then \
 
692
           cp -f xccobj.exe $(GMVdir)/. ; \
 
693
        elif [ -s "xccobj" ]; then \
 
694
           cp -f xccobj $(GMVdir)/. ; \
 
695
        fi
 
696
        touch $(INCSdir)/atlas_mv.h
 
697
        rm -f dmvnoutd/* ; rmdir dmvnoutd
360
698
dl1lib :
361
699
        cd $(BINdir) ; $(MAKE) dl1lib
362
700
dtstlib :
363
701
        cd $(BINdir) ; $(MAKE) dtstlib
364
 
dcases.dsc : $(BINdir)/xsubstr $(mySRCdir)/CASES/dcases.dsc
365
 
        $(BINdir)/xsubstr -i $(mySRCdir)/CASES/dcases.dsc -o $@ \
366
 
           -s '^gcc' '$(GOODGCC)' -s ' gcc' ' $(GOODGCC)'
367
 
        
368
702
cobj = ATL_cgemv.o \
369
703
       ATL_cgemvN_b0.o ATL_cgemvT_b0.o \
370
704
       ATL_cgemvN_b1.o ATL_cgemvT_b1.o \
381
715
           ATL_cgemvT_bXi0.o ATL_cgemvC_bXi0.o \
382
716
           ATL_cgemvT_bX.o ATL_cgemvC_bX.o
383
717
ctstobj = $(ctstNobj) $(ctstTobj)
384
 
 
385
 
syobj = csymvtune.o ATL_cgemvT.o ATL_cgemvT.o
386
 
csvcase : csymvtune.o xemit_head xccobj
387
 
        rm -f res/csymvN_0_* ATL_cgemvT_b1.o ATL_cgemvN_b1.o \
388
 
             ATL_csymv.o
389
 
        ./xemit_head -p c -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
390
 
          -T -x $(xu) -y $(yu) -f $(iflag) -S -x $(xu) -y $(yu) -f $(iflag)
391
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_cgemvT.c
392
 
        cp -f $(mySRCdir)/CASES/$(svrout) ATL_cgemvN.c
393
 
        $(MAKE) ATL_csymv.o
394
 
        $(MAKE) ATL_cgemvT_b1.o \
395
 
                cMVCC="$(cMVCC)" cMVFLAGS="$(cMVFLAGS)" EXTFLAGS="$(EXTFLAGS)"
396
 
        $(MAKE) ATL_cgemvN_b1.o cMVCC="$(cSVCC)" cMVFLAGS="$(cSVFLAGS)" \
397
 
                EXTFLAGS="$(SEXTFLAGS) -DATL_NOL1PREFETCH -DATL_NOL2PREFETCH"
398
 
        $(CLINKER) $(CLINKFLAGS) -o xcsv csymvtune.o \
399
 
                   ATL_csymv.o ATL_cgemvT_b1.o ATL_cgemvN_b1.o \
400
 
                   $(TESTlib) $(ATLASlib)
401
 
        $(ATLRUN) $(MVTdir) xcsv -C $(cas) -l $(l1mul) -A N \
402
 
                  -m $(M) -n $(N) -f $(iflag) $(gmvout) $(opt)
403
 
cmvcaseN : cgemvtune.o xemit_head xccobj
404
 
        rm -f res/cgemvN_0_*
405
 
        rm -f $(cobj) ATL_cgemv[N,T].c $(INCAdir)/atlas_cmvN.h
406
 
        ./xemit_head -p c -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
407
 
                     -T -x $(xu) -y $(yu) -f $(iflag)
408
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_cgemvN.c
409
 
        cp -f $(mySRCdir)/CASES/ATL_gemvT_dummy.c ATL_cgemvT.c
410
 
        $(MAKE) ATL_cgemv.o
411
 
        $(MAKE) $(ctstNobj) cMVCC="$(cMVCC)" cMVFLAGS="$(cMVFLAGS)" \
412
 
                EXTFLAGS="$(EXTFLAGS)"
413
 
        $(MAKE) $(ctstTobj) cMVCC="$(SKC)" cMVFLAGS="$(SKCFLAGS)" EXTFLAGS=""
414
 
        $(CLINKER) $(CLINKFLAGS) -o xcmv cgemvtune.o \
415
 
                   $(cobj) $(TESTlib) $(ATLASlib)
416
 
        $(ATLRUN) $(MVTdir) xcmv -C $(cas) -l $(l1mul) -A N \
417
 
                  -m $(M) -n $(N) -f $(iflag) $(gmvout) $(opt)
418
 
cmvcaseT :  cgemvtune.o xemit_head xccobj
419
 
        rm -f res/cgemvT_0_*
420
 
        rm -f $(cobj) ATL_cgemv[N,T].c $(INCAdir)/atlas_cmvT.h
421
 
        ./xemit_head -p c -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
422
 
                     -T -x $(xu) -y $(yu) -f $(iflag)
423
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_cgemvT.c
424
 
        cp -f $(mySRCdir)/CASES/ATL_gemvN_dummy.c ATL_cgemvN.c
425
 
        $(MAKE) ATL_cgemv.o
426
 
        $(MAKE) $(ctstNobj) cMVCC="$(SKC)" cMVFLAGS="$(SKCFLAGS)" EXTFLAGS=""
427
 
        $(MAKE) $(ctstTobj) cMVCC="$(cMVCC)" cMVFLAGS="$(cMVFLAGS)" \
428
 
                EXTFLAGS="$(EXTFLAGS)"
429
 
        $(CLINKER) $(CLINKFLAGS) -o xcmv cgemvtune.o \
430
 
                   $(cobj) $(TESTlib) $(ATLASlib)
431
 
        $(ATLRUN) $(MVTdir) xcmv -C $(cas) -l $(l1mul) -A T \
432
 
                  -m $(M) -n $(N) -f $(iflag) $(gmvout) $(opt)
433
 
 
434
 
cmvtstcaseN : cmvtest.o xemit_head
435
 
        rm -f $(ctstobj) xcmvtst $(INCAdir)/atlas_cmvN.h
436
 
        ./xemit_head -p c -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
437
 
                     -T -x $(xu) -y $(yu) -f $(iflag)
438
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_cgemvN.c
439
 
        cp -f $(mySRCdir)/CASES/ATL_gemvT_dummy2.c ATL_cgemvT.c
440
 
        $(MAKE) $(ctstNobj) cMVCC="$(cMVCC)" cMVFLAGS="$(cMVFLAGS)" \
441
 
                EXTFLAGS="$(EXTFLAGS)"
442
 
        $(MAKE) $(ctstTobj) cMVCC="$(SKC)" cMVFLAGS="$(SKCFLAGS)" EXTFLAGS=""
443
 
        $(CLINKER) $(CLINKFLAGS) -o xcmvtst cmvtest.o \
444
 
                   $(ctstobj) $(TESTlib) $(ATLASlib)
445
 
        $(ATLRUN) $(MVTdir) xcmvtst -A N -m $(Mt) -n $(Nt)
446
 
 
447
 
cmvtstcaseT : cmvtest.o xemit_head
448
 
        rm -f $(ctstobj) xcmvtst $(INCAdir)/atlas_cmvT.h
449
 
        ./xemit_head -p c -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
450
 
                     -T -x $(xu) -y $(yu) -f $(iflag)
451
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_cgemvT.c
452
 
        cp -f $(mySRCdir)/CASES/ATL_gemvN_dummy2.c ATL_cgemvN.c
453
 
        $(MAKE) $(ctstTobj) cMVCC="$(cMVCC)" cMVFLAGS="$(cMVFLAGS)" \
454
 
                EXTFLAGS="$(EXTFLAGS)"
455
 
        $(MAKE) $(ctstNobj) cMVCC="$(SKC)" cMVFLAGS="$(SKCFLAGS)" EXTFLAGS=""
456
 
        $(CLINKER) $(CLINKFLAGS) -o xcmvtst cmvtest.o \
457
 
                   $(ctstobj) $(TESTlib) $(ATLASlib)
458
 
        $(ATLRUN) $(MVTdir) xcmvtst -A T -m $(Mt) -n $(Nt)
459
 
 
460
 
cmvtest.o : $(mySRCdir)/mvtest.c
461
 
        $(ICC) -c $(ICCFLAGS) -o $@ -DSCPLX $(mySRCdir)/mvtest.c
462
 
csymvtune.o : $(mySRCdir)/gemvtune.c
463
 
        $(ICC) -c $(ICCFLAGS) -o $@ -DSYMM_ -DSCPLX $(mySRCdir)/gemvtune.c
464
 
cgemvtune.o : $(mySRCdir)/gemvtune.c
465
 
        $(ICC) -c $(ICCFLAGS) -o $@ -DSCPLX $(mySRCdir)/gemvtune.c
466
 
ATL_csymv.o : $(mySRCdir)/ATL_symv.c atlas_cmvN.h atlas_cmvS.h
467
 
        $(CKC) -c -I$(MVTdir) $(cKCFLAGS) -o $@ -DSCPLX $(mySRCdir)/ATL_symv.c
468
 
ATL_cgemv.o : ATL_gemv.c atlas_cmv.h atlas_cmvN.h atlas_cmvT.h
 
718
cmvttstobj = ATL_cmvtk.o ATL_cmvtk_smallN.o ATL_cmvtk_Mlt16.o
 
719
cmvttobj = ATL_cmvtk_b0.o ATL_cmvtk_b1.o \
 
720
           ATL_cmvtk_smallN.o ATL_cmvtk_Mlt16.o
 
721
cmvntstobj = ATL_cmvnk.o ATL_cmvnk_smallN.o ATL_cmvnk_Mlt16.o
 
722
cmvntobj = ATL_cmvnk_b0.o ATL_cmvnk_b1.o \
 
723
           ATL_cmvnk_smallN.o ATL_cmvnk_Mlt16.o
 
724
 
 
725
#
 
726
# This target searches for best kernels and installs them
 
727
#
 
728
res/cMVNK.sum : xmvnksearch force_build
 
729
        ./xmvnksearch -p c
 
730
        $(MAKE) cmvninstall
 
731
#
 
732
# This target uses extract to generate a MVN kernel
 
733
#
 
734
cmvnext_C : $(BINdir)/xextract EXTDIR
 
735
        $(BINdir)/xextract -b $(mySRCdir)/atlas-l2g.base -langC \
 
736
                           order=$(order) rout=mvn_C nu=$(nu) type=SCPLX \
 
737
                           -def MU $(mu) $(genflags) -o EXTDIR/cmvn_C.c
 
738
cmvnext_sse : $(BINdir)/xextract EXTDIR
 
739
        $(BINdir)/xextract -b $(mySRCdir)/atlas-l2g.base order=$(order) \
 
740
                           rout=mvn_sse nu=$(nu) type=SCPLX -def MU $(mu) \
 
741
                           $(genflags) -o EXTDIR/cmvn_sse.c
 
742
#
 
743
# This target calls the kernel directly, with the only cache flush coming 
 
744
# from the size of the operands themselves
 
745
#
 
746
cmvnktime : cmvktimeN.o 
 
747
        rm -f ATL_cmvnk.c ATL_cgemvN.o xcmvnktime
 
748
        cp -f $(MVNKdir)/$(mvnrout) ATL_cmvnk.c
 
749
        $(cMVCC) -c $(CDEFS) $(cMVFLAGS) -I$(MVTdir) -o ATL_cmvnk.o \
 
750
           -DSCPLX ATL_cmvnk.c
 
751
        $(CLINKER) $(CLINKFLAGS) -o xcmvnktime cmvktimeN.o \
 
752
                   ATL_cmvnk.o \
 
753
                   $(TESTlib) $(ATLASlib)
 
754
        $(ATLRUN) $(MVTdir) xcmvnktime -m $(M) -n $(N) -l $(lda) \
 
755
                  -C $(flushKB) $(align) $(tflags)
 
756
#
 
757
# This target calls the driver (which blocks), with cache flushing
 
758
#
 
759
cmvntime : cmvntime.o xmvnhgen
 
760
        - rm -f $(cmvntobj) ATL_cmvnk.c atlas_cmvn.h \
 
761
                mvnh.bak ATL_cgemvN.o xcmvntime
 
762
        - mv $(INCAdir)/atlas_cmvn.h mvnh.bak
 
763
        ./xmvnhgen -p c -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
764
        cp -f $(MVNKdir)/$(mvnrout) ATL_cmvnk.c
 
765
        $(MAKE) $(cmvntobj) ATL_cgemvN.o
 
766
        $(CLINKER) $(CLINKFLAGS) -o xcmvntime cmvntime.o \
 
767
                   ATL_cgemvN.o $(cmvntobj) \
 
768
                   $(TESTlib) $(ATLASlib)
 
769
        $(ATLRUN) $(MVTdir) xcmvntime -m $(M) -n $(N) -l $(lda) \
 
770
                  -C $(flushKB) $(align) $(tflags)
 
771
        - mv mvnh.bak $(INCAdir)/atlas_cmvn.h
 
772
#
 
773
# This tester calls the driver routine that blocks
 
774
#
 
775
cmvntest : xmvnhgen cmvntest.o
 
776
        rm -f $(cmvntobj) ATL_cmvnk.c  ATL_cgemvN.o \
 
777
              xcmvntest
 
778
        - mv $(INCAdir)/atlas_cmvn.h mvnh.bak
 
779
        ./xmvnhgen -p c -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
780
        cp -f $(MVNKdir)/$(mvnrout) ATL_cmvnk.c
 
781
        $(MAKE) $(cmvntobj) ATL_cgemvN.o
 
782
        $(CLINKER) $(CLINKFLAGS) -o xcmvntest cmvntest.o \
 
783
                   ATL_cgemvN.o $(cmvntobj) \
 
784
                   $(TESTlib) $(ATLASlib)
 
785
        $(ATLRUN) $(MVTdir) xcmvntest -m 1 $(Mt) -n 1 $(Nt) $(incs) \
 
786
                  -l 1 $(ldat) $(align) -a $(calphas) -b $(cbetas) 
 
787
        - mv mvnh.bak $(INCAdir)/atlas_cmvn.h
 
788
 
 
789
cmvnktest : xmvnhgen
 
790
        rm -f $(cmvntstobj) ATL_cmvnk.c cmvnktest.o \
 
791
              ATL_cgemvN.o xcmvnktest
 
792
        - mv $(INCAdir)/atlas_cmvn.h mvnh.bak
 
793
        ./xmvnhgen -p c -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
794
        cp -f $(MVNKdir)/$(mvnrout) ATL_cmvnk.c
 
795
        $(MAKE) cmvnktest.o $(cmvntstobj) beta=$(beta)
 
796
        $(CLINKER) $(CLINKFLAGS) -o xcmvnktest cmvnktest.o \
 
797
                   $(cmvntstobj) $(TESTlib) $(ATLASlib)
 
798
        $(ATLRUN) $(MVTdir) xcmvnktest -m 1 $(Mt) -n 1 $(Nt) \
 
799
                  -l 1 $(ldat) $(align)
 
800
        - mv mvnh.bak $(INCAdir)/atlas_cmvn.h
 
801
 
 
802
cmvntime.o : $(mySRCdir)/mvktime.c
 
803
        $(KC) -c $(KCFLAGS) -o $@ -DSCPLX   $(mySRCdir)/mvktime.c
 
804
cmvtimeN.o : $(mySRCdir)/mvktime.c
 
805
        $(KC) -c $(KCFLAGS) -o $@ -DSCPLX   $(mySRCdir)/mvktime.c
 
806
 
 
807
cmvktimeN.o : $(mySRCdir)/mvktime.c
 
808
        $(KC) -c $(KCFLAGS) -o $@ -DSCPLX   -DTIME_KERNEL $(mySRCdir)/mvktime.c
 
809
cmvnktest.o : $(mySRCdir)/mvnktest.c
 
810
        $(KC) -c $(KCFLAGS) -o $@ -DSCPLX -DBETA$(beta)   $(mySRCdir)/mvnktest.c
 
811
cmvntest.o : $(mySRCdir)/mvntest.c
 
812
        $(KC) -c $(KCFLAGS) -o $@ -DSCPLX $(mySRCdir)/mvntest.c
 
813
 
 
814
ATL_cgemvN.o : $(mvSRCdir)/ATL_gemvN.c
 
815
        $(SKC) -c $(SKCFLAGS) $(CDEFS) -I$(MVTdir) \
 
816
                       -o $@ -DSCPLX $(mvSRCdir)/ATL_gemvN.c
 
817
#
 
818
# This target searches for best kernels and installs them
 
819
#
 
820
res/cMVTK.sum : xmvtksearch force_build
 
821
        ./xmvtksearch -p c
 
822
        $(MAKE) cmvtinstall
 
823
#
 
824
# This target uses extract to generate a MVT kernel
 
825
#
 
826
cmvtext_C : $(BINdir)/xextract EXTDIR
 
827
        $(BINdir)/xextract -b $(mySRCdir)/atlas-l2g.base -langC \
 
828
                           order=$(order) rout=mvt_C nu=$(nu) type=SCPLX \
 
829
                           -def MU $(mu) $(genflags) -o EXTDIR/cmvt_C.c
 
830
cmvtext_sse : $(BINdir)/xextract EXTDIR
 
831
        $(BINdir)/xextract -b $(mySRCdir)/atlas-l2g.base order=$(order) \
 
832
                           rout=mvt_sse nu=$(nu) type=SCPLX -def MU $(mu) \
 
833
                           $(genflags) -o EXTDIR/cmvt_sse.c
 
834
#
 
835
# This target calls the kernel directly, with the only cache flush coming 
 
836
# from the size of the operands themselves
 
837
#
 
838
cmvtktime : cmvktimeT.o 
 
839
        rm -f ATL_cmvtk.c ATL_cgemvT.o xcmvtktime
 
840
        cp -f $(MVTKdir)/$(mvtrout) ATL_cmvtk.c
 
841
        $(cMVCC) -c $(CDEFS) $(cMVFLAGS) -I$(MVTdir) -o ATL_cmvtk.o \
 
842
           -DSCPLX ATL_cmvtk.c
 
843
        $(CLINKER) $(CLINKFLAGS) -o xcmvtktime cmvktimeT.o \
 
844
                   ATL_cmvtk.o \
 
845
                   $(TESTlib) $(ATLASlib)
 
846
        $(ATLRUN) $(MVTdir) xcmvtktime -m $(M) -n $(N) -l $(lda) \
 
847
                  -C $(flushKB) $(align) $(tflags)
 
848
#
 
849
# This target calls the driver (which blocks), with cache flushing
 
850
#
 
851
cmvttime : cmvttime.o xmvthgen
 
852
        - rm -f $(cmvttobj) ATL_cmvtk.c atlas_cmvt.h \
 
853
                mvth.bak ATL_cgemvT.o xcmvttime
 
854
        - mv $(INCAdir)/atlas_cmvt.h mvth.bak
 
855
        ./xmvthgen -p c -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
856
        cp -f $(MVTKdir)/$(mvtrout) ATL_cmvtk.c
 
857
        $(MAKE) $(cmvttobj) ATL_cgemvT.o
 
858
        $(CLINKER) $(CLINKFLAGS) -o xcmvttime cmvttime.o \
 
859
                   ATL_cgemvT.o $(cmvttobj) \
 
860
                   $(TESTlib) $(ATLASlib)
 
861
        $(ATLRUN) $(MVTdir) xcmvttime -m $(M) -n $(N) -l $(lda) \
 
862
                  -C $(flushKB) $(align) $(tflags)
 
863
        - mv mvth.bak $(INCAdir)/atlas_cmvt.h
 
864
#
 
865
# This tester calls the driver routine that blocks
 
866
#
 
867
cmvttest : xmvthgen cmvttest.o
 
868
        rm -f $(cmvttobj) ATL_cmvtk.c  ATL_cgemvT.o \
 
869
              xcmvttest
 
870
        - mv $(INCAdir)/atlas_cmvt.h mvth.bak
 
871
        ./xmvthgen -p c -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
872
        cp -f $(MVTKdir)/$(mvtrout) ATL_cmvtk.c
 
873
        $(MAKE) $(cmvttobj) ATL_cgemvT.o
 
874
        $(CLINKER) $(CLINKFLAGS) -o xcmvttest cmvttest.o \
 
875
                   ATL_cgemvT.o $(cmvttobj) \
 
876
                   $(TESTlib) $(ATLASlib)
 
877
        $(ATLRUN) $(MVTdir) xcmvttest -m 1 $(Mt) -n 1 $(Nt) $(incs) \
 
878
                  -l 1 $(ldat) $(align) -a $(calphas) -b $(cbetas) 
 
879
        - mv mvth.bak $(INCAdir)/atlas_cmvt.h
 
880
 
 
881
cmvtktest : xmvthgen
 
882
        rm -f $(cmvttstobj) ATL_cmvtk.c cmvtktest.o \
 
883
              ATL_cgemvT.o xcmvtktest
 
884
        - mv $(INCAdir)/atlas_cmvt.h mvth.bak
 
885
        ./xmvthgen -p c -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
886
        cp -f $(MVTKdir)/$(mvtrout) ATL_cmvtk.c
 
887
        $(MAKE) cmvtktest.o $(cmvttstobj) beta=$(beta)
 
888
        $(CLINKER) $(CLINKFLAGS) -o xcmvtktest cmvtktest.o \
 
889
                   $(cmvttstobj) $(TESTlib) $(ATLASlib)
 
890
        $(ATLRUN) $(MVTdir) xcmvtktest -m 1 $(Mt) -n 1 $(Nt) \
 
891
                  -l 1 $(ldat) $(align)
 
892
        - mv mvth.bak $(INCAdir)/atlas_cmvt.h
 
893
 
 
894
cmvttime.o : $(mySRCdir)/mvktime.c
 
895
        $(KC) -c $(KCFLAGS) -o $@ -DSCPLX -DATL_TRANS_ $(mySRCdir)/mvktime.c
 
896
cmvtimeT.o : $(mySRCdir)/mvktime.c
 
897
        $(KC) -c $(KCFLAGS) -o $@ -DSCPLX -DATL_TRANS_ $(mySRCdir)/mvktime.c
 
898
 
 
899
cmvktimeT.o : $(mySRCdir)/mvktime.c
 
900
        $(KC) -c $(KCFLAGS) -o $@ -DSCPLX -DATL_TRANS_ -DTIME_KERNEL $(mySRCdir)/mvktime.c
 
901
cmvtktest.o : $(mySRCdir)/mvtktest.c
 
902
        $(KC) -c $(KCFLAGS) -o $@ -DSCPLX -DBETA$(beta) -DATL_TRANS_ $(mySRCdir)/mvtktest.c
 
903
cmvttest.o : $(mySRCdir)/mvttest.c
 
904
        $(KC) -c $(KCFLAGS) -o $@ -DSCPLX $(mySRCdir)/mvttest.c
 
905
 
 
906
ATL_cgemvT.o : $(mvSRCdir)/ATL_gemvT.c
 
907
        $(SKC) -c $(SKCFLAGS) $(CDEFS) -I$(MVTdir) \
 
908
                       -o $@ -DSCPLX $(mvSRCdir)/ATL_gemvT.c
 
909
 
 
910
ATL_cmvtk_smallN.o : $(mvSRCdir)/ATL_mvtk_smallN.c
 
911
        $(SKC) -c $(SKCFLAGS) $(CDEFS) -I$(MVTdir) -DTUNING=1 \
 
912
                       -o $@ -DSCPLX $(mvSRCdir)/ATL_mvtk_smallN.c
 
913
ATL_cmvtk_Mlt16.o : $(mvSRCdir)/ATL_mvtk_Mlt16.c
 
914
        $(SKC) -c $(SKCFLAGS) $(CDEFS) -I$(MVTdir) -DTUNING=1 \
 
915
                       -o $@ -DSCPLX $(mvSRCdir)/ATL_mvtk_Mlt16.c
 
916
ATL_cmvtk_b0.o : ATL_cmvtk.c
 
917
        $(cMVCC) $(cMVFLAGS) $(CDEFS) $(EXTFLAGS) -DSCPLX \
 
918
                 -DBETA0 -DATL_UGEMV=ATL_UGEMVTK_b0 -o ATL_cmvtk_b0.o \
 
919
                 -c ATL_cmvtk.c
 
920
ATL_cmvtk_b1.o : ATL_cmvtk.c
 
921
        $(cMVCC) $(cMVFLAGS) $(CDEFS) $(EXTFLAGS) -DSCPLX \
 
922
                 -DBETA1 -DATL_UGEMV=ATL_UGEMVTK -o ATL_cmvtk_b1.o \
 
923
                 -c ATL_cmvtk.c
 
924
ATL_cmvtk.o : ATL_cmvtk.c
 
925
        $(cMVCC) $(cMVFLAGS) $(CDEFS) $(EXTFLAGS) -DSCPLX \
 
926
                 -DBETA$(beta) -o ATL_cmvtk.o -c ATL_cmvtk.c
 
927
 
 
928
ATL_cmvnk_smallN.o : $(mvSRCdir)/ATL_mvnk_smallN.c
 
929
        $(SKC) -c $(SKCFLAGS) $(CDEFS) -I$(MVTdir) -DTUNING=1 \
 
930
                       -o $@ -DSCPLX $(mvSRCdir)/ATL_mvnk_smallN.c
 
931
ATL_cmvnk_Mlt16.o : $(mvSRCdir)/ATL_mvnk_Mlt16.c
 
932
        $(SKC) -c $(SKCFLAGS) $(CDEFS) -I$(MVTdir) -DTUNING=1 \
 
933
                       -o $@ -DSCPLX $(mvSRCdir)/ATL_mvnk_Mlt16.c
 
934
ATL_cmvnk_b0.o : ATL_cmvnk.c
 
935
        $(cMVCC) $(cMVFLAGS) $(CDEFS) $(EXTFLAGS) -DSCPLX \
 
936
                 -DBETA0 -DATL_UGEMV=ATL_UGEMVNK_b0 -o ATL_cmvnk_b0.o \
 
937
                 -c ATL_cmvnk.c
 
938
ATL_cmvnk_b1.o : ATL_cmvnk.c
 
939
        $(cMVCC) $(cMVFLAGS) $(CDEFS) $(EXTFLAGS) -DSCPLX \
 
940
                 -DBETA1 -DATL_UGEMV=ATL_UGEMVNK -o ATL_cmvnk_b1.o \
 
941
                 -c ATL_cmvnk.c
 
942
ATL_cmvnk.o : ATL_cmvnk.c
 
943
        $(cMVCC) $(cMVFLAGS) $(CDEFS) $(EXTFLAGS) -DSCPLX \
 
944
                 -DBETA$(beta) -o ATL_cmvnk.o -c ATL_cmvnk.c
 
945
 
 
946
ATL_cgemv.o : ATL_gemv.c atlas_cmvn.h atlas_cmvt.h
469
947
        $(CKC) -c -I$(MVTdir) $(cKCFLAGS) -o $@ -DSCPLX ATL_gemv.c
470
948
ATL_cgemvN_b0.o : ATL_cgemvN.c
471
949
        $(cMVCC) -c -I$(MVTdir) $(cMVFLAGS) $(CDEFS) $(EXTFLAGS) -o $@ \
516
994
        $(cMVCC) -c $(cMVFLAGS) $(CDEFS) $(EXTFLAGS) -I$(MVTdir) -o $@ \
517
995
              -DSCPLX -DBETAXI0 -DALPHA1 -DConj_ ATL_cgemvN.c
518
996
 
519
 
res/cMVRES : xmvsearch force_build
520
 
        ./xmvsearch -p c
521
 
cinstall : xccobj
522
 
        cp -f $(mySRCdir)/CASES/$(mvNrout) $(GMVdir)/ATL_cgemvN.c
523
 
        cp -f $(mySRCdir)/CASES/$(mvTrout) $(GMVdir)/ATL_cgemvT.c
524
 
        cp -f $(mySRCdir)/CASES/$(mvSrout) $(GMVdir)/ATL_cgemvS.c
525
 
        cp -f Make_cmv $(GMVdir)/.
526
 
        -@ cp -f xccobj $(GMVdir)/.
527
 
        -@ cp -f xccobj.exe $(GMVdir)/.
528
 
        cp -f atlas_cmv.h $(INCAdir)/.
529
 
        cp -f atlas_cmv[N,T,S].h $(INCAdir)/.
530
 
        touch $(INCSdir)/atlas_mv.h
 
997
cmvtoutd :
 
998
        mkdir cmvtoutd
 
999
cmvtinstall : xccobj cmvtoutd xmvthgen force_build
 
1000
        rm -f cmvtoutd/*
 
1001
        if [ -s "$(GMVdir)/Make_cmvt" ]; then \
 
1002
           cd  $(GMVdir) ; $(MAKE) -f Make_cmvt killall ; \
 
1003
           rm -f $(GMVdir)/Make_cmvt ; \
 
1004
        fi
 
1005
        ./xmvthgen -p c -F res/cMVTK.sum -d cmvtoutd
 
1006
        cp -f cmvtoutd/Make_cmvt $(GMVdir)/.
 
1007
        cp cmvtoutd/*.c $(GMVdir)/.
 
1008
        cp -f cmvtoutd/*.h $(INCAdir)/.
 
1009
        if [ -s "xccobj.exe" ] ; then \
 
1010
           cp -f xccobj.exe $(GMVdir)/. ; \
 
1011
        elif [ -s "xccobj" ]; then \
 
1012
           cp -f xccobj $(GMVdir)/. ; \
 
1013
        fi
 
1014
        touch $(INCSdir)/atlas_mv.h
 
1015
        rm -f cmvtoutd/* ; rmdir cmvtoutd
 
1016
cmvnoutd :
 
1017
        mkdir cmvnoutd
 
1018
cmvninstall : xccobj cmvnoutd xmvnhgen force_build
 
1019
        rm -f cmvnoutd/*
 
1020
        if [ -s "$(GMVdir)/Make_cmvn" ]; then \
 
1021
           cd  $(GMVdir) ; $(MAKE) -f Make_cmvn killall ; \
 
1022
           rm -f $(GMVdir)/Make_cmvn ; \
 
1023
        fi
 
1024
        ./xmvnhgen -p c -F res/cMVNK.sum -d cmvnoutd
 
1025
        cp -f cmvnoutd/Make_cmvn $(GMVdir)/.
 
1026
        cp cmvnoutd/*.c $(GMVdir)/.
 
1027
        cp -f cmvnoutd/*.h $(INCAdir)/.
 
1028
        if [ -s "xccobj.exe" ] ; then \
 
1029
           cp -f xccobj.exe $(GMVdir)/. ; \
 
1030
        elif [ -s "xccobj" ]; then \
 
1031
           cp -f xccobj $(GMVdir)/. ; \
 
1032
        fi
 
1033
        touch $(INCSdir)/atlas_mv.h
 
1034
        rm -f cmvnoutd/* ; rmdir cmvnoutd
531
1035
cl1lib :
532
1036
        cd $(BINdir) ; $(MAKE) cl1lib
533
1037
ctstlib :
534
1038
        cd $(BINdir) ; $(MAKE) ctstlib
535
 
ccases.dsc : $(BINdir)/xsubstr $(mySRCdir)/CASES/ccases.dsc
536
 
        $(BINdir)/xsubstr -i $(mySRCdir)/CASES/ccases.dsc -o $@ \
537
 
           -s '^gcc' '$(GOODGCC)' -s ' gcc' ' $(GOODGCC)'
538
 
        
539
1039
zobj = ATL_zgemv.o \
540
1040
       ATL_zgemvN_b0.o ATL_zgemvT_b0.o \
541
1041
       ATL_zgemvN_b1.o ATL_zgemvT_b1.o \
552
1052
           ATL_zgemvT_bXi0.o ATL_zgemvC_bXi0.o \
553
1053
           ATL_zgemvT_bX.o ATL_zgemvC_bX.o
554
1054
ztstobj = $(ztstNobj) $(ztstTobj)
555
 
 
556
 
syobj = zsymvtune.o ATL_zgemvT.o ATL_zgemvT.o
557
 
zsvcase : zsymvtune.o xemit_head xccobj
558
 
        rm -f res/zsymvN_0_* ATL_zgemvT_b1.o ATL_zgemvN_b1.o \
559
 
             ATL_zsymv.o
560
 
        ./xemit_head -p z -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
561
 
          -T -x $(xu) -y $(yu) -f $(iflag) -S -x $(xu) -y $(yu) -f $(iflag)
562
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_zgemvT.c
563
 
        cp -f $(mySRCdir)/CASES/$(svrout) ATL_zgemvN.c
564
 
        $(MAKE) ATL_zsymv.o
565
 
        $(MAKE) ATL_zgemvT_b1.o \
566
 
                zMVCC="$(zMVCC)" zMVFLAGS="$(zMVFLAGS)" EXTFLAGS="$(EXTFLAGS)"
567
 
        $(MAKE) ATL_zgemvN_b1.o zMVCC="$(zSVCC)" zMVFLAGS="$(zSVFLAGS)" \
568
 
                EXTFLAGS="$(SEXTFLAGS) -DATL_NOL1PREFETCH -DATL_NOL2PREFETCH"
569
 
        $(CLINKER) $(CLINKFLAGS) -o xzsv zsymvtune.o \
570
 
                   ATL_zsymv.o ATL_zgemvT_b1.o ATL_zgemvN_b1.o \
571
 
                   $(TESTlib) $(ATLASlib)
572
 
        $(ATLRUN) $(MVTdir) xzsv -C $(cas) -l $(l1mul) -A N \
573
 
                  -m $(M) -n $(N) -f $(iflag) $(gmvout) $(opt)
574
 
zmvcaseN : zgemvtune.o xemit_head xccobj
575
 
        rm -f res/zgemvN_0_*
576
 
        rm -f $(zobj) ATL_zgemv[N,T].c $(INCAdir)/atlas_zmvN.h
577
 
        ./xemit_head -p z -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
578
 
                     -T -x $(xu) -y $(yu) -f $(iflag)
579
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_zgemvN.c
580
 
        cp -f $(mySRCdir)/CASES/ATL_gemvT_dummy.c ATL_zgemvT.c
581
 
        $(MAKE) ATL_zgemv.o
582
 
        $(MAKE) $(ztstNobj) zMVCC="$(zMVCC)" zMVFLAGS="$(zMVFLAGS)" \
583
 
                EXTFLAGS="$(EXTFLAGS)"
584
 
        $(MAKE) $(ztstTobj) zMVCC="$(DKC)" zMVFLAGS="$(DKCFLAGS)" EXTFLAGS=""
585
 
        $(CLINKER) $(CLINKFLAGS) -o xzmv zgemvtune.o \
586
 
                   $(zobj) $(TESTlib) $(ATLASlib)
587
 
        $(ATLRUN) $(MVTdir) xzmv -C $(cas) -l $(l1mul) -A N \
588
 
                  -m $(M) -n $(N) -f $(iflag) $(gmvout) $(opt)
589
 
zmvcaseT :  zgemvtune.o xemit_head xccobj
590
 
        rm -f res/zgemvT_0_*
591
 
        rm -f $(zobj) ATL_zgemv[N,T].c $(INCAdir)/atlas_zmvT.h
592
 
        ./xemit_head -p z -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
593
 
                     -T -x $(xu) -y $(yu) -f $(iflag)
594
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_zgemvT.c
595
 
        cp -f $(mySRCdir)/CASES/ATL_gemvN_dummy.c ATL_zgemvN.c
596
 
        $(MAKE) ATL_zgemv.o
597
 
        $(MAKE) $(ztstNobj) zMVCC="$(DKC)" zMVFLAGS="$(DKCFLAGS)" EXTFLAGS=""
598
 
        $(MAKE) $(ztstTobj) zMVCC="$(zMVCC)" zMVFLAGS="$(zMVFLAGS)" \
599
 
                EXTFLAGS="$(EXTFLAGS)"
600
 
        $(CLINKER) $(CLINKFLAGS) -o xzmv zgemvtune.o \
601
 
                   $(zobj) $(TESTlib) $(ATLASlib)
602
 
        $(ATLRUN) $(MVTdir) xzmv -C $(cas) -l $(l1mul) -A T \
603
 
                  -m $(M) -n $(N) -f $(iflag) $(gmvout) $(opt)
604
 
 
605
 
zmvtstcaseN : zmvtest.o xemit_head
606
 
        rm -f $(ztstobj) xzmvtst $(INCAdir)/atlas_zmvN.h
607
 
        ./xemit_head -p z -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
608
 
                     -T -x $(xu) -y $(yu) -f $(iflag)
609
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_zgemvN.c
610
 
        cp -f $(mySRCdir)/CASES/ATL_gemvT_dummy2.c ATL_zgemvT.c
611
 
        $(MAKE) $(ztstNobj) zMVCC="$(zMVCC)" zMVFLAGS="$(zMVFLAGS)" \
612
 
                EXTFLAGS="$(EXTFLAGS)"
613
 
        $(MAKE) $(ztstTobj) zMVCC="$(DKC)" zMVFLAGS="$(DKCFLAGS)" EXTFLAGS=""
614
 
        $(CLINKER) $(CLINKFLAGS) -o xzmvtst zmvtest.o \
615
 
                   $(ztstobj) $(TESTlib) $(ATLASlib)
616
 
        $(ATLRUN) $(MVTdir) xzmvtst -A N -m $(Mt) -n $(Nt)
617
 
 
618
 
zmvtstcaseT : zmvtest.o xemit_head
619
 
        rm -f $(ztstobj) xzmvtst $(INCAdir)/atlas_zmvT.h
620
 
        ./xemit_head -p z -l $(l1mul) -N -x $(xu) -y $(yu) -f $(iflag) \
621
 
                     -T -x $(xu) -y $(yu) -f $(iflag)
622
 
        cp -f $(mySRCdir)/CASES/$(mvrout) ATL_zgemvT.c
623
 
        cp -f $(mySRCdir)/CASES/ATL_gemvN_dummy2.c ATL_zgemvN.c
624
 
        $(MAKE) $(ztstTobj) zMVCC="$(zMVCC)" zMVFLAGS="$(zMVFLAGS)" \
625
 
                EXTFLAGS="$(EXTFLAGS)"
626
 
        $(MAKE) $(ztstNobj) zMVCC="$(DKC)" zMVFLAGS="$(DKCFLAGS)" EXTFLAGS=""
627
 
        $(CLINKER) $(CLINKFLAGS) -o xzmvtst zmvtest.o \
628
 
                   $(ztstobj) $(TESTlib) $(ATLASlib)
629
 
        $(ATLRUN) $(MVTdir) xzmvtst -A T -m $(Mt) -n $(Nt)
630
 
 
631
 
zmvtest.o : $(mySRCdir)/mvtest.c
632
 
        $(ICC) -c $(ICCFLAGS) -o $@ -DDCPLX $(mySRCdir)/mvtest.c
633
 
zsymvtune.o : $(mySRCdir)/gemvtune.c
634
 
        $(ICC) -c $(ICCFLAGS) -o $@ -DSYMM_ -DDCPLX $(mySRCdir)/gemvtune.c
635
 
zgemvtune.o : $(mySRCdir)/gemvtune.c
636
 
        $(ICC) -c $(ICCFLAGS) -o $@ -DDCPLX $(mySRCdir)/gemvtune.c
637
 
ATL_zsymv.o : $(mySRCdir)/ATL_symv.c atlas_zmvN.h atlas_zmvS.h
638
 
        $(ZKC) -c -I$(MVTdir) $(zKCFLAGS) -o $@ -DDCPLX $(mySRCdir)/ATL_symv.c
639
 
ATL_zgemv.o : ATL_gemv.c atlas_zmv.h atlas_zmvN.h atlas_zmvT.h
 
1055
zmvttstobj = ATL_zmvtk.o ATL_zmvtk_smallN.o ATL_zmvtk_Mlt16.o
 
1056
zmvttobj = ATL_zmvtk_b0.o ATL_zmvtk_b1.o \
 
1057
           ATL_zmvtk_smallN.o ATL_zmvtk_Mlt16.o
 
1058
zmvntstobj = ATL_zmvnk.o ATL_zmvnk_smallN.o ATL_zmvnk_Mlt16.o
 
1059
zmvntobj = ATL_zmvnk_b0.o ATL_zmvnk_b1.o \
 
1060
           ATL_zmvnk_smallN.o ATL_zmvnk_Mlt16.o
 
1061
 
 
1062
#
 
1063
# This target searches for best kernels and installs them
 
1064
#
 
1065
res/zMVNK.sum : xmvnksearch force_build
 
1066
        ./xmvnksearch -p z
 
1067
        $(MAKE) zmvninstall
 
1068
#
 
1069
# This target uses extract to generate a MVN kernel
 
1070
#
 
1071
zmvnext_C : $(BINdir)/xextract EXTDIR
 
1072
        $(BINdir)/xextract -b $(mySRCdir)/atlas-l2g.base -langC \
 
1073
                           order=$(order) rout=mvn_C nu=$(nu) type=DCPLX \
 
1074
                           -def MU $(mu) $(genflags) -o EXTDIR/zmvn_C.c
 
1075
zmvnext_sse : $(BINdir)/xextract EXTDIR
 
1076
        $(BINdir)/xextract -b $(mySRCdir)/atlas-l2g.base order=$(order) \
 
1077
                           rout=mvn_sse nu=$(nu) type=DCPLX -def MU $(mu) \
 
1078
                           $(genflags) -o EXTDIR/zmvn_sse.c
 
1079
#
 
1080
# This target calls the kernel directly, with the only cache flush coming 
 
1081
# from the size of the operands themselves
 
1082
#
 
1083
zmvnktime : zmvktimeN.o 
 
1084
        rm -f ATL_zmvnk.c ATL_zgemvN.o xzmvnktime
 
1085
        cp -f $(MVNKdir)/$(mvnrout) ATL_zmvnk.c
 
1086
        $(zMVCC) -c $(CDEFS) $(zMVFLAGS) -I$(MVTdir) -o ATL_zmvnk.o \
 
1087
           -DDCPLX ATL_zmvnk.c
 
1088
        $(CLINKER) $(CLINKFLAGS) -o xzmvnktime zmvktimeN.o \
 
1089
                   ATL_zmvnk.o \
 
1090
                   $(TESTlib) $(ATLASlib)
 
1091
        $(ATLRUN) $(MVTdir) xzmvnktime -m $(M) -n $(N) -l $(lda) \
 
1092
                  -C $(flushKB) $(align) $(tflags)
 
1093
#
 
1094
# This target calls the driver (which blocks), with cache flushing
 
1095
#
 
1096
zmvntime : zmvntime.o xmvnhgen
 
1097
        - rm -f $(zmvntobj) ATL_zmvnk.c atlas_zmvn.h \
 
1098
                mvnh.bak ATL_zgemvN.o xzmvntime
 
1099
        - mv $(INCAdir)/atlas_zmvn.h mvnh.bak
 
1100
        ./xmvnhgen -p z -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
1101
        cp -f $(MVNKdir)/$(mvnrout) ATL_zmvnk.c
 
1102
        $(MAKE) $(zmvntobj) ATL_zgemvN.o
 
1103
        $(CLINKER) $(CLINKFLAGS) -o xzmvntime zmvntime.o \
 
1104
                   ATL_zgemvN.o $(zmvntobj) \
 
1105
                   $(TESTlib) $(ATLASlib)
 
1106
        $(ATLRUN) $(MVTdir) xzmvntime -m $(M) -n $(N) -l $(lda) \
 
1107
                  -C $(flushKB) $(align) $(tflags)
 
1108
        - mv mvnh.bak $(INCAdir)/atlas_zmvn.h
 
1109
#
 
1110
# This tester calls the driver routine that blocks
 
1111
#
 
1112
zmvntest : xmvnhgen zmvntest.o
 
1113
        rm -f $(zmvntobj) ATL_zmvnk.c  ATL_zgemvN.o \
 
1114
              xzmvntest
 
1115
        - mv $(INCAdir)/atlas_zmvn.h mvnh.bak
 
1116
        ./xmvnhgen -p z -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
1117
        cp -f $(MVNKdir)/$(mvnrout) ATL_zmvnk.c
 
1118
        $(MAKE) $(zmvntobj) ATL_zgemvN.o
 
1119
        $(CLINKER) $(CLINKFLAGS) -o xzmvntest zmvntest.o \
 
1120
                   ATL_zgemvN.o $(zmvntobj) \
 
1121
                   $(TESTlib) $(ATLASlib)
 
1122
        $(ATLRUN) $(MVTdir) xzmvntest -m 1 $(Mt) -n 1 $(Nt) $(incs) \
 
1123
                  -l 1 $(ldat) $(align) -a $(zalphas) -b $(zbetas) 
 
1124
        - mv mvnh.bak $(INCAdir)/atlas_zmvn.h
 
1125
 
 
1126
zmvnktest : xmvnhgen
 
1127
        rm -f $(zmvntstobj) ATL_zmvnk.c zmvnktest.o \
 
1128
              ATL_zgemvN.o xzmvnktest
 
1129
        - mv $(INCAdir)/atlas_zmvn.h mvnh.bak
 
1130
        ./xmvnhgen -p z -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
1131
        cp -f $(MVNKdir)/$(mvnrout) ATL_zmvnk.c
 
1132
        $(MAKE) zmvnktest.o $(zmvntstobj) beta=$(beta)
 
1133
        $(CLINKER) $(CLINKFLAGS) -o xzmvnktest zmvnktest.o \
 
1134
                   $(zmvntstobj) $(TESTlib) $(ATLASlib)
 
1135
        $(ATLRUN) $(MVTdir) xzmvnktest -m 1 $(Mt) -n 1 $(Nt) \
 
1136
                  -l 1 $(ldat) $(align)
 
1137
        - mv mvnh.bak $(INCAdir)/atlas_zmvn.h
 
1138
 
 
1139
zmvntime.o : $(mySRCdir)/mvktime.c
 
1140
        $(KC) -c $(KCFLAGS) -o $@ -DDCPLX   $(mySRCdir)/mvktime.c
 
1141
zmvtimeN.o : $(mySRCdir)/mvktime.c
 
1142
        $(KC) -c $(KCFLAGS) -o $@ -DDCPLX   $(mySRCdir)/mvktime.c
 
1143
 
 
1144
zmvktimeN.o : $(mySRCdir)/mvktime.c
 
1145
        $(KC) -c $(KCFLAGS) -o $@ -DDCPLX   -DTIME_KERNEL $(mySRCdir)/mvktime.c
 
1146
zmvnktest.o : $(mySRCdir)/mvnktest.c
 
1147
        $(KC) -c $(KCFLAGS) -o $@ -DDCPLX -DBETA$(beta)   $(mySRCdir)/mvnktest.c
 
1148
zmvntest.o : $(mySRCdir)/mvntest.c
 
1149
        $(KC) -c $(KCFLAGS) -o $@ -DDCPLX $(mySRCdir)/mvntest.c
 
1150
 
 
1151
ATL_zgemvN.o : $(mvSRCdir)/ATL_gemvN.c
 
1152
        $(DKC) -c $(DKCFLAGS) $(CDEFS) -I$(MVTdir) \
 
1153
                       -o $@ -DDCPLX $(mvSRCdir)/ATL_gemvN.c
 
1154
#
 
1155
# This target searches for best kernels and installs them
 
1156
#
 
1157
res/zMVTK.sum : xmvtksearch force_build
 
1158
        ./xmvtksearch -p z
 
1159
        $(MAKE) zmvtinstall
 
1160
#
 
1161
# This target uses extract to generate a MVT kernel
 
1162
#
 
1163
zmvtext_C : $(BINdir)/xextract EXTDIR
 
1164
        $(BINdir)/xextract -b $(mySRCdir)/atlas-l2g.base -langC \
 
1165
                           order=$(order) rout=mvt_C nu=$(nu) type=DCPLX \
 
1166
                           -def MU $(mu) $(genflags) -o EXTDIR/zmvt_C.c
 
1167
zmvtext_sse : $(BINdir)/xextract EXTDIR
 
1168
        $(BINdir)/xextract -b $(mySRCdir)/atlas-l2g.base order=$(order) \
 
1169
                           rout=mvt_sse nu=$(nu) type=DCPLX -def MU $(mu) \
 
1170
                           $(genflags) -o EXTDIR/zmvt_sse.c
 
1171
#
 
1172
# This target calls the kernel directly, with the only cache flush coming 
 
1173
# from the size of the operands themselves
 
1174
#
 
1175
zmvtktime : zmvktimeT.o 
 
1176
        rm -f ATL_zmvtk.c ATL_zgemvT.o xzmvtktime
 
1177
        cp -f $(MVTKdir)/$(mvtrout) ATL_zmvtk.c
 
1178
        $(zMVCC) -c $(CDEFS) $(zMVFLAGS) -I$(MVTdir) -o ATL_zmvtk.o \
 
1179
           -DDCPLX ATL_zmvtk.c
 
1180
        $(CLINKER) $(CLINKFLAGS) -o xzmvtktime zmvktimeT.o \
 
1181
                   ATL_zmvtk.o \
 
1182
                   $(TESTlib) $(ATLASlib)
 
1183
        $(ATLRUN) $(MVTdir) xzmvtktime -m $(M) -n $(N) -l $(lda) \
 
1184
                  -C $(flushKB) $(align) $(tflags)
 
1185
#
 
1186
# This target calls the driver (which blocks), with cache flushing
 
1187
#
 
1188
zmvttime : zmvttime.o xmvthgen
 
1189
        - rm -f $(zmvttobj) ATL_zmvtk.c atlas_zmvt.h \
 
1190
                mvth.bak ATL_zgemvT.o xzmvttime
 
1191
        - mv $(INCAdir)/atlas_zmvt.h mvth.bak
 
1192
        ./xmvthgen -p z -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
1193
        cp -f $(MVTKdir)/$(mvtrout) ATL_zmvtk.c
 
1194
        $(MAKE) $(zmvttobj) ATL_zgemvT.o
 
1195
        $(CLINKER) $(CLINKFLAGS) -o xzmvttime zmvttime.o \
 
1196
                   ATL_zgemvT.o $(zmvttobj) \
 
1197
                   $(TESTlib) $(ATLASlib)
 
1198
        $(ATLRUN) $(MVTdir) xzmvttime -m $(M) -n $(N) -l $(lda) \
 
1199
                  -C $(flushKB) $(align) $(tflags)
 
1200
        - mv mvth.bak $(INCAdir)/atlas_zmvt.h
 
1201
#
 
1202
# This tester calls the driver routine that blocks
 
1203
#
 
1204
zmvttest : xmvthgen zmvttest.o
 
1205
        rm -f $(zmvttobj) ATL_zmvtk.c  ATL_zgemvT.o \
 
1206
              xzmvttest
 
1207
        - mv $(INCAdir)/atlas_zmvt.h mvth.bak
 
1208
        ./xmvthgen -p z -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
1209
        cp -f $(MVTKdir)/$(mvtrout) ATL_zmvtk.c
 
1210
        $(MAKE) $(zmvttobj) ATL_zgemvT.o
 
1211
        $(CLINKER) $(CLINKFLAGS) -o xzmvttest zmvttest.o \
 
1212
                   ATL_zgemvT.o $(zmvttobj) \
 
1213
                   $(TESTlib) $(ATLASlib)
 
1214
        $(ATLRUN) $(MVTdir) xzmvttest -m 1 $(Mt) -n 1 $(Nt) $(incs) \
 
1215
                  -l 1 $(ldat) $(align) -a $(zalphas) -b $(zbetas) 
 
1216
        - mv mvth.bak $(INCAdir)/atlas_zmvt.h
 
1217
 
 
1218
zmvtktest : xmvthgen
 
1219
        rm -f $(zmvttstobj) ATL_zmvtk.c zmvtktest.o \
 
1220
              ATL_zgemvT.o xzmvtktest
 
1221
        - mv $(INCAdir)/atlas_zmvt.h mvth.bak
 
1222
        ./xmvthgen -p z -l $(l1mul) -m $(mu) -n $(nu) -f $(iflag) $(ntlb)
 
1223
        cp -f $(MVTKdir)/$(mvtrout) ATL_zmvtk.c
 
1224
        $(MAKE) zmvtktest.o $(zmvttstobj) beta=$(beta)
 
1225
        $(CLINKER) $(CLINKFLAGS) -o xzmvtktest zmvtktest.o \
 
1226
                   $(zmvttstobj) $(TESTlib) $(ATLASlib)
 
1227
        $(ATLRUN) $(MVTdir) xzmvtktest -m 1 $(Mt) -n 1 $(Nt) \
 
1228
                  -l 1 $(ldat) $(align)
 
1229
        - mv mvth.bak $(INCAdir)/atlas_zmvt.h
 
1230
 
 
1231
zmvttime.o : $(mySRCdir)/mvktime.c
 
1232
        $(KC) -c $(KCFLAGS) -o $@ -DDCPLX -DATL_TRANS_ $(mySRCdir)/mvktime.c
 
1233
zmvtimeT.o : $(mySRCdir)/mvktime.c
 
1234
        $(KC) -c $(KCFLAGS) -o $@ -DDCPLX -DATL_TRANS_ $(mySRCdir)/mvktime.c
 
1235
 
 
1236
zmvktimeT.o : $(mySRCdir)/mvktime.c
 
1237
        $(KC) -c $(KCFLAGS) -o $@ -DDCPLX -DATL_TRANS_ -DTIME_KERNEL $(mySRCdir)/mvktime.c
 
1238
zmvtktest.o : $(mySRCdir)/mvtktest.c
 
1239
        $(KC) -c $(KCFLAGS) -o $@ -DDCPLX -DBETA$(beta) -DATL_TRANS_ $(mySRCdir)/mvtktest.c
 
1240
zmvttest.o : $(mySRCdir)/mvttest.c
 
1241
        $(KC) -c $(KCFLAGS) -o $@ -DDCPLX $(mySRCdir)/mvttest.c
 
1242
 
 
1243
ATL_zgemvT.o : $(mvSRCdir)/ATL_gemvT.c
 
1244
        $(DKC) -c $(DKCFLAGS) $(CDEFS) -I$(MVTdir) \
 
1245
                       -o $@ -DDCPLX $(mvSRCdir)/ATL_gemvT.c
 
1246
 
 
1247
ATL_zmvtk_smallN.o : $(mvSRCdir)/ATL_mvtk_smallN.c
 
1248
        $(DKC) -c $(DKCFLAGS) $(CDEFS) -I$(MVTdir) -DTUNING=1 \
 
1249
                       -o $@ -DDCPLX $(mvSRCdir)/ATL_mvtk_smallN.c
 
1250
ATL_zmvtk_Mlt16.o : $(mvSRCdir)/ATL_mvtk_Mlt16.c
 
1251
        $(DKC) -c $(DKCFLAGS) $(CDEFS) -I$(MVTdir) -DTUNING=1 \
 
1252
                       -o $@ -DDCPLX $(mvSRCdir)/ATL_mvtk_Mlt16.c
 
1253
ATL_zmvtk_b0.o : ATL_zmvtk.c
 
1254
        $(zMVCC) $(zMVFLAGS) $(CDEFS) $(EXTFLAGS) -DDCPLX \
 
1255
                 -DBETA0 -DATL_UGEMV=ATL_UGEMVTK_b0 -o ATL_zmvtk_b0.o \
 
1256
                 -c ATL_zmvtk.c
 
1257
ATL_zmvtk_b1.o : ATL_zmvtk.c
 
1258
        $(zMVCC) $(zMVFLAGS) $(CDEFS) $(EXTFLAGS) -DDCPLX \
 
1259
                 -DBETA1 -DATL_UGEMV=ATL_UGEMVTK -o ATL_zmvtk_b1.o \
 
1260
                 -c ATL_zmvtk.c
 
1261
ATL_zmvtk.o : ATL_zmvtk.c
 
1262
        $(zMVCC) $(zMVFLAGS) $(CDEFS) $(EXTFLAGS) -DDCPLX \
 
1263
                 -DBETA$(beta) -o ATL_zmvtk.o -c ATL_zmvtk.c
 
1264
 
 
1265
ATL_zmvnk_smallN.o : $(mvSRCdir)/ATL_mvnk_smallN.c
 
1266
        $(DKC) -c $(DKCFLAGS) $(CDEFS) -I$(MVTdir) -DTUNING=1 \
 
1267
                       -o $@ -DDCPLX $(mvSRCdir)/ATL_mvnk_smallN.c
 
1268
ATL_zmvnk_Mlt16.o : $(mvSRCdir)/ATL_mvnk_Mlt16.c
 
1269
        $(DKC) -c $(DKCFLAGS) $(CDEFS) -I$(MVTdir) -DTUNING=1 \
 
1270
                       -o $@ -DDCPLX $(mvSRCdir)/ATL_mvnk_Mlt16.c
 
1271
ATL_zmvnk_b0.o : ATL_zmvnk.c
 
1272
        $(zMVCC) $(zMVFLAGS) $(CDEFS) $(EXTFLAGS) -DDCPLX \
 
1273
                 -DBETA0 -DATL_UGEMV=ATL_UGEMVNK_b0 -o ATL_zmvnk_b0.o \
 
1274
                 -c ATL_zmvnk.c
 
1275
ATL_zmvnk_b1.o : ATL_zmvnk.c
 
1276
        $(zMVCC) $(zMVFLAGS) $(CDEFS) $(EXTFLAGS) -DDCPLX \
 
1277
                 -DBETA1 -DATL_UGEMV=ATL_UGEMVNK -o ATL_zmvnk_b1.o \
 
1278
                 -c ATL_zmvnk.c
 
1279
ATL_zmvnk.o : ATL_zmvnk.c
 
1280
        $(zMVCC) $(zMVFLAGS) $(CDEFS) $(EXTFLAGS) -DDCPLX \
 
1281
                 -DBETA$(beta) -o ATL_zmvnk.o -c ATL_zmvnk.c
 
1282
 
 
1283
ATL_zgemv.o : ATL_gemv.c atlas_zmvn.h atlas_zmvt.h
640
1284
        $(ZKC) -c -I$(MVTdir) $(zKCFLAGS) -o $@ -DDCPLX ATL_gemv.c
641
1285
ATL_zgemvN_b0.o : ATL_zgemvN.c
642
1286
        $(zMVCC) -c -I$(MVTdir) $(zMVFLAGS) $(CDEFS) $(EXTFLAGS) -o $@ \
687
1331
        $(zMVCC) -c $(zMVFLAGS) $(CDEFS) $(EXTFLAGS) -I$(MVTdir) -o $@ \
688
1332
              -DDCPLX -DBETAXI0 -DALPHA1 -DConj_ ATL_zgemvN.c
689
1333
 
690
 
res/zMVRES : xmvsearch force_build
691
 
        ./xmvsearch -p z
692
 
zinstall : xccobj
693
 
        cp -f $(mySRCdir)/CASES/$(mvNrout) $(GMVdir)/ATL_zgemvN.c
694
 
        cp -f $(mySRCdir)/CASES/$(mvTrout) $(GMVdir)/ATL_zgemvT.c
695
 
        cp -f $(mySRCdir)/CASES/$(mvSrout) $(GMVdir)/ATL_zgemvS.c
696
 
        cp -f Make_zmv $(GMVdir)/.
697
 
        -@ cp -f xccobj $(GMVdir)/.
698
 
        -@ cp -f xccobj.exe $(GMVdir)/.
699
 
        cp -f atlas_zmv.h $(INCAdir)/.
700
 
        cp -f atlas_zmv[N,T,S].h $(INCAdir)/.
701
 
        touch $(INCSdir)/atlas_mv.h
 
1334
zmvtoutd :
 
1335
        mkdir zmvtoutd
 
1336
zmvtinstall : xccobj zmvtoutd xmvthgen force_build
 
1337
        rm -f zmvtoutd/*
 
1338
        if [ -s "$(GMVdir)/Make_zmvt" ]; then \
 
1339
           cd  $(GMVdir) ; $(MAKE) -f Make_zmvt killall ; \
 
1340
           rm -f $(GMVdir)/Make_zmvt ; \
 
1341
        fi
 
1342
        ./xmvthgen -p z -F res/zMVTK.sum -d zmvtoutd
 
1343
        cp -f zmvtoutd/Make_zmvt $(GMVdir)/.
 
1344
        cp zmvtoutd/*.c $(GMVdir)/.
 
1345
        cp -f zmvtoutd/*.h $(INCAdir)/.
 
1346
        if [ -s "xccobj.exe" ] ; then \
 
1347
           cp -f xccobj.exe $(GMVdir)/. ; \
 
1348
        elif [ -s "xccobj" ]; then \
 
1349
           cp -f xccobj $(GMVdir)/. ; \
 
1350
        fi
 
1351
        touch $(INCSdir)/atlas_mv.h
 
1352
        rm -f zmvtoutd/* ; rmdir zmvtoutd
 
1353
zmvnoutd :
 
1354
        mkdir zmvnoutd
 
1355
zmvninstall : xccobj zmvnoutd xmvnhgen force_build
 
1356
        rm -f zmvnoutd/*
 
1357
        if [ -s "$(GMVdir)/Make_zmvn" ]; then \
 
1358
           cd  $(GMVdir) ; $(MAKE) -f Make_zmvn killall ; \
 
1359
           rm -f $(GMVdir)/Make_zmvn ; \
 
1360
        fi
 
1361
        ./xmvnhgen -p z -F res/zMVNK.sum -d zmvnoutd
 
1362
        cp -f zmvnoutd/Make_zmvn $(GMVdir)/.
 
1363
        cp zmvnoutd/*.c $(GMVdir)/.
 
1364
        cp -f zmvnoutd/*.h $(INCAdir)/.
 
1365
        if [ -s "xccobj.exe" ] ; then \
 
1366
           cp -f xccobj.exe $(GMVdir)/. ; \
 
1367
        elif [ -s "xccobj" ]; then \
 
1368
           cp -f xccobj $(GMVdir)/. ; \
 
1369
        fi
 
1370
        touch $(INCSdir)/atlas_mv.h
 
1371
        rm -f zmvnoutd/* ; rmdir zmvnoutd
702
1372
zl1lib :
703
1373
        cd $(BINdir) ; $(MAKE) zl1lib
704
1374
ztstlib :
705
1375
        cd $(BINdir) ; $(MAKE) ztstlib
706
 
zcases.dsc : $(BINdir)/xsubstr $(mySRCdir)/CASES/zcases.dsc
707
 
        $(BINdir)/xsubstr -i $(mySRCdir)/CASES/zcases.dsc -o $@ \
708
 
           -s '^gcc' '$(GOODGCC)' -s ' gcc' ' $(GOODGCC)'
709
 
        
710
1376
$(BINdir)/xccobj :
711
1377
        cd $(BINdir) ; $(MAKE) xccobj
712
1378
xccobj : $(BINdir)/xccobj
714
1380
        -@ cp -f $(BINdir)/xccobj.exe .
715
1381
$(BINdir)/xsubstr:
716
1382
        cd $(BINdir) ; $(MAKE) xsubstr
 
1383
EXTDIR :
 
1384
        mkdir EXTDIR