diff options
| author | James Molloy <james.molloy@arm.com> | 2014-06-20 14:35:13 +0000 |
|---|---|---|
| committer | James Molloy <james.molloy@arm.com> | 2014-06-20 14:35:13 +0000 |
| commit | 9eef2659bf60af09e06e4e65f97cd34fb207cae9 (patch) | |
| tree | 535d173efd37254113a712b0ad45a70c36ca753c /clang/test/Sema/attr-cleanup.c | |
| parent | 454ac7c6f34daee3f27e0271d234ad529843cd24 (diff) | |
| download | bcm5719-llvm-9eef2659bf60af09e06e4e65f97cd34fb207cae9.tar.gz bcm5719-llvm-9eef2659bf60af09e06e4e65f97cd34fb207cae9.zip | |
The ability to use vector initializer lists is a GNU vector extension
and is unrelated to the NEON intrinsics in arm_neon.h. On little
endian machines it works fine, however on big endian machines it
exhibits surprising behaviour:
uint32x2_t x = {42, 64};
return vget_lane_u32(x, 0); // Will return 64.
Because of this, explicitly call out that it is unsupported on big
endian machines.
This patch will emit the following warning in big-endian mode:
test.c:3:15: warning: vector initializers are a GNU extension and are not compatible with NEON intrinsics [-Wgnu]
int32x4_t x = {0, 1, 2, 3};
^
test.c:3:15: note: consider using vld1q_s32() to initialize a vector from memory, or vcombine_s32(vcreate_s32(), vcreate_s32()) to initialize from integer constants
1 warning generated.
llvm-svn: 211362
Diffstat (limited to 'clang/test/Sema/attr-cleanup.c')
0 files changed, 0 insertions, 0 deletions

