_mm512_prefetch_i32gather_ps(_MM_HINT_T1) emits wrong instruction?

_mm512_prefetch_i32gather_ps(_MM_HINT_T1) emits wrong instruction?

From what I can tell, the _mm512_prefetch_i32gather_ps intrinsic ought to emit a VGATHERPF0DPS instruction if _MM_HINT_T0 is specified and a VGATHERPF1DPS instruction if _MM_HINT_T1 is specified. However, it appears that it always emits the VGATHERPF0DPS instruction. Is this a bug? (I'm using composer_xe_2013_sp1.0.080).

Additionally, it looks to me like ICC does aggressive software prefetching for simple cases, but  never emits prefetches for gathers. Is this correct?

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

Development confirmed this is a compiler defect (see internal tracking id below) and indicated as a work around to use _MM_HINT_T2 in order to get VGATHERPF1DPS. I will update this post regarding a fix as I learn it.

Regarding prefetching, the Developer wrote that it is true, gather/scatter prefetches are not generated automatically.

(Internal tracking id: DPD200248809)

(Resolution Update on 02/14/2014): This defect is fixed in the Intel® C++ Composer XE 2013 SP1 Update 2 release (Version 14.0.2.144 Build 20140120 - Linux)

This defect is fixed in the Intel® C++ Composer XE 2013 SP1 Update 2 Release (Version 14.0.2.144 Build 20140120 - Linux) now available from our Intel Registration Center.

Leave a Comment

Please sign in to add a comment. Not a member? Join today