History log of /external/clang/utils/TableGen/NeonEmitter.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
a4de17562d13d7a8188108243c4cfbd52f33229a 04-Mar-2016 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master clang for rebase to r256229

http://b/26987366

(cherry picked from commit 87d948ecccffea9e9e37d0d053b246e2d6d6c47b)

Change-Id: I10ca401a280e905253aafabad9118693a2f24ffb
/external/clang/utils/TableGen/NeonEmitter.cpp
b6d6993e6e6d3daf4d9876794254d20a134e37c2 01-Jul-2015 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master clang for rebase to r239765

Change-Id: I0393bcc952590a7226af8c4b58534a8ee5fd2d99
/external/clang/utils/TableGen/NeonEmitter.cpp
58878f85ab89b13e9eea4af3ccf055e42c557bc8 06-May-2015 Pirama Arumuga Nainar <pirama@google.com> Update aosp/master clang for rebase to r235153

Change-Id: Ia94bbcb6da7c75b6e7c2afedd1001094d62a7324
/external/clang/utils/TableGen/NeonEmitter.cpp
0e2c34f92f00628d48968dfea096d36381f494cb 23-Mar-2015 Stephen Hines <srhines@google.com> Update aosp/master clang for rebase to r230699.

Change-Id: I6a546ab3d4ae37119eebb735e102cca4f80ab520
/external/clang/utils/TableGen/NeonEmitter.cpp
176edba5311f6eff0cad2631449885ddf4fbc9ea 01-Dec-2014 Stephen Hines <srhines@google.com> Update aosp/master Clang for rebase to r222490.

Change-Id: Ic557ac55e97fbf6ee08771c7b7c3594777b0aefd
/external/clang/utils/TableGen/NeonEmitter.cpp
c568f1e98938584c0ef0b12ae5018ff7d90a4072 21-Jul-2014 Stephen Hines <srhines@google.com> Update Clang for rebase to r212749.

This also fixes a small issue with arm_neon.h not being generated always.

Includes a cherry-pick of:
r213450 - fixes mac-specific header issue
r213126 - removes a default -Bsymbolic on Android

Change-Id: I2a790a0f5d3b2aab11de596fc3a74e7cbc99081d
/external/clang/utils/TableGen/NeonEmitter.cpp
6bcf27bb9a4b5c3f79cb44c0e4654a6d7619ad89 29-May-2014 Stephen Hines <srhines@google.com> Update Clang for 3.5 rebase (r209713).

Change-Id: I8c9133b0f8f776dc915f270b60f94962e771bc83
/external/clang/utils/TableGen/NeonEmitter.cpp
651f13cea278ec967336033dd032faef0e9fc2ec 24-Apr-2014 Stephen Hines <srhines@google.com> Updated to Clang 3.5a.

Change-Id: I8127eb568f674c2e72635b639a3295381fe8af82
/external/clang/utils/TableGen/NeonEmitter.cpp
696e2d735c38eb73f1628d9b6166565fec4b9f1b 08-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r196535:
------------------------------------------------------------------------
r196535 | apazos | 2013-12-05 13:13:24 -0800 (Thu, 05 Dec 2013) | 1 line

Implemented vget/vset_lane_f16 intrinsics
------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196686 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
917b328a7f565f9f3f0ae2067a8b97732efaa9f8 08-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r196211:
------------------------------------------------------------------------
r196211 | haoliu | 2013-12-02 22:07:13 -0800 (Mon, 02 Dec 2013) | 3 lines

[AArch64]Add missing floating point convert, round and misc intrinsics.
E.g. int64x1_t vcvt_s64_f64(float64x1_t a) -> FCVTZS Dd, Dn

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
26476230652928491dd8b3eead189f928b48363c 08-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r196189:
------------------------------------------------------------------------
r196189 | jiangning | 2013-12-02 17:28:55 -0800 (Mon, 02 Dec 2013) | 2 lines

Add some missing AArch64 Neon intrinsics like vmull_high_n_s16 and friends.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
e3b558de86b927e187f62cd2c6c17a966852255f 01-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r195943:
------------------------------------------------------------------------
r195943 | haoliu | 2013-11-28 18:31:42 -0800 (Thu, 28 Nov 2013) | 2 lines

AArch64: Two intrinsics are expected to return float64 not float32 in arm_neon.h

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196023 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
08efe365cc491ad289132cb9e286382eb0493753 01-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r195942:
------------------------------------------------------------------------
r195942 | haoliu | 2013-11-28 18:13:17 -0800 (Thu, 28 Nov 2013) | 3 lines

Fix the problem that the range check for scalar narrow shift is too wide.
E.g. the immediate value of vshrns_n_s16 is [1,16], which should be [1,8].

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196022 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
51d85463d5debc70d034c257c60b245591495367 01-Dec-2013 Bill Wendling <isanbard@gmail.com> Merging r195844:
------------------------------------------------------------------------
r195844 | jiangning | 2013-11-27 06:02:55 -0800 (Wed, 27 Nov 2013) | 2 lines

Fix the AArch64 NEON bug exposed by checking constant integer argument range of ACLE intrinsics.

------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@196012 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
f27429d06ab3cea0e97ad9878c4440dfb06d2fe7 25-Nov-2013 Bill Wendling <isanbard@gmail.com> Merging r195326:
------------------------------------------------------------------------
r195326 | apazos | 2013-11-20 23:36:33 -0800 (Wed, 20 Nov 2013) | 6 lines

Implemented Neon scalar by element intrinsics.

Intrinsics implemented: vqdmull_lane, vqdmulh_lane, vqrdmulh_lane,
vqdmlal_lane, vqdmlsl_lane scalar Neon intrinsics.


------------------------------------------------------------------------


git-svn-id: https://llvm.org/svn/llvm-project/cfe/branches/release_34@195613 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
315007b1d459846fcc8fd842a63fbcaad6008ec2 19-Nov-2013 Jiangning Liu <jiangning.liu@arm.com> Add predicate for AArch64 crypto instructions.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
769187a95a608f5aafdf438a67f335324a7b155e 19-Nov-2013 Jiangning Liu <jiangning.liu@arm.com> Clean up predefined macros for AArch64 to follow ACLE 2.0.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@195068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
dd12780e86575795fa912529a911b01e2abc4677 18-Nov-2013 Hao Liu <Hao.Liu@arm.com> Implement the newly added AArch64 ACLE functions for ld1/st1 with 2/3/4 vectors.
The functions are like: vst1_s8_x2 ...


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
51cc0172a173599b769968696e20638754d1dcd6 16-Nov-2013 Ana Pazos <apazos@codeaurora.org> Implemented aarch64 Neon scalar vmulx_lane intrinsics
Implemented aarch64 Neon scalar vfma_lane intrinsics
Implemented aarch64 Neon scalar vfms_lane intrinsics

Implemented legacy vmul_n_f64, vmul_lane_f64, vmul_laneq_f64
intrinsics (v1f64 parameter type) using Neon scalar instructions.

Implemented legacy vfma_lane_f64, vfms_lane_f64,
vfma_laneq_f64, vfms_laneq_f64 intrinsics (v1f64 parameter type)
using Neon scalar instructions.



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
624bb5e59dbcc24efeee7dff12c9b48d2b5077e9 14-Nov-2013 Kevin Qin <Kevin.Qin@arm.com> [AArch64 neon] support poly64 and relevant intrinsic functions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
8137a607eebe799d95fd05226fb91119a5b054b0 14-Nov-2013 Kevin Qin <Kevin.Qin@arm.com> Implement aarch64 neon instruction class misc.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194657 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
2e22f29b92768ea65ac5c26d354226ecc7509311 14-Nov-2013 Jiangning Liu <jiangning.liu@arm.com> Implement AArch64 NEON instruction set AdvSIMD (table).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
9473c1945f9f1dfa143e172622f16e4264e2628b 11-Nov-2013 Chad Rosier <mcrosier@codeaurora.org> [AArch64] Add support for NEON scalar floating-point convert to fixed-point instructions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
bf3bc5d37eff88b578d5990f507a87db33f30a6e 06-Nov-2013 Jiangning Liu <jiangning.liu@arm.com> Implement AArch64 Neon instruction set Perm.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
22229d6822324a42913d25f256045dbf348a53e9 05-Nov-2013 Kevin Qin <Kevin.Qin@arm.com> Implemented aarch64 neon intrinsic vcopy_lane with float type.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@194042 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
f42727215f9fa38175d2e84a938c84122cd1e811 31-Oct-2013 Chad Rosier <mcrosier@codeaurora.org> [AArch64] Add support for NEON scalar shift immediate instructions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
564020954e9eb01293d90802c89a02f87301e095 30-Oct-2013 Chad Rosier <mcrosier@codeaurora.org> [AArch64] Add support for NEON scalar floating-point compare instructions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@193692 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
4553a858e46299955333babfa052a512682869fd 18-Oct-2013 Chad Rosier <mcrosier@codeaurora.org> [AArch64] Add support for NEON scalar extract narrow instructions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192971 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
2102a1dba460c99f97a0fdf1e5aee8c685e29ff8 11-Oct-2013 Kevin Qin <Kevin.Qin@arm.com> Implemented aarch64 SIMD copy related ACLE intrinsic :
vget_lane, vset_lane, vcopy_lane, vcreate, vdup_n, vdup_lane, vmov_n.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192411 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
6d048e1a9768b594513e2ec7a6d3579787eb2505 08-Oct-2013 Chad Rosier <mcrosier@codeaurora.org> [AArch64] Add support for NEON scalar signed/unsigned integer to floating-point
convert instructions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192232 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
0391691f86fd2a75ef2413d0272bfaf920d0e2b5 05-Oct-2013 Jiangning Liu <jiangning.liu@arm.com> Implement aarch64 neon instruction set AdvSIMD (Across).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@192029 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
0aa1a88e19235574481e46e9e6e9ce66a9e6624f 04-Oct-2013 Jiangning Liu <jiangning.liu@arm.com> Implement aarch64 neon instruction set AdvSIMD (3V elem).


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@191945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
097a4b487897ca29f0f371c81b6a8b6c1ca599e4 09-Sep-2013 Jiangning Liu <jiangning.liu@arm.com> Implement aarch64 neon instruction set AdvSIMD (3V Diff), covering the following 26 instructions,

SADDL, UADDL, SADDW, UADDW, SSUBL, USUBL, SSUBW, USUBW, ADDHN, RADDHN, SABAL, UABAL, SUBHN, RSUBHN, SABDL, UABDL, SMLAL, UMLAL, SMLSL, UMLSL, SQDMLAL, SQDMLSL, SMULL, UMULL, SQDMULL, PMULL



git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@190289 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
912502b4996b14db31b498cb1eef2b17d7d66d57 04-Sep-2013 Hao Liu <Hao.Liu@arm.com> Inplement aarch64 neon instructions in AdvSIMD(shift). About 24 shift instructions:
sshr,ushr,ssra,usra,srshr,urshr,srsra,ursra,sri,shl,sli,sqshlu,sqshl,uqshl,shrn,sqrshr$
and 4 convert instructions:
scvtf,ucvtf,fcvtzs,fcvtzu


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189926 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
944f09ff9b33637465906e1aeadcfa405d66331d 29-Aug-2013 Kevin Qin <Kevin.Qin@arm.com> mangle aarch64 Neon ACLE scalar instrinsic name with BHSD suffix.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@189574 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
12cd6a83f280bcab0e80230e8c7b1f989f3b4889 15-Aug-2013 Hao Liu <Hao.Liu@arm.com> Clang and AArch64 backend patches to support shll/shl and vmovl instructions and ACLE functions

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@188452 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
b793f0d3448a15277cd6b6cc4ba558ded39a8084 01-Aug-2013 Tim Northover <tnorthover@apple.com> AArch64: initial NEON support

Patch by Ana Pazos

- Completed implementation of instruction formats:
AdvSIMD three same
AdvSIMD modified immediate
AdvSIMD scalar pairwise

- Completed implementation of instruction classes
(some of the instructions in these classes
belong to yet unfinished instruction formats):
Vector Arithmetic
Vector Immediate
Vector Pairwise Arithmetic

- Initial implementation of instruction formats:
AdvSIMD scalar two-reg misc
AdvSIMD scalar three same

- Intial implementation of instruction class:
Scalar Arithmetic

- Initial clang changes to support arm v8 intrinsics.
Note: no clang changes for scalar intrinsics function name mangling yet.

- Comprehensive test cases for added instructions
To verify auto codegen, encoding, decoding, diagnosis, intrinsics.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@187568 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
fdeee9da9e497ef0bbebbf375c32360e9a21376b 24-Jun-2013 Michael Gottesman <mgottesman@apple.com> [NeonIntrinsicTestEmitter] vld1/vst1 do not require the :64 hint.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184786 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
410c3f73cb0c78f72335dc712a9d887d77b8e7ce 24-Jun-2013 Michael Gottesman <mgottesman@apple.com> [NeonIntrinsicTestEmitter] Fix incorrect FileCheck pattern where we were expecting a ',' prefix to alignment hints.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184785 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
bb5595ddf52f1be7988486630a2999d6e738db64 24-Jun-2013 Michael Gottesman <mgottesman@apple.com> [NeonIntrinsicTestEmitter] Add requirement to arm neon intrinsic tests for the feature long_tests.

This will prevent the tests from running on normal make check. You will need to
actually pass in --param run_long_tests=true to LIT in order to run these.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@184784 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
cd76539274cdc3907a61de28ba81a9e90f270a41 15-May-2013 Jim Grosbach <grosbach@apple.com> ARM: Improve codegen for vget_low_* and vget_high_ intrinsics.

These intrinsics use the __builtin_shuffle() function to extract the
low and high half, respectively, of a 128-bit NEON vector. Currently,
they're defined to use bitcasts to simplify the emitter, so we get code
like:
uint16x4_t vget_low_u32(uint16x8_t __a) {
return (uint32x2_t) __builtin_shufflevector((int64x2_t) __a,
(int64x2_t) __a,
0);
}

While this works, it results in those bitcasts going all the way through
to the IR, resulting in code like:
%1 = bitcast <8 x i16> %in to <2 x i64>
%2 = shufflevector <2 x i64> %1, <2 x i64> undef, <1 x i32>
%zeroinitializer
%3 = bitcast <1 x i64> %2 to <4 x i16>

We can instead easily perform the operation directly on the input vector
like:

uint16x4_t vget_low_u16(uint16x8_t __a) {
return __builtin_shufflevector(__a, __a, 0, 1, 2, 3);
}

Not only is that much easier to read on its own, it also results in
cleaner IR like:

%1 = shufflevector <8 x i16> %in, <8 x i16> undef,
<4 x i32> <i32 0, i32 1, i32 2, i32 3>

This is both easier to read and easier for the back end to reason
about effectively since the operation is obfuscating the source with
bitcasts.

rdar://13894163

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@181865 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
c873b51aea82cb7232c86c0012b9f493a62ef003 25-Apr-2013 Michael Gottesman <mgottesman@apple.com> [neonemitter tests] Change triple of emitted tests to thumbv7s to match the target cpu being swift. Also specify the target-abi to apcs-gnu.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@180233 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
c327f8705ecb8753555822d479f899bd2234386d 17-Apr-2013 Michael Gottesman <mgottesman@apple.com> [6/6] ARM Neon Intrinsic Tablegen Test Generator.

Added GenerateChecksForIntrinsic method to generate FileCheck patterns
for generated arm neon tests.

Reviewed by Bob Wilson.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179644 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
fb9929ee2a0ed47d473a58b0ba5c7a7a7a095b73 17-Apr-2013 Michael Gottesman <mgottesman@apple.com> [5/6] ARM Neon Intrinsic Tablegen Test Generator.

Changed the test generation target cpu type from cortex-a9 to swift.

Reviewed by Bob Wilson.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179642 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
7200bd673af6b58d7d2f0c5d048050abe5b8858c 17-Apr-2013 Michael Gottesman <mgottesman@apple.com> [4/6] ARM Neon Intrinsic Tablegen Test Generator.

Added code to NeonEmitter::runTests so that GenTest gets all of the needed
arguments to invoke the neon test generation methods.

Reviewed by Bob Wilson.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
fb599a4cc5665afe8da11d438ae021a5cd8cfdbd 17-Apr-2013 Michael Gottesman <mgottesman@apple.com> [3/6] ARM Neon Intrinsic Tablegen Test Generator.

Refactored out the method InstructionTypeCode from MangleName for use in
further patches which perform neon tablegen test generation.

Reviewed by Bob Wilson.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
21e4e940ed3ad172f344a3aa3faf1d8437441313 16-Apr-2013 Michael Gottesman <mgottesman@apple.com> [2/6] ARM Neon Intrinsic Tablegen Test Generator.

This patch causes OpInst records to be silently identified with their Non-Op
inst counterparts so that the same test generation infrastructure can be used to
generate tests.

Reviewed by Bob Wilson.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
1e8058f8d90fab1b9011adf62caa52e19e61382c 12-Apr-2013 Bob Wilson <bob.wilson@apple.com> Define Neon intrinsics as "static inline" to avoid warning. rdar://13108414

We had been defining Neon intrinsics as "static" with always_inline attributes.
If you use them from an extern inline function, you get a warning, e.g.:

static function 'vadd_u8' is used in an inline function with external linkage

This change simply adds the inline keyword to avoid that warning.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@179406 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
38859ee4a3c1253d5a45ed3f6b52e77702bfd913 25-Oct-2012 Joerg Sonnenberger <joerg@bec.de> Don't throw exceptions in clang-tblgen by switching to PrintFatalError.
Add locations in a number of places, where they are available for free.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@166691 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
b27660a733d420967371bbf578a75db21116895c 14-Aug-2012 Richard Smith <richard-llvm@metafoo.co.uk> Placate the mingw32 buildbot by suffixing 64-bit constants with ULL.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161831 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
f8ee6bc1ef0eec8e22b413dfc2baa3cfa4f19f91 14-Aug-2012 Richard Smith <richard-llvm@metafoo.co.uk> Fix undefined behavior (and wrong code, as far as I can tell) in NEON builtin
tablegen code, found by -fcatch-undefined-behavior. I would appreciate if
someone more familiar with the NEON code could point me in the direction of how
to write a test for this. We appear to have essentially no test coverage
whatsoever for these builtins.


git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
66981c7ca1fcef529d7d5e5c53b07020ff23d8e3 03-Aug-2012 Jim Grosbach <grosbach@apple.com> TableGen: Remove extraneous \ character from arm_neon.h definitions.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@161244 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
3cc509b5ac0e99ef44c1bf8b57cd403b546abc3d 13-Jun-2012 Jakob Stoklund Olesen <stoklund@2pi.dk> Make clang-tblgen backends functions instead of TableGenBackends.

Get rid of a bunch of header files. TableGen output should be unaffected.

Patch by Sean Silva!

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@158388 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
b4a542549c2e0c9eeb6ece3f95767ccdd141fa3e 30-May-2012 Jim Grosbach <grosbach@apple.com> TableGen: Remove extraneous '\' at EOL in generated tests.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@157700 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
667381b21f75d6964bbdf6af143308a02b9198a8 09-May-2012 Jim Grosbach <grosbach@apple.com> ARM: Support marking intrinsic definitions as 'unavailable'

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@156490 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
7530c034c0c71a64c5a9173206d9742ae847af8b 17-Jan-2012 David Blaikie <dblaikie@gmail.com> Remove unreachable code in Clang. (replace with llvm_unreachable where appropriate or when GCC requires it)

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@148292 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
9082cddf28e03c2f718e92457e2d9c7390056b2d 20-Dec-2011 Bob Wilson <bob.wilson@apple.com> Relax type checking for a few Neon intrinsics. <rdar://problem/10538555>

Not long ago, I tightened up the type checking for pointer arguments of
Neon intrinsics to match the specifications provided by ARM. One consequence
was that it became impossible to access the unaligned versions of a few
Neon load/store operations. Since there are just a few of these intrinsics
where it makes a difference, I think it's better to relax the type checking
than to either introduce new non-standard unaligned intrinsics or to disallow
intrinsics for the unaligned operations.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@146963 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
4648255cebd2fc7c18293c1f93afd6e9add9cccc 16-Nov-2011 Bob Wilson <bob.wilson@apple.com> Fix Neon builtin pointer argument checking for "sret" builtins.

The code for checking Neon builtin pointer argument types was assuming that
there would only be one pointer argument. But, for vld2-4 builtins, the first
argument is a special sret pointer where the result will be stored. So,
instead of scanning all the arguments to find a pointer, have TableGen figure
out the index of the pointer argument that needs checking. That's better than
scanning all the arguments regardless. <rdar://problem/10448804>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
6f9f03ef370ad48ece0c5d10edda28f39ccadb5d 08-Nov-2011 Bob Wilson <bob.wilson@apple.com> Check pointer types for arguments of Neon load/store macros. rdar://9958031

The Neon load/store intrinsics need to be implemented as macros to avoid
hiding alignment attributes on the pointer arguments, and the macros can
only evaluate those pointer arguments once (in case they have side effects),
so it has been hard to get the right type checking for those pointers.
I tried various alternatives in the arm_neon.h header, but it's much more
straightforward to just check directly in Sema.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
da95f73b59f9af964e33725c515139d34c90c863 08-Nov-2011 Bob Wilson <bob.wilson@apple.com> Clean up type flags for overloaded Neon builtins. No functional change.

This patch just adds a simple NeonTypeFlags class to replace the various
hardcoded constants that had been used until now. Unfortunately I couldn't
figure out a good way to avoid duplicating that class between clang and
TableGen, but since it's small and rarely changes, that's not so bad.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@144054 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
d1af3b901a2176bc7f4b7e2fadcd25110576b454 14-Oct-2011 Bob Wilson <bob.wilson@apple.com> Add __nodebug__ attribute to functions in arm_neon.h

This matches what we do for Intel vector intrinsics. <rdar://problem/10280207>

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp
51d7777a21b9706d503496c650af06f80d278c1a 06-Oct-2011 Peter Collingbourne <peter@pcc.me.uk> Add the Clang tblgen backends to Clang, and flip the switch to cause
the build systems to use clang-tblgen.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@141291 91177308-0d34-0410-b5e6-96231b3b80d8
/external/clang/utils/TableGen/NeonEmitter.cpp