Hi Jakub, Actually I did not get the point. If we have no src/masking, destination must be unchanged until gather will write to it (at least partially) If we have all 1's in mask, scr must not be changed at all. So, nullification in intrinsics just useless. Having such snippet: (1) vmovdqa k(%rax,%rax), %ymm1 (2) vmovaps %ymm0, %ymm6 (3) vmovaps %ymm0, %ymm2 (4) vmovdqa k+32(%rax,%rax), %ymm3 (5) vgatherdps %ymm6, vf1(,%ymm1,4), %ymm2
Looks pretty strange. Which value has ymm0? If it has all zeroes, then (1)-(5) is dead code, which may be just removed. If contains all 1s then (2) s useless. But again, seems I did not get your point... Thanks, K