251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
|
}
optional< Z3Val > BuildZ3Op( Builder& b, const Xor& instr )
{
return BuildZ3BinExpr( b, instr, []( auto&& lhs, auto&& rhs, auto&& type )
{
if( lhs.is_bool() && rhs.is_bool() )
return mkZ3BoolXor( lhs, rhs );
auto lhsBV = GetAsBitVec( lhs, type );
auto rhsBV = GetAsBitVec( rhs, type );
return lhsBV ^ rhsBV;
} );
}
|
|
|
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
|
}
optional< Z3Val > BuildZ3Op( Builder& b, const Xor& instr )
{
return BuildZ3BinExpr( b, instr, []( auto&& lhs, auto&& rhs, auto&& type )
{
if( lhs.is_bool() && rhs.is_bool() )
return lhs ^ rhs;
auto lhsBV = GetAsBitVec( lhs, type );
auto rhsBV = GetAsBitVec( rhs, type );
return lhsBV ^ rhsBV;
} );
}
|