// constant input static void test_sdiv_const(uint32_t n, literal_t *a, literal_t *b) { literal_t *q; literal_t *r; q = remap_table_fresh_array(&remap, n); r = remap_table_fresh_array(&remap, n); int_array_incref(q); int_array_incref(r); bit_blaster_make_sdivision(&blaster, a, b, q, r, n); printf("(bvsdiv "); print_litarray_as_int32(n, a); printf(" " ); print_litarray_as_int32(n, b); printf(") = "); print_pseudo_vector_as_int32(n, q); printf("\n"); printf("(bvsrem "); print_litarray_as_int32(n, a); printf(" " ); print_litarray_as_int32(n, b); printf(") = "); print_pseudo_vector_as_int32(n, r); printf("\n"); remap_table_free_array(q); remap_table_free_array(r); }
/* * Test signed division of a by b: size n */ static void test_sdiv(uint32_t n, literal_t *a, literal_t *b) { literal_t *q; literal_t *r; printf("a = "); print_bitvector(n, a); printf("\n"); printf("b = "); print_bitvector(n, b); printf("\n"); q = remap_table_fresh_array(&remap, n); r = remap_table_fresh_array(&remap, n); int_array_incref(q); int_array_incref(r); bit_blaster_make_sdivision(&blaster, a, b, q, r, n); printf("(bvsdiv a b) = "); print_pseudo_vector(n, q); printf("\n(bvurem a b) = "); print_pseudo_vector(n, r); printf("\n\n"); remap_table_free_array(q); remap_table_free_array(r); }
// constant input static void test_bvneg_const(uint32_t n, literal_t *a) { literal_t *u; u = remap_table_fresh_array(&remap, n); int_array_incref(u); bit_blaster_make_bvneg(&blaster, a, u, n); printf("(bvneg "); print_litarray_as_int32(n, a); printf(") = "); print_pseudo_vector_as_int32(n, u); printf("\n"); remap_table_free_array(u); }
/* * Test (bvneg a): size n */ static void test_bvneg(uint32_t n, literal_t *a) { literal_t *u; printf("a = "); print_bitvector(n, a); printf("\n"); u = remap_table_fresh_array(&remap, n); int_array_incref(u); bit_blaster_make_bvneg(&blaster, a, u, n); printf("(bvneg a) = "); print_pseudo_vector(n, u); printf("\n\n"); remap_table_free_array(u); }
// constant input static void test_smod_const(uint32_t n, literal_t *a, literal_t *b) { literal_t *r; r = remap_table_fresh_array(&remap, n); int_array_incref(r); bit_blaster_make_smod(&blaster, a, b, r, n); printf("(bvsmod "); print_litarray_as_int32(n, a); printf(" "); print_litarray_as_int32(n, b); printf(") = "); print_pseudo_vector_as_int32(n, r); printf("\n"); remap_table_free_array(r); }
/* * Arithmetic shift right: both a and b are constant */ static void test_bvashr_const(uint32_t n, literal_t *a, literal_t *b) { literal_t *u; u = remap_table_fresh_array(&remap, n); int_array_incref(u); bit_blaster_make_ashift_right(&blaster, a, b, u, n); printf("(bvashr "); print_litarray_as_int32(n, a); printf(" "); print_litarray_as_uint32(n, b); printf(") = "); print_pseudo_vector_as_int32(n, u); printf("\n\n"); remap_table_free_array(u); }
/* * Test smod of a by b: size n */ static void test_smod(uint32_t n, literal_t *a, literal_t *b) { literal_t *r; printf("a = "); print_bitvector(n, a); printf("\n"); printf("b = "); print_bitvector(n, b); printf("\n"); r = remap_table_fresh_array(&remap, n); int_array_incref(r); bit_blaster_make_smod(&blaster, a, b, r, n); printf("(bsmod a b) = "); print_pseudo_vector(n, r); printf("\n\n"); remap_table_free_array(r); }
/* * Test arithmetic shift right: n = size of a and b */ static void test_bvashr(uint32_t n, literal_t *a, literal_t *b) { literal_t *u; printf("a = "); print_bitvector(n, a); printf("\n"); printf("b = "); print_bitvector(n, b); printf("\n"); u = remap_table_fresh_array(&remap, n); int_array_incref(u); bit_blaster_make_ashift_right(&blaster, a, b, u, n); printf("(bvashr a b) = "); print_pseudo_vector(n, u); printf("\n\n"); remap_table_free_array(u); }