return (get_kind(thing) == k_ir_node);
}
-static INLINE ir_node *_get_nodes_block(const ir_node *node) {
- assert(_is_ir_node(node));
- return node->op->ops.get_block(node);
-}
-
/**
* Gets the op of a node.
* Intern version for libFirm.
return (_get_irn_op(node) == op_Not);
}
+static INLINE int
+_is_Shl(const ir_node *node) {
+ assert(node);
+ return (_get_irn_op(node) == op_Shl);
+}
+
+static INLINE int
+_is_Shr(const ir_node *node) {
+ assert(node);
+ return (_get_irn_op(node) == op_Shr);
+}
+
+static INLINE int
+_is_Shrs(const ir_node *node) {
+ assert(node);
+ return (_get_irn_op(node) == op_Shrs);
+}
+
+static INLINE int
+_is_Rot(const ir_node *node) {
+ assert(node);
+ return (_get_irn_op(node) == op_Rot);
+}
+
static INLINE int
_is_Psi(const ir_node *node) {
assert(node);
return (_get_irn_op(node) == op_Conv);
}
+static INLINE int
+_is_Cast(const ir_node *node) {
+ assert(node);
+ return (_get_irn_op(node) == op_Cast);
+}
+
static INLINE int
_is_CopyB(const ir_node *node) {
assert(node);
return (_get_irn_op(node) == op_Mul);
}
+static INLINE int
+_is_Mulh(const ir_node *node) {
+ assert(node);
+ return (_get_irn_op(node) == op_Mulh);
+}
+
static INLINE int
_is_Mux(const ir_node *node) {
assert(node);
op = _get_irn_op(node);
- if (op == op_Const)
- return classify_tarval(_get_Const_tarval(node));
- else if(op == op_SymConst)
+ if (op == op_Const) {
+ tarval *tv = _get_Const_tarval(node);
+ if (tarval_is_null(tv)) return CNST_NULL;
+ if (tarval_is_one(tv)) return CNST_ONE;
+ if (tarval_is_all_one(tv)) return CNST_ALL_ONE;
+ return CNST_OTHER;
+ } else if(op == op_SymConst)
return CNST_SYMCONST;
return CNST_NO_CONST;
/* this section MUST contain all inline functions */
#define is_ir_node(thing) _is_ir_node(thing)
-#define get_nodes_block(node) _get_nodes_block(node)
#define get_irn_intra_arity(node) _get_irn_intra_arity(node)
#define get_irn_inter_arity(node) _get_irn_inter_arity(node)
#define get_irn_arity(node) _get_irn_arity(node)
#define is_binop(node) _is_binop(node)
#define is_Const(node) _is_Const(node)
#define is_Conv(node) _is_Conv(node)
+#define is_Cast(node) _is_Cast(node)
#define is_Unknown(node) _is_Unknown(node)
#define is_Return(node) _is_Return(node)
#define is_Call(node) _is_Call(node)
#define is_Sel(node) _is_Sel(node)
#define is_Mul(node) _is_Mul(node)
+#define is_Mulh(node) _is_Mulh(node)
#define is_Mux(node) _is_Mux(node)
#define is_Load(node) _is_Load(node)
#define is_Sync(node) _is_Sync(node)
#define is_Eor(node) _is_Eor(node)
#define is_Sub(node) _is_Sub(node)
#define is_Not(node) _is_Not(node)
+#define is_Shl(node) _is_Shl(node)
+#define is_Shr(node) _is_Shr(node)
+#define is_Shrs(node) _is_Shrs(node)
+#define is_Rot(node) _is_Rot(node)
#define is_Psi(node) _is_Psi(node)
#define is_Tuple(node) _is_Tuple(node)
#define is_no_Block(node) _is_no_Block(node)