- ir_node *dupl = be_new_Copy(cls, chordal_env->irg, arg_block, arg);
- assert(get_irn_mode(phi) == get_irn_mode(dupl));
+ ir_node *dupl = be_new_Copy(cls, chordal_env->irg, arg_block, arg);
+ ir_mode *m_phi = get_irn_mode(phi), *m_dupl = get_irn_mode(dupl);
+
+ assert(((mode_is_int(m_phi) && mode_is_int(m_dupl)) ||
+ (mode_is_float(m_phi) && mode_is_float(m_dupl))) &&
+ (get_mode_size_bits(m_phi) == get_mode_size_bits(m_dupl)));
+