+ size_l = get_initializer_compound_n_entries(init_l);
+ size_r = get_initializer_compound_n_entries(init_r);
+ size = size_l < size_r ? size_l : size_r;
+
+ for (i = 0; i != size; ++i) {
+ ir_initializer_t *const val_l = get_initializer_compound_value(init_l, i);
+ ir_tarval *const tv_l = get_initializer_value(val_l, mode);
+ ir_initializer_t *const val_r = get_initializer_compound_value(init_r, i);
+ ir_tarval *const tv_r = get_initializer_value(val_r, mode);
+
+ if (!tarval_is_constant(tv_l) || !tarval_is_constant(tv_r))
+ return NULL;
+
+ if (tv_l != tv_r) {
+ ir_mode *const res_mode = get_type_mode(res_tp);
+ ir_tarval *const res_l = tarval_convert_to(tv_l, res_mode);
+ ir_tarval *const res_r = tarval_convert_to(tv_r, res_mode);
+ ir_tarval *const tv = tarval_sub(res_l, res_r, res_mode);
+ return new_r_Const(irg, tv);