1//===-- TransformationPasses.td ----------------------------*- tablegen -*-===//
3// Part of the LLZK Project, under the Apache License v2.0.
4// See LICENSE.txt for license information.
5// Copyright 2026 Project LLZK
6// SPDX-License-Identifier: Apache-2.0
8//===----------------------------------------------------------------------===//
10#ifndef LLZK_BOOLEAN_TRANSFORMATION_PASSES_TD
11#define LLZK_BOOLEAN_TRANSFORMATION_PASSES_TD
13include "llzk/Pass/PassBase.td"
15def LowerBoolQuantifiersPass : LLZKPass<"llzk-lower-bool-quantifiers"> {
16 let summary = "Lower bool quantifiers to SCF loops";
18 Replace `bool.forall` and `bool.exists` over LLZK arrays with `scf.for`
19 loops that iterate over the first array dimension and accumulate the
20 predicate result with `bool.and` or `bool.or`, respectively.
24#endif // LLZK_BOOLEAN_TRANSFORMATION_PASSES_TD