[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