14#ifndef MLIR_INTERFACES_INFERINTDIVISIBILITYOPINTERFACE_H
15#define MLIR_INTERFACES_INFERINTDIVISIBILITYOPINTERFACE_H
33 return udivVal == other.udivVal && sdivVal == other.sdivVal;
36 uint64_t
udiv()
const {
return this->udivVal; }
37 uint64_t
sdiv()
const {
return this->sdivVal; }
57 os <<
"ConstantIntDivisibility(udiv = " <<
div.udivVal
58 <<
", sdiv = " <<
div.sdivVal <<
")";
66 : value(std::move(value)) {}
68 std::optional<ConstantIntDivisibility> value = std::nullopt)
69 : value(std::move(value)) {}
83 return value ==
rhs.value;
88 if (
lhs.isUninitialized()) {
91 if (
rhs.isUninitialized()) {
100 std::optional<ConstantIntDivisibility> value;
118#include "mlir/Interfaces/InferIntDivisibilityOpInterface.h.inc"
Statically known divisibility information for an integer SSA value.
ConstantIntDivisibility()=default
bool operator==(const ConstantIntDivisibility &other) const
friend raw_ostream & operator<<(raw_ostream &os, const ConstantIntDivisibility &div)
ConstantIntDivisibility(uint64_t udiv, uint64_t sdiv)
ConstantIntDivisibility getUnion(const ConstantIntDivisibility &other) const
This lattice value represents the integer divisibility of an SSA value.
static IntegerDivisibility join(const IntegerDivisibility &lhs, const IntegerDivisibility &rhs)
IntegerDivisibility(std::optional< ConstantIntDivisibility > value=std::nullopt)
void print(raw_ostream &os) const
IntegerDivisibility(ConstantIntDivisibility value)
bool operator==(const IntegerDivisibility &rhs) const
bool isUninitialized() const
const ConstantIntDivisibility & getValue() const
static IntegerDivisibility getMinDivisibility()
This class represents an instance of an SSA value in the MLIR system, representing a computable value...
Include the generated interface declarations.
raw_ostream & operator<<(raw_ostream &os, const AliasResult &result)
llvm::function_ref< void(Value, const ConstantIntDivisibility &)> SetIntDivisibilityFn
The type of the setResultDivs callback provided to ops implementing InferIntDivisibilityOpInterface.