13#ifndef CIRCT_DIALECT_COMB_COMBOPS_H
14#define CIRCT_DIALECT_COMB_COMBOPS_H
19#include "mlir/Bytecode/BytecodeOpInterface.h"
20#include "mlir/IR/BuiltinOps.h"
21#include "mlir/IR/OpImplementation.h"
22#include "mlir/Interfaces/FunctionInterfaces.h"
23#include "mlir/Interfaces/InferTypeOpInterface.h"
24#include "mlir/Interfaces/SideEffectInterfaces.h"
35#include "circt/Dialect/Comb/Comb.h.inc"
52Value
createOrFoldSExt(Value value, Type destTy, ImplicitLocOpBuilder &builder);
56 bool twoState =
false);
58 bool twoState =
false);
61void extractBits(OpBuilder &builder, Value val, SmallVectorImpl<Value> &bits);
66 ArrayRef<Value> selectors, ArrayRef<Value> leafNodes,
67 Value outOfBoundsValue);
void extractBits(OpBuilder &builder, Value val, SmallVectorImpl< Value > &bits)
Extract bits from a value.
Value createOrFoldNot(Location loc, Value value, OpBuilder &builder, bool twoState=false)
Create a `‘Not’' gate on a value.
KnownBits computeKnownBits(Value value)
Compute "known bits" information about the specified value - the set of bits that are guaranteed to a...
Value createOrFoldSExt(Location loc, Value value, Type destTy, OpBuilder &builder)
Create a sign extension operation from a value of integer type to an equal or larger integer type.
Value constructMuxTree(OpBuilder &builder, Location loc, ArrayRef< Value > selectors, ArrayRef< Value > leafNodes, Value outOfBoundsValue)
Construct a mux tree for given leaf nodes.
The InstanceGraph op interface, see InstanceGraphInterface.td for more details.