On Mon, Nov 7, 2011 at 7:38 PM, Jakub Jelinek <ja...@redhat.com> wrote:

> BUILT_IN_LRINT has been vectorized just using 16-byte
> vectors, the following patch cures it (of course, for -m64
> it unfortunately can't be vectorized, as long there is DImode
> rather than SImode).

Hm...

Looking at convert.c (around line 492), can't we process
BULT_IN_{L,LL}RINT similar to existing BUILT_IN_RINT conversion? This
would convert (and vectorize):

--cut here--
double a[256];
int b[256];

extern long lrint (double);

void foo(void)
{
  int i;

  for (i=0; i<256; ++i)
    b[i] = (int) lrint (a[i]);
}
--cut here--

also on x86-64.

Uros.

Reply via email to