#include <stdio.h>
#include <assert.h>
#include <yepLibrary.h>
#define BUFFER_SIZE 1024
int main(int argc, char **argv) {
Yep64u isaFeatures, simdFeatures, systemFeatures, testFeature;
char buffer[BUFFER_SIZE];
printf("Basic CPU information:\n");
bufferLength = BUFFER_SIZE - 1;
buffer[bufferLength] = '\0';
printf("\tArchitecture: %s\n", buffer);
bufferLength = BUFFER_SIZE - 1;
buffer[bufferLength] = '\0';
printf("\tVendor: %s\n", buffer);
bufferLength = BUFFER_SIZE - 1;
buffer[bufferLength] = '\0';
printf("\tMicroarchitecture: %s\n", buffer);
printf("CPU ISA extensions:\n");
for (enumerationValue = 0; enumerationValue < 64; enumerationValue++) {
bufferLength = BUFFER_SIZE - 2;
buffer[bufferLength] = ':';
buffer[bufferLength + 1] = '\0';
testFeature = ((
Yep64u)(1ull)) << enumerationValue;
printf("\t%-60s\t%s\n", buffer, ((isaFeatures & testFeature) != 0 ? "Yes" : "No"));
}
}
printf("CPU SIMD extensions:\n");
for (enumerationValue = 0; enumerationValue < 64; enumerationValue++) {
bufferLength = BUFFER_SIZE - 2;
buffer[bufferLength] = ':';
buffer[bufferLength + 1] = '\0';
testFeature = ((
Yep64u)(1ull)) << enumerationValue;
printf("\t%-60s\t%s\n", buffer, ((simdFeatures & testFeature) != 0 ? "Yes" : "No"));
}
}
printf("Non-ISA CPU and system features:\n");
for (enumerationValue = 0; enumerationValue < 64; enumerationValue++) {
bufferLength = BUFFER_SIZE - 2;
buffer[bufferLength] = ':';
buffer[bufferLength + 1] = '\0';
testFeature = ((
Yep64u)(1ull)) << enumerationValue;
printf("\t%-60s\t%s\n", buffer, ((systemFeatures & testFeature) != 0 ? "Yes" : "No"));
}
}
return 0;
}