Commit 9ee65b55 by Uros Bizjak

sse.md (vec_dupv4sf): Correct mode of forced register.

	* config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
	(*vec_dupv2df): Rename from vec_dupv2df.
	(vec_dupv2df): New expander.

	* config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.

From-SVN: r174948
parent 09ad57ec
2011-06-11 Uros Bizjak <ubizjak@gmail.com>
* config/i386/sse.md (vec_dupv4sf): Correct mode of forced register.
(*vec_dupv2df): Rename from vec_dupv2df.
(vec_dupv2df): New expander.
2011-06-11 Uros Bizjak <ubizjak@gmail.com>
* config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P.
2011-06-11 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md: Use default value in "isa" attribute.
* config/i386/sse.md: Ditto.
* config/i386/mmx.md: Ditto.
2011-06-10 Wei Guozhi <carrot@google.com> 2011-06-10 Wei Guozhi <carrot@google.com>
PR target/45335 PR target/45335
...@@ -44,19 +60,20 @@ ...@@ -44,19 +60,20 @@
2011-06-10 Jan Hubicka <jh@suse.cz> 2011-06-10 Jan Hubicka <jh@suse.cz>
* opts.c (default_options): Enlist OPT_finline_functions_called_once. * opts.c (default_options): Enlist OPT_finline_functions_called_once.
* common.opt (flag_inline_functions_called_once):Do not initialize to 1. * common.opt (flag_inline_functions_called_once): Do not
initialize to 1.
2011-06-10 Jan Hubicka <jh@suse.cz> 2011-06-10 Jan Hubicka <jh@suse.cz>
* ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable. * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable.
(ipcp_initialize_node_lattices): Do not deal with aliases; Do not try to (ipcp_initialize_node_lattices): Do not deal with aliases;
propagate through thunks. Do not try to propagate through thunks.
(ipcp_change_tops_to_bottom): Do not deal with aliases. (ipcp_change_tops_to_bottom): Do not deal with aliases.
2011-06-10 Jan Hubicka <jh@suse.cz> 2011-06-10 Jan Hubicka <jh@suse.cz>
* ipa-prop.c (ipa_write_node_info): Stream jump functions for indirect * ipa-prop.c (ipa_write_node_info): Stream jump functions
calls. for indirect calls.
(ipa_read_node_info): Likewise. (ipa_read_node_info): Likewise.
2011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com> 2011-06-10 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
...@@ -68,7 +85,7 @@ ...@@ -68,7 +85,7 @@
(gimple_expand_builtin_pow): Minor cleanup. (gimple_expand_builtin_pow): Minor cleanup.
(gimple_expand_builtin_cabs): New. (gimple_expand_builtin_cabs): New.
(execute_cse_sincos): Add case for BUILT_IN_CABS. (execute_cse_sincos): Add case for BUILT_IN_CABS.
2011-06-10 Jan Hubicka <jh@suse.cz> 2011-06-10 Jan Hubicka <jh@suse.cz>
* ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable. * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable.
...@@ -145,9 +162,8 @@ ...@@ -145,9 +162,8 @@
2011-06-10 Richard Guenther <rguenther@suse.de> 2011-06-10 Richard Guenther <rguenther@suse.de>
* tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts
Scan stmts forward when combining, visit inserted stmts when forward when combining, visit inserted stmts when a stmt was changed.
a stmt was changed.
2011-06-10 Paolo Carlini <paolo.carlini@oracle.com> 2011-06-10 Paolo Carlini <paolo.carlini@oracle.com>
...@@ -267,8 +283,7 @@ ...@@ -267,8 +283,7 @@
2011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org> 2011-06-10 Ramana Radhakrishnan <ramana.radhakrishnan@linaro.org>
Richard Earnshaw <rearnsha@arm.com> Richard Earnshaw <rearnsha@arm.com>
* config/arm/arm.c (const_ok_for_op): Check to see * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used.
if mvn can be used.
* config/arm/vfp.md (*arm_movdi_vfp): Delete. * config/arm/vfp.md (*arm_movdi_vfp): Delete.
(*thumb2_movdi_vfp): Delete. (*thumb2_movdi_vfp): Delete.
(*arm_movdi_vfp_cortexa8): Delete. (*arm_movdi_vfp_cortexa8): Delete.
...@@ -317,17 +332,23 @@ ...@@ -317,17 +332,23 @@
(cgraph_for_node_thunks_and_aliases): New function. (cgraph_for_node_thunks_and_aliases): New function.
(cgraph_for_node_and_aliases): New function. (cgraph_for_node_and_aliases): New function.
(cgraph_make_node_local_1): Break out from ... (cgraph_make_node_local_1): Break out from ...
(cgraph_make_node_local) ... here; use cgraph_for_node_thunks_and_aliases. (cgraph_make_node_local) ... here; use
cgraph_for_node_thunks_and_aliases.
(cgraph_set_nothrow_flag_1): Break out from ... (cgraph_set_nothrow_flag_1): Break out from ...
(cgraph_set_nothrow_flag) ... here; use cgraph_for_node_thunks_and_aliases. (cgraph_set_nothrow_flag) ... here;
use cgraph_for_node_thunks_and_aliases.
(cgraph_set_const_flag_1): Break out from ... (cgraph_set_const_flag_1): Break out from ...
(cgraph_set_const_flag) ... here; use cgraph_for_node_thunks_and_aliases. (cgraph_set_const_flag) ... here;
use cgraph_for_node_thunks_and_aliases.
(cgraph_set_pure_flag_1): Break out from ... (cgraph_set_pure_flag_1): Break out from ...
(cgraph_set_pure_flag) ... here; use cgraph_for_node_thunks_and_aliases. (cgraph_set_pure_flag) ... here;
use cgraph_for_node_thunks_and_aliases.
(cgraph_propagate_frequency_1): Break out from ... (cgraph_propagate_frequency_1): Break out from ...
(cgraph_propagate_frequency) ... here; use cgraph_for_node_thunks_and_aliases. (cgraph_propagate_frequency) ... here; use
cgraph_for_node_thunks_and_aliases.
(cgraph_used_from_object_file_p): Do not care about aliases. (cgraph_used_from_object_file_p): Do not care about aliases.
(cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p): New functions. (cgraph_not_only_called_directly_p_1, cgraph_only_called_directly_p):
New functions.
(collect_callers_of_node_1, collect_callers_of_node): New functions. (collect_callers_of_node_1, collect_callers_of_node): New functions.
2011-06-10 Hans-Peter Nilsson <hp@axis.com> 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
...@@ -348,16 +369,14 @@ ...@@ -348,16 +369,14 @@
2011-06-10 Hans-Peter Nilsson <hp@axis.com> 2011-06-10 Hans-Peter Nilsson <hp@axis.com>
PR rtl-optimization/49154 PR rtl-optimization/49154
* ira-costs.c (setup_regno_cost_classes_by_mode): If there * ira-costs.c (setup_regno_cost_classes_by_mode): If there already
already is a matching slot in the hashtable, assign it to is a matching slot in the hashtable, assign it to classes_ptr.
classes_ptr.
PR rtl-optimization/49154 PR rtl-optimization/49154
* doc/tm.texi.in (Register Classes): Document rule for the narrowest * doc/tm.texi.in (Register Classes): Document rule for the narrowest
register classes. register classes.
* doc/tm.texi: Regenerate. * doc/tm.texi: Regenerate.
>>>>>>> .r174929
2011-06-09 Kaz Kojima <kkojima@gcc.gnu.org> 2011-06-09 Kaz Kojima <kkojima@gcc.gnu.org>
PR target/49307 PR target/49307
......
...@@ -185,7 +185,6 @@ ...@@ -185,7 +185,6 @@
;; Mix-n-match ;; Mix-n-match
(define_mode_iterator AVX256MODE2P [V8SI V8SF V4DF]) (define_mode_iterator AVX256MODE2P [V8SI V8SF V4DF])
(define_mode_iterator AVX256MODE24P [V8SI V8SF V4DI V4DF])
(define_mode_iterator FMAMODE [SF DF V4SF V2DF V8SF V4DF]) (define_mode_iterator FMAMODE [SF DF V4SF V2DF V8SF V4DF])
...@@ -3281,7 +3280,7 @@ ...@@ -3281,7 +3280,7 @@
"TARGET_SSE" "TARGET_SSE"
{ {
if (!TARGET_AVX) if (!TARGET_AVX)
operands[1] = force_reg (V4SFmode, operands[1]); operands[1] = force_reg (SFmode, operands[1]);
}) })
(define_insn "*vec_dupv4sf_avx" (define_insn "*vec_dupv4sf_avx"
...@@ -4378,6 +4377,16 @@ ...@@ -4378,6 +4377,16 @@
(set_attr "prefix" "orig,vex,orig,vex,maybe_vex,orig,orig,vex,maybe_vex") (set_attr "prefix" "orig,vex,orig,vex,maybe_vex,orig,orig,vex,maybe_vex")
(set_attr "mode" "DF,DF,V1DF,V1DF,V1DF,V2DF,V1DF,V1DF,V1DF")]) (set_attr "mode" "DF,DF,V1DF,V1DF,V1DF,V2DF,V1DF,V1DF,V1DF")])
(define_expand "vec_dupv2df"
[(set (match_operand:V2DF 0 "register_operand" "")
(vec_duplicate:V2DF
(match_operand:DF 1 "nonimmediate_operand" "")))]
"TARGET_SSE2"
{
if (!TARGET_SSE3)
operands[1] = force_reg (DFmode, operands[1]);
})
(define_insn "*vec_dupv2df_sse3" (define_insn "*vec_dupv2df_sse3"
[(set (match_operand:V2DF 0 "register_operand" "=x") [(set (match_operand:V2DF 0 "register_operand" "=x")
(vec_duplicate:V2DF (vec_duplicate:V2DF
...@@ -4388,7 +4397,7 @@ ...@@ -4388,7 +4397,7 @@
(set_attr "prefix" "maybe_vex") (set_attr "prefix" "maybe_vex")
(set_attr "mode" "DF")]) (set_attr "mode" "DF")])
(define_insn "vec_dupv2df" (define_insn "*vec_dupv2df"
[(set (match_operand:V2DF 0 "register_operand" "=x") [(set (match_operand:V2DF 0 "register_operand" "=x")
(vec_duplicate:V2DF (vec_duplicate:V2DF
(match_operand:DF 1 "register_operand" "0")))] (match_operand:DF 1 "register_operand" "0")))]
...@@ -9757,9 +9766,13 @@ ...@@ -9757,9 +9766,13 @@
(set_attr "prefix" "vex") (set_attr "prefix" "vex")
(set_attr "mode" "OI")]) (set_attr "mode" "OI")])
;; Modes handled by AVX vec_dup patterns.
(define_mode_iterator AVX_VEC_DUP_MODE
[V8SI V8SF V4DI V4DF])
(define_insn "vec_dup<mode>" (define_insn "vec_dup<mode>"
[(set (match_operand:AVX256MODE24P 0 "register_operand" "=x,x") [(set (match_operand:AVX_VEC_DUP_MODE 0 "register_operand" "=x,x")
(vec_duplicate:AVX256MODE24P (vec_duplicate:AVX_VEC_DUP_MODE
(match_operand:<ssescalarmode> 1 "nonimmediate_operand" "m,?x")))] (match_operand:<ssescalarmode> 1 "nonimmediate_operand" "m,?x")))]
"TARGET_AVX" "TARGET_AVX"
"@ "@
...@@ -9771,12 +9784,14 @@ ...@@ -9771,12 +9784,14 @@
(set_attr "mode" "V8SF")]) (set_attr "mode" "V8SF")])
(define_split (define_split
[(set (match_operand:AVX256MODE24P 0 "register_operand" "") [(set (match_operand:AVX_VEC_DUP_MODE 0 "register_operand" "")
(vec_duplicate:AVX256MODE24P (vec_duplicate:AVX_VEC_DUP_MODE
(match_operand:<ssescalarmode> 1 "register_operand" "")))] (match_operand:<ssescalarmode> 1 "register_operand" "")))]
"TARGET_AVX && reload_completed" "TARGET_AVX && reload_completed"
[(set (match_dup 2) (vec_duplicate:<ssehalfvecmode> (match_dup 1))) [(set (match_dup 2)
(set (match_dup 0) (vec_concat:AVX256MODE24P (match_dup 2) (match_dup 2)))] (vec_duplicate:<ssehalfvecmode> (match_dup 1)))
(set (match_dup 0)
(vec_concat:AVX_VEC_DUP_MODE (match_dup 2) (match_dup 2)))]
"operands[2] = gen_rtx_REG (<ssehalfvecmode>mode, REGNO (operands[0]));") "operands[2] = gen_rtx_REG (<ssehalfvecmode>mode, REGNO (operands[0]));")
(define_insn "avx_vbroadcastf128_<mode>" (define_insn "avx_vbroadcastf128_<mode>"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment