GCC Middle and Back End API Reference
|
Functions | |
double | acos (double) |
double | asin (double) |
double | atan (double) |
double | atan2 (double, double) |
double | cos (double) |
double | sin (double) |
double | tan (double) |
double | cosh (double) |
double | sinh (double) |
double | tanh (double) |
double | exp (double) |
double | frexp (double, int *) |
double | ldexp (double, int) |
double | log (double) |
double | log10 (double) |
double | modf (double, double *) |
double | pow (double, double) |
double | sqrt (double) |
double | ceil (double) |
double | fabs (double) |
double | floor (double) |
double | fmod (double, double) |
int | main (void) |
Variables | |
int | i1 |
int | i2 = 2 |
volatile signed char | sc |
volatile unsigned char | uc |
volatile signed short | ss |
volatile unsigned short | us |
volatile signed int | si |
volatile unsigned int | ui |
volatile signed long | sl |
volatile unsigned long | ul |
volatile float | f1 = 1.0 |
volatile float | f2 = 1.0 |
volatile float | f3 = 1.0 |
volatile double | d1 = 1.0 |
volatile double | d2 = 1.0 |
volatile double | d3 = 1.0 |
volatile long double | D1 = 1.0 |
volatile long double | D2 = 1.0 |
volatile long double | D3 = 1.0 |
|
extern |
fp-test.cc - Check that all floating-point operations are available. Copyright (C) 1995-2025 Free Software Foundation, Inc. Contributed by Ronald F. Guilmette <rfg@monkeys.com>. This file is part of GCC. GCC is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version. GCC is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GCC; see the file COPYING3. If not see <http://www.gnu.org/licenses/>.
This is a trivial test program which may be useful to people who are porting the GCC or G++ compilers to a new system. The intent here is merely to check that all floating-point operations have been provided by the port. (Note that I say ``provided'' rather than ``implemented''.) To use this file, simply compile it (with GCC or G++) and then try to link it in the normal way (also using GCC or G++ respectively). If all of the floating -point operations (including conversions) have been provided, then this file will link without incident. If however one or more of the primitive floating-point operations have not been properly provided, you will get link-time errors indicating which floating-point operations are unavailable. This file will typically be used when porting the GNU compilers to some system which lacks floating-point hardware, and for which software emulation routines (for FP ops) are needed in order to complete the port.
Referenced by main().
|
extern |
Referenced by main().
|
extern |
Referenced by main().
|
extern |
Referenced by main().
|
extern |
Referenced by main().
|
extern |
Referenced by main().
|
extern |
Referenced by main().
|
extern |
Referenced by add_constant_to_table(), add_constraint(), nontrapping_dom_walker::add_or_mark_expr(), addr_for_mem_ref(), addr_stridxptr(), aff_combination_expand(), aggregate_value_p(), all_zeros_p(), alloca_call_p(), array_ref_element_size(), array_ref_low_bound(), array_ref_up_bound(), assemble_constant_contents(), attr_value_alignment(), avoid_complex_debug_insns(), build_addr(), build_constant_desc(), build_range_check(), builtin_save_expr(), can_implement_as_sibling_call_p(), check_access(), check_attr_test(), check_attr_value(), check_dependence(), check_strncat_sizes(), check_tune_attr(), check_tune_attr(), compares_alternatives_p(), component_ref_field_offset(), compute_alternative_mask(), compute_reloc_for_constant(), compute_test_codes(), const_hash_1(), const_vector_from_tree(), const_vector_mask_from_tree(), constant_alignment_word_strings(), contains_placeholder_p(), convert_set_attr(), convert_set_attr_alternative(), copy_boolean(), copyprop_hardreg_forward_1(), count_alternatives(), strlen_pass::count_nonzero_bytes(), strlen_pass::count_nonzero_bytes_addr(), decode_addr_const(), decode_arm_bfloat_half(), decode_field_reference(), decode_ieee_double(), decode_ieee_extended(), decode_ieee_half(), decode_ieee_quad(), decode_ieee_single(), decode_vax_d(), decode_vax_f(), decode_vax_g(), default_asm_declare_constant_name(), default_binds_local_p(), default_binds_local_p_1(), default_binds_local_p_2(), default_binds_local_p_3(), default_expand_builtin(), do_add(), do_divide(), do_jump(), do_multiply(), dump_range_entry(), eliminate_known_true(), encode_arm_bfloat_half(), encode_ieee_double(), encode_ieee_extended(), encode_ieee_half(), encode_ieee_quad(), encode_ieee_single(), encode_vax_f(), estimate_one_automaton_bound(), evaluate_eq_attr(), expand_asan_emit_allocas_unpoison(), expand_builtin(), expand_builtin___clear_cache(), expand_builtin_adjust_descriptor(), expand_builtin_adjust_trampoline(), expand_builtin_alloca(), expand_builtin_assume_aligned(), expand_builtin_atomic_always_lock_free(), expand_builtin_atomic_clear(), expand_builtin_atomic_compare_exchange(), expand_builtin_atomic_exchange(), expand_builtin_atomic_fetch_op(), expand_builtin_atomic_is_lock_free(), expand_builtin_atomic_load(), expand_builtin_atomic_signal_fence(), expand_builtin_atomic_store(), expand_builtin_atomic_test_and_set(), expand_builtin_atomic_thread_fence(), expand_builtin_bswap(), expand_builtin_bzero(), expand_builtin_cexpi(), expand_builtin_classify_type(), expand_builtin_compare_and_swap(), expand_builtin_copysign(), expand_builtin_crc_table_based(), expand_builtin_eh_copy_values(), expand_builtin_eh_filter(), expand_builtin_eh_pointer(), expand_builtin_eh_return_data_regno(), expand_builtin_expect(), expand_builtin_expect_with_probability(), expand_builtin_fabs(), expand_builtin_feclear_feraise_except(), expand_builtin_fegetround(), expand_builtin_fork_or_exec(), expand_builtin_frame_address(), expand_builtin_goacc_parlevel_id_size(), expand_builtin_init_descriptor(), expand_builtin_init_trampoline(), expand_builtin_int_roundingfn(), expand_builtin_int_roundingfn_2(), expand_builtin_interclass_mathfn(), expand_builtin_issignaling(), expand_builtin_mathfn_3(), expand_builtin_mathfn_ternary(), expand_builtin_memcmp(), expand_builtin_memcpy(), expand_builtin_memmove(), expand_builtin_memory_chk(), expand_builtin_memory_copy_args(), expand_builtin_mempcpy(), expand_builtin_memset(), expand_builtin_nonlocal_goto(), expand_builtin_object_size(), expand_builtin_powi(), expand_builtin_prefetch(), expand_builtin_set_thread_pointer(), expand_builtin_signbit(), expand_builtin_sincos(), expand_builtin_stpcpy(), expand_builtin_stpcpy_1(), expand_builtin_strcmp(), expand_builtin_strcpy(), expand_builtin_strlen(), expand_builtin_strncmp(), expand_builtin_strncpy(), expand_builtin_strnlen(), expand_builtin_strub_enter(), expand_builtin_strub_leave(), expand_builtin_strub_update(), expand_builtin_sync_lock_release(), expand_builtin_sync_lock_test_and_set(), expand_builtin_sync_operation(), expand_builtin_thread_pointer(), expand_builtin_unop(), expand_builtin_va_copy(), expand_builtin_va_end(), expand_builtin_va_start(), expand_call(), expand_call_stmt(), expand_computed_goto(), expand_constructor(), expand_debug_expr(), expand_debug_source_expr(), expand_expr(), expand_expr_addr_expr(), expand_expr_addr_expr_1(), expand_expr_constant(), expand_expr_force_mode(), expand_expr_real(), expand_expr_real_1(), expand_ifn_atomic_bit_test_and(), expand_ifn_atomic_compare_exchange_into_call(), expand_ifn_atomic_op_fetch_cmp_0(), expand_normal(), expand_pow_as_sqrts(), expand_speculation_safe_value(), expand_vec_cmp_expr(), expr_callee_abi(), expr_size(), extract_bit_test_mask(), find_attrs_to_cache(), find_call_crossed_cheap_reg(), find_placeholder_in_expr(), find_tune_attr(), find_tune_attr(), first_call_expr_arg(), first_const_call_expr_arg(), flags_from_decl_or_type(), fold_builtin_frexp(), fold_builtin_next_arg(), fold_call_expr(), fold_read_from_constant_string(), gen_highpart_mode(), generate_switch_p(), get_addr_base_and_unit_offset(), get_addr_base_and_unit_offset_1(), get_addr_stridx(), get_base_reg(), get_bit_range(), get_constant_section(), get_constant_size(), get_gimple_for_ssa_name(), get_inner_reference(), get_memmodel(), get_memory_rtx(), get_object_alignment(), get_object_alignment_1(), get_object_alignment_2(), get_pointer_alignment(), get_pointer_alignment_1(), get_ref_base_and_extent(), get_ref_base_and_extent_hwi(), get_rtx_for_ssa_name(), get_size_range(), get_size_range(), get_stridx(), gimple_range_ssa_p(), gsi_gimplify_val(), expr_hasher::hash(), highest_pow2_factor(), highest_pow2_factor_for_target(), identity_fn(), if_test_bypass_p(), init_range_entry(), init_tmp_var(), initialize_argument_information(), inline_expand_builtin_bytecmp(), insert_const_anchor(), insert_right_side(), int_expr_size(), is_addr_local(), is_aligning_offset(), jumpif(), jumpifnot(), location_wrapper_p(), lookup_constant_def(), main(), make_canonical(), make_debug_expr_from_rtl(), make_numeric_value(), make_range(), mark_effect(), mark_mode_tests(), max_attr_value(), max_fn(), maybe_emit_chk_warning(), maybe_emit_sprintf_chk_warning(), maybe_inline_call_in_expr(), maybe_output_constant_def_contents(), maybe_trim_constructor_store(), maybe_warn_for_bound(), maybe_warn_nonstring_arg(), merge_equiv_classes(), min_attr_value(), min_fn(), mostly_zeros_p(), needs_variable(), new_addr_stridx(), new_stridx(), normalize(), not_size_aligned(), note_constraint(), omp_check_context_selector(), one_fn(), operator<<(), operator>>(), optimize_range_tests(), optimize_range_tests_1(), optimize_range_tests_cmp_bitwise(), optimize_range_tests_to_bit_test(), optimize_range_tests_var_bound(), optimize_range_tests_xor(), optimize_vec_cond_expr(), output_addressed_constants(), output_constant(), output_constant_def(), output_constant_def_contents(), output_constructor(), prepare_copy_insn(), process_insert_insn(), push_without_duplicates(), gimple_ranger::range_of_stmt(), readonly_data_expr(), real_from_mpfr(), real_from_string(), real_ldexp(), real_to_hexadecimal(), real_to_integer(), really_constant_p(), reduce_to_bit_field_precision(), remove_invalid_subreg_refs(), reversed_comparison(), rewrite_call_expr(), safe_from_p(), save_tmp_var(), sign_bit_p(), simple_condition_p(), simple_operand_p(), simplify_and_tree(), simplify_cond(), simplify_or_tree(), simplify_test_exp(), simplify_test_exp_in_temp(), simplify_using_condition(), split_address_to_core_and_offset(), split_constant_offset(), split_constant_offset(), sreal::sreal(), store_constructor(), store_constructor_field(), store_expr(), store_field(), streamer_read_tree_bitfields(), strip_float_extensions(), substitute_address(), substitute_in_expr(), substitute_placeholder_in_expr(), times_pten(), tree_expr_size(), tree_inlined_location(), tree_nonartificial_location(), tree_nop_conversion(), tree_output_constant_def(), tree_sign_nop_conversion(), tree_ssa_strip_useless_type_conversions(), tree_strip_any_location_wrapper(), tree_strip_nop_conversions(), tree_strip_sign_nop_conversions(), unterminated_array(), update_range_test(), validate_exp(), vect_peel_nonlinear_iv_init(), vect_recog_pow_pattern(), walk_attr_value(), warn_for_access(), write_match_code_switch(), write_predicate_expr(), write_predicate_stmts(), write_test_expr(), and zero_fn().
|
extern |
Referenced by main().
|
extern |
Referenced by main().
|
extern |
Referenced by main().
|
extern |
Referenced by main().
|
extern |
Referenced by main(), and sreal::to_double().
|
extern |
|
extern |
Referenced by main().
int main | ( | void | ) |
|
extern |
Referenced by main().
|
extern |
Referenced by main(), and vect_recog_divmod_pattern().
|
extern |
Referenced by lower_for(), and main().
|
extern |
Referenced by main().
|
extern |
Referenced by main().
|
extern |
Referenced by main().
|
extern |
Referenced by main().
volatile long double D1 = 1.0 |
Referenced by main().
volatile double d1 = 1.0 |
Referenced by can_replace_by(), tree_switch_conversion::case_bit_test::cmp(), compare_operands(), const_binop(), decl_eq_p(), dr_with_seg_len_pair_t::dr_with_seg_len_pair_t(), test_pattern_hasher::equal(), pair_fusion_bb_info::fuse_pair(), gimple_bitwise_inverted_equal_p(), has_same_test_p(), ipa_analyze_indirect_call_uses(), main(), merge_into_decision(), merge_into_state_1(), merge_patterns(), mutually_exclusive_p(), operator==(), outgoing_edges_match(), profile_merge(), profile_overlap(), profile_rewrite(), simplify_context::simplify_binary_operation_1(), simplify_const_relational_operation(), and wide_int_cmp().
volatile long double D2 = 1.0 |
Referenced by main().
volatile double d2 = 1.0 |
Referenced by can_replace_by(), tree_switch_conversion::case_bit_test::cmp(), const_binop(), decl_eq_p(), dr_with_seg_len_pair_t::dr_with_seg_len_pair_t(), test_pattern_hasher::equal(), expand_vector_divmod(), pair_fusion_bb_info::fuse_pair(), gimple_bitwise_inverted_equal_p(), has_same_test_p(), ipa_analyze_indirect_call_uses(), main(), merge_into_decision(), merge_into_state_1(), merge_patterns(), mutually_exclusive_p(), operator==(), outgoing_edges_match(), profile_merge(), profile_overlap(), cgraph_edge::set_call_stmt(), simplify_tests(), split_out_patterns(), try_crossjump_to_edge(), vect_recog_popcount_clz_ctz_ffs_pattern(), and wide_int_cmp().
volatile long double D3 = 1.0 |
Referenced by main().
volatile double d3 = 1.0 |
Referenced by main().
volatile float f1 = 1.0 |
Referenced by adds_single_suffix_p(), compare_access_positions(), compare_cdtor_tu_order(), compare_ctor(), compare_dtor(), const_binop(), finish_taskreg_scan(), flow_find_cross_jump(), flow_find_head_matching_sequence(), gimple_canonical_types_compatible_p(), gimple_compare_field_offset(), main(), align_flags::max(), odr_types_equivalent_p(), outgoing_edges_match(), output_object_block_compare(), simplify_context::simplify_binary_operation_1(), simplify_const_binary_operation(), and verify_type_variant().
volatile float f2 = 1.0 |
Referenced by adds_single_suffix_p(), compare_access_positions(), compare_cdtor_tu_order(), compare_ctor(), compare_dtor(), const_binop(), finish_taskreg_scan(), flow_find_cross_jump(), flow_find_head_matching_sequence(), gimple_canonical_types_compatible_p(), gimple_compare_field_offset(), main(), odr_types_equivalent_p(), outgoing_edges_match(), output_object_block_compare(), and verify_type_variant().
volatile float f3 = 1.0 |
Referenced by finish_taskreg_scan(), and main().
int i1 |
Referenced by analyze_subscript_affine_affine(), can_replace_by(), choose_reload_regs(), combine_reg_notes(), combine_validate_cost(), ipa_icf_gimple::func_checker::compare_ssa_name(), const_binop(), delete_output_reload(), iv_split_hasher::equal(), var_expand_hasher::equal(), flow_find_cross_jump(), flow_find_head_matching_sequence(), pair_fusion_bb_info::fuse_pair(), gimple_canonical_types_compatible_p(), handle_min_max_size(), immed_double_const(), insn_dominated_by_p(), insns_have_identical_cfa_notes(), main(), merge_into_decision(), merge_notes(), mutually_exclusive_p(), odr_types_equivalent_p(), old_insns_match_p(), phi_convertible_by_degenerating_args(), relation_trio::relation_trio(), simplify_context::simplify_binary_operation_1(), ipa_icf::sort_sem_items_by_decl_uid(), subset_of(), try_combine(), pair_fusion_bb_info::try_fuse_pair(), variable_union_info_cmp_pos(), walk_to_nondebug_insn(), and warn_types_mismatch().
int i2 = 2 |
Referenced by ipa_predicate::add_clause(), can_replace_by(), combine_reg_notes(), combine_validate_cost(), ipa_icf_gimple::func_checker::compare_ssa_name(), const_binop(), delete_address_reloads_1(), delete_output_reload(), distribute_notes(), duplicate_thunk_for_node(), iv_split_hasher::equal(), var_expand_hasher::equal(), flow_find_cross_jump(), flow_find_head_matching_sequence(), fold_marked_statements(), pair_fusion_bb_info::fuse_pair(), gimple_canonical_types_compatible_p(), hoist_defs_of_uses(), modref_access_node::insert(), insn_dominated_by_p(), insns_have_identical_cfa_notes(), irange::intersect(), keep_with_call_p(), lower_rec_input_clauses(), main(), merge_into_decision(), merge_notes(), mutually_exclusive_p(), odr_types_equivalent_p(), old_insns_match_p(), phi_convertible_by_degenerating_args(), ipa_predicate::probability(), relation_trio::relation_trio(), ipa_icf::sort_sem_items_by_decl_uid(), split_out_patterns(), subset_of(), try_combine(), pair_fusion_bb_info::try_fuse_pair(), variable_union_info_cmp_pos(), and warn_types_mismatch().
volatile signed char sc |
Referenced by arith_overflow_check_p(), build_uniform_cst(), build_vector_from_val(), tree_switch_conversion::bit_test_cluster::can_be_handled(), create_expression_by_pieces(), tree_switch_conversion::group_cluster::dump(), tree_switch_conversion::jump_table_cluster::emit(), tree_switch_conversion::jump_table_cluster::find_jump_tables(), gimple_assign_cast_p(), ipcp_modif_dom_walker::ipcp_modif_dom_walker(), tree_switch_conversion::bit_test_cluster::is_beneficial(), main(), match_arith_overflow(), memrefs_conflict_p(), omp_accumulate_sibling_list(), simd_clone_adjust(), simd_clone_adjust_argument_types(), and value_replacement().
volatile signed int si |
Referenced by _bb_vec_info::_bb_vec_info(), _loop_vec_info::_loop_vec_info(), account_stack_vars(), strlen_pass::adjust_last_stmt(), adjust_related_strinfos(), strlen_pass::after_dom_children(), dt_node::analyze(), ipa_param_body_adjustments::append_init_stmts(), check_array_bounds_dom_walker::before_dom_children(), strlen_pass::before_dom_children(), builtin_unreachable_bb_p(), can_remove_asan_check(), check_all_va_list_escapes(), check_va_list_escapes(), collect_dfa_stats(), compare_nonzero_chars(), compare_nonzero_chars(), compare_states_for_equiv(), cond_if_else_store_replacement(), condense_visit(), connect_traces(), copy_edges_for_bb(), copy_loop_before(), copy_phis_for_bb(), strlen_pass::count_nonzero_bytes_addr(), determine_dominators_for_sons(), dump_generic_node(), dump_pred_graph(), dump_stack_var_partition(), dump_strlen_info(), pass_walloca::execute(), expand_builtin_init_dwarf_reg_sizes(), expand_call_inline(), expand_omp_atomic_mutex(), expand_omp_atomic_pipeline(), expand_omp_sections(), expand_omp_single(), expand_omp_synch(), expand_stack_vars(), find_always_executed_bbs(), find_explicit_erroneous_behavior(), find_implicit_erroneous_behavior(), find_indirect_cycles(), find_loop_location(), find_outermost_region_in_block(), fold_gimple_assign(), fold_strstr_to_strncmp(), free_strinfo(), free_var_substitution_info(), decision_tree::gen(), get_addr_stridx(), strlen_pass::get_len_or_size(), get_next_strinfo(), get_range_strlen_dynamic(), get_stridx(), get_stridx_plus_constant(), get_string_length(), gimple_divmod_fixed_value_transform(), gimple_find_edge_insert_loc(), gimple_mod_pow2_value_transform(), gimple_mod_subtract_transform(), gimple_seq_add_seq(), gimple_seq_add_seq_without_update(), gimple_seq_add_stmt(), gimple_seq_add_stmt_without_update(), gimplify_bind_expr(), gimplify_omp_for(), gimplify_seq_add_seq(), gori_calc_operands(), gori_name_helper(), strlen_pass::handle_alloc_call(), strlen_pass::handle_builtin_memcpy(), strlen_pass::handle_builtin_strcat(), strlen_pass::handle_builtin_strchr(), strlen_pass::handle_builtin_strcpy(), strlen_pass::handle_builtin_strlen(), strlen_pass::handle_integral_assign(), strlen_pass::handle_pointer_plus(), strlen_pass::handle_store(), ipa_icf::sem_function::init(), init_copy_prop(), insert_init_stmt(), insert_phi_nodes_for(), instantiate_scev_name(), is_feasible_trace(), isolate_path(), label_visit(), lower_for(), lower_vec_perm(), main(), maybe_get_dominating_check(), maybe_invalidate(), maybe_move_debug_stmts_to_successors(), strlen_pass::maybe_warn_overflow(), strlen_pass::maybe_warn_overflow(), move_block_to_fn(), new_strinfo(), crc_optimization::optimize_crc_loop(), dom_opt_dom_walker::optimize_stmt(), optimize_va_list_gpr_fpr_size(), partition_stack_vars(), perform_var_substitution(), prepare_block_for_update_1(), propagate_threaded_block_debug_into(), record_stmt_cost(), redirect_all_calls(), gimple_ranger::register_transitive_inferred_ranges(), remap_gimple_seq(), remove_name_from_operation(), vec_info::remove_stmt(), rewrite_constraints(), rewrite_stmt(), scc_visit(), set_endptr_and_length(), set_strinfo(), solve_constraints(), ssa_prop_init(), state_is_differed(), unshare_strinfo(), unshare_strinfo_vec(), update_ssa_across_abnormal_edges(), va_list_counter_bump(), va_list_counter_op(), va_list_counter_struct_op(), va_list_ptr_read(), va_list_ptr_write(), vect_analyze_loop_2(), vect_analyze_loop_operations(), vect_analyze_stmt(), vect_bb_vectorization_profitable_p(), vect_build_slp_tree_2(), vect_compute_single_scalar_iteration_cost(), vect_determine_vectorization_factor(), vect_determine_vf_for_stmt(), vect_estimate_min_profitable_iters(), vect_get_known_peeling_cost(), vect_mark_pattern_stmts(), vect_mark_stmts_to_be_vectorized(), vect_pattern_recog(), vect_schedule_slp_node(), vect_transform_loop(), vect_update_vf_for_slp(), vectorizable_induction(), vectorizable_live_operation(), vectorizable_nonlinear_induction(), vectorizable_simd_clone_call(), verify_related_strinfos(), verify_vssa(), warn_uninit_phi_uses(), zero_length_string(), zero_length_string_p(), and _bb_vec_info::~_bb_vec_info().
volatile signed long sl |
volatile signed short ss |
Referenced by analyze_function_body(), dump_ipa_call_summary(), ipa_dump_fn_summary(), and main().
volatile unsigned char uc |
Referenced by gimplify_omp_workshare(), main(), memrefs_conflict_p(), and output_one_function_exception_table().
volatile unsigned int ui |
Referenced by compute_dependence_clique(), dse_classify_store(), dse_optimize_call(), dse_optimize_redundant_stores(), init_alias_analysis(), main(), mode_for_size_tree(), propagate_with_phi(), prune_expressions(), ipa_param_body_adjustments::reset_debug_stmts(), vect_do_peeling(), and vectorizable_slp_permutation_1().
volatile unsigned long ul |
volatile unsigned short us |
Referenced by main().