[PATCH] [AArch64 NEON] Add patterns for loading vector constant from constant poll.

Tim Northover t.p.northover at gmail.com
Thu Dec 12 02:42:48 PST 2013


  Hi Kevin,

  A single ADR is incorrect. The constants are in a separate section, which means they might be up to 4GB away from the code executing. It's no coincidence that this is precisely the distance an ADRP/ADD pair is capable of addressing (ADR can only do 2MB, I think).

  That said, there's no particular reason for these to be NEON loads. On little-endian machines "ldr qD, [xN, :lo12:whatever]" (or "dD") does the same thing, and on big-endian machines (if anyone ever cares enough) we can change the constpool entry so that it still works. That's probably the most efficient way to handle it.

  Cheers.

  Tim

http://llvm-reviews.chandlerc.com/D2391



More information about the llvm-commits mailing list