<div dir="ltr">Hi,<div><br></div><div>I used clang -O3 -c -emit-llvm on the follow code to generate a bitcode, say a.bc. I read the .ll file and didn't see any gather intrinsic. Also, I used opt -O3 -mcpu=core-avx2/-mcpu=skx, but there is still no gather intrinsic generated.</div><div><br></div><div>int foo(int A[800], int B[800], int C[800]) {</div><div>    for (int i = 0; i < 800; i++) {</div><div>        A[B[i]] = i + 5;</div><div>    }</div><div><br></div><div>    for (int i = 0; i < 800; i++) {<br></div><div>        A[B[i]]++;<br></div><div>    }<br></div><div><br></div><div>    for (int i = 0; i < 800; i++) {<br></div><div>        A[i] = B[C[i]];<br></div><div>    }<br></div><div>    return 0;</div><div>}</div><div><br></div><div>Could some give me an example that will generate gather intrinsic for AVX2? I tried to used the masked_gather intrinsic provided in the language ref. But it seemed that it only generates gather intrinsic for AVX-512 but for AVX-2. I found that there are 16 gather intrinsic versions depending on the data types provided for AVX-2. Do I have to check the data type before calling them specifically? or is there a generic way to use AVX-2 gather intrinsic? </div><div><br></div><div>Best,</div><div>Zhi </div></div>