Coverage for src/flag_gems/runtime/backend/_cambricon/ops/logical_and.py: 0%
20 statements
« prev ^ index » next coverage.py v7.6.9, created at 2026-03-10 02:30 +0800
« prev ^ index » next coverage.py v7.6.9, created at 2026-03-10 02:30 +0800
1import logging
3import triton
4import triton.language as tl
6from ..utils.pointwise_dynamic import pointwise_dynamic
8logger = logging.getLogger("flag_gems").getChild(__name__.lstrip("."))
11@pointwise_dynamic(promotion_methods=[(0, 1, "ALWAYS_BOOL")])
12@triton.jit
13def logical_and_func(x, y):
14 return x.to(tl.int1).logical_and(y.to(tl.int1))
17def logical_and(A, B):
18 logger.debug("GEMS_CAMBRICON LOGICAL_AND")
19 return logical_and_func(A, B)
22@pointwise_dynamic(
23 is_tensor=[True, True, False], promotion_methods=[(0, 1, "ALWAYS_BOOL")]
24)
25@triton.jit
26def logical_and_func_(x, y, inplace):
27 return tl.where((x != 0) & (y != 0), 1, 0)
30def logical_and_(A, B):
31 logger.debug("GEMS_CAMBRICON LOGICAL_AND_")
32 logical_and_func_(A, B, True, out0=A)
33 return A