Nicola Pero [Sun, 17 Oct 2010 19:33:19 +0000 (19:33 +0000)]
In gcc/: 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
In gcc/:
2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
* doc/objc.texi (GNU Objective-C runtime API): New section.
(Modern GNU Objective-C runtime API): New section.
(Traditional GNU Objective-C runtime API): New section.
(Executing code before main): Mention that this section is
specific to the GNU Objective-C runtime.
(Garbage Collection): Same.
In gcc/testsuite/:
2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
Anatoly Sokolov [Sun, 17 Oct 2010 15:27:53 +0000 (19:27 +0400)]
target.def (preferred_output_reload_class): New hook.
* target.def (preferred_output_reload_class): New hook.
* doc/tm.texi.in (TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Document.
* doc/tm.texi: Regenerate.
* targhooks.c (default_preferred_output_reload_class): New function.
* targhooks.h (default_preferred_output_reload_class): Declare.
* reload.c (find_dummy_reload): Change rclass argument type from
enum reg_class to reg_class_t. Change this_alternative array type
from enum reg_class to reg_class_t.
Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
(push_reload): Change preferred_class variable type to reg_class_t.
Use TARGET_PREFERRED_OUTPUT_RELOAD_CLASS target hook.
* recog.c (reg_fits_class_p): Change result type to bool. Change cl
argument type from enum reg_class to reg_class_t. Use
HARD_REGISTER_NUM_P predicate.
* recog.h (reg_fits_class_p): Update prototype.
* config/i386/i386.h (PREFERRED_OUTPUT_RELOAD_CLASS): Remove.
* config/i386/i386-protos.h (ix86_preferred_output_reload_class): Remove.
* config/i386/i386.c (ix86_preferred_output_reload_class): Make
static. Change regclass argument and result types from enum reg_class
to reg_class_t.
(TARGET_PREFERRED_OUTPUT_RELOAD_CLASS): Define.
Iain Sandoe [Sun, 17 Oct 2010 13:02:07 +0000 (13:02 +0000)]
add parse support for @package to ObjC*
gcc/c-family:
* c-common.c (c_common_reswords): Add package, RID_AT_PACKAGE.
* c-common.h (enum rid): Add RID_AT_PACKAGE.
(objc_ivar_visibility_kind): New enum.
(objc_set_visibility): Adjust prototype to use visibility enum.
* stub-objc.c (objc_set_visibility): Adjust stub to use
visibility enum.
gcc/objc:
* objc-act.c: Rename 'objc_public_flag' to objc_ivar_visibility and
make its type 'objc_ivar_visibility_kind'.
(objc_start_class_interface): Update to use visibility enum.
(objc_start_class_implementation): Likewise.
(objc_set_visibility): Update to use visibility enum, warn that
@package is handle as per @public.
(add_instance_variable): Handle OBJC_IVAR_VIS_PACKAGE.
* objc-act.h: Rename 'objc_public_flag' to objc_ivar_visibility and
make its type 'objc_ivar_visibility_kind'.
gcc/cp:
* parser.c (cp_parser_objc_visibility_spec): Update to use visibility
enum, and handle @package.
gcc:
* c-parser.c (c_parser_objc_class_instance_variables): Update to use
visibility enum, and handle @package.
Nicola Pero [Sun, 17 Oct 2010 11:01:31 +0000 (11:01 +0000)]
In libobjc/: 2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
* init.c (objc_send_load): Do not wait for NXConstantString to be
registered before executing +load. There is no point if
-fconstant-string-class=xxx is used when compiling all modules,
as is the case for almost all users.
* linking.m (__objc_linking): Do not try to forcefully link in
NXConstantString.
In gcc/:
2010-10-17 Nicola Pero <nicola.pero@meta-innovation.com>
* doc/objc.texi (What you can and what you cannot do in +load):
Document that sending messages to constant string objects in +load
is not guaranteed to work.
Jan Hubicka [Sat, 16 Oct 2010 23:47:08 +0000 (01:47 +0200)]
re PR middle-end/44206 (ICE: Inline clone with address taken)
PR middle-end/44206
* g++.dg/torture/pr44206.C: New.
* ipa.c (cgraph_remove_unreachable_nodes): Cleanup; check
existence of refrences before removing the function.
Nicola Pero [Sat, 16 Oct 2010 21:26:59 +0000 (21:26 +0000)]
In libobjc/: 2010-10-16 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-16 Nicola Pero <nicola.pero@meta-innovation.com>
* objc/runtime.h: Updated comments.
(class_addMethod): New.
(class_addIvar): New.
(class_replaceMethod): New.
(objc_allocateClassPair): New.
(objc_registerClassPair): New.
(objc_disposeClassPair): New.
* class.c (objc_allocateClassPair): New.
(objc_registerClassPair): New.
(objc_disposeClassPair): New.
(class_getSuperclass): Return Nil if a class is in construction.
* init.c (__objc_exec_class): Call __objc_init_class.
(__objc_init_class): New.
* ivars.c (class_copyIvarList): Return NULL if class is in
construction. Do not lock the runtime mutex.
(class_getInstanceVariable): Return NULL if class is in
construction. Do not lock the runtime mutex.
(class_addIvar): New.
* sendmsg.c (class_addMethod): New.
(class_replaceMethod): New.
* objc-private/module-abi-8.h (__CLS_SETNOTINFO): New.
(_CLS_IN_CONSTRUCTION): New.
(CLS_IS_IN_CONSTRUCTION): New.
(CLS_SET_IN_CONSTRUCTION): New.
(CLS_SET_NOT_IN_CONSTRUCTION): New.
* objc-private/runtime.h (__objc_init_class): New.
Jan Hubicka [Sat, 16 Oct 2010 16:59:07 +0000 (18:59 +0200)]
cgraph.c (dump_cgraph_node): Dump same_comdat_group, only_called_at_startup and only_called_at_exit.
* cgraph.c (dump_cgraph_node): Dump same_comdat_group,
only_called_at_startup and only_called_at_exit.
(cgraph_propagate_frequency): Compute only_called_at_startup and
only_called_at_exit.
* cgraph.h (struct cgraph_node): New fileds only_called_at_startup and
only_called_at_exit.
* lto-cgraph.c (lto_output_node, input_overwrite_node): Stream the new
flags.
* predict.c (compute_function_frequency): Initialize the new flags.
Thomas Koenig [Sat, 16 Oct 2010 16:06:07 +0000 (16:06 +0000)]
re PR tree-optimization/20165 (Pointer does not really escape with write)
2010-10-16 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/20165
PR fortran/31593
PR fortran/43665
* gfortran.map: Add _gfortran_transfer_array_write,
_gfortran_transfer_array_write, _gfortran_transfer_character_write,
_gfortran_transfer_character_wide_write,
_gfortran_transfer_complex_write,
_gfortran_transfer_integer_write,
_gfortran_transfer_logical_write and
_gfortran_transfer_real_write.
* io/transfer.c (transfer_integer_write): Add prototype and
function body as call to the original function, without the
_write.
(transfer_real_write): Likewise.
(transfer_logical_write): Likewise.
(transfer_character_write): Likewise.
(transfer_character_wide_write): Likewise.
(transfer_complex_write): Likewise.
(transfer_array_write): Likewise.
2010-10-16 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/20165
PR fortran/31593
PR fortran/43665
* trans-io.c (enum iocall): Add IOCALL_X_INTEGER_WRITE,
IOCALL_X_LOGICAL_WRITE, IOCALL_X_CHARACTER_WRITE,
IOCALL_X_CHARACTER_WIDE_WRIE, IOCALL_X_REAL_WRITE,
IOCALL_X_COMPLEX_WRITE and IOCALL_X_ARRAY_WRITE.
(gfc_build_io_library_fndecls): Add corresponding function
decls.
(transfer_expr): If the current transfer is a READ, use
the iocall with the original version, otherwise the version
with _WRITE.
(transfer_array_desc): Likewise.
Eric Botcazou [Sat, 16 Oct 2010 14:35:59 +0000 (14:35 +0000)]
gimplify.c (gimplify_type_sizes): If the type is to be ignored for debug info purposes...
* gimplify.c (gimplify_type_sizes) <ARRAY_TYPE>: If the type is to be
ignored for debug info purposes, do not clear the DECL_IGNORED_P flag
on the bounds of its domain.
* tree.h (DECL_IGNORED_P): Document effect on TYPE_DECL specifically.
Nicola Pero [Sat, 16 Oct 2010 14:03:42 +0000 (14:03 +0000)]
class.c (class_getSuperclass): Call __objc_resolve_class_links if the class is not resolved yet.
2010-10-16 Nicola Pero <nicola.pero@meta-innovation.com>
* class.c (class_getSuperclass): Call __objc_resolve_class_links
if the class is not resolved yet.
* ivars.c (class_getInstanceVariable): Use class_getSuperclass.
Joseph Myers [Sat, 16 Oct 2010 12:12:24 +0000 (13:12 +0100)]
arm.c (arm_option_optimization): Set flag_section_anchors to 1 not 2.
* config/arm/arm.c (arm_option_optimization): Set
flag_section_anchors to 1 not 2.
* config/i386/i386.c (ix86_option_override_internal): Check
global_options_set.x_flag_zee and
global_options_set.x_flag_omit_frame_pointer.
(ix86_option_optimization): Don't set flag_omit_frame_pointer and
flag_zee to 2.
* config/i386/sol2-10.h (SUBTARGET_OVERRIDE_OPTIONS): Check
global_options_set.x_flag_omit_frame_pointer.
* config/rs6000/rs6000.c (rs6000_option_init_struct): Set
opts->x_flag_section_anchors to 1 not 2.
* config/sh/sh.c (sh_option_optimization): Don't set
flag_schedule_insns to 2.
(sh_option_override): Check
global_options_set.x_flag_schedule_insns.
* opts.c (finish_options): Check opts_set->x_flag_section_anchors.
Nicola Pero [Fri, 15 Oct 2010 18:24:27 +0000 (18:24 +0000)]
In libobjc/: 2010-10-15 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-15 Nicola Pero <nicola.pero@meta-innovation.com>
* Protocol.m: Include objc/runtime.h and
objc-private/module-abi-8.h instead of objc/objc-api.h. Do not
repeat Protocol's instance variables.
(struct objc_method_description_list): Do not define here.
([-conformsTo:]): Reimplemented on top of protocol_conformsTo().
([descriptionForInstanceMethod:]): Use sel_isEqual() to compare
selectors directly instead of getting names and then using strcmp.
([descriptionForClassMethod:]): Same change.
([-isEqual:]): Reimplemented on top of protocol_isEqual().
* protocols.c (protocol_getMethodDescription): Use sel_isEqual()
to compare selectors directly instead of getting names and then
using strcmp.
* objc/Protocol.h: Updated comments.
Joseph Myers [Fri, 15 Oct 2010 12:45:58 +0000 (13:45 +0100)]
rx.c (rx_option_optimization): Change to rx_override_options_after_change.
* config/rx/rx.c (rx_option_optimization): Change to
rx_override_options_after_change. Don't change
flag_lto_compression_level. Don't check for changes to whether
FPU instructions can be used. Check and set only
flag_finite_math_only, not other fast-math flags.
(rx_option_override): Call rx_override_options_after_change.
(TARGET_OPTION_OPTIMIZATION): Remove.
(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
Tobias Burnus [Fri, 15 Oct 2010 12:42:39 +0000 (14:42 +0200)]
re PR fortran/45186 (Gfortran 4.5.0 emits wrong linenumbers)
2010-10-15 Tobias Burnus <burnus@net-b.de>
PR fortran/45186
* trans.h (gfc_add_modify_loc, gfc_evaluate_now_loc): New
* prototypes.
(gfc_trans_runtime_error_vararg): Remove prototype.
* trans.c (gfc_add_modify_loc, gfc_evaluate_now_loc): New
* functions.
(gfc_add_modify, gfc_evaluate_now): Use them.
(trans_runtime_error_vararg): Renamed from
gfc_trans_runtime_error_vararg, made static and use locus.
(gfc_trans_runtime_error): Use it.
(gfc_trans_runtime_check): Ditto and make use of locus.
* trans-stmt.c (gfc_trans_if_1, gfc_trans_simple_do,
gfc_trans_do, gfc_trans_do_while): Improve line number
associated with generated expressions.
Nicola Pero [Fri, 15 Oct 2010 10:35:00 +0000 (10:35 +0000)]
In libobjc/: 2010-10-14 Nicola Pero <nicola.pero@meta-innovation.com>
In libobjc/:
2010-10-14 Nicola Pero <nicola.pero@meta-innovation.com>
* init.c (__objc_init_protocol): New function which fixes up a
protocol's class pointer, registers it with the runtime, register
all protocol selectors and registers associated protocols too.
(objc_init_statics): Detect if we are initializing protocols, and
if so, use __objc_init_protocol instead of only fixing up the
class pointer.
(__objc_init_protocls): Use __objc_init_protocol.
* objc-private/module-abi-8.h: Updated comments.
* objc-private/runtime.h
(__objc_register_selectors_from_description_list): New.
* selector.c (__objc_register_selectors_from_description_list):
New. (struct objc_method_description_list): Declare.
* Protocol.m ([-descriptionForInstanceMethod:]): Use sel_get_name
when accessing the name of a method, which is now correctly a SEL.
([-descriptionForClassMethod:]): Same change.
* protocols.c (protocol_getMethodDescription): Same change.
* objc/runtime.h: Updated comments.
(sel_registerTypedName): Fixed typo in function name.
* ifcvt.c (find_active_insn_before): New function.
(find_active_insn_after): New function.
(cond_exec_process_if_block): Use new functions to replace
prev_active_insn() and next_active_insn().
Richard Guenther [Thu, 14 Oct 2010 15:51:15 +0000 (15:51 +0000)]
re PR tree-optimization/44913 (-ftree-vectorize causes FAIL: gcc.dg/pr44838.c execution test)
2010-10-14 Richard Guenther <rguenther@suse.de>
PR tree-optimization/44913
* tree-data-ref.c (disjoint_objects_p): Remove.
(dr_may_alias_p): Simplify. Only hand the base object to
the alias-oracle.
* tree-ssa-alias.c (ptr_deref_may_alias_decl_p): Handle
some more trees, bail out instead of asserting.
(ptr_derefs_may_alias_p): Likewise. Export.
(refs_may_alias_p_1): Handle STRING_CSTs.
* tree-ssa-alias.h (ptr_derefs_may_alias_p): Declare.
Eric Botcazou [Thu, 14 Oct 2010 13:39:18 +0000 (13:39 +0000)]
sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke may_trap_or_fault_p instead of may_trap_p predicate.
* sched-deps.c (sched_insn_is_legitimate_for_speculation): Invoke
may_trap_or_fault_p instead of may_trap_p predicate.
* tree.c (substitute_in_expr): Propagate the TREE_THIS_NOTRAP flag.
(substitute_placeholder_in_expr): Likewise.
* tree-inline.c (remap_gimple_op_r): Propagate the TREE_THIS_NOTRAP
flag on MEM_REF nodes.
(copy_tree_body_r): Propagate the TREE_READONLY and TREE_THIS_NOTRAP
flags on INDIRECT_REF nodes.
ada/
* gcc-interface/decl.c (gnat_to_gnu_entity) <E_Array_Type>: Set
TREE_THIS_NOTRAP on the INDIRECT_REF node built for the template.
* gcc-interface/trans.c (Identifier_to_gnu): Set TREE_THIS_NOTRAP on
the INDIRECT_REF node built for objects used by reference.
* gcc-interface/utils2.c (build_binary_op): Add short-circuit for
constant result. Set TREE_THIS_NOTRAP on ARRAY_REF and ARRAY_RANGE_REF.
(gnat_stabilize_reference_1): Propagate the TREE_THIS_NOTRAP flag.
Iain Sandoe [Thu, 14 Oct 2010 10:40:07 +0000 (10:40 +0000)]
adjust recent tests for -fnext-runtime:
gcc/testsuite:
* objc.dg/pr45878.m: Update to include NSConstantString interface
for -fnext-runtime.
* objc.dg/pr23214.m: Use the Object1.m implementation to build m64 on
-fnext-runtime, XFAIL the m64 -fnext-runtime run.
* objc.dg/objc-foreach-4.m: Provide an NSConstantString dummy class
reference for m64 -fnext-runtime.
Joseph Myers [Thu, 14 Oct 2010 10:22:43 +0000 (11:22 +0100)]
params.c (params_finished): New.
* params.c (params_finished): New.
(add_params): Assert !params_finished.
(finish_params): New.
(set_param_value_internal): Take params and params_set
parameters. Assert params_finished.
(set_param_value, maybe_set_param_value): Take params and
params_set parameters. Update calls to set_param_value_internal.
(set_default_param_value): Assert !params_finished. Don't use
set_param_value_internal.
(default_param_value, init_param_values): New.
* params.h (struct param_info): Change value to default_value.
Remove set.
(set_param_value, maybe_set_param_value): Add params and
params_set parameters.
(PARAM_VALUE): Get parameters from global_options.
(PARAM_SET_P): Remove.
(finish_params, default_param_value, init_param_values): New.
* common.opt (param_values): New Variable.
* config/arm/arm.c (arm_option_override): Pass extra arguments to
maybe_set_param_value.
* config/i386/i386.c (ix86_option_override_internal): Pass extra
arguments to maybe_set_param_value.
* config/picochip/picochip.c (picochip_option_override): Pass
extra arguments to maybe_set_param_value.
* config/rs6000/rs6000.c (rs6000_option_override_internal): Pass
extra arguments to maybe_set_param_value.
* config/s390/s390.c (s390_option_override): Use
maybe_set_param_value instead of set_param_value. Pass extra
arguments to maybe_set_param_value.
* config/sparc/sparc.c (sparc_option_override): Pass extra
arguments to maybe_set_param_value.
* config/spu/spu.c (spu_option_override): Pass extra arguments to
maybe_set_param_value.
* opts.c (handle_param): Take opts and opts_set parameters.
Update call to set_param_value.
(initial_min_crossjump_insns,
initial_max_fields_for_field_sensitive,
initial_loop_invariant_max_bbs_in_loop): Remove.
(init_options_once): Don't set them.
(init_options_struct): Initialize parameters structures.
(default_options_optimization): Use default_param_value when
restoring defaults. Update calls to maybe_set_param_value.
(finish_options): Update calls to maybe_set_param_value.
(common_handle_option): Update calls to handle_param and
set_param_value.
* toplev.c (DEFPARAM): Update definition for changes to
param_info.
(general_init): Call finish_params.
Nick Clifton [Thu, 14 Oct 2010 09:12:50 +0000 (09:12 +0000)]
mn10300.h (CONSTANT_ALIGNMENT): Define.
* config/mn10300/mn10300.h (CONSTANT_ALIGNMENT): Define.
(DATA_ALIGNMENT, LOCAL_ALIGNMENT): Define.
(FIRST_PSEUDO_REGISTER): Increase by one.
(FIXED_REGISTERS, CALL_USED_REGISTERS): Update with CC_REG.
(HARD_REGNO_MODE_OK): Call mn10300_hard_regno_mode_ok.
(MODES_TIEABLE): Call mn10300_modes_tieable.
(REG_CLASS_NAMES, REG_CLASS_CONTENTS, REGNO_REG_CLASS): Add
CC_REGS.
(LEGITIMATE_CONSTANT_P): Call mn10300_legitimate_constant_p.
(CC_OVERFLOW_UNUSABLE, CC_NO_CARRY, NOTICE_UPDATE_CC)
(SELECT_CC_MODE, REVERSIBLE_CC_MODE): Delete.
(REGISTER_NAMES, ADDITIONAL_REGISTER_NAMES): Add CC register.
(ASM_OUTPUT_REG_PUSH, ASM_OUTPUT_REG_POP): Delete.
(mn10300_cc_status_mdep): Delete.
(CC_STATUS_MDEP, CC_STATUS_MDEP_INIT): Delete.
* config/mn10300/mn10300 (mn10300_option_override): Stop disabling
the combine-stack-adjust pass.
(print_operand): Use the mode of the comparison operation to
select the comparison suffix.
(notice_update_cc): Delete.
(mn10300_secondary_reload_class): Remove test for stack pointer
based arithmetic.
(output_tst): Rename to mn10300_output_cmp.
(impossible_plus_operand): Move into predicates.md.
(mn10300_legitimize_address): Make static.
(mn10300_legitimate_address_p): Make static. Only allow SI sized
constant pic operands.
(mn10300_legitimate_constant_p): New function.
(mn10300_case_values_threshold): Make static.
(mn10300_hard_regno_mode_ok): New function.
(mn10300_modes_tieable): New function.
(mn10300_select_cc_mode): New function.
* config/mn10300/predicates.md (impossible_plus_operand): Define.
* config/mn10300/mn10300-protos.h: Tidy.
(mn10300_legitimate_constant_p, mn10300_modes_tieable)
(mn10300_hard_regno_mode_ok, mn10300_select_cc_mode): Prototype.
* config/mn10300/mn10300.md (cc attribute): Delete. Replace
with clobbers or sets of CC_REG.
(CC_REG): Define.
(mov*): Remove use of CLR instruction.
(cbranch_si4_<code>): New pattern/split.
(integer_conditional_branch): New pattern.
(cbranch_sf4_<code>): New pattern/split.
(float_conditional_branch): New pattern.
(casesi): Use addsi3 pattern instead of movsi pattern to add and
move a value at the same time.
(cc0 peepholes): Remove.
sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE on RTX_FRAME_RELATED_P insns and the insn to which...
* sel-sched-ir.c (init_global_and_expr_for_insn): Set CANT_MOVE on RTX_FRAME_RELATED_P
insns and the insn to which NOTE_INSN_EPILOGUE_BEG is attached.
* sched-vis.c (print_value): Allow NULL value.
re PR rtl-optimization/45570 (ICE: in cfg_preds_1, at sel-sched-ir.c:4584)
PR rtl-optimization/45570
* sel-sched-ir.c (cfg_preds_1): When walking out of the region, assert
that we are pipelining outer loops. Allow returning zero predecessors.
* gcc.dg/pr45570.c: New test.
* sel-sched-ir.c (maybe_tidy_empty_bb): Simplify comment.
(tidy_control_flow): Tidy vertical space.
(sel_remove_bb): New variable idx. Use it to remember the basic
block index before deleting the block.
(sel_remove_empty_bb): Remove dead code, simplify and insert to ...
(sel_merge_blocks): ... here.
* sel-sched-ir.h (sel_remove_empty_bb): Remove prototype.
Jakub Jelinek [Thu, 14 Oct 2010 07:17:54 +0000 (09:17 +0200)]
cse.c (is_dead_reg): Change into inline function that is not called through for_each_rtx.
* cse.c (is_dead_reg): Change into inline function that is not
called through for_each_rtx.
(set_live_p): Adjust caller.
(insn_live_p): Don't reset DEBUG_INSNs here.
(struct dead_debug_insn_data): New data.
(count_stores, is_dead_debug_insn, replace_dead_reg): New functions.
(delete_trivially_dead_insns): If there is just one setter for the
dead reg that is referenced by some DEBUG_INSNs, create a DEBUG_EXPR
and add DEBUG_INSN for it right before the removed setter and
use the DEBUG_EXPR instead of the dead pseudo.
Eric Botcazou [Wed, 13 Oct 2010 21:43:42 +0000 (21:43 +0000)]
re PR rtl-optimization/45912 (Patch for PR tree-optimization/44972 caused 2500+ FAILs on Solaris 2/SPARC)
PR rtl-optimization/45912
* ira-costs.c (ira_tune_allocno_costs_and_cover_classes): Test the
regno of registers instead of their index to compute the alignment.
* config/i386/i386.c (ix86_builtins): Add
IX86_BUILTIN_CPYSGNPS256 and IX86_BUILTIN_CPYSGNPD256.
(bdesc_args): Likewise.
(ix86_builtin_vectorized_function): Support
IX86_BUILTIN_CPYSGNPS256, IX86_BUILTIN_CPYSGNPD256,
IX86_BUILTIN_SQRTPD256, IX86_BUILTIN_SQRTPS_NR256,
and IX86_BUILTIN_CVTPS2DQ256.
(ix86_builtin_reciprocal): Support IX86_BUILTIN_SQRTPS_NR256.