[AArch64][11/14] Re-layout SIMD builtin types on builtin expansion
authorKyrylo Tkachov <kyrylo.tkachov@arm.com>
Tue, 4 Aug 2015 10:39:42 +0000 (10:39 +0000)
committerKyrylo Tkachov <ktkachov@gcc.gnu.org>
Tue, 4 Aug 2015 10:39:42 +0000 (10:39 +0000)
commite95a988adae82e72ad88f61d3bded0f12fd2152c
treead5c28519ae9150f5341e2af80f52b4b77f6fad8
parente4ea20c8eba2430a534db6d10059ae53051312cb
[AArch64][11/14] Re-layout SIMD builtin types on builtin expansion

* config/aarch64/aarch64.c (aarch64_option_valid_attribute_p):
Initialize simd builtins if TARGET_SIMD.
* config/aarch64/aarch64-builtins.c (aarch64_init_simd_builtins):
Make sure that the builtins are initialized only once no matter how
many times the function is called.
(aarch64_init_builtins): Unconditionally initialize crc builtins.
(aarch64_relayout_simd_param): New function.
(aarch64_simd_expand_args): Use above during argument expansion.
* config/aarch64/aarch64-c.c (aarch64_pragma_target_parse): Initialize
simd builtins if TARGET_SIMD.
* config/aarch64/aarch64-protos.h (aarch64_init_simd_builtins): New
prototype.
(aarch64_relayout_simd_types): Likewise.

* gcc.target/aarch64/target_attr_crypto_ice_1.c: New test.

From-SVN: r226564
gcc/ChangeLog
gcc/config/aarch64/aarch64-builtins.c
gcc/config/aarch64/aarch64-c.c
gcc/config/aarch64/aarch64-protos.h
gcc/config/aarch64/aarch64.c
gcc/testsuite/ChangeLog
gcc/testsuite/gcc.target/aarch64/target_attr_crypto_ice_1.c [new file with mode: 0644]