GCC Middle and Back End API Reference
hwint.c File Reference
#include "config.h"
#include "system.h"
#include "diagnostic-core.h"
Include dependency graph for hwint.c:

Functions

int floor_log2 ()
int ceil_log2 ()
int exact_log2 ()
int ctz_hwi ()
int clz_hwi ()
int ffs_hwi ()
int popcount_hwi ()
HOST_WIDE_INT abs_hwi ()
unsigned HOST_WIDE_INT absu_hwi ()
HOST_WIDE_INT gcd ()
HOST_WIDE_INT pos_mul_hwi ()
HOST_WIDE_INT mul_hwi ()
HOST_WIDE_INT least_common_multiple ()

Function Documentation

HOST_WIDE_INT abs_hwi ( )

Compute the absolute value of X.

References HOST_WIDE_INT.

unsigned HOST_WIDE_INT absu_hwi ( )

Compute the absolute value of X as an unsigned type.

Referenced by double_int::lshift(), double_int::rshift(), double_int::trailing_zeros(), and vect_find_same_alignment_drs().

int ceil_log2 ( )

Given X, an unsigned number, return the largest Y such that 2**Y >= X.

References floor_log2().

Referenced by case_values_threshold().

int clz_hwi ( )

Similarly for most significant bits.

References floor_log2().

Referenced by double_int_type_size_in_bits().

int ctz_hwi ( )

Given X, an unsigned number, return the number of least significant bits that are zero. When X == 0, the result is the word size.

References floor_log2(), and HOST_BITS_PER_WIDE_INT.

Referenced by double_int_type_size_in_bits(), fold_builtin_cbrt(), force_reg(), simplify_const_unary_operation(), and double_int::udiv().

int exact_log2 ( )

Return the logarithm of X, base 2, considering X unsigned, if X is a power of 2. Otherwise, returns -1.

Referenced by find_insert_point(), find_loop_location(), make_extraction(), simplify_and_const_int_1(), vect_do_peeling_for_loop_bound(), vect_find_same_alignment_drs(), vect_get_store_cost(), and vect_model_store_cost().

int ffs_hwi ( )

Similar to ctz_hwi, except that the least significant bit is numbered starting from 1, and X == 0 yields 0.

References CHAR_BIT.

Referenced by fold_builtin_cbrt(), and simplify_const_unary_operation().

int floor_log2 ( )

Operations on HOST_WIDE_INT. Copyright (C) 1987-2013 Free Software Foundation, Inc.

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/. The functions clz_hwi, ctz_hwi, ffs_hwi, floor_log2, ceil_log2, and exact_log2 are defined as inline functions in hwint.h if GCC_VERSION >= 3004. The definitions here are used for older versions of GCC and non-GCC bootstrap compilers. Given X, an unsigned number, return the largest int Y such that 2**Y <= X. If X is 0, return -1.

Referenced by bp_pack_int_in_range(), cached_num_sign_bit_copies(), ceil_log2(), clz_hwi(), ctz_hwi(), expand_mult(), expand_mult_highpart_adjust(), final_start_function(), fold_builtin_cbrt(), get_named_section(), omp_reduction_init(), push_allocnos_to_stack(), simplify_const_unary_operation(), simplify_rotate(), and streamer_read_hwi_in_range().

HOST_WIDE_INT gcd ( )

Compute the greatest common divisor of two numbers A and B using Euclid's algorithm.

Referenced by normalize_omega_problem(), and omega_solve_eq().

HOST_WIDE_INT least_common_multiple ( )

Compute the least common multiple of two numbers A and B .

Referenced by may_use_storent_in_loop_p(), and vect_build_slp_tree_1().

HOST_WIDE_INT mul_hwi ( )

Return X multiplied by Y and check that the result does not overflow.

int popcount_hwi ( )

Return the number of set bits in X.

HOST_WIDE_INT pos_mul_hwi ( )

For X and Y positive integers, return X multiplied by Y and check that the result does not overflow.

References gcc_checking_assert, and HOST_WIDE_INT_MIN.