Revision 9a94756d01d9071ff1610bfc4cb170bd47f701a8 authored by Alexander Root on 21 July 2022, 15:01:16 UTC, committed by GitHub on 21 July 2022, 15:01:16 UTC
* use pmaddubsw 8-bit horizontal widening adds * add SSE3 versions too * add pmaddubsw tests
1 parent 967c3bf
Simplify_Not.cpp
#include "Simplify_Internal.h"
namespace Halide {
namespace Internal {
Expr Simplify::visit(const Not *op, ExprInfo *bounds) {
Expr a = mutate(op->a, nullptr);
auto rewrite = IRMatcher::rewriter(IRMatcher::not_op(a), op->type);
if (rewrite(!c0, fold(!c0)) ||
rewrite(!(x < y), y <= x) ||
rewrite(!(x <= y), y < x) ||
rewrite(!(x == y), x != y) ||
rewrite(!(x != y), x == y) ||
rewrite(!!x, x)) {
return rewrite.result;
}
if (rewrite(!broadcast(x, c0), broadcast(!x, c0)) ||
rewrite(!intrin(Call::likely, x), intrin(Call::likely, !x)) ||
rewrite(!intrin(Call::likely_if_innermost, x), intrin(Call::likely_if_innermost, !x)) ||
rewrite(!(!x && y), x || !y) ||
rewrite(!(!x || y), x && !y) ||
rewrite(!(x && !y), !x || y) ||
rewrite(!(x || !y), !x && y) ||
false) {
return mutate(rewrite.result, bounds);
}
if (a.same_as(op->a)) {
return op;
} else {
return Not::make(a);
}
}
} // namespace Internal
} // namespace Halide
![swh spinner](/static/img/swh-spinner.gif)
Computing file changes ...