@@ -504,8 +504,7 @@ namespace bv {
504
504
val.set (m_tmp);
505
505
}
506
506
else {
507
- for (unsigned i = 0 ; i < a.nw ; ++i)
508
- m_tmp[i] = 0 ;
507
+ a.set_zero (m_tmp);
509
508
for (unsigned i = 0 ; i < a.bw ; ++i)
510
509
m_tmp.set (i, i + sh < a.bw && a.get_bit (i + sh));
511
510
if (sign)
@@ -516,17 +515,15 @@ namespace bv {
516
515
}
517
516
case OP_SIGN_EXT: {
518
517
auto & a = wval (e->get_arg (0 ));
519
- for (unsigned i = 0 ; i < a.bw ; ++i)
520
- m_tmp.set (i, a.get_bit (i));
518
+ a.get (m_tmp);
521
519
bool sign = a.sign ();
522
520
val.set_range (m_tmp, a.bw , val.bw , sign);
523
521
val.set (m_tmp);
524
522
break ;
525
523
}
526
524
case OP_ZERO_EXT: {
527
525
auto & a = wval (e->get_arg (0 ));
528
- for (unsigned i = 0 ; i < a.bw ; ++i)
529
- m_tmp.set (i, a.get_bit (i));
526
+ a.get (m_tmp);
530
527
val.set_range (m_tmp, a.bw , val.bw , false );
531
528
val.set (m_tmp);
532
529
break ;
@@ -1367,9 +1364,7 @@ namespace bv {
1367
1364
return a.set_repair (random_bool (), m_tmp);
1368
1365
}
1369
1366
1370
- for (unsigned i = 0 ; i < a.nw ; ++i)
1371
- m_tmp2[i] = random_bits ();
1372
- b.clear_overflow_bits (m_tmp2);
1367
+ b.get_variant (m_tmp2, m_rand);
1373
1368
while (b.bits () < m_tmp2)
1374
1369
m_tmp2.set (b.msb (m_tmp2), false );
1375
1370
while (a.set_add (m_tmp3, m_tmp, m_tmp2))
0 commit comments