xref: /netbsd-src/external/mit/isl/dist/isl_type_check_match_range_multi_val.c (revision 5971e316fdea024efff6be8f03536623db06833e)
1 #define xFN(TYPE,NAME) TYPE ## _ ## NAME
2 #define FN(TYPE,NAME) xFN(TYPE,NAME)
3 
4 /* Does the range space of "obj" match the space of "mv" (ignoring parameters)?
5  */
FN(TYPE,match_range_multi_val)6 static isl_bool FN(TYPE,match_range_multi_val)(__isl_keep TYPE *obj,
7 	__isl_keep isl_multi_val *mv)
8 {
9 	isl_space *space, *mv_space;
10 
11 	space = FN(TYPE,peek_space)(obj);
12 	mv_space = isl_multi_val_peek_space(mv);
13 	return isl_space_tuple_is_equal(space, isl_dim_out,
14 					mv_space, isl_dim_set);
15 }
16 
17 /* Check that the range space of "obj" matches the space of "mv"
18  * (ignoring parameters).
19  */
FN(TYPE,check_match_range_multi_val)20 static isl_stat FN(TYPE,check_match_range_multi_val)(__isl_keep TYPE *obj,
21 	__isl_keep isl_multi_val *mv)
22 {
23 	isl_bool equal;
24 
25 	equal = FN(TYPE,match_range_multi_val)(obj, mv);
26 	if (equal < 0)
27 		return isl_stat_error;
28 	if (!equal)
29 		isl_die(isl_multi_val_get_ctx(mv), isl_error_invalid,
30 			"spaces don't match", return isl_stat_error);
31 	return isl_stat_ok;
32 }
33