@@ -51,10 +51,11 @@ extern gotoblas_t gotoblas_FALKOR;
5151extern gotoblas_t gotoblas_THUNDERX ;
5252extern gotoblas_t gotoblas_THUNDERX2T99 ;
5353extern gotoblas_t gotoblas_TSV110 ;
54+ extern gotoblas_t gotoblas_EMAG8180 ;
5455
5556extern void openblas_warning (int verbose , const char * msg );
5657
57- #define NUM_CORETYPES 9
58+ #define NUM_CORETYPES 10
5859
5960/*
6061 * In case asm/hwcap.h is outdated on the build system, make sure
@@ -78,6 +79,7 @@ static char *corename[] = {
7879 "thunderx" ,
7980 "thunderx2t99" ,
8081 "tsv110" ,
82+ "emag8180" ,
8183 "unknown"
8284};
8385
@@ -91,6 +93,7 @@ char *gotoblas_corename(void) {
9193 if (gotoblas == & gotoblas_THUNDERX ) return corename [ 6 ];
9294 if (gotoblas == & gotoblas_THUNDERX2T99 ) return corename [ 7 ];
9395 if (gotoblas == & gotoblas_TSV110 ) return corename [ 8 ];
96+ if (gotoblas == & gotoblas_EMAG8180 ) return corename [ 9 ];
9497 return corename [NUM_CORETYPES ];
9598}
9699
@@ -119,6 +122,7 @@ static gotoblas_t *force_coretype(char *coretype) {
119122 case 6 : return (& gotoblas_THUNDERX );
120123 case 7 : return (& gotoblas_THUNDERX2T99 );
121124 case 8 : return (& gotoblas_TSV110 );
125+ case 9 : return (& gotoblas_EMAG8180 );
122126 }
123127 snprintf (message , 128 , "Core not found: %s\n" , coretype );
124128 openblas_warning (1 , message );
@@ -189,6 +193,13 @@ static gotoblas_t *get_coretype(void) {
189193 return & gotoblas_TSV110 ;
190194 }
191195 break ;
196+ case 0x50 : // Ampere
197+ switch (part )
198+ {
199+ case 0x000 : // Skylark/EMAG8180
200+ return & gotoblas_EMAG8180 ;
201+ }
202+ break ;
192203 case 0x51 : // Qualcomm
193204 switch (part )
194205 {
0 commit comments