> -----Original Message-----
> From: Jerin Jacob <jerinjac...@gmail.com>
> Sent: Friday, October 30, 2020 3:31 PM
> To: McDaniel, Timothy <timothy.mcdan...@intel.com>
> Cc: dpdk-dev <dev@dpdk.org>; Carrillo, Erik G <erik.g.carri...@intel.com>; 
> Eads,
> Gage <gage.e...@intel.com>; Van Haaren, Harry <harry.van.haa...@intel.com>;
> Jerin Jacob <jer...@marvell.com>; Thomas Monjalon <tho...@monjalon.net>
> Subject: Re: [dpdk-dev] [PATCH v5 00/23] Add DLB2 PMD
> 
> + @Richardson, Bruce  @Ananyev, Konstantin
> 
> On Fri, Oct 30, 2020 at 8:55 PM McDaniel, Timothy
> <timothy.mcdan...@intel.com> wrote:
> >

<snip backlog and compiler error output>

> > > -Wno-missing-field-initializers -D_GNU_SOURCE -fPIC -march=native
> > > -DALLOW_EXPERIMENTAL_API -DALLOW_INTERNAL_API -MD -MQ
> > > drivers/libtmp_rte_event_dlb2.a.p/event_dlb2_pf_dlb2_pf.c.o -MF
> > > drivers/lib
> > > tmp_rte_event_dlb2.a.p/event_dlb2_pf_dlb2_pf.c.o.d -o
> > > drivers/libtmp_rte_event_dlb2.a.p/event_dlb2_pf_dlb2_pf.c.o -c
> > > ../drivers/event/dlb2/pf/dlb2_pf.c
> > > In file included from ../drivers/event/dlb2/pf/dlb2_pf.c:35:
> > > ../drivers/event/dlb2/pf/../dlb2_inline_fns.h:41:2: error: use of
> > > unknown builtin '__builtin_ia32_movntdq'
> > > [-Wimplicit-function-declaration]
> > >         __builtin_ia32_movntdq((__v2di *)pp_addr, (__v2di)src_data0);
> >
> > Not sure why this builds for me, but I do not see this error.
> 
> May be you can try with
> [for-main][dpdk-next-eventdev] $ clang -v
> clang version 10.0.1
> Target: x86_64-pc-linux-gnu
> Thread model: posix
> InstalledDir: /usr/bin
> 
> 
> > According to information online, '__builtin_ia32_movntdq' should be 
> > available if -
> msse2 is set.
> > According to the following snippet from config/x86/meson.build, it looks 
> > like
> msse4 is defined.
> > <snippet>
> > # we require SSE4.2 for DPDK
> > if cc.get_define('__SSE4_2__', args: machine_args) == ''
> >         message('SSE 4.2 not enabled by default, explicitly enabling')
> >         machine_args += '-msse4'
> > endif
> > <end snippet>
> >
> > I realize this is from clang, not gcc, but why are they out of sync?
> > such that __builtin_ia32_movntdq is not available in clang, but is 
> > available in gcc.
> >
> > Should I convert to _mm_stream_si128 (__m128i *__A, __m128i __B) ?
> >
> > Any guidance on how to get past this would be greatly appreciated.

Confirm that __builtin_ia32_* works on GCC and not on Clang, reproducing error 
above.
Using the intrinsic _mm_stream or _mm_store versions work with both Clang and 
GCC, and will fix this issue.

Reply via email to