Lines Matching defs:lhs
74 auto lhs = dyn_cast_if_present<IntegerAttr>(operands[0]);
76 if (!lhs || !rhs)
79 std::optional<APInt> result = calculate(lhs.getValue(), rhs.getValue());
83 calculate(lhs.getValue().trunc(32), rhs.getValue().trunc(32)));
84 return IntegerAttr::get(IndexType::get(lhs.getContext()), *result);
97 function_ref<std::optional<APInt>(const APInt &, const APInt &lhs)>
100 auto lhs = dyn_cast_if_present<IntegerAttr>(operands[0]);
103 if (!lhs || !rhs)
107 std::optional<APInt> result64 = calculate(lhs.getValue(), rhs.getValue());
111 calculate(lhs.getValue().trunc(32), rhs.getValue().trunc(32));
118 return IntegerAttr::get(IndexType::get(lhs.getContext()), *result64);
154 [](const APInt &lhs, const APInt &rhs) { return lhs + rhs; }))
177 [](const APInt &lhs, const APInt &rhs) { return lhs - rhs; }))
196 [](const APInt &lhs, const APInt &rhs) { return lhs * rhs; }))
222 [](const APInt &lhs, const APInt &rhs) -> std::optional<APInt> {
226 return lhs.sdiv(rhs);
237 [](const APInt &lhs, const APInt &rhs) -> std::optional<APInt> {
241 return lhs.udiv(rhs);
333 [](const APInt &lhs, const APInt &rhs) -> std::optional<APInt> {
337 return lhs.srem(rhs);
348 [](const APInt &lhs, const APInt &rhs) -> std::optional<APInt> {
352 return lhs.urem(rhs);
362 [](const APInt &lhs, const APInt &rhs) {
363 return lhs.sgt(rhs) ? lhs : rhs;
377 [](const APInt &lhs, const APInt &rhs) {
378 return lhs.ugt(rhs) ? lhs : rhs;
392 [](const APInt &lhs, const APInt &rhs) {
393 return lhs.slt(rhs) ? lhs : rhs;
407 [](const APInt &lhs, const APInt &rhs) {
408 return lhs.ult(rhs) ? lhs : rhs;
423 [](const APInt &lhs, const APInt &rhs) -> std::optional<APInt> {
429 return lhs << rhs;
440 [](const APInt &lhs, const APInt &rhs) -> std::optional<APInt> {
444 return lhs.ashr(rhs);
455 [](const APInt &lhs, const APInt &rhs) -> std::optional<APInt> {
459 return lhs.lshr(rhs);
470 [](const APInt &lhs, const APInt &rhs) { return lhs & rhs; });
484 [](const APInt &lhs, const APInt &rhs) { return lhs | rhs; });
498 [](const APInt &lhs, const APInt &rhs) { return lhs ^ rhs; });
587 bool compareIndices(const APInt &lhs, const APInt &rhs,
591 return lhs.eq(rhs);
593 return lhs.ne(rhs);
595 return lhs.sge(rhs);
597 return lhs.sgt(rhs);
599 return lhs.sle(rhs);
601 return lhs.slt(rhs);
603 return lhs.uge(rhs);
605 return lhs.ugt(rhs);
607 return lhs.ule(rhs);
609 return lhs.ult(rhs);
664 auto lhs = dyn_cast_if_present<IntegerAttr>(adaptor.getLhs());
666 if (lhs && rhs) {
668 bool result64 = compareIndices(lhs.getValue(), rhs.getValue(), getPred());
669 bool result32 = compareIndices(lhs.getValue().trunc(32),