This is the mail archive of the gcc@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: _mm{,256}_i{32,64}gather_{ps,pd,epi32,epi64} intrinsics semantics


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]