[AArch64_BE 3/4] Big-Endian lane numbering fix

2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>

	* config/aarch64/aarch64-simd.md
	(aarch64_dup_lane<mode>): Correct lane number on big-endian.
	(aarch64_dup_lane_<vswap_widthi_name><mode>): Likewise.
	(*aarch64_mul3_elt<mode>): Likewise.
	(*aarch64_mul3_elt<vswap_width_name><mode>): Likewise.
	(*aarch64_mul3_elt_to_64v2df): Likewise.
	(*aarch64_mla_elt<mode>): Likewise.
	(*aarch64_mla_elt_<vswap_width_name><mode>): Likewise.
	(*aarch64_mls_elt<mode>): Likewise.
	(*aarch64_mls_elt_<vswap_width_name><mode>): Likewise.
	(*aarch64_fma4_elt<mode>): Likewise.
	(*aarch64_fma4_elt_<vswap_width_name><mode>): Likewise.
	(*aarch64_fma4_elt_to_64v2df): Likewise.
	(*aarch64_fnma4_elt<mode>): Likewise.
	(*aarch64_fnma4_elt_<vswap_width_name><mode>): Likewise.
	(*aarch64_fnma4_elt_to_64v2df): Likewise.
	(aarch64_sq<r>dmulh_lane<mode>): Likewise.
	(aarch64_sq<r>dmulh_laneq<mode>): Likewise.
	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
	(aarch64_sqdml<SBINQOPS:as>l_lane<mode>_internal): Likewise.
	(aarch64_sqdml<SBINQOPS:as>l2_lane<mode>_internal): Likewise.
	(aarch64_sqdmull_lane<mode>_internal): Likewise.
	(aarch64_sqdmull2_lane<mode>_internal): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206972 138bc75d-0d04-0410-961f-82ee72b054a4
[AArch64_BE 4/4] Big-Endian lane numbering fix

2014-01-23  James Greenhalgh  <james.greenhalgh@arm.com>
	    Alex Velenko  <Alex.Velenko@arm.com>

	* config/aarch64/arm_neon.h (vaddv_s8): __LANE0 cleanup.
	(vaddv_s16): Likewise.
	(vaddv_s32): Likewise.
	(vaddv_u8): Likewise.
	(vaddv_u16): Likewise.
	(vaddv_u32): Likewise.
	(vaddvq_s8): Likewise.
	(vaddvq_s16): Likewise.
	(vaddvq_s32): Likewise.
	(vaddvq_s64): Likewise.
	(vaddvq_u8): Likewise.
	(vaddvq_u16): Likewise.
	(vaddvq_u32): Likewise.
	(vaddvq_u64): Likewise.
	(vaddv_f32): Likewise.
	(vaddvq_f32): Likewise.
	(vaddvq_f64): Likewise.
	(vmaxv_f32): Likewise.
	(vmaxv_s8): Likewise.
	(vmaxv_s16): Likewise.
	(vmaxv_s32): Likewise.
	(vmaxv_u8): Likewise.
	(vmaxv_u16): Likewise.
	(vmaxv_u32): Likewise.
	(vmaxvq_f32): Likewise.
	(vmaxvq_f64): Likewise.
	(vmaxvq_s8): Likewise.
	(vmaxvq_s16): Likewise.
	(vmaxvq_s32): Likewise.
	(vmaxvq_u8): Likewise.
	(vmaxvq_u16): Likewise.
	(vmaxvq_u32): Likewise.
	(vmaxnmv_f32): Likewise.
	(vmaxnmvq_f32): Likewise.
	(vmaxnmvq_f64): Likewise.
	(vminv_f32): Likewise.
	(vminv_s8): Likewise.
	(vminv_s16): Likewise.
	(vminv_s32): Likewise.
	(vminv_u8): Likewise.
	(vminv_u16): Likewise.
	(vminv_u32): Likewise.
	(vminvq_f32): Likewise.
	(vminvq_f64): Likewise.
	(vminvq_s8): Likewise.
	(vminvq_s16): Likewise.
	(vminvq_s32): Likewise.
	(vminvq_u8): Likewise.
	(vminvq_u16): Likewise.
	(vminvq_u32): Likewise.
	(vminnmv_f32): Likewise.
	(vminnmvq_f32): Likewise.
	(vminnmvq_f64): Likewise.


git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206973 138bc75d-0d04-0410-961f-82ee72b054a4
Added support for Cilk Plus SIMD-enabled functions for C++.
gcc/c/c-parser.c
2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>

        * c-parser.c (c_finish_omp_declare_simd): Made "cilk simd function"
        attribute an attribute without value.

gcc/cp/ChangeLog
2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>

        * parser.c (cp_parser_direct_declarator): When Cilk Plus is enabled
        see if there is an attribute after function decl.  If so, then
        parse them now.
        (cp_parser_late_return_type_opt): Handle parsing of Cilk Plus SIMD
        enabled function late parsing.
        (cp_parser_gnu_attribute_list): Parse all the tokens for the vector
        attribute for a SIMD-enabled function.
        (cp_parser_omp_all_clauses): Skip parsing to the end of pragma when
        the function is used by SIMD-enabled function (indicated by NULL
        pragma token).   Added 3 new clauses: PRAGMA_CILK_CLAUSE_MASK,
        PRAGMA_CILK_CLAUSE_NOMASK and PRAGMA_CILK_CLAUSE_VECTORLENGTH
        (cp_parser_cilk_simd_vectorlength): Modified this function to handle
        vectorlength clause in SIMD-enabled function and #pragma SIMD's
        vectorlength clause.  Added a new bool parameter to differentiate
        between the two.
        (cp_parser_cilk_simd_fn_vector_attrs): New function.
        (is_cilkplus_vector_p): Likewise.
        (cp_parser_late_parsing_elem_fn_info): Likewise.
        (cp_parser_omp_clause_name): Added a check for "mask", "nomask"
        and "vectorlength" clauses when Cilk Plus is enabled.
        (cp_parser_omp_clause_linear): Added a new parameter of type bool
        and emit a sorry message when step size is a parameter.
        * parser.h (cp_parser::cilk_simd_fn_info): New field.
        * decl.c (grokfndecl): Added flag_enable_cilkplus along with
        flag_openmp.
        * pt.c (apply_late_template_attributes): Likewise.

testsuite/ChangeLog
2014-01-23  Balaji V. Iyer  <balaji.v.iyer@intel.com>

        * g++.dg/cilk-plus/cilk-plus.exp: Called the C/C++ common tests for
        SIMD enabled function.
        * g++.dg/cilk-plus/ef_test.C: New test.
        * c-c++-common/cilk-plus/ef_error3.c: Made certain messages C specific
        and added C++ ones.
        * c-c++-common/cilk-plus/vlength_errors.c: Added new dg-error tags
        to differenciate C error messages from C++ ones.



git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@206975 138bc75d-0d04-0410-961f-82ee72b054a4