search for: __svml_sin8

Displaying 6 results from an estimated 6 matches for "__svml_sin8".

Did you mean: __svml_sin4
2018 Jun 29
2
[RFC][VECLIB] how should we legalize VECLIB calls?
Illustrative Example: clang -fveclib=SVML -O3 svml.c -mavx #include <math.h> void foo(double *a, int N){ int i; #pragma clang loop vectorize_width(8) for (i=0;i<N;i++){ a[i] = sin(i); } } Currently, this results in a call to <8 x double> __svml_sin8(<8 x double>) after the vectorizer. This is 8-element SVML sin() called with 8-element argument. On the surface, this looks very good. Later on, standard vector type legalization kicks-in but only the argument and return data are legalized. vmovaps %ymm0, %ymm1 vcvtdq2pd...
2018 Jul 02
8
[RFC][VECLIB] how should we legalize VECLIB calls?
...#pragma clang loop vectorize_width(8) > >   for (i=0;i<N;i++){ > >     a[i] = sin(i); > >   } > > } > >   > > Currently, this results in a call to <8 x double> > __svml_sin8(<8 x double>) after the vectorizer. > > This is 8-element SVML sin() called with 8-element > argument. On the surface, this looks very good. > > Later on, standard vector type legalization kicks-in but > only the argument and r...
2018 Jun 29
2
[RFC][VECLIB] how should we legalize VECLIB calls?
...hould we legalize VECLIB calls? Illustrative Example: clang -fveclib=SVML -O3 svml.c -mavx #include <math.h> void foo(double *a, int N){ int i; #pragma clang loop vectorize_width(8) for (i=0;i<N;i++){ a[i] = sin(i); } } Currently, this results in a call to <8 x double> __svml_sin8(<8 x double>) after the vectorizer. This is 8-element SVML sin() called with 8-element argument. On the surface, this looks very good. Later on, standard vector type legalization kicks-in but only the argument and return data are legalized. vmovaps %ymm0, %ymm1 vcvtdq2pd...
2018 Jul 02
2
[RFC][VECLIB] how should we legalize VECLIB calls?
...N){ >> >> int i; >> >> #pragma clang loop vectorize_width(8) >> >> for (i=0;i<N;i++){ >> >> a[i] = sin(i); >> >> } >> >> } >> >> >> >> Currently, this results in a call to <8 x double> __svml_sin8(<8 x >> double>) after the vectorizer. >> >> This is 8-element SVML sin() called with 8-element argument. On the >> surface, this looks very good. >> >> Later on, standard vector type legalization kicks-in but only the >> argument and return data are...
2018 Jul 02
2
[RFC][VECLIB] how should we legalize VECLIB calls?
...> #include <math.h> > > void foo(double *a, int N){ > > int i; > > #pragma clang loop vectorize_width(8) > > for (i=0;i<N;i++){ > > a[i] = sin(i); > > } > > } > > > > Currently, this results in a call to <8 x double> __svml_sin8(<8 x > double>) after the vectorizer. > > This is 8-element SVML sin() called with 8-element argument. On the > surface, this looks very good. > > Later on, standard vector type legalization kicks-in but only the argument > and return data are legalized. > >...
2018 Jul 04
2
[RFC][VECLIB] how should we legalize VECLIB calls?
...eki.saito at intel.com>; > Sanjay Patel <spatel at rotateright.com>; mzolotukhin at apple.com > Cc: dccitaliano at gmail.com; Masten, Matt <matt.masten at intel.com> > Subject: RE: [llvm-dev] [RFC][VECLIB] how should we legalize VECLIB calls? > > Hi Hal, > > > __svml_sin8 (plus whatever shuffles are necessary). > > The vectorizer should do this. > > It should not generate calls to functions that don't exist. > > I'm not sure how vectorizer will do this, consider the case where > "-vectorizer-maximize-bandwidth" option is enable...