[PATCHSET][ARM64] Implement big endian NEON

James Molloy james at jamesmolloy.co.uk
Wed May 7 04:37:54 PDT 2014


Hi Tim,

Thanks. I've made the changes you've asked and as you LGTM'd it on IRC,
have committed it with revisions r208192, r208193 and r208194.

Cheers,
James


On 2 May 2014 16:46, Tim Northover <t.p.northover at gmail.com> wrote:

> Hi James,
>
> From 0001:
>
> +      uint32_t OpSize = Flags.isByVal() ? Flags.getByValSize()*8 :
> +                                          VA.getLocVT().getSizeInBits();
> +      OpSize = (OpSize + 7) / 8;
> +
> +      // FIXME: This works on big-endian for composite byvals, which
> are the common
> +      // case. It should also work for fundamental types too.
> +      uint32_t BEAlign = 0;
> +      if (OpSize < 8 && !Subtarget->isLittleEndian() && !Flags.isByVal())
>
> Since OpSize is only ever used when !isByVal, this could probably be
> simplified, possibly to "if (!Subtarget->isLittleEndian() &&
> !Flags.isByVal() && VA.getLocVT().getSizeInBits() < 64" (well,
> strictly, <= 56, but I'm unconvinced that there's an actual difference
> or that 56 is more correct if there *is*).
>
> From 0003:
>
> +def : Pat<(v1i64 (bitconvert GPR64:$Xn)), (COPY_TO_REGCLASS
> GPR64:$Xn, FPR64)>; // b)
>
> Is that comment (etc) meaningful?
>
> +def : Pat<(f128 (bitconvert (v4i32 FPR128:$src))), (f128 (EXTv16i8
> (REV64v4i32 FPR128:$src), (REV64v4i32 FPR128:$src), (i32 8)))>;
>
> I think the long .td lines should probably be split now.
>
> I'd also suggest squashing 0003, 0004 & 0005 into a single commit.
>
> Other than that, it's looking good I think.
>
> Cheers.
>
> Tim.
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140507/5a25daa3/attachment.html>


More information about the llvm-commits mailing list