gcc/gcc/c
Jakub Jelinek d8fcab6894 re PR c++/85052 (Implement support for clang's __builtin_convertvector)
PR c++/85052
	* tree-vect-generic.c: Include insn-config.h and recog.h.
	(expand_vector_piecewise): Add defaulted ret_type argument,
	if non-NULL, use that in preference to type for the result type.
	(expand_vector_parallel): Formatting fix.
	(do_vec_conversion, do_vec_narrowing_conversion,
	expand_vector_conversion): New functions.
	(expand_vector_operations_1): Call expand_vector_conversion
	for VEC_CONVERT ifn calls.
	* internal-fn.def (VEC_CONVERT): New internal function.
	* internal-fn.c (expand_VEC_CONVERT): New function.
	* fold-const-call.c (fold_const_vec_convert): New function.
	(fold_const_call): Use it for CFN_VEC_CONVERT.
	* doc/extend.texi (__builtin_convertvector): Document.
c-family/
	* c-common.h (enum rid): Add RID_BUILTIN_CONVERTVECTOR.
	(c_build_vec_convert): Declare.
	* c-common.c (c_build_vec_convert): New function.
c/
	* c-parser.c (c_parser_postfix_expression): Parse
	__builtin_convertvector.
cp/
	* cp-tree.h (cp_build_vec_convert): Declare.
	* parser.c (cp_parser_postfix_expression): Parse
	__builtin_convertvector.
	* constexpr.c: Include fold-const-call.h.
	(cxx_eval_internal_function): Handle IFN_VEC_CONVERT.
	(potential_constant_expression_1): Likewise.
	* semantics.c (cp_build_vec_convert): New function.
	* pt.c (tsubst_copy_and_build): Handle CALL_EXPR to
	IFN_VEC_CONVERT.
testsuite/
	* c-c++-common/builtin-convertvector-1.c: New test.
	* c-c++-common/torture/builtin-convertvector-1.c: New test.
	* g++.dg/ext/builtin-convertvector-1.C: New test.
	* g++.dg/cpp0x/constexpr-builtin4.C: New test.

From-SVN: r267632
2019-01-07 09:49:08 +01:00
..
ChangeLog re PR c++/85052 (Implement support for clang's __builtin_convertvector) 2019-01-07 09:49:08 +01:00
Make-lang.in Update copyright years. 2019-01-01 13:31:55 +01:00
c-aux-info.c Update copyright years. 2019-01-01 13:31:55 +01:00
c-convert.c Update copyright years. 2019-01-01 13:31:55 +01:00
c-decl.c Update copyright years. 2019-01-01 13:31:55 +01:00
c-errors.c Update copyright years. 2019-01-01 13:31:55 +01:00
c-fold.c Update copyright years. 2019-01-01 13:31:55 +01:00
c-lang.c Update copyright years. 2019-01-01 13:31:55 +01:00
c-lang.h Update copyright years. 2019-01-01 13:31:55 +01:00
c-objc-common.c Update copyright years. 2019-01-01 13:31:55 +01:00
c-objc-common.h Update copyright years. 2019-01-01 13:31:55 +01:00
c-parser.c re PR c++/85052 (Implement support for clang's __builtin_convertvector) 2019-01-07 09:49:08 +01:00
c-parser.h Update copyright years. 2019-01-01 13:31:55 +01:00
c-tree.h Update copyright years. 2019-01-01 13:31:55 +01:00
c-typeck.c Update copyright years. 2019-01-01 13:31:55 +01:00
config-lang.in Update copyright years. 2019-01-01 13:31:55 +01:00
gccspec.c Update copyright years. 2019-01-01 13:31:55 +01:00
gimple-parser.c Update copyright years. 2019-01-01 13:31:55 +01:00
gimple-parser.h Update copyright years. 2019-01-01 13:31:55 +01:00