Esempio n. 1
0
// 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);
}
Esempio n. 2
0
/*
 * 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);
}
Esempio n. 3
0
// 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);
}
Esempio n. 4
0
/*
 * 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);
}
Esempio n. 5
0
// 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);
}
Esempio n. 6
0
/*
 * 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);
}
Esempio n. 7
0
/*
 * 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);
}
Esempio n. 8
0
/*
 * 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);
}