I am calculating Entropy for a specific array of bytes. since I must calculate log2 of some numbers.
Here is part of the code
for (i = 0; i < ENTROPY_ARRAY_SIZE; i++) {
if (entropy[i] == 0)
continue;
double p = (double)entropy[i] / data_len;
H -= p * log2(p);
}
We know that Intel supports two assembly instructions FYL2X and FYL2XP1 to perform the log2 operation faster. The problem is that even when I activated GCC optimization for compilation, the log2 assembly code is not based on Intel's specific instructions. Is there a way to force GCC to use specified instructions for this part of the code?
(I checked and the CPU supports these instructions.)