> -----Original Message----- > From: Van Haaren, Harry <[email protected]> > Sent: Friday, October 30, 2020 11:09 AM > To: Jerin Jacob <[email protected]>; McDaniel, Timothy > <[email protected]> > Cc: dpdk-dev <[email protected]>; Carrillo, Erik G <[email protected]>; > Eads, > Gage <[email protected]>; Jerin Jacob <[email protected]>; Thomas > Monjalon <[email protected]> > Subject: RE: [dpdk-dev] [PATCH v5 00/23] Add DLB2 PMD > > > -----Original Message----- > > From: Jerin Jacob <[email protected]> > > Sent: Friday, October 30, 2020 3:31 PM > > To: McDaniel, Timothy <[email protected]> > > Cc: dpdk-dev <[email protected]>; Carrillo, Erik G <[email protected]>; > Eads, > > Gage <[email protected]>; Van Haaren, Harry > <[email protected]>; > > Jerin Jacob <[email protected]>; Thomas Monjalon > <[email protected]> > > 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 > > <[email protected]> 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.

