> -----Original Message----- > From: Van Haaren, Harry <harry.van.haa...@intel.com> > Sent: Friday, October 30, 2020 11:09 AM > To: Jerin Jacob <jerinjac...@gmail.com>; 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>; Jerin Jacob <jer...@marvell.com>; Thomas > Monjalon <tho...@monjalon.net> > Subject: RE: [dpdk-dev] [PATCH v5 00/23] Add DLB2 PMD > > > -----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.
Thanks Harry. I will convert to _mm_stream_si128.