https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106219

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Target|                            |x86_64-*-*
          Component|tree-optimization           |target
                 CC|                            |crazylht at gmail dot com

--- Comment #7 from Richard Biener <rguenth at gcc dot gnu.org> ---
So it's __builtin_ia32_gathersiv4sf not marked as PURE which means we think it
writes to memory.

I see

  /* AVX512PF */
  def_builtin (OPTION_MASK_ISA_AVX512PF, 0, "__builtin_ia32_gatherpfdpd",
               VOID_FTYPE_QI_V8SI_PCVOID_INT_INT,
               IX86_BUILTIN_GATHERPFDPD);
  def_builtin (OPTION_MASK_ISA_AVX512PF, 0, "__builtin_ia32_gatherpfdps",
               VOID_FTYPE_HI_V16SI_PCVOID_INT_INT,
               IX86_BUILTIN_GATHERPFDPS);
  def_builtin (OPTION_MASK_ISA_AVX512PF, 0, "__builtin_ia32_gatherpfqpd",
               VOID_FTYPE_QI_V8DI_PCVOID_INT_INT,
               IX86_BUILTIN_GATHERPFQPD);
  def_builtin (OPTION_MASK_ISA_AVX512PF, 0, "__builtin_ia32_gatherpfqps",
               VOID_FTYPE_QI_V8DI_PCVOID_INT_INT,
               IX86_BUILTIN_GATHERPFQPS);

shouldn't those use def_builtin_pure as well?

Tracing down why def_builtin_pure doesn't work here.

Reply via email to