Implementations of Heap Data Structure prefetching next layers in sift-down using branch and conditional move instructions storing several keys in each node using simd registers (sse4, avx2)