]> granicus.if.org Git - clang/commit
[ARM-BE] Generate correct NEON intrinsics for big endian systems.
authorJames Molloy <james.molloy@arm.com>
Fri, 27 Jun 2014 11:53:35 +0000 (11:53 +0000)
committerJames Molloy <james.molloy@arm.com>
Fri, 27 Jun 2014 11:53:35 +0000 (11:53 +0000)
commitf19ae3247706388b82b1732fcb567f2981bda7af
treee5a2cf8aab09145c4379380f423c4765789c3ceb
parente1a4af78d7653289672c5f0b67faf99679c0be02
[ARM-BE] Generate correct NEON intrinsics for big endian systems.

The NEON intrinsics in arm_neon.h are designed to work on vectors
"as-if" loaded by (V)LDR. We load vectors "as-if" (V)LD1, so the
intrinsics are currently incorrect.

This patch adds big-endian versions of the intrinsics that does the
"obvious but dumb" thing of reversing all vector inputs and all
vector outputs. This will produce extra REVs, but we trust the
optimizer to remove them.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@211893 91177308-0d34-0410-b5e6-96231b3b80d8
include/clang/Basic/arm_neon.td
test/CodeGen/arm64-lanes.c
utils/TableGen/NeonEmitter.cpp