diff options
author | irar <irar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-08-18 09:55:00 +0000 |
---|---|---|
committer | irar <irar@138bc75d-0d04-0410-961f-82ee72b054a4> | 2010-08-18 09:55:00 +0000 |
commit | 40a23fd8537931d52059e2a4ace0d9f106afef88 (patch) | |
tree | efcc38524d60446175db802e64ccb85946517643 | |
parent | d5a06625c9d08c6a5a02e40f3e658b5c9404e9e8 (diff) |
Fix several bugs and update builtin names in vector builtins
expansion.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/st/cli-fe-vect@163332 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r-- | gcc/expand-vect-cli.c | 37 |
1 files changed, 14 insertions, 23 deletions
diff --git a/gcc/expand-vect-cli.c b/gcc/expand-vect-cli.c index 6e1c9342f41..1af978f79a4 100644 --- a/gcc/expand-vect-cli.c +++ b/gcc/expand-vect-cli.c @@ -165,7 +165,7 @@ create_cli_fn_table (void) cli_functions[95] = add_cli_function ("genvec_support_VHI_VHI_extract_odd_Mono_Simd_Vector8s_Mono_Simd_Vector8s_Mono_Simd_Vector8s", unsigned_type_node); cli_functions[96] = add_cli_function ("genvec_support_VSI_VSI_extract_odd_Mono_Simd_Vector4i_Mono_Simd_Vector4i_Mono_Simd_Vector4i", unsigned_type_node); - cli_functions[97] = add_cli_function ("genvec_support_VQI_VQI_pack_Mono_Simd_Vector4i_Mono_Simd_Vector8s_Mono_Simd_Vector16sb", unsigned_type_node); + cli_functions[97] = add_cli_function ("genvec_support_VQI_VQI_pack_Mono_Simd_Vector8s_Mono_Simd_Vector8s_Mono_Simd_Vector16sb", unsigned_type_node); cli_functions[98] = add_cli_function ("genvec_support_VHI_VHI_pack_Mono_Simd_Vector4i_Mono_Simd_Vector4i_Mono_Simd_Vector8s", unsigned_type_node); cli_functions[99] = add_cli_function ("genvec_support_VHI_VHI_widen_mult_hi_Mono_Simd_Vector16sb_Mono_Simd_Vector8s_Mono_Simd_Vector8s", unsigned_type_node); @@ -173,16 +173,16 @@ create_cli_fn_table (void) cli_functions[101] = add_cli_function ("genvec_support_VHI_VHI_widen_mult_lo_Mono_Simd_Vector16sb_Mono_Simd_Vector8s_Mono_Simd_Vector8s", unsigned_type_node); cli_functions[102] = add_cli_function ("genvec_support_VSI_VSI_widen_mult_lo_Mono_Simd_Vector8s_Mono_Simd_Vector8s_Mono_Simd_Vector4i", unsigned_type_node); cli_functions[103] = add_cli_function ("double_supported", unsigned_type_node); - cli_functions[104] = add_cli_function ("unpack_hi_vqi", unsigned_type_node); - cli_functions[105] = add_cli_function ("unpack_hi_vhi", unsigned_type_node); - cli_functions[106] = add_cli_function ("unpack_lo_vqi", unsigned_type_node); - cli_functions[107] = add_cli_function ("unpack_lo_vhi", unsigned_type_node); - cli_functions[108] = add_cli_function ("shift_right_vqi", unsigned_type_node); - cli_functions[109] = add_cli_function ("shift_right_vhi", unsigned_type_node); - cli_functions[110] = add_cli_function ("shift_right_vsi", unsigned_type_node); - cli_functions[111] = add_cli_function ("shift_left_vqi", unsigned_type_node); - cli_functions[112] = add_cli_function ("shift_left_vhi", unsigned_type_node); - cli_functions[113] = add_cli_function ("shift_left_vsi", unsigned_type_node); + cli_functions[104] = add_cli_function ("genvec_support_VSI_VSI_unpack_high_Mono_Simd_Vector8s_Mono_Simd_Vector4i", unsigned_type_node); + cli_functions[105] = add_cli_function ("genvec_support_VHI_VHI_unpack_high_Mono_Simd_Vector16sb_Mono_Simd_Vector8s", unsigned_type_node); + cli_functions[106] = add_cli_function ("genvec_support_VSI_VSI_unpack_low_Mono_Simd_Vector8s_Mono_Simd_Vector4i", unsigned_type_node); + cli_functions[107] = add_cli_function ("genvec_support_VHI_VHI_unpack_low_Mono_Simd_Vector16sb_Mono_Simd_Vector8s", unsigned_type_node); + cli_functions[108] = add_cli_function ("genvec_support_VQI_VQI_shift_right_Mono_Simd_Vector16sb_Mono_Simd_Vector16sb_System_UInt32_Mono_Simd_Vector16sb", unsigned_type_node); + cli_functions[109] = add_cli_function ("genvec_support_VHI_VHI_shift_right_Mono_Simd_Vector8s_Mono_Simd_Vector8s_System_UInt32_Mono_Simd_Vector8s", unsigned_type_node); + cli_functions[110] = add_cli_function ("genvec_support_VSI_VSI_shift_right_Mono_Simd_Vector4i_Mono_Simd_Vector4i_System_UInt32_Mono_Simd_Vector4i", unsigned_type_node); + cli_functions[111] = add_cli_function ("genvec_support_VQI_VQI_left_right_Mono_Simd_Vector16sb_Mono_Simd_Vector16sb_System_UInt32_Mono_Simd_Vector16sb", unsigned_type_node); + cli_functions[112] = add_cli_function ("genvec_support_VHI_VHI_shift_left_Mono_Simd_Vector8s_Mono_Simd_Vector8s_System_UInt32_Mono_Simd_Vector8s", unsigned_type_node); + cli_functions[113] = add_cli_function ("genvec_support_VSI_VSI_shift_left_Mono_Simd_Vector4i_Mono_Simd_Vector4i_System_UInt32_Mono_Simd_Vector4i", unsigned_type_node); } #define MAX_CLI_FN 114 @@ -894,8 +894,6 @@ static bool replace_mask_for_load_builtin (gimple stmt) { gimple_stmt_iterator gsi; - gimple use_stmt; - imm_use_iterator imm_iter; tree builtin_decl; if (targetm.vectorize.builtin_mask_for_load @@ -907,12 +905,6 @@ replace_mask_for_load_builtin (gimple stmt) return true; } - FOR_EACH_IMM_USE_STMT (use_stmt, imm_iter, gimple_call_lhs (stmt)) - { - gsi = gsi_for_stmt (use_stmt); - gsi_remove (&gsi, true); - } - gsi = gsi_for_stmt (stmt); gsi_remove (&gsi, true); return true; @@ -1066,11 +1058,11 @@ replace_pack (int index, gimple stmt) switch (index) { case pack_vqi: - scalar_type = intQI_type_node; + scalar_type = intHI_type_node; break; case pack_vhi: - scalar_type = intHI_type_node; + scalar_type = intSI_type_node; break; default: @@ -1296,8 +1288,7 @@ replace_unpack (int index, gimple stmt) if (!optab || optab_handler (optab, mode)->insn_code == CODE_FOR_nothing) return false; - new_rhs = build2 (code, vectype, gimple_call_arg (stmt, 0), - gimple_call_arg (stmt, 1)); + new_rhs = build1 (code, vectype, gimple_call_arg (stmt, 0)); finish_replacement (new_rhs, stmt, NULL); return true; } |