120 {
121
122 FILE * stream = NULL;
123 char ligne[2049];
124 char * compstr="flags :";
125 char * strptr;
126 int unknown;
127 int cmplen=strlen(compstr);
128
129 int instruction_set=0;
130
131 stream=fopen("/proc/cpuinfo","r");
132 unknown = 1;
133 while (fgets(ligne,2048,stream) && unknown){
134 if (strncmp(compstr,ligne,cmplen)==0){
135 unknown = 0;
136 break;
137 }
138 }
139 strptr = strstr(ligne,"avx512");
140
141 if (strptr !=NULL){
142 instruction_set=1;
143 }else{
144 strptr = strstr(ligne,"avx2");
145 if (strptr !=NULL){
146 instruction_set=0;
147 }else{
148 instruction_set=2;
149 }
150 }
151
152
153return instruction_set;
154}