From 9ee65b5543dbe8cd3a795a3c54a4c6cbde5f0eb7 Mon Sep 17 00:00:00 2001 From: Uros Bizjak Date: Sat, 11 Jun 2011 13:08:41 +0200 Subject: [PATCH] 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 --- gcc/ChangeLog | 61 +++++++++++++++++++++++++++--------------- gcc/config/i386/sse.md | 33 ++++++++++++++++------- 2 files changed, 64 insertions(+), 30 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 4857e927109..1a141e3c160 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,19 @@ +2011-06-11 Uros Bizjak + + * 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 + + * config/i386/sse.md (AVX_VEC_DUP_MODE): Rename from AVX256MODE24P. + +2011-06-11 Uros Bizjak + + * 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 PR target/45335 @@ -44,19 +60,20 @@ 2011-06-10 Jan Hubicka * 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 * ipa-cp.c (ipcp_versionable_function_p): Thunks are not versionable. - (ipcp_initialize_node_lattices): Do not deal with aliases; Do not try to - propagate through thunks. + (ipcp_initialize_node_lattices): Do not deal with aliases; + Do not try to propagate through thunks. (ipcp_change_tops_to_bottom): Do not deal with aliases. 2011-06-10 Jan Hubicka - * ipa-prop.c (ipa_write_node_info): Stream jump functions for indirect - calls. + * ipa-prop.c (ipa_write_node_info): Stream jump functions + for indirect calls. (ipa_read_node_info): Likewise. 2011-06-10 Bill Schmidt @@ -68,7 +85,7 @@ (gimple_expand_builtin_pow): Minor cleanup. (gimple_expand_builtin_cabs): New. (execute_cse_sincos): Add case for BUILT_IN_CABS. - + 2011-06-10 Jan Hubicka * ipa-cp.c (ipcp_versionable_function_p): Aliases are not versionable. @@ -145,9 +162,8 @@ 2011-06-10 Richard Guenther - * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): - Scan stmts forward when combining, visit inserted stmts when - a stmt was changed. + * tree-ssa-forwprop.c (ssa_forward_propagate_and_combine): Scan stmts + forward when combining, visit inserted stmts when a stmt was changed. 2011-06-10 Paolo Carlini @@ -267,8 +283,7 @@ 2011-06-10 Ramana Radhakrishnan Richard Earnshaw - * config/arm/arm.c (const_ok_for_op): Check to see - if mvn can be used. + * config/arm/arm.c (const_ok_for_op): Check to see if mvn can be used. * config/arm/vfp.md (*arm_movdi_vfp): Delete. (*thumb2_movdi_vfp): Delete. (*arm_movdi_vfp_cortexa8): Delete. @@ -317,17 +332,23 @@ (cgraph_for_node_thunks_and_aliases): New function. (cgraph_for_node_and_aliases): New function. (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) ... 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) ... 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) ... 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) ... 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_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. 2011-06-10 Hans-Peter Nilsson @@ -348,16 +369,14 @@ 2011-06-10 Hans-Peter Nilsson PR rtl-optimization/49154 - * ira-costs.c (setup_regno_cost_classes_by_mode): If there - already is a matching slot in the hashtable, assign it to - classes_ptr. + * ira-costs.c (setup_regno_cost_classes_by_mode): If there already + is a matching slot in the hashtable, assign it to classes_ptr. PR rtl-optimization/49154 * doc/tm.texi.in (Register Classes): Document rule for the narrowest register classes. * doc/tm.texi: Regenerate. ->>>>>>> .r174929 2011-06-09 Kaz Kojima PR target/49307 diff --git a/gcc/config/i386/sse.md b/gcc/config/i386/sse.md index 0dd4c304d67..9ede7700aa6 100644 --- a/gcc/config/i386/sse.md +++ b/gcc/config/i386/sse.md @@ -185,7 +185,6 @@ ;; Mix-n-match (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]) @@ -3281,7 +3280,7 @@ "TARGET_SSE" { if (!TARGET_AVX) - operands[1] = force_reg (V4SFmode, operands[1]); + operands[1] = force_reg (SFmode, operands[1]); }) (define_insn "*vec_dupv4sf_avx" @@ -4378,6 +4377,16 @@ (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")]) +(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" [(set (match_operand:V2DF 0 "register_operand" "=x") (vec_duplicate:V2DF @@ -4388,7 +4397,7 @@ (set_attr "prefix" "maybe_vex") (set_attr "mode" "DF")]) -(define_insn "vec_dupv2df" +(define_insn "*vec_dupv2df" [(set (match_operand:V2DF 0 "register_operand" "=x") (vec_duplicate:V2DF (match_operand:DF 1 "register_operand" "0")))] @@ -9757,9 +9766,13 @@ (set_attr "prefix" "vex") (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" - [(set (match_operand:AVX256MODE24P 0 "register_operand" "=x,x") - (vec_duplicate:AVX256MODE24P + [(set (match_operand:AVX_VEC_DUP_MODE 0 "register_operand" "=x,x") + (vec_duplicate:AVX_VEC_DUP_MODE (match_operand: 1 "nonimmediate_operand" "m,?x")))] "TARGET_AVX" "@ @@ -9771,12 +9784,14 @@ (set_attr "mode" "V8SF")]) (define_split - [(set (match_operand:AVX256MODE24P 0 "register_operand" "") - (vec_duplicate:AVX256MODE24P + [(set (match_operand:AVX_VEC_DUP_MODE 0 "register_operand" "") + (vec_duplicate:AVX_VEC_DUP_MODE (match_operand: 1 "register_operand" "")))] "TARGET_AVX && reload_completed" - [(set (match_dup 2) (vec_duplicate: (match_dup 1))) - (set (match_dup 0) (vec_concat:AVX256MODE24P (match_dup 2) (match_dup 2)))] + [(set (match_dup 2) + (vec_duplicate: (match_dup 1))) + (set (match_dup 0) + (vec_concat:AVX_VEC_DUP_MODE (match_dup 2) (match_dup 2)))] "operands[2] = gen_rtx_REG (mode, REGNO (operands[0]));") (define_insn "avx_vbroadcastf128_" -- 2.30.2