Skip to content

Instantly share code, notes, and snippets.

@stellaraccident
Created October 9, 2021 01:48
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stellaraccident/13c061a3c576c55d1355b336e85da0c6 to your computer and use it in GitHub Desktop.
Save stellaraccident/13c061a3c576c55d1355b336e85da0c6 to your computer and use it in GitHub Desktop.
#loc1 = loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0)
#loc12 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":16:0)
#loc30 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)
#loc88 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)
#loc146 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)
#loc204 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)
module @module {
func @main(%arg0: i32 loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0), %arg1: i32 loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0), %arg2: i32 loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0)) -> (i32, i32) {
%c-4_i32 = constant -4 : i32 loc(#loc2)
%c0_i32 = constant 0 : i32 loc(#loc2)
%c1 = constant 1 : index loc(#loc1)
%c256_i32 = constant 256 : i32 loc(#loc1)
%c0 = constant 0 : index loc(#loc1)
%c2 = constant 2 : index loc(#loc1)
%c78_i32 = constant 78 : i32 loc(#loc1)
%c3_i32 = constant 3 : i32 loc(#loc3)
%c22_i32 = constant 22 : i32 loc(#loc4)
%c4_i32 = constant 4 : i32 loc(#loc5)
%0 = iree.list.create : !iree.list<!iree.variant> loc(#loc1)
%1 = iree.list.create : !iree.list<!iree.variant> loc(#loc1)
%2 = iree.list.create : !iree.list<!iree.variant> loc(#loc1)
%3 = iree.list.create : !iree.list<!iree.variant> loc(#loc1)
iree.list.resize %3, %c2 : !iree.list<!iree.variant> loc(#loc1)
iree.list.set %3[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc1)
iree.list.set %3[%c1], %arg0 : !iree.list<!iree.variant>, i32 loc(#loc1)
iree.list.resize %0, %c2 : !iree.list<!iree.variant> loc(#loc1)
iree.list.set %0[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc1)
iree.list.set %0[%c1], %3 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc1)
%4 = iree.list.create : !iree.list<!iree.variant> loc(#loc1)
iree.list.resize %4, %c2 : !iree.list<!iree.variant> loc(#loc1)
iree.list.set %4[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc1)
iree.list.set %4[%c1], %arg1 : !iree.list<!iree.variant>, i32 loc(#loc1)
iree.list.resize %2, %c2 : !iree.list<!iree.variant> loc(#loc1)
iree.list.set %2[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc1)
iree.list.set %2[%c1], %4 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc1)
%5 = iree.list.create : !iree.list<!iree.variant> loc(#loc1)
iree.list.resize %5, %c2 : !iree.list<!iree.variant> loc(#loc1)
iree.list.set %5[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc1)
iree.list.set %5[%c1], %arg2 : !iree.list<!iree.variant>, i32 loc(#loc1)
iree.list.resize %1, %c2 : !iree.list<!iree.variant> loc(#loc1)
iree.list.set %1[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc1)
iree.list.set %1[%c1], %5 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc1)
%6 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc2)
%7 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc6)
%8:2 = call @pydmrtl$dynamic_binary_promote(%6, %7) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, !iree.list<!iree.variant>) loc(#loc2)
%9 = cmpi eq, %c0_i32, %8#0 : i32 loc(#loc2)
cond_br %9, ^bb1, ^bb25(%8#0, %c0_i32 : i32, i32) loc(#loc2)
^bb1: // pred: ^bb0
%10 = iree.list.size %8#1 : !iree.list<!iree.variant> loc(#loc2)
%11 = cmpi eq, %c2, %10 : index loc(#loc2)
cond_br %11, ^bb2, ^bb31 loc(#loc2)
^bb2: // pred: ^bb1
%12 = iree.list.get %8#1[%c0] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc2)
%13 = iree.list.get %8#1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc2)
br ^bb3(%c0_i32, %12, %13 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc2)
^bb3(%14: i32 loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0), %15: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0), %16: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0)): // 2 preds: ^bb2, ^bb31
%17 = cmpi eq, %c0_i32, %14 : i32 loc(#loc2)
cond_br %17, ^bb4, ^bb25(%14, %c0_i32 : i32, i32) loc(#loc2)
^bb4: // pred: ^bb3
%18:2 = call @pydmrtl$apply_binary_sub(%15, %16) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, !iree.list<!iree.variant>) loc(#loc2)
%19 = cmpi eq, %c0_i32, %18#0 : i32 loc(#loc2)
cond_br %19, ^bb5, ^bb25(%18#0, %c0_i32 : i32, i32) loc(#loc2)
^bb5: // pred: ^bb4
%20:2 = call @pydmrtl$object_as_bool(%18#1) : (!iree.list<!iree.variant>) -> (i32, i1) loc(#loc2)
%21 = cmpi eq, %c0_i32, %20#0 : i32 loc(#loc2)
cond_br %21, ^bb6, ^bb25(%20#0, %c0_i32 : i32, i32) loc(#loc2)
^bb6: // pred: ^bb5
cond_br %20#1, ^bb7, ^bb26 loc(#loc7)
^bb7: // pred: ^bb6
%22 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc8)
%23 = iree.list.create : !iree.list<!iree.variant> loc(#loc3)
iree.list.resize %23, %c2 : !iree.list<!iree.variant> loc(#loc3)
iree.list.set %23[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc3)
iree.list.set %23[%c1], %c3_i32 : !iree.list<!iree.variant>, i32 loc(#loc3)
%24:2 = call @pydmrtl$dynamic_binary_promote(%23, %22) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, !iree.list<!iree.variant>) loc(#loc3)
%25 = cmpi eq, %c0_i32, %24#0 : i32 loc(#loc3)
cond_br %25, ^bb8, ^bb25(%24#0, %c0_i32 : i32, i32) loc(#loc3)
^bb8: // pred: ^bb7
%26 = iree.list.size %24#1 : !iree.list<!iree.variant> loc(#loc3)
%27 = cmpi eq, %c2, %26 : index loc(#loc3)
cond_br %27, ^bb9, ^bb33 loc(#loc3)
^bb9: // pred: ^bb8
%28 = iree.list.get %24#1[%c0] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc3)
%29 = iree.list.get %24#1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc3)
br ^bb10(%c0_i32, %28, %29 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc3)
^bb10(%30: i32 loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0), %31: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0), %32: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0)): // 2 preds: ^bb9, ^bb33
%33 = cmpi eq, %c0_i32, %30 : i32 loc(#loc3)
cond_br %33, ^bb11, ^bb25(%30, %c0_i32 : i32, i32) loc(#loc3)
^bb11: // pred: ^bb10
%34:2 = call @pydmrtl$apply_binary_mul(%31, %32) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, !iree.list<!iree.variant>) loc(#loc3)
%35 = cmpi eq, %c0_i32, %34#0 : i32 loc(#loc3)
cond_br %35, ^bb12, ^bb25(%34#0, %c0_i32 : i32, i32) loc(#loc3)
^bb12: // pred: ^bb11
%36 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc9)
%37 = iree.list.create : !iree.list<!iree.variant> loc(#loc4)
iree.list.resize %37, %c2 : !iree.list<!iree.variant> loc(#loc4)
iree.list.set %37[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc4)
iree.list.set %37[%c1], %c22_i32 : !iree.list<!iree.variant>, i32 loc(#loc4)
%38:2 = call @pydmrtl$dynamic_binary_promote(%37, %36) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, !iree.list<!iree.variant>) loc(#loc4)
%39 = cmpi eq, %c0_i32, %38#0 : i32 loc(#loc4)
cond_br %39, ^bb13, ^bb25(%38#0, %c0_i32 : i32, i32) loc(#loc4)
^bb13: // pred: ^bb12
%40 = iree.list.size %38#1 : !iree.list<!iree.variant> loc(#loc4)
%41 = cmpi eq, %c2, %40 : index loc(#loc4)
cond_br %41, ^bb14, ^bb34 loc(#loc4)
^bb14: // pred: ^bb13
%42 = iree.list.get %38#1[%c0] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc4)
%43 = iree.list.get %38#1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc4)
br ^bb15(%c0_i32, %42, %43 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc4)
^bb15(%44: i32 loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0), %45: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0), %46: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0)): // 2 preds: ^bb14, ^bb34
%47 = cmpi eq, %c0_i32, %44 : i32 loc(#loc4)
cond_br %47, ^bb16, ^bb25(%44, %c0_i32 : i32, i32) loc(#loc4)
^bb16: // pred: ^bb15
%48:2 = call @pydmrtl$apply_binary_mul(%45, %46) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, !iree.list<!iree.variant>) loc(#loc4)
%49 = cmpi eq, %c0_i32, %48#0 : i32 loc(#loc4)
cond_br %49, ^bb17, ^bb25(%48#0, %c0_i32 : i32, i32) loc(#loc4)
^bb17: // pred: ^bb16
%50:2 = call @pydmrtl$dynamic_binary_promote(%34#1, %48#1) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, !iree.list<!iree.variant>) loc(#loc3)
%51 = cmpi eq, %c0_i32, %50#0 : i32 loc(#loc3)
cond_br %51, ^bb18, ^bb25(%50#0, %c0_i32 : i32, i32) loc(#loc3)
^bb18: // pred: ^bb17
%52 = iree.list.size %50#1 : !iree.list<!iree.variant> loc(#loc3)
%53 = cmpi eq, %c2, %52 : index loc(#loc3)
cond_br %53, ^bb19, ^bb35 loc(#loc3)
^bb19: // pred: ^bb18
%54 = iree.list.get %50#1[%c0] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc3)
%55 = iree.list.get %50#1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc3)
br ^bb20(%c0_i32, %54, %55 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc3)
^bb20(%56: i32 loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0), %57: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0), %58: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0)): // 2 preds: ^bb19, ^bb35
%59 = cmpi eq, %c0_i32, %56 : i32 loc(#loc3)
cond_br %59, ^bb21, ^bb25(%56, %c0_i32 : i32, i32) loc(#loc3)
^bb21: // pred: ^bb20
%60:2 = call @pydmrtl$apply_binary_add(%57, %58) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, !iree.list<!iree.variant>) loc(#loc3)
%61 = cmpi eq, %c0_i32, %60#0 : i32 loc(#loc3)
cond_br %61, ^bb22(%60#1, %60#1 : !iree.list<!iree.variant>, !iree.list<!iree.variant>), ^bb25(%60#0, %c0_i32 : i32, i32) loc(#loc3)
^bb22(%62: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0), %63: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0)): // 2 preds: ^bb21, ^bb30
%64 = iree.list.get %62[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc3)
%65 = cmpi eq, %c78_i32, %64 : i32 loc(#loc3)
cond_br %65, ^bb23(%63 : !iree.list<!iree.variant>), ^bb24(%c-4_i32, %c0_i32 : i32, i32) loc(#loc3)
^bb23(%66: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0)): // pred: ^bb22
%67 = iree.list.get %66[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc3)
br ^bb24(%c0_i32, %67 : i32, i32) loc(#loc3)
^bb24(%68: i32 loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0), %69: i32 loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0)): // 2 preds: ^bb22, ^bb23
%70 = cmpi eq, %c0_i32, %68 : i32 loc(#loc3)
cond_br %70, ^bb25(%c0_i32, %69 : i32, i32), ^bb25(%68, %c0_i32 : i32, i32) loc(#loc3)
^bb25(%71: i32 loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0), %72: i32 loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0)): // 18 preds: ^bb0, ^bb3, ^bb4, ^bb5, ^bb7, ^bb10, ^bb11, ^bb12, ^bb15, ^bb16, ^bb17, ^bb20, ^bb21, ^bb24, ^bb24, ^bb26, ^bb29, ^bb30
return %71, %72 : i32, i32 loc(#loc10)
^bb26: // pred: ^bb6
%73 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc11)
%74 = iree.list.create : !iree.list<!iree.variant> loc(#loc5)
iree.list.resize %74, %c2 : !iree.list<!iree.variant> loc(#loc5)
iree.list.set %74[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc5)
iree.list.set %74[%c1], %c4_i32 : !iree.list<!iree.variant>, i32 loc(#loc5)
%75:2 = call @pydmrtl$dynamic_binary_promote(%74, %73) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, !iree.list<!iree.variant>) loc(#loc5)
%76 = cmpi eq, %c0_i32, %75#0 : i32 loc(#loc5)
cond_br %76, ^bb27, ^bb25(%75#0, %c0_i32 : i32, i32) loc(#loc5)
^bb27: // pred: ^bb26
%77 = iree.list.size %75#1 : !iree.list<!iree.variant> loc(#loc5)
%78 = cmpi eq, %c2, %77 : index loc(#loc5)
cond_br %78, ^bb28, ^bb32 loc(#loc5)
^bb28: // pred: ^bb27
%79 = iree.list.get %75#1[%c0] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc5)
%80 = iree.list.get %75#1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc5)
br ^bb29(%c0_i32, %79, %80 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc5)
^bb29(%81: i32 loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0), %82: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0), %83: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":28:0)): // 2 preds: ^bb28, ^bb32
%84 = cmpi eq, %c0_i32, %81 : i32 loc(#loc5)
cond_br %84, ^bb30, ^bb25(%81, %c0_i32 : i32, i32) loc(#loc5)
^bb30: // pred: ^bb29
%85:2 = call @pydmrtl$apply_binary_mul(%82, %83) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, !iree.list<!iree.variant>) loc(#loc5)
%86 = cmpi eq, %c0_i32, %85#0 : i32 loc(#loc5)
cond_br %86, ^bb22(%85#1, %85#1 : !iree.list<!iree.variant>, !iree.list<!iree.variant>), ^bb25(%85#0, %c0_i32 : i32, i32) loc(#loc5)
^bb31: // pred: ^bb1
%87 = iree.list.create : !iree.list<!iree.variant> loc(#loc2)
%88 = iree.list.create : !iree.list<!iree.variant> loc(#loc2)
br ^bb3(%c-4_i32, %87, %88 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc2)
^bb32: // pred: ^bb27
%89 = iree.list.create : !iree.list<!iree.variant> loc(#loc5)
%90 = iree.list.create : !iree.list<!iree.variant> loc(#loc5)
br ^bb29(%c-4_i32, %89, %90 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc5)
^bb33: // pred: ^bb8
%91 = iree.list.create : !iree.list<!iree.variant> loc(#loc3)
%92 = iree.list.create : !iree.list<!iree.variant> loc(#loc3)
br ^bb10(%c-4_i32, %91, %92 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc3)
^bb34: // pred: ^bb13
%93 = iree.list.create : !iree.list<!iree.variant> loc(#loc4)
%94 = iree.list.create : !iree.list<!iree.variant> loc(#loc4)
br ^bb15(%c-4_i32, %93, %94 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc4)
^bb35: // pred: ^bb18
%95 = iree.list.create : !iree.list<!iree.variant> loc(#loc3)
%96 = iree.list.create : !iree.list<!iree.variant> loc(#loc3)
br ^bb20(%c-4_i32, %95, %96 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc3)
} loc(#loc1)
func private @pydmrtl$dynamic_binary_promote(%arg0: !iree.list<!iree.variant> loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":16:0), %arg1: !iree.list<!iree.variant> loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":16:0)) -> (i32, !iree.list<!iree.variant>) {
%c-3_i32 = constant -3 : i32 loc(#loc13)
%c0_i32 = constant 0 : i32 loc(#loc14)
%c78_i32 = constant 78 : i32 loc(#loc15)
%c0 = constant 0 : index loc(#loc12)
%c1 = constant 1 : index loc(#loc12)
%c256_i32 = constant 256 : i32 loc(#loc12)
%c2 = constant 2 : index loc(#loc12)
%c1_i32 = constant 1 : i32 loc(#loc14)
%c6_i32 = constant 6 : i32 loc(#loc14)
%0 = iree.list.create : !iree.list<!iree.variant> loc(#loc12)
%1 = iree.list.create : !iree.list<!iree.variant> loc(#loc12)
%2 = iree.list.create : !iree.list<!iree.variant> loc(#loc12)
%3 = iree.list.create : !iree.list<!iree.variant> loc(#loc12)
iree.list.resize %3, %c2 : !iree.list<!iree.variant> loc(#loc12)
iree.list.set %3[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc12)
iree.list.set %3[%c1], %arg0 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc12)
iree.list.resize %1, %c2 : !iree.list<!iree.variant> loc(#loc12)
iree.list.set %1[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc12)
iree.list.set %1[%c1], %arg1 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc12)
%4 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc16)
%5 = iree.list.get %4[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc17)
%6 = iree.list.create : !iree.list<!iree.variant> loc(#loc15)
iree.list.resize %6, %c2 : !iree.list<!iree.variant> loc(#loc15)
iree.list.set %6[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc15)
iree.list.set %6[%c1], %5 : !iree.list<!iree.variant>, i32 loc(#loc15)
iree.list.resize %2, %c2 : !iree.list<!iree.variant> loc(#loc15)
iree.list.set %2[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc15)
iree.list.set %2[%c1], %6 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc15)
%7 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc18)
%8 = iree.list.get %7[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc19)
%9 = iree.list.create : !iree.list<!iree.variant> loc(#loc20)
iree.list.resize %9, %c2 : !iree.list<!iree.variant> loc(#loc20)
iree.list.set %9[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc20)
iree.list.set %9[%c1], %8 : !iree.list<!iree.variant>, i32 loc(#loc20)
iree.list.resize %0, %c2 : !iree.list<!iree.variant> loc(#loc20)
iree.list.set %0[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc20)
iree.list.set %0[%c1], %9 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc20)
%10 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc21)
%11 = iree.list.get %10[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc14)
%12 = cmpi eq, %c78_i32, %11 : i32 loc(#loc14)
cond_br %12, ^bb1, ^bb2(%c0_i32 : i32) loc(#loc14)
^bb1: // pred: ^bb0
%13 = iree.list.get %10[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc14)
br ^bb2(%13 : i32) loc(#loc14)
^bb2(%14: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":16:0)): // 2 preds: ^bb0, ^bb1
%15 = shift_right_signed %14, %c6_i32 : i32 loc(#loc14)
%16 = cmpi eq, %15, %c1_i32 : i32 loc(#loc14)
cond_br %16, ^bb3, ^bb7 loc(#loc22)
^bb3: // pred: ^bb2
%17 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc23)
%18 = iree.list.get %17[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc24)
%19 = cmpi eq, %c78_i32, %18 : i32 loc(#loc24)
cond_br %19, ^bb4, ^bb5(%c0_i32 : i32) loc(#loc24)
^bb4: // pred: ^bb3
%20 = iree.list.get %17[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc24)
br ^bb5(%20 : i32) loc(#loc24)
^bb5(%21: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":16:0)): // 2 preds: ^bb3, ^bb4
%22 = shift_right_signed %21, %c6_i32 : i32 loc(#loc24)
%23 = cmpi eq, %22, %c1_i32 : i32 loc(#loc24)
cond_br %23, ^bb6, ^bb7 loc(#loc25)
^bb6: // pred: ^bb5
%24 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc26)
%25 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc27)
%26 = iree.list.create %c2 : !iree.list<!iree.variant> loc(#loc26)
iree.list.resize %26, %c2 : !iree.list<!iree.variant> loc(#loc26)
iree.list.set %26[%c0], %24 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc26)
iree.list.set %26[%c1], %25 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc26)
return %c0_i32, %26 : i32, !iree.list<!iree.variant> loc(#loc28)
^bb7: // 2 preds: ^bb2, ^bb5
%27 = iree.list.create %c0 : !iree.list<!iree.variant> loc(#loc29)
iree.list.resize %27, %c0 : !iree.list<!iree.variant> loc(#loc29)
%28 = iree.list.create : !iree.list<!iree.variant> loc(#loc13)
return %c-3_i32, %28 : i32, !iree.list<!iree.variant> loc(#loc13)
} loc(#loc12)
func private @pydmrtl$apply_binary_add(%arg0: !iree.list<!iree.variant> loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0), %arg1: !iree.list<!iree.variant> loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)) -> (i32, !iree.list<!iree.variant>) {
%c0_i64 = constant 0 : i64 loc(#loc31)
%cst = constant 0.000000e+00 : f32 loc(#loc32)
%c-3_i32 = constant -3 : i32 loc(#loc33)
%c90_i32 = constant 90 : i32 loc(#loc32)
%c79_i32 = constant 79 : i32 loc(#loc31)
%c78_i32 = constant 78 : i32 loc(#loc34)
%c0 = constant 0 : index loc(#loc30)
%c1 = constant 1 : index loc(#loc30)
%c256_i32 = constant 256 : i32 loc(#loc30)
%c2 = constant 2 : index loc(#loc30)
%c0_i32 = constant 0 : i32 loc(#loc35)
%c6_i32 = constant 6 : i32 loc(#loc36)
%c2_i32 = constant 2 : i32 loc(#loc37)
%c3_i32 = constant 3 : i32 loc(#loc38)
%c60_i32 = constant 60 : i32 loc(#loc37)
%c1_i32 = constant 1 : i32 loc(#loc36)
%0 = iree.list.create : !iree.list<!iree.variant> loc(#loc30)
%1 = iree.list.create : !iree.list<!iree.variant> loc(#loc30)
%2 = iree.list.create : !iree.list<!iree.variant> loc(#loc30)
%3 = iree.list.create : !iree.list<!iree.variant> loc(#loc30)
%4 = iree.list.create : !iree.list<!iree.variant> loc(#loc30)
%5 = iree.list.create : !iree.list<!iree.variant> loc(#loc30)
iree.list.resize %3, %c2 : !iree.list<!iree.variant> loc(#loc30)
iree.list.set %3[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc30)
iree.list.set %3[%c1], %arg0 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc30)
iree.list.resize %2, %c2 : !iree.list<!iree.variant> loc(#loc30)
iree.list.set %2[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc30)
iree.list.set %2[%c1], %arg1 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc30)
%6 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc39)
%7 = iree.list.get %6[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc40)
%8 = iree.list.create : !iree.list<!iree.variant> loc(#loc34)
iree.list.resize %8, %c2 : !iree.list<!iree.variant> loc(#loc34)
iree.list.set %8[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc34)
iree.list.set %8[%c1], %7 : !iree.list<!iree.variant>, i32 loc(#loc34)
iree.list.resize %1, %c2 : !iree.list<!iree.variant> loc(#loc34)
iree.list.set %1[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc34)
iree.list.set %1[%c1], %8 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc34)
%9 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc41)
%10 = iree.list.get %9[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc42)
%11 = iree.list.create : !iree.list<!iree.variant> loc(#loc43)
iree.list.resize %11, %c2 : !iree.list<!iree.variant> loc(#loc43)
iree.list.set %11[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc43)
iree.list.set %11[%c1], %10 : !iree.list<!iree.variant>, i32 loc(#loc43)
iree.list.resize %5, %c2 : !iree.list<!iree.variant> loc(#loc43)
iree.list.set %5[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc43)
iree.list.set %5[%c1], %11 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc43)
%12 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc44)
%13 = iree.list.get %12[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc45)
%14 = cmpi eq, %c78_i32, %13 : i32 loc(#loc45)
cond_br %14, ^bb1, ^bb2(%c0_i32 : i32) loc(#loc45)
^bb1: // pred: ^bb0
%15 = iree.list.get %12[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc45)
br ^bb2(%15 : i32) loc(#loc45)
^bb2(%16: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)): // 2 preds: ^bb0, ^bb1
%17 = iree.list.get %5[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc46)
%18 = iree.list.get %17[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc47)
%19 = cmpi eq, %c78_i32, %18 : i32 loc(#loc47)
cond_br %19, ^bb3, ^bb4(%c0_i32 : i32) loc(#loc47)
^bb3: // pred: ^bb2
%20 = iree.list.get %17[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc47)
br ^bb4(%20 : i32) loc(#loc47)
^bb4(%21: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)): // 2 preds: ^bb2, ^bb3
%22 = cmpi eq, %16, %21 : i32 loc(#loc47)
cond_br %22, ^bb5, ^bb42 loc(#loc48)
^bb5: // pred: ^bb4
%23 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc49)
%24 = iree.list.get %23[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc36)
%25 = cmpi eq, %c78_i32, %24 : i32 loc(#loc36)
cond_br %25, ^bb6, ^bb7(%c0_i32 : i32) loc(#loc36)
^bb6: // pred: ^bb5
%26 = iree.list.get %23[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc36)
br ^bb7(%26 : i32) loc(#loc36)
^bb7(%27: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)): // 2 preds: ^bb5, ^bb6
%28 = shift_right_signed %27, %c6_i32 : i32 loc(#loc36)
%29 = cmpi eq, %28, %c1_i32 : i32 loc(#loc36)
cond_br %29, ^bb8, ^bb42 loc(#loc50)
^bb8: // pred: ^bb7
%30 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc51)
%31 = iree.list.get %30[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc37)
%32 = cmpi eq, %c78_i32, %31 : i32 loc(#loc37)
cond_br %32, ^bb9, ^bb10(%c0_i32 : i32) loc(#loc37)
^bb9: // pred: ^bb8
%33 = iree.list.get %30[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc37)
br ^bb10(%33 : i32) loc(#loc37)
^bb10(%34: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)): // 2 preds: ^bb8, ^bb9
%35 = and %34, %c60_i32 : i32 loc(#loc37)
%36 = shift_right_signed %35, %c2_i32 : i32 loc(#loc37)
%37 = iree.list.create : !iree.list<!iree.variant> loc(#loc52)
iree.list.resize %37, %c2 : !iree.list<!iree.variant> loc(#loc52)
iree.list.set %37[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc52)
iree.list.set %37[%c1], %36 : !iree.list<!iree.variant>, i32 loc(#loc52)
iree.list.resize %4, %c2 : !iree.list<!iree.variant> loc(#loc52)
iree.list.set %4[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc52)
iree.list.set %4[%c1], %37 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc52)
%38 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc53)
%39 = iree.list.get %38[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc38)
%40 = cmpi eq, %c78_i32, %39 : i32 loc(#loc38)
cond_br %40, ^bb11, ^bb12(%c0_i32 : i32) loc(#loc38)
^bb11: // pred: ^bb10
%41 = iree.list.get %38[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc38)
br ^bb12(%41 : i32) loc(#loc38)
^bb12(%42: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)): // 2 preds: ^bb10, ^bb11
%43 = and %42, %c3_i32 : i32 loc(#loc38)
%44 = iree.list.create : !iree.list<!iree.variant> loc(#loc54)
iree.list.resize %44, %c2 : !iree.list<!iree.variant> loc(#loc54)
iree.list.set %44[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc54)
iree.list.set %44[%c1], %43 : !iree.list<!iree.variant>, i32 loc(#loc54)
iree.list.resize %0, %c2 : !iree.list<!iree.variant> loc(#loc54)
iree.list.set %0[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc54)
iree.list.set %0[%c1], %44 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc54)
%45 = iree.list.get %4[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc55)
%46 = iree.list.get %45[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc56)
%47 = cmpi eq, %c78_i32, %46 : i32 loc(#loc56)
cond_br %47, ^bb13, ^bb14(%c0_i32 : i32) loc(#loc56)
^bb13: // pred: ^bb12
%48 = iree.list.get %45[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc56)
br ^bb14(%48 : i32) loc(#loc56)
^bb14(%49: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)): // 2 preds: ^bb12, ^bb13
%50 = cmpi sle, %49, %c3_i32 : i32 loc(#loc57)
cond_br %50, ^bb15, ^bb31 loc(#loc58)
^bb15: // pred: ^bb14
%51 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc59)
%52 = iree.list.get %51[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc60)
%53 = cmpi eq, %c78_i32, %52 : i32 loc(#loc60)
cond_br %53, ^bb16, ^bb17(%c0_i32 : i32) loc(#loc60)
^bb16: // pred: ^bb15
%54 = iree.list.get %51[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc60)
br ^bb17(%54 : i32) loc(#loc60)
^bb17(%55: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)): // 2 preds: ^bb15, ^bb16
%56 = cmpi eq, %55, %c2_i32 : i32 loc(#loc61)
cond_br %56, ^bb18, ^bb23 loc(#loc62)
^bb18: // pred: ^bb17
%57 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc63)
%58 = iree.list.get %57[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc64)
%59 = cmpi eq, %c78_i32, %58 : i32 loc(#loc64)
cond_br %59, ^bb19, ^bb20(%c0_i32 : i32) loc(#loc64)
^bb19: // pred: ^bb18
%60 = iree.list.get %57[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc64)
br ^bb20(%60 : i32) loc(#loc64)
^bb20(%61: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)): // 2 preds: ^bb18, ^bb19
%62 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc65)
%63 = iree.list.get %62[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc66)
%64 = cmpi eq, %c78_i32, %63 : i32 loc(#loc66)
cond_br %64, ^bb21, ^bb22(%c0_i32 : i32) loc(#loc66)
^bb21: // pred: ^bb20
%65 = iree.list.get %62[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc66)
br ^bb22(%65 : i32) loc(#loc66)
^bb22(%66: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)): // 2 preds: ^bb20, ^bb21
%67 = addi %61, %66 : i32 loc(#loc64)
%68 = iree.list.create : !iree.list<!iree.variant> loc(#loc64)
iree.list.resize %68, %c2 : !iree.list<!iree.variant> loc(#loc64)
iree.list.set %68[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc64)
iree.list.set %68[%c1], %67 : !iree.list<!iree.variant>, i32 loc(#loc64)
return %c0_i32, %68 : i32, !iree.list<!iree.variant> loc(#loc67)
^bb23: // pred: ^bb17
%69 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc68)
%70 = iree.list.get %69[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc69)
%71 = cmpi eq, %c78_i32, %70 : i32 loc(#loc69)
cond_br %71, ^bb24, ^bb25(%c0_i32 : i32) loc(#loc69)
^bb24: // pred: ^bb23
%72 = iree.list.get %69[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc69)
br ^bb25(%72 : i32) loc(#loc69)
^bb25(%73: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)): // 2 preds: ^bb23, ^bb24
%74 = cmpi eq, %73, %c3_i32 : i32 loc(#loc70)
cond_br %74, ^bb26, ^bb42 loc(#loc71)
^bb26: // pred: ^bb25
%75 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc72)
%76 = iree.list.get %75[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc31)
%77 = cmpi eq, %c79_i32, %76 : i32 loc(#loc31)
cond_br %77, ^bb27, ^bb28(%c0_i64 : i64) loc(#loc31)
^bb27: // pred: ^bb26
%78 = iree.list.get %75[%c1] : !iree.list<!iree.variant> -> i64 loc(#loc31)
br ^bb28(%78 : i64) loc(#loc31)
^bb28(%79: i64 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)): // 2 preds: ^bb26, ^bb27
%80 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc73)
%81 = iree.list.get %80[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc74)
%82 = cmpi eq, %c79_i32, %81 : i32 loc(#loc74)
cond_br %82, ^bb29, ^bb30(%c0_i64 : i64) loc(#loc74)
^bb29: // pred: ^bb28
%83 = iree.list.get %80[%c1] : !iree.list<!iree.variant> -> i64 loc(#loc74)
br ^bb30(%83 : i64) loc(#loc74)
^bb30(%84: i64 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)): // 2 preds: ^bb28, ^bb29
%85 = addi %79, %84 : i64 loc(#loc31)
%86 = iree.list.create : !iree.list<!iree.variant> loc(#loc31)
iree.list.resize %86, %c2 : !iree.list<!iree.variant> loc(#loc31)
iree.list.set %86[%c0], %c79_i32 : !iree.list<!iree.variant>, i32 loc(#loc31)
iree.list.set %86[%c1], %85 : !iree.list<!iree.variant>, i64 loc(#loc31)
return %c0_i32, %86 : i32, !iree.list<!iree.variant> loc(#loc75)
^bb31: // pred: ^bb14
%87 = iree.list.get %4[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc76)
%88 = iree.list.get %87[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc77)
%89 = cmpi eq, %c78_i32, %88 : i32 loc(#loc77)
cond_br %89, ^bb32, ^bb33(%c0_i32 : i32) loc(#loc77)
^bb32: // pred: ^bb31
%90 = iree.list.get %87[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc77)
br ^bb33(%90 : i32) loc(#loc77)
^bb33(%91: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)): // 2 preds: ^bb31, ^bb32
%92 = cmpi eq, %91, %c6_i32 : i32 loc(#loc78)
cond_br %92, ^bb34, ^bb42 loc(#loc79)
^bb34: // pred: ^bb33
%93 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc80)
%94 = iree.list.get %93[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc81)
%95 = cmpi eq, %c78_i32, %94 : i32 loc(#loc81)
cond_br %95, ^bb35, ^bb36(%c0_i32 : i32) loc(#loc81)
^bb35: // pred: ^bb34
%96 = iree.list.get %93[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc81)
br ^bb36(%96 : i32) loc(#loc81)
^bb36(%97: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)): // 2 preds: ^bb34, ^bb35
%98 = cmpi eq, %97, %c2_i32 : i32 loc(#loc82)
cond_br %98, ^bb37, ^bb42 loc(#loc83)
^bb37: // pred: ^bb36
%99 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc84)
%100 = iree.list.get %99[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc32)
%101 = cmpi eq, %c90_i32, %100 : i32 loc(#loc32)
cond_br %101, ^bb38, ^bb39(%cst : f32) loc(#loc32)
^bb38: // pred: ^bb37
%102 = iree.list.get %99[%c1] : !iree.list<!iree.variant> -> f32 loc(#loc32)
br ^bb39(%102 : f32) loc(#loc32)
^bb39(%103: f32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)): // 2 preds: ^bb37, ^bb38
%104 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc85)
%105 = iree.list.get %104[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc86)
%106 = cmpi eq, %c90_i32, %105 : i32 loc(#loc86)
cond_br %106, ^bb40, ^bb41(%cst : f32) loc(#loc86)
^bb40: // pred: ^bb39
%107 = iree.list.get %104[%c1] : !iree.list<!iree.variant> -> f32 loc(#loc86)
br ^bb41(%107 : f32) loc(#loc86)
^bb41(%108: f32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":27:0)): // 2 preds: ^bb39, ^bb40
%109 = addf %103, %108 : f32 loc(#loc32)
%110 = iree.list.create : !iree.list<!iree.variant> loc(#loc32)
iree.list.resize %110, %c2 : !iree.list<!iree.variant> loc(#loc32)
iree.list.set %110[%c0], %c90_i32 : !iree.list<!iree.variant>, i32 loc(#loc32)
iree.list.set %110[%c1], %109 : !iree.list<!iree.variant>, f32 loc(#loc32)
return %c0_i32, %110 : i32, !iree.list<!iree.variant> loc(#loc87)
^bb42: // 5 preds: ^bb4, ^bb7, ^bb25, ^bb33, ^bb36
%111 = iree.list.create : !iree.list<!iree.variant> loc(#loc33)
return %c-3_i32, %111 : i32, !iree.list<!iree.variant> loc(#loc33)
} loc(#loc30)
func private @pydmrtl$apply_binary_sub(%arg0: !iree.list<!iree.variant> loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0), %arg1: !iree.list<!iree.variant> loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)) -> (i32, !iree.list<!iree.variant>) {
%c0_i64 = constant 0 : i64 loc(#loc89)
%cst = constant 0.000000e+00 : f32 loc(#loc90)
%c-3_i32 = constant -3 : i32 loc(#loc91)
%c90_i32 = constant 90 : i32 loc(#loc90)
%c79_i32 = constant 79 : i32 loc(#loc89)
%c78_i32 = constant 78 : i32 loc(#loc92)
%c0 = constant 0 : index loc(#loc88)
%c1 = constant 1 : index loc(#loc88)
%c256_i32 = constant 256 : i32 loc(#loc88)
%c2 = constant 2 : index loc(#loc88)
%c0_i32 = constant 0 : i32 loc(#loc93)
%c6_i32 = constant 6 : i32 loc(#loc94)
%c2_i32 = constant 2 : i32 loc(#loc95)
%c3_i32 = constant 3 : i32 loc(#loc96)
%c60_i32 = constant 60 : i32 loc(#loc95)
%c1_i32 = constant 1 : i32 loc(#loc94)
%0 = iree.list.create : !iree.list<!iree.variant> loc(#loc88)
%1 = iree.list.create : !iree.list<!iree.variant> loc(#loc88)
%2 = iree.list.create : !iree.list<!iree.variant> loc(#loc88)
%3 = iree.list.create : !iree.list<!iree.variant> loc(#loc88)
%4 = iree.list.create : !iree.list<!iree.variant> loc(#loc88)
%5 = iree.list.create : !iree.list<!iree.variant> loc(#loc88)
iree.list.resize %3, %c2 : !iree.list<!iree.variant> loc(#loc88)
iree.list.set %3[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc88)
iree.list.set %3[%c1], %arg0 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc88)
iree.list.resize %2, %c2 : !iree.list<!iree.variant> loc(#loc88)
iree.list.set %2[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc88)
iree.list.set %2[%c1], %arg1 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc88)
%6 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc97)
%7 = iree.list.get %6[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc98)
%8 = iree.list.create : !iree.list<!iree.variant> loc(#loc92)
iree.list.resize %8, %c2 : !iree.list<!iree.variant> loc(#loc92)
iree.list.set %8[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc92)
iree.list.set %8[%c1], %7 : !iree.list<!iree.variant>, i32 loc(#loc92)
iree.list.resize %1, %c2 : !iree.list<!iree.variant> loc(#loc92)
iree.list.set %1[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc92)
iree.list.set %1[%c1], %8 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc92)
%9 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc99)
%10 = iree.list.get %9[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc100)
%11 = iree.list.create : !iree.list<!iree.variant> loc(#loc101)
iree.list.resize %11, %c2 : !iree.list<!iree.variant> loc(#loc101)
iree.list.set %11[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc101)
iree.list.set %11[%c1], %10 : !iree.list<!iree.variant>, i32 loc(#loc101)
iree.list.resize %5, %c2 : !iree.list<!iree.variant> loc(#loc101)
iree.list.set %5[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc101)
iree.list.set %5[%c1], %11 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc101)
%12 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc102)
%13 = iree.list.get %12[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc103)
%14 = cmpi eq, %c78_i32, %13 : i32 loc(#loc103)
cond_br %14, ^bb1, ^bb2(%c0_i32 : i32) loc(#loc103)
^bb1: // pred: ^bb0
%15 = iree.list.get %12[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc103)
br ^bb2(%15 : i32) loc(#loc103)
^bb2(%16: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)): // 2 preds: ^bb0, ^bb1
%17 = iree.list.get %5[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc104)
%18 = iree.list.get %17[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc105)
%19 = cmpi eq, %c78_i32, %18 : i32 loc(#loc105)
cond_br %19, ^bb3, ^bb4(%c0_i32 : i32) loc(#loc105)
^bb3: // pred: ^bb2
%20 = iree.list.get %17[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc105)
br ^bb4(%20 : i32) loc(#loc105)
^bb4(%21: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)): // 2 preds: ^bb2, ^bb3
%22 = cmpi eq, %16, %21 : i32 loc(#loc105)
cond_br %22, ^bb5, ^bb42 loc(#loc106)
^bb5: // pred: ^bb4
%23 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc107)
%24 = iree.list.get %23[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc94)
%25 = cmpi eq, %c78_i32, %24 : i32 loc(#loc94)
cond_br %25, ^bb6, ^bb7(%c0_i32 : i32) loc(#loc94)
^bb6: // pred: ^bb5
%26 = iree.list.get %23[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc94)
br ^bb7(%26 : i32) loc(#loc94)
^bb7(%27: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)): // 2 preds: ^bb5, ^bb6
%28 = shift_right_signed %27, %c6_i32 : i32 loc(#loc94)
%29 = cmpi eq, %28, %c1_i32 : i32 loc(#loc94)
cond_br %29, ^bb8, ^bb42 loc(#loc108)
^bb8: // pred: ^bb7
%30 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc109)
%31 = iree.list.get %30[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc95)
%32 = cmpi eq, %c78_i32, %31 : i32 loc(#loc95)
cond_br %32, ^bb9, ^bb10(%c0_i32 : i32) loc(#loc95)
^bb9: // pred: ^bb8
%33 = iree.list.get %30[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc95)
br ^bb10(%33 : i32) loc(#loc95)
^bb10(%34: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)): // 2 preds: ^bb8, ^bb9
%35 = and %34, %c60_i32 : i32 loc(#loc95)
%36 = shift_right_signed %35, %c2_i32 : i32 loc(#loc95)
%37 = iree.list.create : !iree.list<!iree.variant> loc(#loc110)
iree.list.resize %37, %c2 : !iree.list<!iree.variant> loc(#loc110)
iree.list.set %37[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc110)
iree.list.set %37[%c1], %36 : !iree.list<!iree.variant>, i32 loc(#loc110)
iree.list.resize %4, %c2 : !iree.list<!iree.variant> loc(#loc110)
iree.list.set %4[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc110)
iree.list.set %4[%c1], %37 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc110)
%38 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc111)
%39 = iree.list.get %38[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc96)
%40 = cmpi eq, %c78_i32, %39 : i32 loc(#loc96)
cond_br %40, ^bb11, ^bb12(%c0_i32 : i32) loc(#loc96)
^bb11: // pred: ^bb10
%41 = iree.list.get %38[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc96)
br ^bb12(%41 : i32) loc(#loc96)
^bb12(%42: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)): // 2 preds: ^bb10, ^bb11
%43 = and %42, %c3_i32 : i32 loc(#loc96)
%44 = iree.list.create : !iree.list<!iree.variant> loc(#loc112)
iree.list.resize %44, %c2 : !iree.list<!iree.variant> loc(#loc112)
iree.list.set %44[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc112)
iree.list.set %44[%c1], %43 : !iree.list<!iree.variant>, i32 loc(#loc112)
iree.list.resize %0, %c2 : !iree.list<!iree.variant> loc(#loc112)
iree.list.set %0[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc112)
iree.list.set %0[%c1], %44 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc112)
%45 = iree.list.get %4[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc113)
%46 = iree.list.get %45[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc114)
%47 = cmpi eq, %c78_i32, %46 : i32 loc(#loc114)
cond_br %47, ^bb13, ^bb14(%c0_i32 : i32) loc(#loc114)
^bb13: // pred: ^bb12
%48 = iree.list.get %45[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc114)
br ^bb14(%48 : i32) loc(#loc114)
^bb14(%49: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)): // 2 preds: ^bb12, ^bb13
%50 = cmpi sle, %49, %c3_i32 : i32 loc(#loc115)
cond_br %50, ^bb15, ^bb31 loc(#loc116)
^bb15: // pred: ^bb14
%51 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc117)
%52 = iree.list.get %51[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc118)
%53 = cmpi eq, %c78_i32, %52 : i32 loc(#loc118)
cond_br %53, ^bb16, ^bb17(%c0_i32 : i32) loc(#loc118)
^bb16: // pred: ^bb15
%54 = iree.list.get %51[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc118)
br ^bb17(%54 : i32) loc(#loc118)
^bb17(%55: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)): // 2 preds: ^bb15, ^bb16
%56 = cmpi eq, %55, %c2_i32 : i32 loc(#loc119)
cond_br %56, ^bb18, ^bb23 loc(#loc120)
^bb18: // pred: ^bb17
%57 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc121)
%58 = iree.list.get %57[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc122)
%59 = cmpi eq, %c78_i32, %58 : i32 loc(#loc122)
cond_br %59, ^bb19, ^bb20(%c0_i32 : i32) loc(#loc122)
^bb19: // pred: ^bb18
%60 = iree.list.get %57[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc122)
br ^bb20(%60 : i32) loc(#loc122)
^bb20(%61: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)): // 2 preds: ^bb18, ^bb19
%62 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc123)
%63 = iree.list.get %62[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc124)
%64 = cmpi eq, %c78_i32, %63 : i32 loc(#loc124)
cond_br %64, ^bb21, ^bb22(%c0_i32 : i32) loc(#loc124)
^bb21: // pred: ^bb20
%65 = iree.list.get %62[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc124)
br ^bb22(%65 : i32) loc(#loc124)
^bb22(%66: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)): // 2 preds: ^bb20, ^bb21
%67 = subi %61, %66 : i32 loc(#loc122)
%68 = iree.list.create : !iree.list<!iree.variant> loc(#loc122)
iree.list.resize %68, %c2 : !iree.list<!iree.variant> loc(#loc122)
iree.list.set %68[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc122)
iree.list.set %68[%c1], %67 : !iree.list<!iree.variant>, i32 loc(#loc122)
return %c0_i32, %68 : i32, !iree.list<!iree.variant> loc(#loc125)
^bb23: // pred: ^bb17
%69 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc126)
%70 = iree.list.get %69[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc127)
%71 = cmpi eq, %c78_i32, %70 : i32 loc(#loc127)
cond_br %71, ^bb24, ^bb25(%c0_i32 : i32) loc(#loc127)
^bb24: // pred: ^bb23
%72 = iree.list.get %69[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc127)
br ^bb25(%72 : i32) loc(#loc127)
^bb25(%73: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)): // 2 preds: ^bb23, ^bb24
%74 = cmpi eq, %73, %c3_i32 : i32 loc(#loc128)
cond_br %74, ^bb26, ^bb42 loc(#loc129)
^bb26: // pred: ^bb25
%75 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc130)
%76 = iree.list.get %75[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc89)
%77 = cmpi eq, %c79_i32, %76 : i32 loc(#loc89)
cond_br %77, ^bb27, ^bb28(%c0_i64 : i64) loc(#loc89)
^bb27: // pred: ^bb26
%78 = iree.list.get %75[%c1] : !iree.list<!iree.variant> -> i64 loc(#loc89)
br ^bb28(%78 : i64) loc(#loc89)
^bb28(%79: i64 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)): // 2 preds: ^bb26, ^bb27
%80 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc131)
%81 = iree.list.get %80[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc132)
%82 = cmpi eq, %c79_i32, %81 : i32 loc(#loc132)
cond_br %82, ^bb29, ^bb30(%c0_i64 : i64) loc(#loc132)
^bb29: // pred: ^bb28
%83 = iree.list.get %80[%c1] : !iree.list<!iree.variant> -> i64 loc(#loc132)
br ^bb30(%83 : i64) loc(#loc132)
^bb30(%84: i64 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)): // 2 preds: ^bb28, ^bb29
%85 = subi %79, %84 : i64 loc(#loc89)
%86 = iree.list.create : !iree.list<!iree.variant> loc(#loc89)
iree.list.resize %86, %c2 : !iree.list<!iree.variant> loc(#loc89)
iree.list.set %86[%c0], %c79_i32 : !iree.list<!iree.variant>, i32 loc(#loc89)
iree.list.set %86[%c1], %85 : !iree.list<!iree.variant>, i64 loc(#loc89)
return %c0_i32, %86 : i32, !iree.list<!iree.variant> loc(#loc133)
^bb31: // pred: ^bb14
%87 = iree.list.get %4[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc134)
%88 = iree.list.get %87[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc135)
%89 = cmpi eq, %c78_i32, %88 : i32 loc(#loc135)
cond_br %89, ^bb32, ^bb33(%c0_i32 : i32) loc(#loc135)
^bb32: // pred: ^bb31
%90 = iree.list.get %87[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc135)
br ^bb33(%90 : i32) loc(#loc135)
^bb33(%91: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)): // 2 preds: ^bb31, ^bb32
%92 = cmpi eq, %91, %c6_i32 : i32 loc(#loc136)
cond_br %92, ^bb34, ^bb42 loc(#loc137)
^bb34: // pred: ^bb33
%93 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc138)
%94 = iree.list.get %93[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc139)
%95 = cmpi eq, %c78_i32, %94 : i32 loc(#loc139)
cond_br %95, ^bb35, ^bb36(%c0_i32 : i32) loc(#loc139)
^bb35: // pred: ^bb34
%96 = iree.list.get %93[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc139)
br ^bb36(%96 : i32) loc(#loc139)
^bb36(%97: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)): // 2 preds: ^bb34, ^bb35
%98 = cmpi eq, %97, %c2_i32 : i32 loc(#loc140)
cond_br %98, ^bb37, ^bb42 loc(#loc141)
^bb37: // pred: ^bb36
%99 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc142)
%100 = iree.list.get %99[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc90)
%101 = cmpi eq, %c90_i32, %100 : i32 loc(#loc90)
cond_br %101, ^bb38, ^bb39(%cst : f32) loc(#loc90)
^bb38: // pred: ^bb37
%102 = iree.list.get %99[%c1] : !iree.list<!iree.variant> -> f32 loc(#loc90)
br ^bb39(%102 : f32) loc(#loc90)
^bb39(%103: f32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)): // 2 preds: ^bb37, ^bb38
%104 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc143)
%105 = iree.list.get %104[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc144)
%106 = cmpi eq, %c90_i32, %105 : i32 loc(#loc144)
cond_br %106, ^bb40, ^bb41(%cst : f32) loc(#loc144)
^bb40: // pred: ^bb39
%107 = iree.list.get %104[%c1] : !iree.list<!iree.variant> -> f32 loc(#loc144)
br ^bb41(%107 : f32) loc(#loc144)
^bb41(%108: f32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":62:0)): // 2 preds: ^bb39, ^bb40
%109 = subf %103, %108 : f32 loc(#loc90)
%110 = iree.list.create : !iree.list<!iree.variant> loc(#loc90)
iree.list.resize %110, %c2 : !iree.list<!iree.variant> loc(#loc90)
iree.list.set %110[%c0], %c90_i32 : !iree.list<!iree.variant>, i32 loc(#loc90)
iree.list.set %110[%c1], %109 : !iree.list<!iree.variant>, f32 loc(#loc90)
return %c0_i32, %110 : i32, !iree.list<!iree.variant> loc(#loc145)
^bb42: // 5 preds: ^bb4, ^bb7, ^bb25, ^bb33, ^bb36
%111 = iree.list.create : !iree.list<!iree.variant> loc(#loc91)
return %c-3_i32, %111 : i32, !iree.list<!iree.variant> loc(#loc91)
} loc(#loc88)
func private @pydmrtl$apply_binary_mul(%arg0: !iree.list<!iree.variant> loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0), %arg1: !iree.list<!iree.variant> loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)) -> (i32, !iree.list<!iree.variant>) {
%c0_i64 = constant 0 : i64 loc(#loc147)
%cst = constant 0.000000e+00 : f32 loc(#loc148)
%c-3_i32 = constant -3 : i32 loc(#loc149)
%c90_i32 = constant 90 : i32 loc(#loc148)
%c79_i32 = constant 79 : i32 loc(#loc147)
%c78_i32 = constant 78 : i32 loc(#loc150)
%c0 = constant 0 : index loc(#loc146)
%c1 = constant 1 : index loc(#loc146)
%c256_i32 = constant 256 : i32 loc(#loc146)
%c2 = constant 2 : index loc(#loc146)
%c0_i32 = constant 0 : i32 loc(#loc151)
%c6_i32 = constant 6 : i32 loc(#loc152)
%c2_i32 = constant 2 : i32 loc(#loc153)
%c3_i32 = constant 3 : i32 loc(#loc154)
%c60_i32 = constant 60 : i32 loc(#loc153)
%c1_i32 = constant 1 : i32 loc(#loc152)
%0 = iree.list.create : !iree.list<!iree.variant> loc(#loc146)
%1 = iree.list.create : !iree.list<!iree.variant> loc(#loc146)
%2 = iree.list.create : !iree.list<!iree.variant> loc(#loc146)
%3 = iree.list.create : !iree.list<!iree.variant> loc(#loc146)
%4 = iree.list.create : !iree.list<!iree.variant> loc(#loc146)
%5 = iree.list.create : !iree.list<!iree.variant> loc(#loc146)
iree.list.resize %3, %c2 : !iree.list<!iree.variant> loc(#loc146)
iree.list.set %3[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc146)
iree.list.set %3[%c1], %arg0 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc146)
iree.list.resize %2, %c2 : !iree.list<!iree.variant> loc(#loc146)
iree.list.set %2[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc146)
iree.list.set %2[%c1], %arg1 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc146)
%6 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc155)
%7 = iree.list.get %6[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc156)
%8 = iree.list.create : !iree.list<!iree.variant> loc(#loc150)
iree.list.resize %8, %c2 : !iree.list<!iree.variant> loc(#loc150)
iree.list.set %8[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc150)
iree.list.set %8[%c1], %7 : !iree.list<!iree.variant>, i32 loc(#loc150)
iree.list.resize %1, %c2 : !iree.list<!iree.variant> loc(#loc150)
iree.list.set %1[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc150)
iree.list.set %1[%c1], %8 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc150)
%9 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc157)
%10 = iree.list.get %9[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc158)
%11 = iree.list.create : !iree.list<!iree.variant> loc(#loc159)
iree.list.resize %11, %c2 : !iree.list<!iree.variant> loc(#loc159)
iree.list.set %11[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc159)
iree.list.set %11[%c1], %10 : !iree.list<!iree.variant>, i32 loc(#loc159)
iree.list.resize %5, %c2 : !iree.list<!iree.variant> loc(#loc159)
iree.list.set %5[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc159)
iree.list.set %5[%c1], %11 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc159)
%12 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc160)
%13 = iree.list.get %12[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc161)
%14 = cmpi eq, %c78_i32, %13 : i32 loc(#loc161)
cond_br %14, ^bb1, ^bb2(%c0_i32 : i32) loc(#loc161)
^bb1: // pred: ^bb0
%15 = iree.list.get %12[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc161)
br ^bb2(%15 : i32) loc(#loc161)
^bb2(%16: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)): // 2 preds: ^bb0, ^bb1
%17 = iree.list.get %5[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc162)
%18 = iree.list.get %17[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc163)
%19 = cmpi eq, %c78_i32, %18 : i32 loc(#loc163)
cond_br %19, ^bb3, ^bb4(%c0_i32 : i32) loc(#loc163)
^bb3: // pred: ^bb2
%20 = iree.list.get %17[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc163)
br ^bb4(%20 : i32) loc(#loc163)
^bb4(%21: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)): // 2 preds: ^bb2, ^bb3
%22 = cmpi eq, %16, %21 : i32 loc(#loc163)
cond_br %22, ^bb5, ^bb42 loc(#loc164)
^bb5: // pred: ^bb4
%23 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc165)
%24 = iree.list.get %23[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc152)
%25 = cmpi eq, %c78_i32, %24 : i32 loc(#loc152)
cond_br %25, ^bb6, ^bb7(%c0_i32 : i32) loc(#loc152)
^bb6: // pred: ^bb5
%26 = iree.list.get %23[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc152)
br ^bb7(%26 : i32) loc(#loc152)
^bb7(%27: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)): // 2 preds: ^bb5, ^bb6
%28 = shift_right_signed %27, %c6_i32 : i32 loc(#loc152)
%29 = cmpi eq, %28, %c1_i32 : i32 loc(#loc152)
cond_br %29, ^bb8, ^bb42 loc(#loc166)
^bb8: // pred: ^bb7
%30 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc167)
%31 = iree.list.get %30[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc153)
%32 = cmpi eq, %c78_i32, %31 : i32 loc(#loc153)
cond_br %32, ^bb9, ^bb10(%c0_i32 : i32) loc(#loc153)
^bb9: // pred: ^bb8
%33 = iree.list.get %30[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc153)
br ^bb10(%33 : i32) loc(#loc153)
^bb10(%34: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)): // 2 preds: ^bb8, ^bb9
%35 = and %34, %c60_i32 : i32 loc(#loc153)
%36 = shift_right_signed %35, %c2_i32 : i32 loc(#loc153)
%37 = iree.list.create : !iree.list<!iree.variant> loc(#loc168)
iree.list.resize %37, %c2 : !iree.list<!iree.variant> loc(#loc168)
iree.list.set %37[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc168)
iree.list.set %37[%c1], %36 : !iree.list<!iree.variant>, i32 loc(#loc168)
iree.list.resize %4, %c2 : !iree.list<!iree.variant> loc(#loc168)
iree.list.set %4[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc168)
iree.list.set %4[%c1], %37 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc168)
%38 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc169)
%39 = iree.list.get %38[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc154)
%40 = cmpi eq, %c78_i32, %39 : i32 loc(#loc154)
cond_br %40, ^bb11, ^bb12(%c0_i32 : i32) loc(#loc154)
^bb11: // pred: ^bb10
%41 = iree.list.get %38[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc154)
br ^bb12(%41 : i32) loc(#loc154)
^bb12(%42: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)): // 2 preds: ^bb10, ^bb11
%43 = and %42, %c3_i32 : i32 loc(#loc154)
%44 = iree.list.create : !iree.list<!iree.variant> loc(#loc170)
iree.list.resize %44, %c2 : !iree.list<!iree.variant> loc(#loc170)
iree.list.set %44[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc170)
iree.list.set %44[%c1], %43 : !iree.list<!iree.variant>, i32 loc(#loc170)
iree.list.resize %0, %c2 : !iree.list<!iree.variant> loc(#loc170)
iree.list.set %0[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc170)
iree.list.set %0[%c1], %44 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc170)
%45 = iree.list.get %4[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc171)
%46 = iree.list.get %45[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc172)
%47 = cmpi eq, %c78_i32, %46 : i32 loc(#loc172)
cond_br %47, ^bb13, ^bb14(%c0_i32 : i32) loc(#loc172)
^bb13: // pred: ^bb12
%48 = iree.list.get %45[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc172)
br ^bb14(%48 : i32) loc(#loc172)
^bb14(%49: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)): // 2 preds: ^bb12, ^bb13
%50 = cmpi sle, %49, %c3_i32 : i32 loc(#loc173)
cond_br %50, ^bb15, ^bb31 loc(#loc174)
^bb15: // pred: ^bb14
%51 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc175)
%52 = iree.list.get %51[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc176)
%53 = cmpi eq, %c78_i32, %52 : i32 loc(#loc176)
cond_br %53, ^bb16, ^bb17(%c0_i32 : i32) loc(#loc176)
^bb16: // pred: ^bb15
%54 = iree.list.get %51[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc176)
br ^bb17(%54 : i32) loc(#loc176)
^bb17(%55: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)): // 2 preds: ^bb15, ^bb16
%56 = cmpi eq, %55, %c2_i32 : i32 loc(#loc177)
cond_br %56, ^bb18, ^bb23 loc(#loc178)
^bb18: // pred: ^bb17
%57 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc179)
%58 = iree.list.get %57[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc180)
%59 = cmpi eq, %c78_i32, %58 : i32 loc(#loc180)
cond_br %59, ^bb19, ^bb20(%c0_i32 : i32) loc(#loc180)
^bb19: // pred: ^bb18
%60 = iree.list.get %57[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc180)
br ^bb20(%60 : i32) loc(#loc180)
^bb20(%61: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)): // 2 preds: ^bb18, ^bb19
%62 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc181)
%63 = iree.list.get %62[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc182)
%64 = cmpi eq, %c78_i32, %63 : i32 loc(#loc182)
cond_br %64, ^bb21, ^bb22(%c0_i32 : i32) loc(#loc182)
^bb21: // pred: ^bb20
%65 = iree.list.get %62[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc182)
br ^bb22(%65 : i32) loc(#loc182)
^bb22(%66: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)): // 2 preds: ^bb20, ^bb21
%67 = muli %61, %66 : i32 loc(#loc180)
%68 = iree.list.create : !iree.list<!iree.variant> loc(#loc180)
iree.list.resize %68, %c2 : !iree.list<!iree.variant> loc(#loc180)
iree.list.set %68[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc180)
iree.list.set %68[%c1], %67 : !iree.list<!iree.variant>, i32 loc(#loc180)
return %c0_i32, %68 : i32, !iree.list<!iree.variant> loc(#loc183)
^bb23: // pred: ^bb17
%69 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc184)
%70 = iree.list.get %69[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc185)
%71 = cmpi eq, %c78_i32, %70 : i32 loc(#loc185)
cond_br %71, ^bb24, ^bb25(%c0_i32 : i32) loc(#loc185)
^bb24: // pred: ^bb23
%72 = iree.list.get %69[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc185)
br ^bb25(%72 : i32) loc(#loc185)
^bb25(%73: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)): // 2 preds: ^bb23, ^bb24
%74 = cmpi eq, %73, %c3_i32 : i32 loc(#loc186)
cond_br %74, ^bb26, ^bb42 loc(#loc187)
^bb26: // pred: ^bb25
%75 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc188)
%76 = iree.list.get %75[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc147)
%77 = cmpi eq, %c79_i32, %76 : i32 loc(#loc147)
cond_br %77, ^bb27, ^bb28(%c0_i64 : i64) loc(#loc147)
^bb27: // pred: ^bb26
%78 = iree.list.get %75[%c1] : !iree.list<!iree.variant> -> i64 loc(#loc147)
br ^bb28(%78 : i64) loc(#loc147)
^bb28(%79: i64 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)): // 2 preds: ^bb26, ^bb27
%80 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc189)
%81 = iree.list.get %80[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc190)
%82 = cmpi eq, %c79_i32, %81 : i32 loc(#loc190)
cond_br %82, ^bb29, ^bb30(%c0_i64 : i64) loc(#loc190)
^bb29: // pred: ^bb28
%83 = iree.list.get %80[%c1] : !iree.list<!iree.variant> -> i64 loc(#loc190)
br ^bb30(%83 : i64) loc(#loc190)
^bb30(%84: i64 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)): // 2 preds: ^bb28, ^bb29
%85 = muli %79, %84 : i64 loc(#loc147)
%86 = iree.list.create : !iree.list<!iree.variant> loc(#loc147)
iree.list.resize %86, %c2 : !iree.list<!iree.variant> loc(#loc147)
iree.list.set %86[%c0], %c79_i32 : !iree.list<!iree.variant>, i32 loc(#loc147)
iree.list.set %86[%c1], %85 : !iree.list<!iree.variant>, i64 loc(#loc147)
return %c0_i32, %86 : i32, !iree.list<!iree.variant> loc(#loc191)
^bb31: // pred: ^bb14
%87 = iree.list.get %4[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc192)
%88 = iree.list.get %87[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc193)
%89 = cmpi eq, %c78_i32, %88 : i32 loc(#loc193)
cond_br %89, ^bb32, ^bb33(%c0_i32 : i32) loc(#loc193)
^bb32: // pred: ^bb31
%90 = iree.list.get %87[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc193)
br ^bb33(%90 : i32) loc(#loc193)
^bb33(%91: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)): // 2 preds: ^bb31, ^bb32
%92 = cmpi eq, %91, %c6_i32 : i32 loc(#loc194)
cond_br %92, ^bb34, ^bb42 loc(#loc195)
^bb34: // pred: ^bb33
%93 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc196)
%94 = iree.list.get %93[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc197)
%95 = cmpi eq, %c78_i32, %94 : i32 loc(#loc197)
cond_br %95, ^bb35, ^bb36(%c0_i32 : i32) loc(#loc197)
^bb35: // pred: ^bb34
%96 = iree.list.get %93[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc197)
br ^bb36(%96 : i32) loc(#loc197)
^bb36(%97: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)): // 2 preds: ^bb34, ^bb35
%98 = cmpi eq, %97, %c2_i32 : i32 loc(#loc198)
cond_br %98, ^bb37, ^bb42 loc(#loc199)
^bb37: // pred: ^bb36
%99 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc200)
%100 = iree.list.get %99[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc148)
%101 = cmpi eq, %c90_i32, %100 : i32 loc(#loc148)
cond_br %101, ^bb38, ^bb39(%cst : f32) loc(#loc148)
^bb38: // pred: ^bb37
%102 = iree.list.get %99[%c1] : !iree.list<!iree.variant> -> f32 loc(#loc148)
br ^bb39(%102 : f32) loc(#loc148)
^bb39(%103: f32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)): // 2 preds: ^bb37, ^bb38
%104 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc201)
%105 = iree.list.get %104[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc202)
%106 = cmpi eq, %c90_i32, %105 : i32 loc(#loc202)
cond_br %106, ^bb40, ^bb41(%cst : f32) loc(#loc202)
^bb40: // pred: ^bb39
%107 = iree.list.get %104[%c1] : !iree.list<!iree.variant> -> f32 loc(#loc202)
br ^bb41(%107 : f32) loc(#loc202)
^bb41(%108: f32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":97:0)): // 2 preds: ^bb39, ^bb40
%109 = mulf %103, %108 : f32 loc(#loc148)
%110 = iree.list.create : !iree.list<!iree.variant> loc(#loc148)
iree.list.resize %110, %c2 : !iree.list<!iree.variant> loc(#loc148)
iree.list.set %110[%c0], %c90_i32 : !iree.list<!iree.variant>, i32 loc(#loc148)
iree.list.set %110[%c1], %109 : !iree.list<!iree.variant>, f32 loc(#loc148)
return %c0_i32, %110 : i32, !iree.list<!iree.variant> loc(#loc203)
^bb42: // 5 preds: ^bb4, ^bb7, ^bb25, ^bb33, ^bb36
%111 = iree.list.create : !iree.list<!iree.variant> loc(#loc149)
return %c-3_i32, %111 : i32, !iree.list<!iree.variant> loc(#loc149)
} loc(#loc146)
func private @pydmrtl$object_as_bool(%arg0: !iree.list<!iree.variant> loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)) -> (i32, i1) {
%c-3_i32 = constant -3 : i32 loc(#loc205)
%c79_i32 = constant 79 : i32 loc(#loc206)
%c64_i32 = constant 64 : i32 loc(#loc207)
%c78_i32 = constant 78 : i32 loc(#loc208)
%c0 = constant 0 : index loc(#loc204)
%c1 = constant 1 : index loc(#loc204)
%c256_i32 = constant 256 : i32 loc(#loc204)
%c2 = constant 2 : index loc(#loc204)
%true = constant true loc(#loc209)
%c6_i32 = constant 6 : i32 loc(#loc210)
%c0_i64 = constant 0 : i64 loc(#loc206)
%c0_i32 = constant 0 : i32 loc(#loc211)
%c2_i32 = constant 2 : i32 loc(#loc212)
%c3_i32 = constant 3 : i32 loc(#loc213)
%c60_i32 = constant 60 : i32 loc(#loc212)
%c1_i32 = constant 1 : i32 loc(#loc214)
%false = constant false loc(#loc215)
%0 = iree.list.create : !iree.list<!iree.variant> loc(#loc204)
%1 = iree.list.create : !iree.list<!iree.variant> loc(#loc204)
%2 = iree.list.create : !iree.list<!iree.variant> loc(#loc204)
%3 = iree.list.create : !iree.list<!iree.variant> loc(#loc204)
iree.list.resize %0, %c2 : !iree.list<!iree.variant> loc(#loc204)
iree.list.set %0[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc204)
iree.list.set %0[%c1], %arg0 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc204)
%4 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc216)
%5 = iree.list.get %4[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc217)
%6 = iree.list.create : !iree.list<!iree.variant> loc(#loc208)
iree.list.resize %6, %c2 : !iree.list<!iree.variant> loc(#loc208)
iree.list.set %6[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc208)
iree.list.set %6[%c1], %5 : !iree.list<!iree.variant>, i32 loc(#loc208)
iree.list.resize %2, %c2 : !iree.list<!iree.variant> loc(#loc208)
iree.list.set %2[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc208)
iree.list.set %2[%c1], %6 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc208)
%7 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc218)
%8 = iree.list.get %7[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc219)
%9 = cmpi eq, %c78_i32, %8 : i32 loc(#loc219)
cond_br %9, ^bb1, ^bb2(%c0_i32 : i32) loc(#loc219)
^bb1: // pred: ^bb0
%10 = iree.list.get %7[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc219)
br ^bb2(%10 : i32) loc(#loc219)
^bb2(%11: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)): // 2 preds: ^bb0, ^bb1
%12 = cmpi eq, %11, %c1_i32 : i32 loc(#loc214)
cond_br %12, ^bb3(%false : i1), ^bb4 loc(#loc220)
^bb3(%13: i1 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)): // 6 preds: ^bb2, ^bb12, ^bb13, ^bb37, ^bb40, ^bb43
return %c0_i32, %13 : i32, i1 loc(#loc221)
^bb4: // pred: ^bb2
%14 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc222)
%15 = iree.list.get %14[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc210)
%16 = cmpi eq, %c78_i32, %15 : i32 loc(#loc210)
cond_br %16, ^bb5, ^bb6(%c0_i32 : i32) loc(#loc210)
^bb5: // pred: ^bb4
%17 = iree.list.get %14[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc210)
br ^bb6(%17 : i32) loc(#loc210)
^bb6(%18: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)): // 2 preds: ^bb4, ^bb5
%19 = shift_right_signed %18, %c6_i32 : i32 loc(#loc210)
%20 = cmpi eq, %19, %c1_i32 : i32 loc(#loc210)
cond_br %20, ^bb7, ^bb31 loc(#loc223)
^bb7: // pred: ^bb6
%21 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc224)
%22 = iree.list.get %21[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc212)
%23 = cmpi eq, %c78_i32, %22 : i32 loc(#loc212)
cond_br %23, ^bb8, ^bb9(%c0_i32 : i32) loc(#loc212)
^bb8: // pred: ^bb7
%24 = iree.list.get %21[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc212)
br ^bb9(%24 : i32) loc(#loc212)
^bb9(%25: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)): // 2 preds: ^bb7, ^bb8
%26 = and %25, %c60_i32 : i32 loc(#loc212)
%27 = shift_right_signed %26, %c2_i32 : i32 loc(#loc212)
%28 = iree.list.create : !iree.list<!iree.variant> loc(#loc225)
iree.list.resize %28, %c2 : !iree.list<!iree.variant> loc(#loc225)
iree.list.set %28[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc225)
iree.list.set %28[%c1], %27 : !iree.list<!iree.variant>, i32 loc(#loc225)
iree.list.resize %1, %c2 : !iree.list<!iree.variant> loc(#loc225)
iree.list.set %1[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc225)
iree.list.set %1[%c1], %28 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc225)
%29 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc226)
%30 = iree.list.get %29[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc227)
%31 = cmpi eq, %c78_i32, %30 : i32 loc(#loc227)
cond_br %31, ^bb10, ^bb11(%c0_i32 : i32) loc(#loc227)
^bb10: // pred: ^bb9
%32 = iree.list.get %29[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc227)
br ^bb11(%32 : i32) loc(#loc227)
^bb11(%33: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)): // 2 preds: ^bb9, ^bb10
%34 = cmpi eq, %33, %c0_i32 : i32 loc(#loc211)
cond_br %34, ^bb12, ^bb14 loc(#loc228)
^bb12: // pred: ^bb11
%35 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc229)
%36 = iree.list.get %35[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc207)
%37 = cmpi eq, %c64_i32, %36 : i32 loc(#loc207)
cond_br %37, ^bb13, ^bb3(%false : i1) loc(#loc207)
^bb13: // pred: ^bb12
%38 = iree.list.get %35[%c1] : !iree.list<!iree.variant> -> i1 loc(#loc207)
br ^bb3(%38 : i1) loc(#loc207)
^bb14: // pred: ^bb11
%39 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc230)
%40 = iree.list.get %39[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc213)
%41 = cmpi eq, %c78_i32, %40 : i32 loc(#loc213)
cond_br %41, ^bb15, ^bb16(%c0_i32 : i32) loc(#loc213)
^bb15: // pred: ^bb14
%42 = iree.list.get %39[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc213)
br ^bb16(%42 : i32) loc(#loc213)
^bb16(%43: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)): // 2 preds: ^bb14, ^bb15
%44 = and %43, %c3_i32 : i32 loc(#loc213)
%45 = iree.list.create : !iree.list<!iree.variant> loc(#loc231)
iree.list.resize %45, %c2 : !iree.list<!iree.variant> loc(#loc231)
iree.list.set %45[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc231)
iree.list.set %45[%c1], %44 : !iree.list<!iree.variant>, i32 loc(#loc231)
iree.list.resize %3, %c2 : !iree.list<!iree.variant> loc(#loc231)
iree.list.set %3[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc231)
iree.list.set %3[%c1], %45 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc231)
%46 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc232)
%47 = iree.list.get %46[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc233)
%48 = cmpi eq, %c78_i32, %47 : i32 loc(#loc233)
cond_br %48, ^bb17, ^bb18(%c0_i32 : i32) loc(#loc233)
^bb17: // pred: ^bb16
%49 = iree.list.get %46[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc233)
br ^bb18(%49 : i32) loc(#loc233)
^bb18(%50: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)): // 2 preds: ^bb16, ^bb17
%51 = cmpi eq, %50, %c3_i32 : i32 loc(#loc234)
cond_br %51, ^bb19, ^bb32 loc(#loc235)
^bb19: // pred: ^bb18
%52 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc236)
%53 = iree.list.get %52[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc237)
%54 = cmpi eq, %c78_i32, %53 : i32 loc(#loc237)
cond_br %54, ^bb20, ^bb21(%c0_i32 : i32) loc(#loc237)
^bb20: // pred: ^bb19
%55 = iree.list.get %52[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc237)
br ^bb21(%55 : i32) loc(#loc237)
^bb21(%56: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)): // 2 preds: ^bb19, ^bb20
%57 = cmpi eq, %56, %c2_i32 : i32 loc(#loc238)
cond_br %57, ^bb22, ^bb25 loc(#loc239)
^bb22: // pred: ^bb21
%58 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc240)
%59 = iree.list.get %58[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc241)
%60 = cmpi eq, %c78_i32, %59 : i32 loc(#loc241)
cond_br %60, ^bb23, ^bb24(%c0_i32 : i32) loc(#loc241)
^bb23: // pred: ^bb22
%61 = iree.list.get %58[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc241)
br ^bb24(%61 : i32) loc(#loc241)
^bb24(%62: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)): // 2 preds: ^bb22, ^bb23
%63 = cmpi ne, %62, %c0_i32 : i32 loc(#loc241)
return %c0_i32, %63 : i32, i1 loc(#loc242)
^bb25: // pred: ^bb21
%64 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc243)
%65 = iree.list.get %64[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc244)
%66 = cmpi eq, %c78_i32, %65 : i32 loc(#loc244)
cond_br %66, ^bb26, ^bb27(%c0_i32 : i32) loc(#loc244)
^bb26: // pred: ^bb25
%67 = iree.list.get %64[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc244)
br ^bb27(%67 : i32) loc(#loc244)
^bb27(%68: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)): // 2 preds: ^bb25, ^bb26
%69 = cmpi eq, %68, %c3_i32 : i32 loc(#loc245)
cond_br %69, ^bb28, ^bb31 loc(#loc246)
^bb28: // pred: ^bb27
%70 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc247)
%71 = iree.list.get %70[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc206)
%72 = cmpi eq, %c79_i32, %71 : i32 loc(#loc206)
cond_br %72, ^bb29, ^bb30(%c0_i64 : i64) loc(#loc206)
^bb29: // pred: ^bb28
%73 = iree.list.get %70[%c1] : !iree.list<!iree.variant> -> i64 loc(#loc206)
br ^bb30(%73 : i64) loc(#loc206)
^bb30(%74: i64 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)): // 2 preds: ^bb28, ^bb29
%75 = cmpi ne, %74, %c0_i64 : i64 loc(#loc206)
return %c0_i32, %75 : i32, i1 loc(#loc248)
^bb31: // 4 preds: ^bb6, ^bb27, ^bb34, ^bb43
return %c-3_i32, %false : i32, i1 loc(#loc205)
^bb32: // pred: ^bb18
%76 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc249)
%77 = iree.list.get %76[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc250)
%78 = cmpi eq, %c78_i32, %77 : i32 loc(#loc250)
cond_br %78, ^bb33, ^bb34(%c0_i32 : i32) loc(#loc250)
^bb33: // pred: ^bb32
%79 = iree.list.get %76[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc250)
br ^bb34(%79 : i32) loc(#loc250)
^bb34(%80: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)): // 2 preds: ^bb32, ^bb33
%81 = cmpi eq, %80, %c6_i32 : i32 loc(#loc251)
cond_br %81, ^bb35, ^bb31 loc(#loc252)
^bb35: // pred: ^bb34
%82 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc253)
%83 = iree.list.get %82[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc254)
%84 = cmpi eq, %c78_i32, %83 : i32 loc(#loc254)
cond_br %84, ^bb36, ^bb37(%c0_i32 : i32) loc(#loc254)
^bb36: // pred: ^bb35
%85 = iree.list.get %82[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc254)
br ^bb37(%85 : i32) loc(#loc254)
^bb37(%86: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)): // 2 preds: ^bb35, ^bb36
%87 = cmpi eq, %86, %c2_i32 : i32 loc(#loc255)
cond_br %87, ^bb3(%true : i1), ^bb38 loc(#loc256)
^bb38: // pred: ^bb37
%88 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc257)
%89 = iree.list.get %88[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc258)
%90 = cmpi eq, %c78_i32, %89 : i32 loc(#loc258)
cond_br %90, ^bb39, ^bb40(%c0_i32 : i32) loc(#loc258)
^bb39: // pred: ^bb38
%91 = iree.list.get %88[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc258)
br ^bb40(%91 : i32) loc(#loc258)
^bb40(%92: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)): // 2 preds: ^bb38, ^bb39
%93 = cmpi eq, %92, %c3_i32 : i32 loc(#loc259)
cond_br %93, ^bb3(%true : i1), ^bb41 loc(#loc260)
^bb41: // pred: ^bb40
%94 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc261)
%95 = iree.list.get %94[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc262)
%96 = cmpi eq, %c78_i32, %95 : i32 loc(#loc262)
cond_br %96, ^bb42, ^bb43(%c0_i32 : i32) loc(#loc262)
^bb42: // pred: ^bb41
%97 = iree.list.get %94[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc262)
br ^bb43(%97 : i32) loc(#loc262)
^bb43(%98: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":16:0)): // 2 preds: ^bb41, ^bb42
%99 = cmpi eq, %98, %c0_i32 : i32 loc(#loc263)
cond_br %99, ^bb3(%true : i1), ^bb31 loc(#loc264)
} loc(#loc204)
} loc(#loc0)
#loc0 = loc(unknown)
#loc2 = loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":29:5)
#loc3 = loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":30:11)
#loc4 = loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":30:19)
#loc5 = loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":32:11)
#loc6 = loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":29:9)
#loc7 = loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":29:2)
#loc8 = loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":30:15)
#loc9 = loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":30:24)
#loc10 = loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":30:4)
#loc11 = loc("/home/stella/src/iree-samples/pydm/simple/arithmetic.py":32:15)
#loc13 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":23:9)
#loc14 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":19:5)
#loc15 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":17:2)
#loc16 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":17:33)
#loc17 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":17:19)
#loc18 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":18:34)
#loc19 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":18:20)
#loc20 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":18:2)
#loc21 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":19:26)
#loc22 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":19:2)
#loc23 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":20:28)
#loc24 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":20:7)
#loc25 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":20:4)
#loc26 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":22:13)
#loc27 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":22:19)
#loc28 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":22:6)
#loc29 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":23:27)
#loc31 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":44:17)
#loc32 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":49:17)
#loc33 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":57:9)
#loc34 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":28:2)
#loc35 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":57:27)
#loc36 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":31:7)
#loc37 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":32:20)
#loc38 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":33:24)
#loc39 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":28:28)
#loc40 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":28:14)
#loc41 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":29:34)
#loc42 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":29:20)
#loc43 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":29:2)
#loc44 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":30:15)
#loc45 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":30:5)
#loc46 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":30:39)
#loc47 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":30:29)
#loc48 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":30:2)
#loc49 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":31:28)
#loc50 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":31:4)
#loc51 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":32:51)
#loc52 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":32:6)
#loc53 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":33:54)
#loc54 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":33:6)
#loc55 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":34:19)
#loc56 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":34:9)
#loc57 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":34:35)
#loc58 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":34:6)
#loc59 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":41:21)
#loc60 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":41:11)
#loc61 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":41:41)
#loc62 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":41:8)
#loc63 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":42:27)
#loc64 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":42:17)
#loc65 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":42:45)
#loc66 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":42:35)
#loc67 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":42:10)
#loc68 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":43:23)
#loc69 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":43:13)
#loc70 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":43:43)
#loc71 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":43:8)
#loc72 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":44:27)
#loc73 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":44:45)
#loc74 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":44:35)
#loc75 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":44:10)
#loc76 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":46:21)
#loc77 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":46:11)
#loc78 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":46:37)
#loc79 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":46:6)
#loc80 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":48:21)
#loc81 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":48:11)
#loc82 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":48:41)
#loc83 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":48:8)
#loc84 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":49:27)
#loc85 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":49:45)
#loc86 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":49:35)
#loc87 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":49:10)
#loc89 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":79:17)
#loc90 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":84:17)
#loc91 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":92:9)
#loc92 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":63:2)
#loc93 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":92:27)
#loc94 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":66:7)
#loc95 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":67:20)
#loc96 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":68:24)
#loc97 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":63:28)
#loc98 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":63:14)
#loc99 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":64:34)
#loc100 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":64:20)
#loc101 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":64:2)
#loc102 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":65:15)
#loc103 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":65:5)
#loc104 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":65:39)
#loc105 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":65:29)
#loc106 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":65:2)
#loc107 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":66:28)
#loc108 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":66:4)
#loc109 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":67:51)
#loc110 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":67:6)
#loc111 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":68:54)
#loc112 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":68:6)
#loc113 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":69:19)
#loc114 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":69:9)
#loc115 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":69:35)
#loc116 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":69:6)
#loc117 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":76:21)
#loc118 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":76:11)
#loc119 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":76:41)
#loc120 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":76:8)
#loc121 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":77:27)
#loc122 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":77:17)
#loc123 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":77:45)
#loc124 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":77:35)
#loc125 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":77:10)
#loc126 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":78:23)
#loc127 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":78:13)
#loc128 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":78:43)
#loc129 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":78:8)
#loc130 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":79:27)
#loc131 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":79:45)
#loc132 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":79:35)
#loc133 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":79:10)
#loc134 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":81:21)
#loc135 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":81:11)
#loc136 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":81:37)
#loc137 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":81:6)
#loc138 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":83:21)
#loc139 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":83:11)
#loc140 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":83:41)
#loc141 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":83:8)
#loc142 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":84:27)
#loc143 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":84:45)
#loc144 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":84:35)
#loc145 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":84:10)
#loc147 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":114:17)
#loc148 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":119:17)
#loc149 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":127:9)
#loc150 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":98:2)
#loc151 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":127:27)
#loc152 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":101:7)
#loc153 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":102:20)
#loc154 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":103:24)
#loc155 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":98:28)
#loc156 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":98:14)
#loc157 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":99:34)
#loc158 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":99:20)
#loc159 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":99:2)
#loc160 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":100:15)
#loc161 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":100:5)
#loc162 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":100:39)
#loc163 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":100:29)
#loc164 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":100:2)
#loc165 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":101:28)
#loc166 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":101:4)
#loc167 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":102:51)
#loc168 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":102:6)
#loc169 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":103:54)
#loc170 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":103:6)
#loc171 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":104:19)
#loc172 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":104:9)
#loc173 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":104:35)
#loc174 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":104:6)
#loc175 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":111:21)
#loc176 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":111:11)
#loc177 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":111:41)
#loc178 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":111:8)
#loc179 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":112:27)
#loc180 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":112:17)
#loc181 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":112:45)
#loc182 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":112:35)
#loc183 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":112:10)
#loc184 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":113:23)
#loc185 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":113:13)
#loc186 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":113:43)
#loc187 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":113:8)
#loc188 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":114:27)
#loc189 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":114:45)
#loc190 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":114:35)
#loc191 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":114:10)
#loc192 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":116:21)
#loc193 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":116:11)
#loc194 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":116:37)
#loc195 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":116:6)
#loc196 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":118:21)
#loc197 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":118:11)
#loc198 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":118:41)
#loc199 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":118:8)
#loc200 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":119:27)
#loc201 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":119:45)
#loc202 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":119:35)
#loc203 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":119:10)
#loc205 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":38:15)
#loc206 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":35:15)
#loc207 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":23:13)
#loc208 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":17:2)
#loc209 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":41:15)
#loc210 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":20:7)
#loc211 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":22:33)
#loc212 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":21:18)
#loc213 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":24:22)
#loc214 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":18:29)
#loc215 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":19:11)
#loc216 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":17:28)
#loc217 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":17:14)
#loc218 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":18:15)
#loc219 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":18:5)
#loc220 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":18:2)
#loc221 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":19:4)
#loc222 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":20:28)
#loc223 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":20:2)
#loc224 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":21:49)
#loc225 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":21:4)
#loc226 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":22:17)
#loc227 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":22:7)
#loc228 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":22:4)
#loc229 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":23:24)
#loc230 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":24:52)
#loc231 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":24:4)
#loc232 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":29:17)
#loc233 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":29:7)
#loc234 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":29:33)
#loc235 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":29:4)
#loc236 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":30:19)
#loc237 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":30:9)
#loc238 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":30:39)
#loc239 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":30:6)
#loc240 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":32:25)
#loc241 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":32:15)
#loc242 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":32:8)
#loc243 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":33:19)
#loc244 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":33:9)
#loc245 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":33:39)
#loc246 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":33:6)
#loc247 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":35:25)
#loc248 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":35:8)
#loc249 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":39:19)
#loc250 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":39:9)
#loc251 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":39:35)
#loc252 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":39:4)
#loc253 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":40:19)
#loc254 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":40:9)
#loc255 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":40:39)
#loc256 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":40:6)
#loc257 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":42:21)
#loc258 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":42:11)
#loc259 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":42:41)
#loc260 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":42:6)
#loc261 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":44:21)
#loc262 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":44:11)
#loc263 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":44:41)
#loc264 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/booleans.py":44:6)
module @module {
iree_pydm.func @main(%arg0: !iree_pydm.integer, %arg1: !iree_pydm.integer, %arg2: !iree_pydm.integer) -> (!iree_pydm.exception_result, !iree_pydm.integer) attributes {arg_names = ["a", "b", "c"], cell_vars = [], free_vars = ["a", "b", "c"]} {
%b = alloc_free_var "b" -> !iree_pydm.free_var_ref
%c = alloc_free_var "c" -> !iree_pydm.free_var_ref
%a = alloc_free_var "a" -> !iree_pydm.free_var_ref
%0 = box %arg0 : !iree_pydm.integer -> !iree_pydm.object<!iree_pydm.integer>
store_var %a = %0 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer>
%1 = box %arg1 : !iree_pydm.integer -> !iree_pydm.object<!iree_pydm.integer>
store_var %b = %1 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer>
%2 = box %arg2 : !iree_pydm.integer -> !iree_pydm.object<!iree_pydm.integer>
store_var %c = %2 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer>
%3 = load_var %a : !iree_pydm.free_var_ref -> !iree_pydm.object
%4 = load_var %b : !iree_pydm.free_var_ref -> !iree_pydm.object
%left_prime, %right_prime = dynamic_binary_promote %3, %4 : !iree_pydm.object, !iree_pydm.object
%5 = apply_binary "sub", %left_prime, %right_prime : !iree_pydm.object, !iree_pydm.object -> !iree_pydm.object
%6 = as_bool %5 : !iree_pydm.object -> !iree_pydm.bool
%7 = bool_to_pred %6
std.cond_br %7, ^bb1, ^bb2
^bb1: // pred: ^bb0
%8 = constant 3 : i64 -> !iree_pydm.integer
%9 = load_var %a : !iree_pydm.free_var_ref -> !iree_pydm.object
%left_prime_0, %right_prime_1 = dynamic_binary_promote %8, %9 : !iree_pydm.integer, !iree_pydm.object
%10 = apply_binary "mul", %left_prime_0, %right_prime_1 : !iree_pydm.object, !iree_pydm.object -> !iree_pydm.object
%11 = constant 22 : i64 -> !iree_pydm.integer
%12 = load_var %b : !iree_pydm.free_var_ref -> !iree_pydm.object
%left_prime_2, %right_prime_3 = dynamic_binary_promote %11, %12 : !iree_pydm.integer, !iree_pydm.object
%13 = apply_binary "mul", %left_prime_2, %right_prime_3 : !iree_pydm.object, !iree_pydm.object -> !iree_pydm.object
%left_prime_4, %right_prime_5 = dynamic_binary_promote %10, %13 : !iree_pydm.object, !iree_pydm.object
%14 = apply_binary "add", %left_prime_4, %right_prime_5 : !iree_pydm.object, !iree_pydm.object -> !iree_pydm.object
%exc_result, %primitive = unbox %14 : !iree_pydm.object -> !iree_pydm.integer
raise_on_failure %exc_result : !iree_pydm.exception_result
return %primitive : !iree_pydm.integer
^bb2: // pred: ^bb0
%15 = constant 4 : i64 -> !iree_pydm.integer
%16 = load_var %c : !iree_pydm.free_var_ref -> !iree_pydm.object
%left_prime_6, %right_prime_7 = dynamic_binary_promote %15, %16 : !iree_pydm.integer, !iree_pydm.object
%17 = apply_binary "mul", %left_prime_6, %right_prime_7 : !iree_pydm.object, !iree_pydm.object -> !iree_pydm.object
%exc_result_8, %primitive_9 = unbox %17 : !iree_pydm.object -> !iree_pydm.integer
raise_on_failure %exc_result_8 : !iree_pydm.exception_result
return %primitive_9 : !iree_pydm.integer
^bb3: // no predecessors
%18 = none
return %18 : !iree_pydm.none
}
}
module @module {
iree_pydm.func @main(%arg0: !iree_pydm.integer<32>, %arg1: !iree_pydm.integer<32>, %arg2: !iree_pydm.integer<32>) -> (!iree_pydm.exception_result, !iree_pydm.integer<32>) attributes {arg_names = ["a", "b", "c"], cell_vars = [], free_vars = ["a", "b", "c"]} {
%0 = constant 4 : i64 -> !iree_pydm.integer<32>
%1 = constant 22 : i64 -> !iree_pydm.integer<32>
%2 = constant 3 : i64 -> !iree_pydm.integer<32>
%b = alloc_free_var "b" -> !iree_pydm.free_var_ref
%c = alloc_free_var "c" -> !iree_pydm.free_var_ref
%a = alloc_free_var "a" -> !iree_pydm.free_var_ref
%3 = box %arg0 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %a = %3 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%4 = box %arg1 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %b = %4 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%5 = box %arg2 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %c = %5 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%6 = load_var %a : !iree_pydm.free_var_ref -> !iree_pydm.object
%7 = load_var %b : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result, %result = call @pydmrtl$dynamic_binary_promote(%6, %7) : (!iree_pydm.object, !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.tuple)
raise_on_failure %exc_result : !iree_pydm.exception_result
%exc_result_0, %slots:2 = dynamic_unpack %result : !iree_pydm.tuple -> !iree_pydm.exception_result, [!iree_pydm.object, !iree_pydm.object]
raise_on_failure %exc_result_0 : !iree_pydm.exception_result
%exc_result_1, %result_2 = call @pydmrtl$apply_binary_sub(%slots#0, %slots#1) : (!iree_pydm.object, !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.object)
raise_on_failure %exc_result_1 : !iree_pydm.exception_result
%exc_result_3, %result_4 = call @pydmrtl$object_as_bool(%result_2) : (!iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.bool)
raise_on_failure %exc_result_3 : !iree_pydm.exception_result
%8 = bool_to_pred %result_4
std.cond_br %8, ^bb1, ^bb2
^bb1: // pred: ^bb0
%9 = load_var %a : !iree_pydm.free_var_ref -> !iree_pydm.object
%10 = box %2 : !iree_pydm.integer<32> -> !iree_pydm.object
%exc_result_5, %result_6 = call @pydmrtl$dynamic_binary_promote(%10, %9) : (!iree_pydm.object, !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.tuple)
raise_on_failure %exc_result_5 : !iree_pydm.exception_result
%exc_result_7, %slots_8:2 = dynamic_unpack %result_6 : !iree_pydm.tuple -> !iree_pydm.exception_result, [!iree_pydm.object, !iree_pydm.object]
raise_on_failure %exc_result_7 : !iree_pydm.exception_result
%exc_result_9, %result_10 = call @pydmrtl$apply_binary_mul(%slots_8#0, %slots_8#1) : (!iree_pydm.object, !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.object)
raise_on_failure %exc_result_9 : !iree_pydm.exception_result
%11 = load_var %b : !iree_pydm.free_var_ref -> !iree_pydm.object
%12 = box %1 : !iree_pydm.integer<32> -> !iree_pydm.object
%exc_result_11, %result_12 = call @pydmrtl$dynamic_binary_promote(%12, %11) : (!iree_pydm.object, !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.tuple)
raise_on_failure %exc_result_11 : !iree_pydm.exception_result
%exc_result_13, %slots_14:2 = dynamic_unpack %result_12 : !iree_pydm.tuple -> !iree_pydm.exception_result, [!iree_pydm.object, !iree_pydm.object]
raise_on_failure %exc_result_13 : !iree_pydm.exception_result
%exc_result_15, %result_16 = call @pydmrtl$apply_binary_mul(%slots_14#0, %slots_14#1) : (!iree_pydm.object, !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.object)
raise_on_failure %exc_result_15 : !iree_pydm.exception_result
%exc_result_17, %result_18 = call @pydmrtl$dynamic_binary_promote(%result_10, %result_16) : (!iree_pydm.object, !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.tuple)
raise_on_failure %exc_result_17 : !iree_pydm.exception_result
%exc_result_19, %slots_20:2 = dynamic_unpack %result_18 : !iree_pydm.tuple -> !iree_pydm.exception_result, [!iree_pydm.object, !iree_pydm.object]
raise_on_failure %exc_result_19 : !iree_pydm.exception_result
%exc_result_21, %result_22 = call @pydmrtl$apply_binary_add(%slots_20#0, %slots_20#1) : (!iree_pydm.object, !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.object)
raise_on_failure %exc_result_21 : !iree_pydm.exception_result
%exc_result_23, %primitive = unbox %result_22 : !iree_pydm.object -> !iree_pydm.integer<32>
raise_on_failure %exc_result_23 : !iree_pydm.exception_result
return %primitive : !iree_pydm.integer<32>
^bb2: // pred: ^bb0
%13 = load_var %c : !iree_pydm.free_var_ref -> !iree_pydm.object
%14 = box %0 : !iree_pydm.integer<32> -> !iree_pydm.object
%exc_result_24, %result_25 = call @pydmrtl$dynamic_binary_promote(%14, %13) : (!iree_pydm.object, !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.tuple)
raise_on_failure %exc_result_24 : !iree_pydm.exception_result
%exc_result_26, %slots_27:2 = dynamic_unpack %result_25 : !iree_pydm.tuple -> !iree_pydm.exception_result, [!iree_pydm.object, !iree_pydm.object]
raise_on_failure %exc_result_26 : !iree_pydm.exception_result
%exc_result_28, %result_29 = call @pydmrtl$apply_binary_mul(%slots_27#0, %slots_27#1) : (!iree_pydm.object, !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.object)
raise_on_failure %exc_result_28 : !iree_pydm.exception_result
%exc_result_30, %primitive_31 = unbox %result_29 : !iree_pydm.object -> !iree_pydm.integer<32>
raise_on_failure %exc_result_30 : !iree_pydm.exception_result
return %primitive_31 : !iree_pydm.integer<32>
}
iree_pydm.func private @pydmrtl$dynamic_binary_promote(%arg0: !iree_pydm.object, %arg1: !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.tuple) attributes {arg_names = ["left", "right"], cell_vars = [], free_vars = ["left", "right", "left_type_code", "right_type_code"]} {
%0 = constant 6 : i32 -> !iree_pydm.integer<32>
%1 = constant 1 : i32 -> !iree_pydm.integer<32>
%right = alloc_free_var "right" -> !iree_pydm.free_var_ref
%left = alloc_free_var "left" -> !iree_pydm.free_var_ref
%right_type_code = alloc_free_var "right_type_code" -> !iree_pydm.free_var_ref
%left_type_code = alloc_free_var "left_type_code" -> !iree_pydm.free_var_ref
store_var %left = %arg0 : !iree_pydm.free_var_ref, !iree_pydm.object
store_var %right = %arg1 : !iree_pydm.free_var_ref, !iree_pydm.object
%2 = load_var %left : !iree_pydm.free_var_ref -> !iree_pydm.object
%3 = get_type_code %2 : !iree_pydm.object -> !iree_pydm.integer<32>
%4 = box %3 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %left_type_code = %4 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%5 = load_var %right : !iree_pydm.free_var_ref -> !iree_pydm.object
%6 = get_type_code %5 : !iree_pydm.object -> !iree_pydm.integer<32>
%7 = box %6 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %right_type_code = %7 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%8 = load_var %left_type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result, %primitive = unbox %8 : !iree_pydm.object -> !iree_pydm.integer<32>
%9 = apply_binary "rshift", %primitive, %0 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%10 = apply_compare "eq", %9, %1 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%11 = bool_to_pred %10
std.cond_br %11, ^bb1, ^bb3
^bb1: // pred: ^bb0
%12 = load_var %right_type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_0, %primitive_1 = unbox %12 : !iree_pydm.object -> !iree_pydm.integer<32>
%13 = apply_binary "rshift", %primitive_1, %0 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%14 = apply_compare "eq", %13, %1 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%15 = bool_to_pred %14
std.cond_br %15, ^bb2, ^bb3
^bb2: // pred: ^bb1
%16 = load_var %left : !iree_pydm.free_var_ref -> !iree_pydm.object
%17 = load_var %right : !iree_pydm.free_var_ref -> !iree_pydm.object
%18 = make_tuple %16, %17 : !iree_pydm.object, !iree_pydm.object -> !iree_pydm.tuple
return %18 : !iree_pydm.tuple
^bb3: // 2 preds: ^bb0, ^bb1
%19 = make_tuple -> !iree_pydm.tuple
%20 = failure -> !iree_pydm.exception_result
raise_on_failure %20 : !iree_pydm.exception_result
return %19 : !iree_pydm.tuple
}
iree_pydm.func private @pydmrtl$apply_binary_add(%arg0: !iree_pydm.object, %arg1: !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.object) attributes {arg_names = ["left", "right"], cell_vars = [], free_vars = ["left", "right", "type_code", "right_type_code", "numeric_cat", "numeric_subtype"]} {
%0 = constant 6 : i32 -> !iree_pydm.integer<32>
%1 = constant 1 : i32 -> !iree_pydm.integer<32>
%2 = constant 60 : i32 -> !iree_pydm.integer<32>
%3 = constant 2 : i32 -> !iree_pydm.integer<32>
%4 = constant 3 : i32 -> !iree_pydm.integer<32>
%5 = constant 3 : i64 -> !iree_pydm.integer<32>
%6 = constant 2 : i64 -> !iree_pydm.integer<32>
%7 = constant 6 : i64 -> !iree_pydm.integer<32>
%8 = constant 0 : i64 -> !iree_pydm.integer<32>
%right = alloc_free_var "right" -> !iree_pydm.free_var_ref
%left = alloc_free_var "left" -> !iree_pydm.free_var_ref
%type_code = alloc_free_var "type_code" -> !iree_pydm.free_var_ref
%numeric_cat = alloc_free_var "numeric_cat" -> !iree_pydm.free_var_ref
%numeric_subtype = alloc_free_var "numeric_subtype" -> !iree_pydm.free_var_ref
%right_type_code = alloc_free_var "right_type_code" -> !iree_pydm.free_var_ref
store_var %left = %arg0 : !iree_pydm.free_var_ref, !iree_pydm.object
store_var %right = %arg1 : !iree_pydm.free_var_ref, !iree_pydm.object
%9 = load_var %left : !iree_pydm.free_var_ref -> !iree_pydm.object
%10 = get_type_code %9 : !iree_pydm.object -> !iree_pydm.integer<32>
%11 = box %10 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %type_code = %11 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%12 = load_var %right : !iree_pydm.free_var_ref -> !iree_pydm.object
%13 = get_type_code %12 : !iree_pydm.object -> !iree_pydm.integer<32>
%14 = box %13 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %right_type_code = %14 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%15 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result, %primitive = unbox %15 : !iree_pydm.object -> !iree_pydm.integer<32>
%16 = load_var %right_type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_0, %primitive_1 = unbox %16 : !iree_pydm.object -> !iree_pydm.integer<32>
%17 = apply_compare "eq", %primitive, %primitive_1 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%18 = bool_to_pred %17
std.cond_br %18, ^bb1, ^bb10
^bb1: // pred: ^bb0
%19 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_2, %primitive_3 = unbox %19 : !iree_pydm.object -> !iree_pydm.integer<32>
%20 = apply_binary "rshift", %primitive_3, %0 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%21 = apply_compare "eq", %20, %1 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%22 = bool_to_pred %21
std.cond_br %22, ^bb2, ^bb10
^bb2: // pred: ^bb1
%23 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_4, %primitive_5 = unbox %23 : !iree_pydm.object -> !iree_pydm.integer<32>
%24 = apply_binary "and", %primitive_5, %2 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%25 = apply_binary "rshift", %24, %3 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%26 = box %25 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %numeric_cat = %26 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%27 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_6, %primitive_7 = unbox %27 : !iree_pydm.object -> !iree_pydm.integer<32>
%28 = apply_binary "and", %primitive_7, %4 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%29 = box %28 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %numeric_subtype = %29 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%30 = load_var %numeric_cat : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_8, %primitive_9 = unbox %30 : !iree_pydm.object -> !iree_pydm.integer<32>
%31 = apply_compare "le", %primitive_9, %5 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%32 = bool_to_pred %31
std.cond_br %32, ^bb3, ^bb7
^bb3: // pred: ^bb2
%33 = load_var %numeric_subtype : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_10, %primitive_11 = unbox %33 : !iree_pydm.object -> !iree_pydm.integer<32>
%34 = apply_compare "eq", %primitive_11, %6 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%35 = bool_to_pred %34
std.cond_br %35, ^bb4, ^bb5
^bb4: // pred: ^bb3
%36 = load_var %left : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_12, %primitive_13 = unbox %36 : !iree_pydm.object -> !iree_pydm.integer<32>
%37 = load_var %right : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_14, %primitive_15 = unbox %37 : !iree_pydm.object -> !iree_pydm.integer<32>
%38 = apply_binary "add", %primitive_13, %primitive_15 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%39 = box %38 : !iree_pydm.integer<32> -> !iree_pydm.object
return %39 : !iree_pydm.object
^bb5: // pred: ^bb3
%40 = load_var %numeric_subtype : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_16, %primitive_17 = unbox %40 : !iree_pydm.object -> !iree_pydm.integer<32>
%41 = apply_compare "eq", %primitive_17, %5 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%42 = bool_to_pred %41
std.cond_br %42, ^bb6, ^bb10
^bb6: // pred: ^bb5
%43 = load_var %left : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_18, %primitive_19 = unbox %43 : !iree_pydm.object -> !iree_pydm.integer<64>
%44 = load_var %right : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_20, %primitive_21 = unbox %44 : !iree_pydm.object -> !iree_pydm.integer<64>
%45 = apply_binary "add", %primitive_19, %primitive_21 : !iree_pydm.integer<64>, !iree_pydm.integer<64> -> !iree_pydm.integer<64>
%46 = box %45 : !iree_pydm.integer<64> -> !iree_pydm.object
return %46 : !iree_pydm.object
^bb7: // pred: ^bb2
%47 = load_var %numeric_cat : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_22, %primitive_23 = unbox %47 : !iree_pydm.object -> !iree_pydm.integer<32>
%48 = apply_compare "eq", %primitive_23, %7 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%49 = bool_to_pred %48
std.cond_br %49, ^bb8, ^bb10
^bb8: // pred: ^bb7
%50 = load_var %numeric_subtype : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_24, %primitive_25 = unbox %50 : !iree_pydm.object -> !iree_pydm.integer<32>
%51 = apply_compare "eq", %primitive_25, %6 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%52 = bool_to_pred %51
std.cond_br %52, ^bb9, ^bb10
^bb9: // pred: ^bb8
%53 = load_var %left : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_26, %primitive_27 = unbox %53 : !iree_pydm.object -> !iree_pydm.real<f32>
%54 = load_var %right : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_28, %primitive_29 = unbox %54 : !iree_pydm.object -> !iree_pydm.real<f32>
%55 = apply_binary "add", %primitive_27, %primitive_29 : !iree_pydm.real<f32>, !iree_pydm.real<f32> -> !iree_pydm.real<f32>
%56 = box %55 : !iree_pydm.real<f32> -> !iree_pydm.object
return %56 : !iree_pydm.object
^bb10: // 5 preds: ^bb0, ^bb1, ^bb5, ^bb7, ^bb8
%57 = failure -> !iree_pydm.exception_result
raise_on_failure %57 : !iree_pydm.exception_result
%58 = box %8 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
return %58 : !iree_pydm.object<!iree_pydm.integer<32>>
}
iree_pydm.func private @pydmrtl$apply_binary_sub(%arg0: !iree_pydm.object, %arg1: !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.object) attributes {arg_names = ["left", "right"], cell_vars = [], free_vars = ["left", "right", "type_code", "right_type_code", "numeric_cat", "numeric_subtype"]} {
%0 = constant 6 : i32 -> !iree_pydm.integer<32>
%1 = constant 1 : i32 -> !iree_pydm.integer<32>
%2 = constant 60 : i32 -> !iree_pydm.integer<32>
%3 = constant 2 : i32 -> !iree_pydm.integer<32>
%4 = constant 3 : i32 -> !iree_pydm.integer<32>
%5 = constant 3 : i64 -> !iree_pydm.integer<32>
%6 = constant 2 : i64 -> !iree_pydm.integer<32>
%7 = constant 6 : i64 -> !iree_pydm.integer<32>
%8 = constant 0 : i64 -> !iree_pydm.integer<32>
%right = alloc_free_var "right" -> !iree_pydm.free_var_ref
%left = alloc_free_var "left" -> !iree_pydm.free_var_ref
%type_code = alloc_free_var "type_code" -> !iree_pydm.free_var_ref
%numeric_cat = alloc_free_var "numeric_cat" -> !iree_pydm.free_var_ref
%numeric_subtype = alloc_free_var "numeric_subtype" -> !iree_pydm.free_var_ref
%right_type_code = alloc_free_var "right_type_code" -> !iree_pydm.free_var_ref
store_var %left = %arg0 : !iree_pydm.free_var_ref, !iree_pydm.object
store_var %right = %arg1 : !iree_pydm.free_var_ref, !iree_pydm.object
%9 = load_var %left : !iree_pydm.free_var_ref -> !iree_pydm.object
%10 = get_type_code %9 : !iree_pydm.object -> !iree_pydm.integer<32>
%11 = box %10 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %type_code = %11 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%12 = load_var %right : !iree_pydm.free_var_ref -> !iree_pydm.object
%13 = get_type_code %12 : !iree_pydm.object -> !iree_pydm.integer<32>
%14 = box %13 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %right_type_code = %14 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%15 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result, %primitive = unbox %15 : !iree_pydm.object -> !iree_pydm.integer<32>
%16 = load_var %right_type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_0, %primitive_1 = unbox %16 : !iree_pydm.object -> !iree_pydm.integer<32>
%17 = apply_compare "eq", %primitive, %primitive_1 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%18 = bool_to_pred %17
std.cond_br %18, ^bb1, ^bb10
^bb1: // pred: ^bb0
%19 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_2, %primitive_3 = unbox %19 : !iree_pydm.object -> !iree_pydm.integer<32>
%20 = apply_binary "rshift", %primitive_3, %0 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%21 = apply_compare "eq", %20, %1 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%22 = bool_to_pred %21
std.cond_br %22, ^bb2, ^bb10
^bb2: // pred: ^bb1
%23 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_4, %primitive_5 = unbox %23 : !iree_pydm.object -> !iree_pydm.integer<32>
%24 = apply_binary "and", %primitive_5, %2 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%25 = apply_binary "rshift", %24, %3 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%26 = box %25 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %numeric_cat = %26 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%27 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_6, %primitive_7 = unbox %27 : !iree_pydm.object -> !iree_pydm.integer<32>
%28 = apply_binary "and", %primitive_7, %4 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%29 = box %28 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %numeric_subtype = %29 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%30 = load_var %numeric_cat : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_8, %primitive_9 = unbox %30 : !iree_pydm.object -> !iree_pydm.integer<32>
%31 = apply_compare "le", %primitive_9, %5 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%32 = bool_to_pred %31
std.cond_br %32, ^bb3, ^bb7
^bb3: // pred: ^bb2
%33 = load_var %numeric_subtype : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_10, %primitive_11 = unbox %33 : !iree_pydm.object -> !iree_pydm.integer<32>
%34 = apply_compare "eq", %primitive_11, %6 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%35 = bool_to_pred %34
std.cond_br %35, ^bb4, ^bb5
^bb4: // pred: ^bb3
%36 = load_var %left : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_12, %primitive_13 = unbox %36 : !iree_pydm.object -> !iree_pydm.integer<32>
%37 = load_var %right : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_14, %primitive_15 = unbox %37 : !iree_pydm.object -> !iree_pydm.integer<32>
%38 = apply_binary "sub", %primitive_13, %primitive_15 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%39 = box %38 : !iree_pydm.integer<32> -> !iree_pydm.object
return %39 : !iree_pydm.object
^bb5: // pred: ^bb3
%40 = load_var %numeric_subtype : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_16, %primitive_17 = unbox %40 : !iree_pydm.object -> !iree_pydm.integer<32>
%41 = apply_compare "eq", %primitive_17, %5 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%42 = bool_to_pred %41
std.cond_br %42, ^bb6, ^bb10
^bb6: // pred: ^bb5
%43 = load_var %left : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_18, %primitive_19 = unbox %43 : !iree_pydm.object -> !iree_pydm.integer<64>
%44 = load_var %right : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_20, %primitive_21 = unbox %44 : !iree_pydm.object -> !iree_pydm.integer<64>
%45 = apply_binary "sub", %primitive_19, %primitive_21 : !iree_pydm.integer<64>, !iree_pydm.integer<64> -> !iree_pydm.integer<64>
%46 = box %45 : !iree_pydm.integer<64> -> !iree_pydm.object
return %46 : !iree_pydm.object
^bb7: // pred: ^bb2
%47 = load_var %numeric_cat : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_22, %primitive_23 = unbox %47 : !iree_pydm.object -> !iree_pydm.integer<32>
%48 = apply_compare "eq", %primitive_23, %7 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%49 = bool_to_pred %48
std.cond_br %49, ^bb8, ^bb10
^bb8: // pred: ^bb7
%50 = load_var %numeric_subtype : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_24, %primitive_25 = unbox %50 : !iree_pydm.object -> !iree_pydm.integer<32>
%51 = apply_compare "eq", %primitive_25, %6 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%52 = bool_to_pred %51
std.cond_br %52, ^bb9, ^bb10
^bb9: // pred: ^bb8
%53 = load_var %left : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_26, %primitive_27 = unbox %53 : !iree_pydm.object -> !iree_pydm.real<f32>
%54 = load_var %right : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_28, %primitive_29 = unbox %54 : !iree_pydm.object -> !iree_pydm.real<f32>
%55 = apply_binary "sub", %primitive_27, %primitive_29 : !iree_pydm.real<f32>, !iree_pydm.real<f32> -> !iree_pydm.real<f32>
%56 = box %55 : !iree_pydm.real<f32> -> !iree_pydm.object
return %56 : !iree_pydm.object
^bb10: // 5 preds: ^bb0, ^bb1, ^bb5, ^bb7, ^bb8
%57 = failure -> !iree_pydm.exception_result
raise_on_failure %57 : !iree_pydm.exception_result
%58 = box %8 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
return %58 : !iree_pydm.object<!iree_pydm.integer<32>>
}
iree_pydm.func private @pydmrtl$apply_binary_mul(%arg0: !iree_pydm.object, %arg1: !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.object) attributes {arg_names = ["left", "right"], cell_vars = [], free_vars = ["left", "right", "type_code", "right_type_code", "numeric_cat", "numeric_subtype"]} {
%0 = constant 6 : i32 -> !iree_pydm.integer<32>
%1 = constant 1 : i32 -> !iree_pydm.integer<32>
%2 = constant 60 : i32 -> !iree_pydm.integer<32>
%3 = constant 2 : i32 -> !iree_pydm.integer<32>
%4 = constant 3 : i32 -> !iree_pydm.integer<32>
%5 = constant 3 : i64 -> !iree_pydm.integer<32>
%6 = constant 2 : i64 -> !iree_pydm.integer<32>
%7 = constant 6 : i64 -> !iree_pydm.integer<32>
%8 = constant 0 : i64 -> !iree_pydm.integer<32>
%right = alloc_free_var "right" -> !iree_pydm.free_var_ref
%left = alloc_free_var "left" -> !iree_pydm.free_var_ref
%type_code = alloc_free_var "type_code" -> !iree_pydm.free_var_ref
%numeric_cat = alloc_free_var "numeric_cat" -> !iree_pydm.free_var_ref
%numeric_subtype = alloc_free_var "numeric_subtype" -> !iree_pydm.free_var_ref
%right_type_code = alloc_free_var "right_type_code" -> !iree_pydm.free_var_ref
store_var %left = %arg0 : !iree_pydm.free_var_ref, !iree_pydm.object
store_var %right = %arg1 : !iree_pydm.free_var_ref, !iree_pydm.object
%9 = load_var %left : !iree_pydm.free_var_ref -> !iree_pydm.object
%10 = get_type_code %9 : !iree_pydm.object -> !iree_pydm.integer<32>
%11 = box %10 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %type_code = %11 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%12 = load_var %right : !iree_pydm.free_var_ref -> !iree_pydm.object
%13 = get_type_code %12 : !iree_pydm.object -> !iree_pydm.integer<32>
%14 = box %13 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %right_type_code = %14 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%15 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result, %primitive = unbox %15 : !iree_pydm.object -> !iree_pydm.integer<32>
%16 = load_var %right_type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_0, %primitive_1 = unbox %16 : !iree_pydm.object -> !iree_pydm.integer<32>
%17 = apply_compare "eq", %primitive, %primitive_1 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%18 = bool_to_pred %17
std.cond_br %18, ^bb1, ^bb10
^bb1: // pred: ^bb0
%19 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_2, %primitive_3 = unbox %19 : !iree_pydm.object -> !iree_pydm.integer<32>
%20 = apply_binary "rshift", %primitive_3, %0 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%21 = apply_compare "eq", %20, %1 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%22 = bool_to_pred %21
std.cond_br %22, ^bb2, ^bb10
^bb2: // pred: ^bb1
%23 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_4, %primitive_5 = unbox %23 : !iree_pydm.object -> !iree_pydm.integer<32>
%24 = apply_binary "and", %primitive_5, %2 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%25 = apply_binary "rshift", %24, %3 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%26 = box %25 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %numeric_cat = %26 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%27 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_6, %primitive_7 = unbox %27 : !iree_pydm.object -> !iree_pydm.integer<32>
%28 = apply_binary "and", %primitive_7, %4 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%29 = box %28 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %numeric_subtype = %29 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%30 = load_var %numeric_cat : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_8, %primitive_9 = unbox %30 : !iree_pydm.object -> !iree_pydm.integer<32>
%31 = apply_compare "le", %primitive_9, %5 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%32 = bool_to_pred %31
std.cond_br %32, ^bb3, ^bb7
^bb3: // pred: ^bb2
%33 = load_var %numeric_subtype : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_10, %primitive_11 = unbox %33 : !iree_pydm.object -> !iree_pydm.integer<32>
%34 = apply_compare "eq", %primitive_11, %6 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%35 = bool_to_pred %34
std.cond_br %35, ^bb4, ^bb5
^bb4: // pred: ^bb3
%36 = load_var %left : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_12, %primitive_13 = unbox %36 : !iree_pydm.object -> !iree_pydm.integer<32>
%37 = load_var %right : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_14, %primitive_15 = unbox %37 : !iree_pydm.object -> !iree_pydm.integer<32>
%38 = apply_binary "mul", %primitive_13, %primitive_15 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%39 = box %38 : !iree_pydm.integer<32> -> !iree_pydm.object
return %39 : !iree_pydm.object
^bb5: // pred: ^bb3
%40 = load_var %numeric_subtype : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_16, %primitive_17 = unbox %40 : !iree_pydm.object -> !iree_pydm.integer<32>
%41 = apply_compare "eq", %primitive_17, %5 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%42 = bool_to_pred %41
std.cond_br %42, ^bb6, ^bb10
^bb6: // pred: ^bb5
%43 = load_var %left : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_18, %primitive_19 = unbox %43 : !iree_pydm.object -> !iree_pydm.integer<64>
%44 = load_var %right : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_20, %primitive_21 = unbox %44 : !iree_pydm.object -> !iree_pydm.integer<64>
%45 = apply_binary "mul", %primitive_19, %primitive_21 : !iree_pydm.integer<64>, !iree_pydm.integer<64> -> !iree_pydm.integer<64>
%46 = box %45 : !iree_pydm.integer<64> -> !iree_pydm.object
return %46 : !iree_pydm.object
^bb7: // pred: ^bb2
%47 = load_var %numeric_cat : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_22, %primitive_23 = unbox %47 : !iree_pydm.object -> !iree_pydm.integer<32>
%48 = apply_compare "eq", %primitive_23, %7 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%49 = bool_to_pred %48
std.cond_br %49, ^bb8, ^bb10
^bb8: // pred: ^bb7
%50 = load_var %numeric_subtype : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_24, %primitive_25 = unbox %50 : !iree_pydm.object -> !iree_pydm.integer<32>
%51 = apply_compare "eq", %primitive_25, %6 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%52 = bool_to_pred %51
std.cond_br %52, ^bb9, ^bb10
^bb9: // pred: ^bb8
%53 = load_var %left : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_26, %primitive_27 = unbox %53 : !iree_pydm.object -> !iree_pydm.real<f32>
%54 = load_var %right : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_28, %primitive_29 = unbox %54 : !iree_pydm.object -> !iree_pydm.real<f32>
%55 = apply_binary "mul", %primitive_27, %primitive_29 : !iree_pydm.real<f32>, !iree_pydm.real<f32> -> !iree_pydm.real<f32>
%56 = box %55 : !iree_pydm.real<f32> -> !iree_pydm.object
return %56 : !iree_pydm.object
^bb10: // 5 preds: ^bb0, ^bb1, ^bb5, ^bb7, ^bb8
%57 = failure -> !iree_pydm.exception_result
raise_on_failure %57 : !iree_pydm.exception_result
%58 = box %8 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
return %58 : !iree_pydm.object<!iree_pydm.integer<32>>
}
iree_pydm.func private @pydmrtl$object_as_bool(%arg0: !iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.bool) attributes {arg_names = ["v"], cell_vars = [], free_vars = ["v", "type_code", "numeric_cat", "numeric_subtype"]} {
%0 = constant 1 : i64 -> !iree_pydm.integer<32>
%1 = constant false -> !iree_pydm.bool
%2 = constant 6 : i32 -> !iree_pydm.integer<32>
%3 = constant 1 : i32 -> !iree_pydm.integer<32>
%4 = constant 60 : i32 -> !iree_pydm.integer<32>
%5 = constant 2 : i32 -> !iree_pydm.integer<32>
%6 = constant 0 : i64 -> !iree_pydm.integer<32>
%7 = constant 3 : i32 -> !iree_pydm.integer<32>
%8 = constant 3 : i64 -> !iree_pydm.integer<32>
%9 = constant 2 : i64 -> !iree_pydm.integer<32>
%10 = constant 0 : i32 -> !iree_pydm.integer<32>
%11 = constant 0 : i64 -> !iree_pydm.integer<64>
%12 = constant 6 : i64 -> !iree_pydm.integer<32>
%13 = constant true -> !iree_pydm.bool
%type_code = alloc_free_var "type_code" -> !iree_pydm.free_var_ref
%numeric_subtype = alloc_free_var "numeric_subtype" -> !iree_pydm.free_var_ref
%v = alloc_free_var "v" -> !iree_pydm.free_var_ref
%numeric_cat = alloc_free_var "numeric_cat" -> !iree_pydm.free_var_ref
store_var %v = %arg0 : !iree_pydm.free_var_ref, !iree_pydm.object
%14 = load_var %v : !iree_pydm.free_var_ref -> !iree_pydm.object
%15 = get_type_code %14 : !iree_pydm.object -> !iree_pydm.integer<32>
%16 = box %15 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %type_code = %16 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%17 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result, %primitive = unbox %17 : !iree_pydm.object -> !iree_pydm.integer<32>
%18 = apply_compare "eq", %primitive, %0 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%19 = bool_to_pred %18
std.cond_br %19, ^bb1(%1 : !iree_pydm.bool), ^bb2
^bb1(%20: !iree_pydm.bool): // 4 preds: ^bb0, ^bb12, ^bb13, ^bb14
return %20 : !iree_pydm.bool
^bb2: // pred: ^bb0
%21 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_0, %primitive_1 = unbox %21 : !iree_pydm.object -> !iree_pydm.integer<32>
%22 = apply_binary "rshift", %primitive_1, %2 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%23 = apply_compare "eq", %22, %3 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%24 = bool_to_pred %23
std.cond_br %24, ^bb3, ^bb10
^bb3: // pred: ^bb2
%25 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_2, %primitive_3 = unbox %25 : !iree_pydm.object -> !iree_pydm.integer<32>
%26 = apply_binary "and", %primitive_3, %4 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%27 = apply_binary "rshift", %26, %5 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%28 = box %27 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %numeric_cat = %28 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%29 = load_var %numeric_cat : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_4, %primitive_5 = unbox %29 : !iree_pydm.object -> !iree_pydm.integer<32>
%30 = apply_compare "eq", %primitive_5, %6 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%31 = bool_to_pred %30
std.cond_br %31, ^bb4, ^bb5
^bb4: // pred: ^bb3
%32 = load_var %v : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_6, %primitive_7 = unbox %32 : !iree_pydm.object -> !iree_pydm.bool
return %primitive_7 : !iree_pydm.bool
^bb5: // pred: ^bb3
%33 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_8, %primitive_9 = unbox %33 : !iree_pydm.object -> !iree_pydm.integer<32>
%34 = apply_binary "and", %primitive_9, %7 : !iree_pydm.integer<32>, !iree_pydm.integer<32> -> !iree_pydm.integer<32>
%35 = box %34 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>>
store_var %numeric_subtype = %35 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>>
%36 = load_var %numeric_cat : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_10, %primitive_11 = unbox %36 : !iree_pydm.object -> !iree_pydm.integer<32>
%37 = apply_compare "eq", %primitive_11, %8 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%38 = bool_to_pred %37
std.cond_br %38, ^bb6, ^bb11
^bb6: // pred: ^bb5
%39 = load_var %numeric_subtype : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_12, %primitive_13 = unbox %39 : !iree_pydm.object -> !iree_pydm.integer<32>
%40 = apply_compare "eq", %primitive_13, %9 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%41 = bool_to_pred %40
std.cond_br %41, ^bb7, ^bb8
^bb7: // pred: ^bb6
%42 = load_var %v : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_14, %primitive_15 = unbox %42 : !iree_pydm.object -> !iree_pydm.integer<32>
%43 = apply_compare "ne", %primitive_15, %10 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
return %43 : !iree_pydm.bool
^bb8: // pred: ^bb6
%44 = load_var %numeric_subtype : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_16, %primitive_17 = unbox %44 : !iree_pydm.object -> !iree_pydm.integer<32>
%45 = apply_compare "eq", %primitive_17, %8 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%46 = bool_to_pred %45
std.cond_br %46, ^bb9, ^bb10
^bb9: // pred: ^bb8
%47 = load_var %v : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_18, %primitive_19 = unbox %47 : !iree_pydm.object -> !iree_pydm.integer<64>
%48 = apply_compare "ne", %primitive_19, %11 : !iree_pydm.integer<64>, !iree_pydm.integer<64>
return %48 : !iree_pydm.bool
^bb10: // 4 preds: ^bb2, ^bb8, ^bb11, ^bb14
%49 = failure -> !iree_pydm.exception_result
raise_on_failure %49 : !iree_pydm.exception_result
return %1 : !iree_pydm.bool
^bb11: // pred: ^bb5
%50 = load_var %numeric_cat : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_20, %primitive_21 = unbox %50 : !iree_pydm.object -> !iree_pydm.integer<32>
%51 = apply_compare "eq", %primitive_21, %12 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%52 = bool_to_pred %51
std.cond_br %52, ^bb12, ^bb10
^bb12: // pred: ^bb11
%53 = load_var %numeric_subtype : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_22, %primitive_23 = unbox %53 : !iree_pydm.object -> !iree_pydm.integer<32>
%54 = apply_compare "eq", %primitive_23, %9 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%55 = bool_to_pred %54
std.cond_br %55, ^bb1(%13 : !iree_pydm.bool), ^bb13
^bb13: // pred: ^bb12
%56 = load_var %numeric_subtype : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_24, %primitive_25 = unbox %56 : !iree_pydm.object -> !iree_pydm.integer<32>
%57 = apply_compare "eq", %primitive_25, %8 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%58 = bool_to_pred %57
std.cond_br %58, ^bb1(%13 : !iree_pydm.bool), ^bb14
^bb14: // pred: ^bb13
%59 = load_var %numeric_subtype : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_26, %primitive_27 = unbox %59 : !iree_pydm.object -> !iree_pydm.integer<32>
%60 = apply_compare "eq", %primitive_27, %6 : !iree_pydm.integer<32>, !iree_pydm.integer<32>
%61 = bool_to_pred %60
std.cond_br %61, ^bb1(%13 : !iree_pydm.bool), ^bb10
}
}
def test_int_arithmetic(self):
@jit(debug=True)
def compute(a: int, b: int, c: int) -> int:
if a - b:
return 3 * a + 22 * b
else:
return 4 * c
self.assertEqual(103, compute(5, 4, 10))
self.assertEqual(40, compute(4, 4, 10))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment