[LLVMdev] Haswell New Instructions
Jose Fonseca
jfonseca at vmware.com
Fri Jun 17 10:26:02 PDT 2011
----- Original Message -----
> greened at obbligato.org (David A. Greene) writes:
>
> > Jose Fonseca <jfonseca at vmware.com> writes:
> >
> >> The important thing IMO, is to not represent the gather operation
> >> as
> >> an instruction which takes a vector of pointers, because that's
> >> too
> >> restrictive for architectures with 64bits pointers.
> >
> > How is it restrictive?
>
> Ah, I think you mean you don't want it ONLY to allow a vector of
> pointers. I absolutely agree with this view.
>
> >> What one most frequently wants to do in those architectures is to
> >> specify a
> >> 64bit scalar base pointer with a vector of 32bit offsets.
> >
> > Or 64-bit offsets. We should not restrict offsets to 32 bits.
>
> To reiterate, a base address + vector of indices gets my vote. If
> the
> base happens to be zero and the indices happen to be pre-scaled
> pointer
> values, so be it. :)
Precisely.
>
> The raises the question of whether indices get scaled by the vector
> element type size. This would compilcate the semantics of load, I
> think, because getelementptr is really the instruction that does the
> scaling. If we have a gather operation (wether a load with vector of
> indices or a special instruction) it seems that we will need some
> kind
> of vector getelementptr as well.
>
> -Dave
>
Good question.
At any rate, I agree with everybody here on that we should start with intrinsics.
Jose
More information about the llvm-dev
mailing list