| 900 | } |
| 901 | |
| 902 | expr expr::mul_no_uoverflow(const expr &rhs) const { |
| 903 | auto bw = bits(); |
| 904 | return (zext(bw) * rhs.zext(bw)).extract(2*bw - 1, bw) == 0; |
| 905 | } |
| 906 | |
| 907 | expr expr::sdiv_exact(const expr &rhs) const { |
| 908 | return sdiv(rhs) * rhs == *this; |
no test coverage detected