GCC Middle and Back End API Reference
|
Go to the source code of this file.
Functions | |
void | bit_value_binop (enum tree_code, signop, int, widest_int *, widest_int *, signop, int, const widest_int &, const widest_int &, signop, int, const widest_int &, const widest_int &) |
void | bit_value_unop (enum tree_code, signop, int, widest_int *, widest_int *, signop, int, const widest_int &, const widest_int &) |
void bit_value_binop | ( | enum tree_code | , |
signop | sgn, | ||
int | width, | ||
widest_int * | val, | ||
widest_int * | mask, | ||
signop | r1type_sgn, | ||
int | r1type_precision, | ||
const widest_int & | r1val, | ||
const widest_int & | r1mask, | ||
signop | r2type_sgn, | ||
int | r2type_precision, | ||
const widest_int & | r2val, | ||
const widest_int & | r2mask ) |
Copyright (C) 2016-2024 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/>.
Apply the operation CODE in type TYPE to the value, mask pairs R1VAL, R1MASK and R2VAL, R2MASK representing a values of type R1TYPE and R2TYPE and set the value, mask pair *VAL and *MASK to the result.
References wi::bit_and_not(), wi::bit_not(), bit_value_binop(), bit_value_mult_const(), wi::clrsb(), wi::clz(), wi::cmp(), count, wi::ctz(), wi::exact_log2(), wi::ext(), get_individual_bits(), wi::get_precision(), gray_code_bit_flips, i, wi::lrotate(), wi::lrshift(), wi::lshift(), wi::ltu_p(), wi::mask(), wi::neg_p(), wi::popcount(), wi::rrotate(), wi::rshift(), wi::sext(), swap_tree_comparison(), wi::udiv_trunc(), UNSIGNED, value_mask_to_min_max(), and wi::zext().
void bit_value_unop | ( | enum tree_code | code, |
signop | type_sgn, | ||
int | type_precision, | ||
widest_int * | val, | ||
widest_int * | mask, | ||
signop | rtype_sgn, | ||
int | rtype_precision, | ||
const widest_int & | rval, | ||
const widest_int & | rmask ) |
Apply the operation CODE in type TYPE to the value, mask pair RVAL and RMASK representing a value of type RTYPE and set the value, mask pair *VAL and *MASK to the result.
References bit_value_binop(), bit_value_unop(), CASE_CONVERT, wi::ext(), wi::neg_p(), and wi::sext().
Referenced by bit_value_unop(), bit_value_unop(), evaluate_stmt(), ipcp_bits_lattice::meet_with(), and update_known_bitmask().