> -----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.