| 952 | } |
| 953 | |
| 954 | expr expr::fshl(const expr &a, const expr &b, const expr &c) { |
| 955 | C2(a); |
| 956 | auto width = mkUInt(a.bits(), a.sort()); |
| 957 | expr c_mod_width = c.urem(width); |
| 958 | return a << c_mod_width | b.lshr(width - c_mod_width); |
| 959 | } |
| 960 | |
| 961 | expr expr::fshr(const expr &a, const expr &b, const expr &c) { |
| 962 | C2(a); |