You can not select more than 25 topics Topics must start with a chinese character,a letter or number, can include dashes ('-') and can be up to 35 characters long.

Makefile.L1 30 kB

6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
6 years ago
11 years ago
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961
  1. ###############################################################################
  2. # Copyright (c) 2025 The OpenBLAS Project
  3. # All rights reserved.
  4. # Redistribution and use in source and binary forms, with or without
  5. # modification, are permitted provided that the following conditions are
  6. # met:
  7. # 1. Redistributions of source code must retain the above copyright
  8. # notice, this list of conditions and the following disclaimer.
  9. # 2. Redistributions in binary form must reproduce the above copyright
  10. # notice, this list of conditions and the following disclaimer in
  11. # the documentation and/or other materials provided with the
  12. # distribution.
  13. # 3. Neither the name of the OpenBLAS project nor the names of
  14. # its contributors may be used to endorse or promote products
  15. # derived from this software without specific prior written permission.
  16. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  17. # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  18. # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  19. # ARE DISCLAIMED. IN NO EVENT SHALL THE OPENBLAS PROJECT OR CONTRIBUTORS BE
  20. # LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  21. # CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  22. # SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  23. # INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  24. # CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  25. # ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  26. # POSSIBILITY OF SUCH DAMAGE.
  27. ###############################################################################
  28. FMAFLAG=
  29. ifndef OLDGCC
  30. ifdef HAVE_FMA3
  31. FMAFLAG = -mfma
  32. endif
  33. endif
  34. ### AMAX ###
  35. ifndef SAMAXKERNEL
  36. SAMAXKERNEL = amax.S
  37. endif
  38. ifndef DAMAXKERNEL
  39. DAMAXKERNEL = amax.S
  40. endif
  41. ifndef QAMAXKERNEL
  42. QAMAXKERNEL = amax.S
  43. endif
  44. ifndef CAMAXKERNEL
  45. CAMAXKERNEL = zamax.S
  46. endif
  47. ifndef ZAMAXKERNEL
  48. ZAMAXKERNEL = zamax.S
  49. endif
  50. ifndef XAMAXKERNEL
  51. XAMAXKERNEL = zamax.S
  52. endif
  53. ### AMIN ###
  54. ifndef SAMINKERNEL
  55. SAMINKERNEL = amin.S
  56. endif
  57. ifndef DAMINKERNEL
  58. DAMINKERNEL = amin.S
  59. endif
  60. ifndef QAMINKERNEL
  61. QAMINKERNEL = amin.S
  62. endif
  63. ifndef CAMINKERNEL
  64. CAMINKERNEL = zamin.S
  65. endif
  66. ifndef ZAMINKERNEL
  67. ZAMINKERNEL = zamin.S
  68. endif
  69. ifndef XAMINKERNEL
  70. XAMINKERNEL = zamin.S
  71. endif
  72. ### MAX ###
  73. ifndef SMAXKERNEL
  74. SMAXKERNEL = max.S
  75. endif
  76. ifndef DMAXKERNEL
  77. DMAXKERNEL = max.S
  78. endif
  79. ifndef QMAXKERNEL
  80. QMAXKERNEL = max.S
  81. endif
  82. ### MIN ###
  83. ifndef SMINKERNEL
  84. SMINKERNEL = min.S
  85. endif
  86. ifndef DMINKERNEL
  87. DMINKERNEL = min.S
  88. endif
  89. ifndef QMINKERNEL
  90. QMINKERNEL = min.S
  91. endif
  92. ### IAMAX ###
  93. ifndef ISAMAXKERNEL
  94. ISAMAXKERNEL = iamax.S
  95. endif
  96. ifndef IDAMAXKERNEL
  97. IDAMAXKERNEL = iamax.S
  98. endif
  99. ifndef IQAMAXKERNEL
  100. IQAMAXKERNEL = iamax.S
  101. endif
  102. ifndef ICAMAXKERNEL
  103. ICAMAXKERNEL = izamax.S
  104. endif
  105. ifndef IZAMAXKERNEL
  106. IZAMAXKERNEL = izamax.S
  107. endif
  108. ifndef IXAMAXKERNEL
  109. IXAMAXKERNEL = izamax.S
  110. endif
  111. ### IAMIN ###
  112. ifndef ISAMINKERNEL
  113. ISAMINKERNEL = iamin.S
  114. endif
  115. ifndef IDAMINKERNEL
  116. IDAMINKERNEL = iamin.S
  117. endif
  118. ifndef IQAMINKERNEL
  119. IQAMINKERNEL = iamin.S
  120. endif
  121. ifndef ICAMINKERNEL
  122. ICAMINKERNEL = izamin.S
  123. endif
  124. ifndef IZAMINKERNEL
  125. IZAMINKERNEL = izamin.S
  126. endif
  127. ifndef IXAMINKERNEL
  128. IXAMINKERNEL = izamin.S
  129. endif
  130. ### IMAX ###
  131. ifndef ISMAXKERNEL
  132. ISMAXKERNEL = iamax.S
  133. endif
  134. ifndef IDMAXKERNEL
  135. IDMAXKERNEL = iamax.S
  136. endif
  137. ifndef IQMAXKERNEL
  138. IQMAXKERNEL = iamax.S
  139. endif
  140. ### IMIN ###
  141. ifndef ISMINKERNEL
  142. ISMINKERNEL = iamin.S
  143. endif
  144. ifndef IDMINKERNEL
  145. IDMINKERNEL = iamin.S
  146. endif
  147. ifndef IQMINKERNEL
  148. IQMINKERNEL = iamin.S
  149. endif
  150. ### ASUM ###
  151. ifndef SASUMKERNEL
  152. SASUMKERNEL = asum.S
  153. endif
  154. ifndef DASUMKERNEL
  155. DASUMKERNEL = asum.S
  156. endif
  157. ifndef CASUMKERNEL
  158. CASUMKERNEL = zasum.S
  159. endif
  160. ifndef ZASUMKERNEL
  161. ZASUMKERNEL = zasum.S
  162. endif
  163. ifndef QASUMKERNEL
  164. QASUMKERNEL = asum.S
  165. endif
  166. ifndef XASUMKERNEL
  167. XASUMKERNEL = zasum.S
  168. endif
  169. ### AXPY ###
  170. ifndef SAXPYKERNEL
  171. SAXPYKERNEL = axpy.S
  172. endif
  173. ifndef DAXPYKERNEL
  174. DAXPYKERNEL = axpy.S
  175. endif
  176. ifndef CAXPYKERNEL
  177. CAXPYKERNEL = zaxpy.S
  178. endif
  179. ifndef ZAXPYKERNEL
  180. ZAXPYKERNEL = zaxpy.S
  181. endif
  182. ifndef QAXPYKERNEL
  183. QAXPYKERNEL = axpy.S
  184. endif
  185. ifndef XAXPYKERNEL
  186. XAXPYKERNEL = zaxpy.S
  187. endif
  188. ### COPY ###
  189. ifndef SCOPYKERNEL
  190. SCOPYKERNEL = copy.S
  191. endif
  192. ifndef DCOPYKERNEL
  193. DCOPYKERNEL = copy.S
  194. endif
  195. ifndef CCOPYKERNEL
  196. CCOPYKERNEL = zcopy.S
  197. endif
  198. ifndef ZCOPYKERNEL
  199. ZCOPYKERNEL = zcopy.S
  200. endif
  201. ifndef QCOPYKERNEL
  202. QCOPYKERNEL = copy.S
  203. endif
  204. ifndef XCOPYKERNEL
  205. XCOPYKERNEL = zcopy.S
  206. endif
  207. ### DOT ###
  208. ifndef SDOTKERNEL
  209. SDOTKERNEL = dot.S
  210. endif
  211. ifndef DDOTKERNEL
  212. DDOTKERNEL = dot.S
  213. endif
  214. ifndef CDOTKERNEL
  215. CDOTKERNEL = zdot.S
  216. endif
  217. ifndef ZDOTKERNEL
  218. ZDOTKERNEL = zdot.S
  219. endif
  220. ifndef QDOTKERNEL
  221. QDOTKERNEL = dot.S
  222. endif
  223. ifndef XDOTKERNEL
  224. XDOTKERNEL = zdot.S
  225. endif
  226. ifeq ($(BUILD_BFLOAT16),1)
  227. ifndef BSCALKERNEL
  228. BSCALKERNEL = ../generic/scal.c
  229. endif
  230. ifndef SBDOTKERNEL
  231. SBDOTKERNEL = ../x86_64/sbdot.c
  232. endif
  233. ifndef TOBF16KERNEL
  234. TOBF16KERNEL = ../x86_64/tobf16.c
  235. endif
  236. ifndef BF16TOKERNEL
  237. BF16TOKERNEL = ../x86_64/bf16to.c
  238. endif
  239. endif
  240. ### NRM2 ###
  241. ifndef SNRM2KERNEL
  242. SNRM2KERNEL = nrm2.S
  243. endif
  244. ifndef DNRM2KERNEL
  245. DNRM2KERNEL = nrm2.S
  246. endif
  247. ifndef QNRM2KERNEL
  248. QNRM2KERNEL = nrm2.S
  249. endif
  250. ifndef CNRM2KERNEL
  251. CNRM2KERNEL = znrm2.S
  252. endif
  253. ifndef ZNRM2KERNEL
  254. ZNRM2KERNEL = znrm2.S
  255. endif
  256. ifndef XNRM2KERNEL
  257. XNRM2KERNEL = znrm2.S
  258. endif
  259. ### ROT ###
  260. ifndef SROTKERNEL
  261. SROTKERNEL = rot.S
  262. endif
  263. ifndef DROTKERNEL
  264. DROTKERNEL = rot.S
  265. endif
  266. ifndef QROTKERNEL
  267. QROTKERNEL = rot.S
  268. endif
  269. ifndef CROTKERNEL
  270. CROTKERNEL = zrot.S
  271. endif
  272. ifndef ZROTKERNEL
  273. ZROTKERNEL = zrot.S
  274. endif
  275. ifndef XROTKERNEL
  276. XROTKERNEL = zrot.S
  277. endif
  278. ifndef SROTMKERNEL
  279. SROTMKERNEL = rotm.S
  280. endif
  281. ifndef DROTMKERNEL
  282. DROTMKERNEL = rotm.S
  283. endif
  284. ifndef QROTMKERNEL
  285. QROTMKERNEL = rotm.S
  286. endif
  287. ### SCAL ###
  288. ifndef SSCALKERNEL
  289. SSCALKERNEL = scal.S
  290. endif
  291. ifndef DSCALKERNEL
  292. DSCALKERNEL = scal.S
  293. endif
  294. ifndef CSCALKERNEL
  295. CSCALKERNEL = zscal.S
  296. endif
  297. ifndef ZSCALKERNEL
  298. ZSCALKERNEL = zscal.S
  299. endif
  300. ifndef QSCALKERNEL
  301. QSCALKERNEL = scal.S
  302. endif
  303. ifndef XSCALKERNEL
  304. XSCALKERNEL = zscal.S
  305. endif
  306. ### SUM ###
  307. ifndef SSUMKERNEL
  308. SSUMKERNEL = sum.S
  309. endif
  310. ifndef DSUMKERNEL
  311. DSUMKERNEL = sum.S
  312. endif
  313. ifndef CSUMKERNEL
  314. CSUMKERNEL = zsum.S
  315. endif
  316. ifndef ZSUMKERNEL
  317. ZSUMKERNEL = zsum.S
  318. endif
  319. ifndef QSUMKERNEL
  320. QSUMKERNEL = sum.S
  321. endif
  322. ifndef XSUMKERNEL
  323. XSUMKERNEL = zsum.S
  324. endif
  325. ### SWAP ###
  326. ifndef SSWAPKERNEL
  327. SSWAPKERNEL = swap.S
  328. endif
  329. ifndef DSWAPKERNEL
  330. DSWAPKERNEL = swap.S
  331. endif
  332. ifndef CSWAPKERNEL
  333. CSWAPKERNEL = zswap.S
  334. endif
  335. ifndef ZSWAPKERNEL
  336. ZSWAPKERNEL = zswap.S
  337. endif
  338. ifndef QSWAPKERNEL
  339. QSWAPKERNEL = swap.S
  340. endif
  341. ifndef XSWAPKERNEL
  342. XSWAPKERNEL = zswap.S
  343. endif
  344. ### GEMV ###
  345. ifndef SGEMVNKERNEL
  346. SGEMVNKERNEL = gemv_n.S
  347. endif
  348. ifndef SGEMVTKERNEL
  349. SGEMVTKERNEL = gemv_t.S
  350. endif
  351. ifndef DGEMVNKERNEL
  352. DGEMVNKERNEL = gemv_n.S
  353. endif
  354. ifndef DGEMVTKERNEL
  355. DGEMVTKERNEL = gemv_t.S
  356. endif
  357. ifndef CGEMVNKERNEL
  358. CGEMVNKERNEL = zgemv_n.S
  359. endif
  360. ifndef CGEMVTKERNEL
  361. CGEMVTKERNEL = zgemv_t.S
  362. endif
  363. ifndef ZGEMVNKERNEL
  364. ZGEMVNKERNEL = zgemv_n.S
  365. endif
  366. ifndef ZGEMVTKERNEL
  367. ZGEMVTKERNEL = zgemv_t.S
  368. endif
  369. ifndef QGEMVNKERNEL
  370. QGEMVNKERNEL = gemv_n.S
  371. endif
  372. ifndef QGEMVTKERNEL
  373. QGEMVTKERNEL = gemv_t.S
  374. endif
  375. ifndef XGEMVNKERNEL
  376. XGEMVNKERNEL = zgemv_n.S
  377. endif
  378. ifndef XGEMVTKERNEL
  379. XGEMVTKERNEL = zgemv_t.S
  380. endif
  381. ifndef SCABS_KERNEL
  382. SCABS_KERNEL = cabs.S
  383. endif
  384. ifndef DCABS_KERNEL
  385. DCABS_KERNEL = cabs.S
  386. endif
  387. ifndef QCABS_KERNEL
  388. QCABS_KERNEL = cabs.S
  389. endif
  390. ifndef LSAME_KERNEL
  391. LSAME_KERNEL = lsame.S
  392. endif
  393. ### AXPBY ###
  394. ifndef SAXPBYKERNEL
  395. SAXPBYKERNEL = ../arm/axpby.c
  396. endif
  397. ifndef DAXPBYKERNEL
  398. DAXPBYKERNEL = ../arm/axpby.c
  399. endif
  400. ifndef CAXPBYKERNEL
  401. CAXPBYKERNEL = ../arm/zaxpby.c
  402. endif
  403. ifndef ZAXPBYKERNEL
  404. ZAXPBYKERNEL = ../arm/zaxpby.c
  405. endif
  406. SBLASOBJS += \
  407. samax_k$(TSUFFIX).$(SUFFIX) samin_k$(TSUFFIX).$(SUFFIX) smax_k$(TSUFFIX).$(SUFFIX) smin_k$(TSUFFIX).$(SUFFIX) \
  408. isamax_k$(TSUFFIX).$(SUFFIX) isamin_k$(TSUFFIX).$(SUFFIX) ismax_k$(TSUFFIX).$(SUFFIX) ismin_k$(TSUFFIX).$(SUFFIX) \
  409. sasum_k$(TSUFFIX).$(SUFFIX) ssum_k$(TSUFFIX).$(SUFFIX) saxpy_k$(TSUFFIX).$(SUFFIX) scopy_k$(TSUFFIX).$(SUFFIX) \
  410. sdot_k$(TSUFFIX).$(SUFFIX) sdsdot_k$(TSUFFIX).$(SUFFIX) dsdot_k$(TSUFFIX).$(SUFFIX) \
  411. snrm2_k$(TSUFFIX).$(SUFFIX) srot_k$(TSUFFIX).$(SUFFIX) sscal_k$(TSUFFIX).$(SUFFIX) sswap_k$(TSUFFIX).$(SUFFIX) \
  412. saxpby_k$(TSUFFIX).$(SUFFIX) srotm_k$(TSUFFIX).$(SUFFIX)
  413. DBLASOBJS += \
  414. damax_k$(TSUFFIX).$(SUFFIX) damin_k$(TSUFFIX).$(SUFFIX) dmax_k$(TSUFFIX).$(SUFFIX) dmin_k$(TSUFFIX).$(SUFFIX) \
  415. idamax_k$(TSUFFIX).$(SUFFIX) idamin_k$(TSUFFIX).$(SUFFIX) idmax_k$(TSUFFIX).$(SUFFIX) idmin_k$(TSUFFIX).$(SUFFIX) \
  416. dasum_k$(TSUFFIX).$(SUFFIX) daxpy_k$(TSUFFIX).$(SUFFIX) dcopy_k$(TSUFFIX).$(SUFFIX) ddot_k$(TSUFFIX).$(SUFFIX) \
  417. dnrm2_k$(TSUFFIX).$(SUFFIX) drot_k$(TSUFFIX).$(SUFFIX) dscal_k$(TSUFFIX).$(SUFFIX) dswap_k$(TSUFFIX).$(SUFFIX) \
  418. daxpby_k$(TSUFFIX).$(SUFFIX) dsum_k$(TSUFFIX).$(SUFFIX) drotm_k$(TSUFFIX).$(SUFFIX)
  419. QBLASOBJS += \
  420. qamax_k$(TSUFFIX).$(SUFFIX) qamin_k$(TSUFFIX).$(SUFFIX) qmax_k$(TSUFFIX).$(SUFFIX) qmin_k$(TSUFFIX).$(SUFFIX) \
  421. iqamax_k$(TSUFFIX).$(SUFFIX) iqamin_k$(TSUFFIX).$(SUFFIX) iqmax_k$(TSUFFIX).$(SUFFIX) iqmin_k$(TSUFFIX).$(SUFFIX) \
  422. qasum_k$(TSUFFIX).$(SUFFIX) qaxpy_k$(TSUFFIX).$(SUFFIX) qcopy_k$(TSUFFIX).$(SUFFIX) qdot_k$(TSUFFIX).$(SUFFIX) \
  423. qnrm2_k$(TSUFFIX).$(SUFFIX) qrot_k$(TSUFFIX).$(SUFFIX) qscal_k$(TSUFFIX).$(SUFFIX) qswap_k$(TSUFFIX).$(SUFFIX) \
  424. qsum_k$(TSUFFIX).$(SUFFIX) qrotm_k$(TSUFFIX).$(SUFFIX)
  425. CBLASOBJS += \
  426. camax_k$(TSUFFIX).$(SUFFIX) camin_k$(TSUFFIX).$(SUFFIX) icamax_k$(TSUFFIX).$(SUFFIX) icamin_k$(TSUFFIX).$(SUFFIX) \
  427. casum_k$(TSUFFIX).$(SUFFIX) caxpy_k$(TSUFFIX).$(SUFFIX) caxpyc_k$(TSUFFIX).$(SUFFIX) ccopy_k$(TSUFFIX).$(SUFFIX) \
  428. cdotc_k$(TSUFFIX).$(SUFFIX) cdotu_k$(TSUFFIX).$(SUFFIX) cnrm2_k$(TSUFFIX).$(SUFFIX) csrot_k$(TSUFFIX).$(SUFFIX) \
  429. cscal_k$(TSUFFIX).$(SUFFIX) cswap_k$(TSUFFIX).$(SUFFIX) caxpby_k$(TSUFFIX).$(SUFFIX) csum_k$(TSUFFIX).$(SUFFIX)
  430. ZBLASOBJS += \
  431. zamax_k$(TSUFFIX).$(SUFFIX) zamin_k$(TSUFFIX).$(SUFFIX) izamax_k$(TSUFFIX).$(SUFFIX) izamin_k$(TSUFFIX).$(SUFFIX) \
  432. zasum_k$(TSUFFIX).$(SUFFIX) zaxpy_k$(TSUFFIX).$(SUFFIX) zaxpyc_k$(TSUFFIX).$(SUFFIX) zcopy_k$(TSUFFIX).$(SUFFIX) \
  433. zdotc_k$(TSUFFIX).$(SUFFIX) zdotu_k$(TSUFFIX).$(SUFFIX) znrm2_k$(TSUFFIX).$(SUFFIX) zdrot_k$(TSUFFIX).$(SUFFIX) \
  434. zscal_k$(TSUFFIX).$(SUFFIX) zswap_k$(TSUFFIX).$(SUFFIX) zaxpby_k$(TSUFFIX).$(SUFFIX) zsum_k$(TSUFFIX).$(SUFFIX)
  435. XBLASOBJS += \
  436. xamax_k$(TSUFFIX).$(SUFFIX) xamin_k$(TSUFFIX).$(SUFFIX) ixamax_k$(TSUFFIX).$(SUFFIX) ixamin_k$(TSUFFIX).$(SUFFIX) \
  437. xasum_k$(TSUFFIX).$(SUFFIX) xaxpy_k$(TSUFFIX).$(SUFFIX) xaxpyc_k$(TSUFFIX).$(SUFFIX) xcopy_k$(TSUFFIX).$(SUFFIX) \
  438. xdotc_k$(TSUFFIX).$(SUFFIX) xdotu_k$(TSUFFIX).$(SUFFIX) xnrm2_k$(TSUFFIX).$(SUFFIX) xqrot_k$(TSUFFIX).$(SUFFIX) \
  439. xscal_k$(TSUFFIX).$(SUFFIX) xswap_k$(TSUFFIX).$(SUFFIX) xsum_k$(TSUFFIX).$(SUFFIX)
  440. ifeq ($(BUILD_BFLOAT16),1)
  441. BBLASOBJS += \
  442. bscal_k$(TSUFFIX).$(SUFFIX)
  443. SBBLASOBJS += \
  444. sbdot_k$(TSUFFIX).$(SUFFIX)
  445. SBEXTOBJS += \
  446. sbstobf16_k$(TSUFFIX).$(SUFFIX) sbdtobf16_k$(TSUFFIX).$(SUFFIX)
  447. SBEXTOBJS += \
  448. sbf16tos_k$(TSUFFIX).$(SUFFIX) dbf16tod_k$(TSUFFIX).$(SUFFIX)
  449. endif
  450. ### AMAX ###
  451. $(KDIR)samax_k$(TSUFFIX).$(SUFFIX) $(KDIR)samax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SAMAXKERNEL)
  452. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE -DUSE_ABS -UUSE_MIN $< -o $@
  453. $(KDIR)damax_k$(TSUFFIX).$(SUFFIX) $(KDIR)damax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DAMAXKERNEL)
  454. $(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE -DUSE_ABS -UUSE_MIN $< -o $@
  455. $(KDIR)qamax_k$(TSUFFIX).$(SUFFIX) $(KDIR)qamax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QAMAXKERNEL)
  456. $(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE -DUSE_ABS -UUSE_MIN $< -o $@
  457. $(KDIR)camax_k$(TSUFFIX).$(SUFFIX) $(KDIR)camax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(CAMAXKERNEL)
  458. $(CC) -c $(CFLAGS) -DCOMPLEX -UDOUBLE -DUSE_ABS -UUSE_MIN $< -o $@
  459. $(KDIR)zamax_k$(TSUFFIX).$(SUFFIX) $(KDIR)zamax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ZAMAXKERNEL)
  460. $(CC) -c $(CFLAGS) -DCOMPLEX -DDOUBLE -DUSE_ABS -UUSE_MIN $< -o $@
  461. $(KDIR)xamax_k$(TSUFFIX).$(SUFFIX) $(KDIR)xamax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(XAMAXKERNEL)
  462. $(CC) -c $(CFLAGS) -DCOMPLEX -DXDOUBLE -DUSE_ABS -UUSE_MIN $< -o $@
  463. ### AMIN ###
  464. $(KDIR)samin_k$(TSUFFIX).$(SUFFIX) $(KDIR)samin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SAMINKERNEL)
  465. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE -DUSE_ABS -DUSE_MIN $< -o $@
  466. $(KDIR)damin_k$(TSUFFIX).$(SUFFIX) $(KDIR)damin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DAMINKERNEL)
  467. $(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE -DUSE_ABS -DUSE_MIN $< -o $@
  468. $(KDIR)qamin_k$(TSUFFIX).$(SUFFIX) $(KDIR)qamin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QAMINKERNEL)
  469. $(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE -DUSE_ABS -DUSE_MIN $< -o $@
  470. $(KDIR)camin_k$(TSUFFIX).$(SUFFIX) $(KDIR)camin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(CAMINKERNEL)
  471. $(CC) -c $(CFLAGS) -DCOMPLEX -UDOUBLE -DUSE_ABS -DUSE_MIN $< -o $@
  472. $(KDIR)zamin_k$(TSUFFIX).$(SUFFIX) $(KDIR)zamin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ZAMINKERNEL)
  473. $(CC) -c $(CFLAGS) -DCOMPLEX -DDOUBLE -DUSE_ABS -DUSE_MIN $< -o $@
  474. $(KDIR)xamin_k$(TSUFFIX).$(SUFFIX) $(KDIR)xamin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(XAMINKERNEL)
  475. $(CC) -c $(CFLAGS) -DCOMPLEX -DXDOUBLE -DUSE_ABS -DUSE_MIN $< -o $@
  476. ### MAX ###
  477. $(KDIR)smax_k$(TSUFFIX).$(SUFFIX) $(KDIR)smax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SMAXKERNEL)
  478. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE -UUSE_ABS -UUSE_MIN $< -o $@
  479. $(KDIR)dmax_k$(TSUFFIX).$(SUFFIX) $(KDIR)dmax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DMAXKERNEL)
  480. $(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE -UUSE_ABS -UUSE_MIN $< -o $@
  481. $(KDIR)qmax_k$(TSUFFIX).$(SUFFIX) $(KDIR)qmax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QMAXKERNEL)
  482. $(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE -UUSE_ABS -UUSE_MIN $< -o $@
  483. ### MIN ###
  484. $(KDIR)smin_k$(TSUFFIX).$(SUFFIX) $(KDIR)smin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SMINKERNEL)
  485. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE -UUSE_ABS -DUSE_MIN $< -o $@
  486. $(KDIR)dmin_k$(TSUFFIX).$(SUFFIX) $(KDIR)dmin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DMINKERNEL)
  487. $(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE -UUSE_ABS -DUSE_MIN $< -o $@
  488. $(KDIR)qmin_k$(TSUFFIX).$(SUFFIX) $(KDIR)qmin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QMINKERNEL)
  489. $(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE -UUSE_ABS -DUSE_MIN $< -o $@
  490. ### IAMAX ###
  491. $(KDIR)isamax_k$(TSUFFIX).$(SUFFIX) $(KDIR)isamax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ISAMAXKERNEL)
  492. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE -DUSE_ABS -UUSE_MIN $< -o $@
  493. $(KDIR)idamax_k$(TSUFFIX).$(SUFFIX) $(KDIR)idamax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(IDAMAXKERNEL)
  494. $(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE -DUSE_ABS -UUSE_MIN $< -o $@
  495. $(KDIR)iqamax_k$(TSUFFIX).$(SUFFIX) $(KDIR)iqamax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(IQAMAXKERNEL)
  496. $(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE -DUSE_ABS -UUSE_MIN $< -o $@
  497. $(KDIR)icamax_k$(TSUFFIX).$(SUFFIX) $(KDIR)icamax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ICAMAXKERNEL)
  498. $(CC) -c $(CFLAGS) -DCOMPLEX -UDOUBLE -DUSE_ABS -UUSE_MIN $< -o $@
  499. $(KDIR)izamax_k$(TSUFFIX).$(SUFFIX) $(KDIR)izamax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(IZAMAXKERNEL)
  500. $(CC) -c $(CFLAGS) -DCOMPLEX -DDOUBLE -DUSE_ABS -UUSE_MIN $< -o $@
  501. $(KDIR)ixamax_k$(TSUFFIX).$(SUFFIX) $(KDIR)ixamax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(IXAMAXKERNEL)
  502. $(CC) -c $(CFLAGS) -DCOMPLEX -DXDOUBLE -DUSE_ABS -UUSE_MIN $< -o $@
  503. ### IAMIN ###
  504. $(KDIR)isamin_k$(TSUFFIX).$(SUFFIX) $(KDIR)isamin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ISAMINKERNEL)
  505. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE -DUSE_ABS -DUSE_MIN $< -o $@
  506. $(KDIR)idamin_k$(TSUFFIX).$(SUFFIX) $(KDIR)idamin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(IDAMINKERNEL)
  507. $(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE -DUSE_ABS -DUSE_MIN $< -o $@
  508. $(KDIR)iqamin_k$(TSUFFIX).$(SUFFIX) $(KDIR)iqamin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(IQAMINKERNEL)
  509. $(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE -DUSE_ABS -DUSE_MIN $< -o $@
  510. $(KDIR)icamin_k$(TSUFFIX).$(SUFFIX) $(KDIR)icamin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ICAMINKERNEL)
  511. $(CC) -c $(CFLAGS) -DCOMPLEX -UDOUBLE -DUSE_ABS -DUSE_MIN $< -o $@
  512. $(KDIR)izamin_k$(TSUFFIX).$(SUFFIX) $(KDIR)izamin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(IZAMINKERNEL)
  513. $(CC) -c $(CFLAGS) -DCOMPLEX -DDOUBLE -DUSE_ABS -DUSE_MIN $< -o $@
  514. $(KDIR)ixamin_k$(TSUFFIX).$(SUFFIX) $(KDIR)ixamin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(IXAMINKERNEL)
  515. $(CC) -c $(CFLAGS) -DCOMPLEX -DXDOUBLE -DUSE_ABS -DUSE_MIN $< -o $@
  516. ### IMAX ###
  517. $(KDIR)ismax_k$(TSUFFIX).$(SUFFIX) $(KDIR)ismax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ISMAXKERNEL)
  518. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE -UUSE_ABS -UUSE_MIN $< -o $@
  519. $(KDIR)idmax_k$(TSUFFIX).$(SUFFIX) $(KDIR)idmax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(IDMAXKERNEL)
  520. $(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE -UUSE_ABS -UUSE_MIN $< -o $@
  521. $(KDIR)iqmax_k$(TSUFFIX).$(SUFFIX) $(KDIR)iqmax_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(IQMAXKERNEL)
  522. $(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE -UUSE_ABS -UUSE_MIN $< -o $@
  523. ### IMIN ###
  524. $(KDIR)ismin_k$(TSUFFIX).$(SUFFIX) $(KDIR)ismin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ISMINKERNEL)
  525. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE -UUSE_ABS -DUSE_MIN $< -o $@
  526. $(KDIR)idmin_k$(TSUFFIX).$(SUFFIX) $(KDIR)idmin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(IDMINKERNEL)
  527. $(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE -UUSE_ABS -DUSE_MIN $< -o $@
  528. $(KDIR)iqmin_k$(TSUFFIX).$(SUFFIX) $(KDIR)iqmin_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(IQMINKERNEL)
  529. $(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE -UUSE_ABS -DUSE_MIN $< -o $@
  530. ### ASUM ###
  531. $(KDIR)sasum_k$(TSUFFIX).$(SUFFIX) $(KDIR)sasum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SASUMKERNEL)
  532. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE $< -o $@
  533. $(KDIR)dasum_k$(TSUFFIX).$(SUFFIX) $(KDIR)dasum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DASUMKERNEL)
  534. $(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE $< -o $@
  535. $(KDIR)qasum_k$(TSUFFIX).$(SUFFIX) $(KDIR)qasum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QASUMKERNEL)
  536. $(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE $< -o $@
  537. $(KDIR)casum_k$(TSUFFIX).$(SUFFIX) $(KDIR)casum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(CASUMKERNEL)
  538. $(CC) -c $(CFLAGS) -DCOMPLEX -UDOUBLE $< -o $@
  539. $(KDIR)zasum_k$(TSUFFIX).$(SUFFIX) $(KDIR)zasum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ZASUMKERNEL)
  540. $(CC) -c $(CFLAGS) -DCOMPLEX -DDOUBLE $< -o $@
  541. $(KDIR)xasum_k$(TSUFFIX).$(SUFFIX) $(KDIR)xasum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(XASUMKERNEL)
  542. $(CC) -c $(CFLAGS) -DCOMPLEX -DXDOUBLE $< -o $@
  543. ### SUM ###
  544. $(KDIR)ssum_k$(TSUFFIX).$(SUFFIX) $(KDIR)ssum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SSUMKERNEL)
  545. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE $< -o $@
  546. $(KDIR)dsum_k$(TSUFFIX).$(SUFFIX) $(KDIR)dsum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DSUMKERNEL)
  547. $(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE $< -o $@
  548. $(KDIR)qsum_k$(TSUFFIX).$(SUFFIX) $(KDIR)qsum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QSUMKERNEL)
  549. $(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE $< -o $@
  550. $(KDIR)csum_k$(TSUFFIX).$(SUFFIX) $(KDIR)csum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(CSUMKERNEL)
  551. $(CC) -c $(CFLAGS) -DCOMPLEX -UDOUBLE $< -o $@
  552. $(KDIR)zsum_k$(TSUFFIX).$(SUFFIX) $(KDIR)zsum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ZSUMKERNEL)
  553. $(CC) -c $(CFLAGS) -DCOMPLEX -DDOUBLE $< -o $@
  554. $(KDIR)xsum_k$(TSUFFIX).$(SUFFIX) $(KDIR)xsum_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(XSUMKERNEL)
  555. $(CC) -c $(CFLAGS) -DCOMPLEX -DXDOUBLE $< -o $@
  556. ### AXPY ###
  557. $(KDIR)saxpy_k$(TSUFFIX).$(SUFFIX) $(KDIR)saxpy_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SAXPYKERNEL)
  558. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE $< -o $@
  559. $(KDIR)daxpy_k$(TSUFFIX).$(SUFFIX) $(KDIR)daxpy_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DAXPYKERNEL)
  560. $(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE $< -o $@
  561. $(KDIR)qaxpy_k$(TSUFFIX).$(SUFFIX) $(KDIR)qaxpy_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QAXPYKERNEL)
  562. $(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE $< -o $@
  563. $(KDIR)caxpy_k$(TSUFFIX).$(SUFFIX) $(KDIR)caxpy_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(CAXPYKERNEL)
  564. $(CC) -c $(CFLAGS) -DCOMPLEX -DCOMPLEX -UCONJ -UDOUBLE $< -o $@
  565. $(KDIR)zaxpy_k$(TSUFFIX).$(SUFFIX) $(KDIR)zaxpy_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ZAXPYKERNEL)
  566. $(CC) -c $(CFLAGS) -DCOMPLEX -UCONJ -DDOUBLE $< -o $@
  567. $(KDIR)xaxpy_k$(TSUFFIX).$(SUFFIX) $(KDIR)xaxpy_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(XAXPYKERNEL)
  568. $(CC) -c $(CFLAGS) -DCOMPLEX -UCONJ -DXDOUBLE $< -o $@
  569. $(KDIR)caxpyc_k$(TSUFFIX).$(SUFFIX) $(KDIR)caxpyc_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(CAXPYKERNEL)
  570. $(CC) -c $(CFLAGS) -DCOMPLEX -DCONJ -UDOUBLE $< -o $@
  571. $(KDIR)zaxpyc_k$(TSUFFIX).$(SUFFIX) $(KDIR)zaxpyc_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ZAXPYKERNEL)
  572. $(CC) -c $(CFLAGS) -DCOMPLEX -DCONJ -DDOUBLE $< -o $@
  573. $(KDIR)xaxpyc_k$(TSUFFIX).$(SUFFIX) $(KDIR)xaxpyc_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(XAXPYKERNEL)
  574. $(CC) -c $(CFLAGS) -DCOMPLEX -DCONJ -DXDOUBLE $< -o $@
  575. $(KDIR)scopy_k$(TSUFFIX).$(SUFFIX) $(KDIR)scopy_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SCOPYKERNEL)
  576. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE -DC_INTERFACE $< -o $@
  577. $(KDIR)dcopy_k$(TSUFFIX).$(SUFFIX) $(KDIR)dcopy_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DCOPYKERNEL)
  578. $(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE -DC_INTERFACE $< -o $@
  579. $(KDIR)qcopy_k$(TSUFFIX).$(SUFFIX) $(KDIR)qcopy_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QCOPYKERNEL)
  580. $(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE -DC_INTERFACE $< -o $@
  581. $(KDIR)ccopy_k$(TSUFFIX).$(SUFFIX) $(KDIR)ccopy_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(CCOPYKERNEL)
  582. $(CC) -c $(CFLAGS) -DCOMPLEX -UDOUBLE -DC_INTERFACE $< -o $@
  583. $(KDIR)zcopy_k$(TSUFFIX).$(SUFFIX) $(KDIR)zcopy_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ZCOPYKERNEL)
  584. $(CC) -c $(CFLAGS) -DCOMPLEX -DDOUBLE -DC_INTERFACE $< -o $@
  585. $(KDIR)xcopy_k$(TSUFFIX).$(SUFFIX) $(KDIR)xcopy_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(XCOPYKERNEL)
  586. $(CC) -c $(CFLAGS) -DCOMPLEX -DXDOUBLE -DC_INTERFACE $< -o $@
  587. $(KDIR)ddot_k$(TSUFFIX).$(SUFFIX) $(KDIR)ddot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DDOTKERNEL)
  588. $(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE $< -o $@
  589. $(KDIR)qdot_k$(TSUFFIX).$(SUFFIX) $(KDIR)qdot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QDOTKERNEL)
  590. $(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE $< -o $@
  591. ifeq ($(BUILD_BFLOAT16),1)
  592. $(KDIR)bscal_k$(TSUFFIX).$(SUFFIX) $(KDIR)bscal_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(BSCALKERNEL)
  593. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE $< -o $@
  594. $(KDIR)sbdot_k$(TSUFFIX).$(SUFFIX) $(KDIR)sbdot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SBDOTKERNEL)
  595. $(CC) -c $(CFLAGS) -UCOMPLEX $< -o $@
  596. $(KDIR)sbstobf16_k$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(TOBF16KERNEL)
  597. $(CC) -c $(CFLAGS) -UDOUBLE -DSINGLE $< -o $@
  598. $(KDIR)sbdtobf16_k$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(TOBF16KERNEL)
  599. $(CC) -c $(CFLAGS) -DDOUBLE -USINGLE $< -o $@
  600. $(KDIR)sbf16tos_k$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(BF16TOKERNEL)
  601. $(CC) -c $(CFLAGS) -UDOUBLE -DSINGLE $< -o $@
  602. $(KDIR)dbf16tod_k$(TSUFFIX).$(SUFFIX) : $(KERNELDIR)/$(BF16TOKERNEL)
  603. $(CC) -c $(CFLAGS) -DDOUBLE -USINGLE $< -o $@
  604. endif
  605. $(KDIR)sdot_k$(TSUFFIX).$(SUFFIX) $(KDIR)sdot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SDOTKERNEL)
  606. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE $< -o $@
  607. ifdef DSDOTKERNEL
  608. $(KDIR)dsdot_k$(TSUFFIX).$(SUFFIX) $(KDIR)dsdot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DSDOTKERNEL)
  609. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE -DDSDOT $< -o $@
  610. $(KDIR)sdsdot_k$(TSUFFIX).$(SUFFIX) $(KDIR)sdsdot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DSDOTKERNEL)
  611. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE -DDSDOT $< -o $@
  612. else
  613. $(KDIR)dsdot_k$(TSUFFIX).$(SUFFIX) $(KDIR)dsdot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SDOTKERNEL)
  614. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE -DDSDOT $< -o $@
  615. $(KDIR)sdsdot_k$(TSUFFIX).$(SUFFIX) $(KDIR)sdsdot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SDOTKERNEL)
  616. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE -DDSDOT $< -o $@
  617. endif
  618. $(KDIR)zdotu_k$(TSUFFIX).$(SUFFIX) $(KDIR)zdotu_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ZDOTKERNEL)
  619. $(CC) -c $(CFLAGS) -DCOMPLEX -DDOUBLE -UCONJ $< -o $@
  620. $(KDIR)zdotc_k$(TSUFFIX).$(SUFFIX) $(KDIR)zdotc_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ZDOTKERNEL)
  621. $(CC) -c $(CFLAGS) -DCOMPLEX -DDOUBLE -DCONJ $< -o $@
  622. $(KDIR)xdotu_k$(TSUFFIX).$(SUFFIX) $(KDIR)xdotu_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(XDOTKERNEL)
  623. $(CC) -c $(CFLAGS) -DCOMPLEX -DXDOUBLE -UCONJ $< -o $@
  624. $(KDIR)xdotc_k$(TSUFFIX).$(SUFFIX) $(KDIR)xdotc_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(XDOTKERNEL)
  625. $(CC) -c $(CFLAGS) -DCOMPLEX -DXDOUBLE -DCONJ $< -o $@
  626. $(KDIR)cdotu_k$(TSUFFIX).$(SUFFIX) $(KDIR)cdotu_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(CDOTKERNEL)
  627. $(CC) -c $(CFLAGS) -DCOMPLEX -UDOUBLE -UCONJ $< -o $@
  628. $(KDIR)cdotc_k$(TSUFFIX).$(SUFFIX) $(KDIR)cdotc_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(CDOTKERNEL)
  629. $(CC) -c $(CFLAGS) -DCOMPLEX -UDOUBLE -DCONJ $< -o $@
  630. $(KDIR)snrm2_k$(TSUFFIX).$(SUFFIX) $(KDIR)snrm2_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SNRM2KERNEL)
  631. $(CC) $(CFLAGS) -UCOMPLEX -c -UDOUBLE $< -o $@
  632. $(KDIR)dnrm2_k$(TSUFFIX).$(SUFFIX) $(KDIR)dnrm2_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DNRM2KERNEL)
  633. $(CC) $(CFLAGS) -UCOMPLEX -c -DDOUBLE $< -o $@
  634. $(KDIR)qnrm2_k$(TSUFFIX).$(SUFFIX) $(KDIR)qnrm2_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QNRM2KERNEL)
  635. $(CC) $(CFLAGS) -UCOMPLEX -c -DXDOUBLE $< -o $@
  636. $(KDIR)cnrm2_k$(TSUFFIX).$(SUFFIX) $(KDIR)cnrm2_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(CNRM2KERNEL)
  637. $(CC) $(CFLAGS) -DCOMPLEX -c -UDOUBLE $< -o $@
  638. $(KDIR)znrm2_k$(TSUFFIX).$(SUFFIX) $(KDIR)znrm2_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ZNRM2KERNEL)
  639. $(CC) $(CFLAGS) -DCOMPLEX -c -DDOUBLE $< -o $@
  640. $(KDIR)xnrm2_k$(TSUFFIX).$(SUFFIX) $(KDIR)xnrm2_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(XNRM2KERNEL)
  641. $(CC) $(CFLAGS) -DCOMPLEX -c -DXDOUBLE $< -o $@
  642. $(KDIR)srot_k$(TSUFFIX).$(SUFFIX) $(KDIR)srot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SROTKERNEL)
  643. $(CC) -c $(CFLAGS) $(FMAFLAG) -UCOMPLEX -UCOMPLEX -UDOUBLE $< -o $@
  644. $(KDIR)drot_k$(TSUFFIX).$(SUFFIX) $(KDIR)drot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DROTKERNEL)
  645. $(CC) -c $(CFLAGS) $(FMAFLAG) -UCOMPLEX -UCOMPLEX -DDOUBLE $< -o $@
  646. $(KDIR)qrot_k$(TSUFFIX).$(SUFFIX) $(KDIR)qrot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QROTKERNEL)
  647. $(CC) -c $(CFLAGS) $(FMAFLAG) -UCOMPLEX -UCOMPLEX -DXDOUBLE $< -o $@
  648. $(KDIR)srotm_k$(TSUFFIX).$(SUFFIX) $(KDIR)srotm_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SROTMKERNEL)
  649. $(CC) -c $(CFLAGS) $(FMAFLAG) -UCOMPLEX -UCOMPLEX -UDOUBLE $< -o $@
  650. $(KDIR)drotm_k$(TSUFFIX).$(SUFFIX) $(KDIR)drotm_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DROTMKERNEL)
  651. $(CC) -c $(CFLAGS) $(FMAFLAG) -UCOMPLEX -UCOMPLEX -DDOUBLE $< -o $@
  652. $(KDIR)qrotm_k$(TSUFFIX).$(SUFFIX) $(KDIR)qrotm_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QROTMKERNEL)
  653. $(CC) -c $(CFLAGS) $(FMAFLAG) -UCOMPLEX -UCOMPLEX -DXDOUBLE $< -o $@
  654. $(KDIR)csrot_k$(TSUFFIX).$(SUFFIX) $(KDIR)csrot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(CROTKERNEL)
  655. $(CC) -c $(CFLAGS) -DCOMPLEX -DCOMPLEX -UDOUBLE $< -o $@
  656. $(KDIR)zdrot_k$(TSUFFIX).$(SUFFIX) $(KDIR)zdrot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ZROTKERNEL)
  657. $(CC) -c $(CFLAGS) -DCOMPLEX -DCOMPLEX -DDOUBLE $< -o $@
  658. $(KDIR)xqrot_k$(TSUFFIX).$(SUFFIX) $(KDIR)xqrot_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(XROTKERNEL)
  659. $(CC) -c $(CFLAGS) -DCOMPLEX -DCOMPLEX -DXDOUBLE $< -o $@
  660. $(KDIR)sscal_k$(TSUFFIX).$(SUFFIX) $(KDIR)sscal_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SSCALKERNEL)
  661. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE $< -o $@
  662. $(KDIR)dscal_k$(TSUFFIX).$(SUFFIX) $(KDIR)dscal_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DSCALKERNEL)
  663. $(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE $< -o $@
  664. $(KDIR)qscal_k$(TSUFFIX).$(SUFFIX) $(KDIR)qscal_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QSCALKERNEL)
  665. $(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE $< -o $@
  666. $(KDIR)cscal_k$(TSUFFIX).$(SUFFIX) $(KDIR)cscal_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(CSCALKERNEL)
  667. $(CC) -c $(CFLAGS) -DCOMPLEX -UDOUBLE $< -o $@
  668. $(KDIR)zscal_k$(TSUFFIX).$(SUFFIX) $(KDIR)zscal_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ZSCALKERNEL)
  669. $(CC) -c $(CFLAGS) -DCOMPLEX -DDOUBLE $< -o $@
  670. $(KDIR)xscal_k$(TSUFFIX).$(SUFFIX) $(KDIR)xscal_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(XSCALKERNEL)
  671. $(CC) -c $(CFLAGS) -DCOMPLEX -DXDOUBLE $< -o $@
  672. $(KDIR)sswap_k$(TSUFFIX).$(SUFFIX) $(KDIR)sswap_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SSWAPKERNEL)
  673. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE $< -o $@
  674. $(KDIR)dswap_k$(TSUFFIX).$(SUFFIX) $(KDIR)dswap_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DSWAPKERNEL)
  675. $(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE $< -o $@
  676. $(KDIR)qswap_k$(TSUFFIX).$(SUFFIX) $(KDIR)qswap_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(QSWAPKERNEL)
  677. $(CC) -c $(CFLAGS) -UCOMPLEX -DXDOUBLE $< -o $@
  678. $(KDIR)cswap_k$(TSUFFIX).$(SUFFIX) $(KDIR)cswap_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(CSWAPKERNEL)
  679. $(CC) -c $(CFLAGS) -DCOMPLEX -UDOUBLE $< -o $@
  680. $(KDIR)zswap_k$(TSUFFIX).$(SUFFIX) $(KDIR)zswap_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ZSWAPKERNEL)
  681. $(CC) -c $(CFLAGS) -DCOMPLEX -DDOUBLE $< -o $@
  682. $(KDIR)xswap_k$(TSUFFIX).$(SUFFIX) $(KDIR)xswap_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(XSWAPKERNEL)
  683. $(CC) -c $(CFLAGS) -DCOMPLEX -DXDOUBLE $< -o $@
  684. $(KDIR)saxpby_k$(TSUFFIX).$(SUFFIX) $(KDIR)saxpby_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(SAXPBYKERNEL)
  685. $(CC) -c $(CFLAGS) -UCOMPLEX -UDOUBLE $< -o $@
  686. $(KDIR)daxpby_k$(TSUFFIX).$(SUFFIX) $(KDIR)daxpby_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(DAXPBYKERNEL)
  687. $(CC) -c $(CFLAGS) -UCOMPLEX -DDOUBLE $< -o $@
  688. $(KDIR)caxpby_k$(TSUFFIX).$(SUFFIX) $(KDIR)caxpby_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(CAXPBYKERNEL)
  689. $(CC) -c $(CFLAGS) -DCOMPLEX -UCONJ -UDOUBLE $< -o $@
  690. $(KDIR)zaxpby_k$(TSUFFIX).$(SUFFIX) $(KDIR)zaxpby_k$(TPSUFFIX).$(PSUFFIX) : $(KERNELDIR)/$(ZAXPBYKERNEL)
  691. $(CC) -c $(CFLAGS) -DCOMPLEX -UCONJ -DDOUBLE $< -o $@