MCPcopy Create free account
hub / github.com/AliveToolkit/alive2 / lshr

Method lshr

smt/expr.cpp:938–952  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

936}
937
938expr expr::lshr(const expr &rhs) const {
939 C();
940 if (isZero() || rhs.isZero())
941 return *this;
942
943 uint64_t shift;
944 if (rhs.isUInt(shift)) {
945 auto bw = bits();
946 if (shift >= bw)
947 return mkUInt(0, sort());
948 return mkUInt(0, shift).concat(extract(bw-1, shift));
949 }
950
951 return binop_fold(rhs, Z3_mk_bvlshr);
952}
953
954expr expr::fshl(const expr &a, const expr &b, const expr &c) {
955 C2(a);

Callers 11

updateMethod · 0.80
load_bvFunction · 0.80
store_bvFunction · 0.80
castPtrToIntMethod · 0.80
toSMTMethod · 0.80
toSMTMethod · 0.80
fshlMethod · 0.80
fshrMethod · 0.80
umul_fix_helperFunction · 0.80
shl_no_uoverflowMethod · 0.80

Calls 3

isUIntMethod · 0.80
isZeroMethod · 0.45
concatMethod · 0.45

Tested by

no test coverage detected