Skip to content

Instantly share code, notes, and snippets.

@stellaraccident
Last active October 29, 2021 04:35
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/ce5de391c470d6f8312f21dbcb271523 to your computer and use it in GitHub Desktop.
Save stellaraccident/ce5de391c470d6f8312f21dbcb271523 to your computer and use it in GitHub Desktop.
IREE Fibonacci
module @module {
func @main(%arg0: i32 loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0)) -> (i32, i32) {
%c-4_i32 = arith.constant -4 : i32 loc(#loc2)
%c0_i32 = arith.constant 0 : i32 loc(#loc2)
%c1 = arith.constant 1 : index loc(#loc1)
%c78_i32 = arith.constant 78 : i32 loc(#loc1)
%c0 = arith.constant 0 : index loc(#loc1)
%c2 = arith.constant 2 : index loc(#loc1)
%c256_i32 = arith.constant 256 : i32 loc(#loc1)
%c1_i32 = arith.constant 1 : i32 loc(#loc3)
%c2_i32 = arith.constant 2 : i32 loc(#loc4)
%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)
%4 = iree.list.create : !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], %arg0 : !iree.list<!iree.variant>, i32 loc(#loc1)
iree.list.resize %4, %c2 : !iree.list<!iree.variant> loc(#loc1)
iree.list.set %4[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc1)
iree.list.set %4[%c1], %5 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc1)
%6 = iree.list.create : !iree.list<!iree.variant> loc(#loc5)
iree.list.resize %6, %c2 : !iree.list<!iree.variant> loc(#loc5)
iree.list.set %6[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc5)
iree.list.set %6[%c1], %c0_i32 : !iree.list<!iree.variant>, i32 loc(#loc5)
iree.list.resize %1, %c2 : !iree.list<!iree.variant> loc(#loc5)
iree.list.set %1[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc5)
iree.list.set %1[%c1], %6 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc5)
%7 = iree.list.create : !iree.list<!iree.variant> loc(#loc6)
iree.list.resize %7, %c2 : !iree.list<!iree.variant> loc(#loc6)
iree.list.set %7[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc6)
iree.list.set %7[%c1], %c1_i32 : !iree.list<!iree.variant>, i32 loc(#loc6)
iree.list.resize %0, %c2 : !iree.list<!iree.variant> loc(#loc6)
iree.list.set %0[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc6)
iree.list.set %0[%c1], %7 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc6)
%8 = iree.list.get %4[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc7)
%9 = iree.list.create : !iree.list<!iree.variant> loc(#loc2)
iree.list.resize %9, %c2 : !iree.list<!iree.variant> loc(#loc2)
iree.list.set %9[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc2)
iree.list.set %9[%c1], %c0_i32 : !iree.list<!iree.variant>, i32 loc(#loc2)
%10:2 = call @pydmrtl$dynamic_binary_promote(%8, %9) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, !iree.list<!iree.variant>) loc(#loc2)
%11 = arith.cmpi eq, %c0_i32, %10#0 : i32 loc(#loc2)
cond_br %11, ^bb1, ^bb9(%10#0, %c0_i32 : i32, i32) loc(#loc2)
^bb1: // pred: ^bb0
%12 = iree.list.size %10#1 : !iree.list<!iree.variant> loc(#loc2)
%13 = arith.cmpi eq, %c2, %12 : index loc(#loc2)
cond_br %13, ^bb2, ^bb28 loc(#loc2)
^bb2: // pred: ^bb1
%14 = iree.list.get %10#1[%c0] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc2)
%15 = iree.list.get %10#1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc2)
br ^bb3(%c0_i32, %14, %15 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc2)
^bb3(%16: i32 loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0), %17: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0), %18: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0)): // 2 preds: ^bb2, ^bb28
%19 = arith.cmpi eq, %c0_i32, %16 : i32 loc(#loc2)
cond_br %19, ^bb4, ^bb9(%16, %c0_i32 : i32, i32) loc(#loc2)
^bb4: // pred: ^bb3
%20:2 = call @pydmrtl$apply_compare_eq(%17, %18) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, i1) loc(#loc2)
%21 = arith.cmpi eq, %c0_i32, %20#0 : i32 loc(#loc2)
cond_br %21, ^bb5, ^bb9(%20#0, %c0_i32 : i32, i32) loc(#loc2)
^bb5: // pred: ^bb4
cond_br %20#1, ^bb6(%1 : !iree.list<!iree.variant>), ^bb10 loc(#loc8)
^bb6(%22: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0)): // 2 preds: ^bb5, ^bb16
%23 = iree.list.get %22[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc9)
%24 = iree.list.get %23[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc9)
%25 = arith.cmpi eq, %c78_i32, %24 : i32 loc(#loc9)
cond_br %25, ^bb7, ^bb8(%c-4_i32, %c0_i32 : i32, i32) loc(#loc9)
^bb7: // pred: ^bb6
%26 = iree.list.get %23[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc9)
br ^bb8(%c0_i32, %26 : i32, i32) loc(#loc9)
^bb8(%27: i32 loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0), %28: i32 loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0)): // 2 preds: ^bb6, ^bb7
%29 = arith.cmpi eq, %c0_i32, %27 : i32 loc(#loc9)
cond_br %29, ^bb9(%c0_i32, %28 : i32, i32), ^bb9(%27, %c0_i32 : i32, i32) loc(#loc9)
^bb9(%30: i32 loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0), %31: i32 loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0)): // 14 preds: ^bb0, ^bb3, ^bb4, ^bb8, ^bb8, ^bb11, ^bb14, ^bb15, ^bb17, ^bb20, ^bb21, ^bb22, ^bb25, ^bb26
return %30, %31 : i32, i32 loc(#loc10)
^bb10: // pred: ^bb5
%32 = iree.list.create : !iree.list<!iree.variant> loc(#loc11)
iree.list.resize %32, %c2 : !iree.list<!iree.variant> loc(#loc11)
iree.list.set %32[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc11)
iree.list.set %32[%c1], %c2_i32 : !iree.list<!iree.variant>, i32 loc(#loc11)
iree.list.resize %3, %c2 : !iree.list<!iree.variant> loc(#loc11)
iree.list.set %3[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc11)
iree.list.set %3[%c1], %32 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc11)
br ^bb11 loc(#loc12)
^bb11: // 2 preds: ^bb10, ^bb27
%33 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc13)
%34 = iree.list.get %4[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc14)
%35:2 = call @pydmrtl$dynamic_binary_promote(%33, %34) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, !iree.list<!iree.variant>) loc(#loc14)
%36 = arith.cmpi eq, %c0_i32, %35#0 : i32 loc(#loc14)
cond_br %36, ^bb12, ^bb9(%35#0, %c0_i32 : i32, i32) loc(#loc14)
^bb12: // pred: ^bb11
%37 = iree.list.size %35#1 : !iree.list<!iree.variant> loc(#loc14)
%38 = arith.cmpi eq, %c2, %37 : index loc(#loc14)
cond_br %38, ^bb13, ^bb29 loc(#loc14)
^bb13: // pred: ^bb12
%39 = iree.list.get %35#1[%c0] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc14)
%40 = iree.list.get %35#1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc14)
br ^bb14(%c0_i32, %39, %40 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc14)
^bb14(%41: i32 loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0), %42: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0), %43: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0)): // 2 preds: ^bb13, ^bb29
%44 = arith.cmpi eq, %c0_i32, %41 : i32 loc(#loc14)
cond_br %44, ^bb15, ^bb9(%41, %c0_i32 : i32, i32) loc(#loc14)
^bb15: // pred: ^bb14
%45:2 = call @pydmrtl$apply_compare_le(%42, %43) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, i1) loc(#loc14)
%46 = arith.cmpi eq, %c0_i32, %45#0 : i32 loc(#loc14)
cond_br %46, ^bb16, ^bb9(%45#0, %c0_i32 : i32, i32) loc(#loc14)
^bb16: // pred: ^bb15
cond_br %45#1, ^bb17, ^bb6(%0 : !iree.list<!iree.variant>) loc(#loc14)
^bb17: // pred: ^bb16
%47 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc15)
%48 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc16)
%49:2 = call @pydmrtl$dynamic_binary_promote(%47, %48) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, !iree.list<!iree.variant>) loc(#loc15)
%50 = arith.cmpi eq, %c0_i32, %49#0 : i32 loc(#loc15)
cond_br %50, ^bb18, ^bb9(%49#0, %c0_i32 : i32, i32) loc(#loc15)
^bb18: // pred: ^bb17
%51 = iree.list.size %49#1 : !iree.list<!iree.variant> loc(#loc15)
%52 = arith.cmpi eq, %c2, %51 : index loc(#loc15)
cond_br %52, ^bb19, ^bb30 loc(#loc15)
^bb19: // pred: ^bb18
%53 = iree.list.get %49#1[%c0] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc15)
%54 = iree.list.get %49#1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc15)
br ^bb20(%c0_i32, %53, %54 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc15)
^bb20(%55: i32 loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0), %56: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0), %57: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0)): // 2 preds: ^bb19, ^bb30
%58 = arith.cmpi eq, %c0_i32, %55 : i32 loc(#loc15)
cond_br %58, ^bb21, ^bb9(%55, %c0_i32 : i32, i32) loc(#loc15)
^bb21: // pred: ^bb20
%59:2 = call @pydmrtl$apply_binary_add(%56, %57) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, !iree.list<!iree.variant>) loc(#loc15)
%60 = arith.cmpi eq, %c0_i32, %59#0 : i32 loc(#loc15)
cond_br %60, ^bb22, ^bb9(%59#0, %c0_i32 : i32, i32) loc(#loc15)
^bb22: // pred: ^bb21
iree.list.resize %2, %c2 : !iree.list<!iree.variant> loc(#loc17)
iree.list.set %2[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc17)
iree.list.set %2[%c1], %59#1 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc17)
%61 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc18)
iree.list.resize %1, %c2 : !iree.list<!iree.variant> loc(#loc19)
iree.list.set %1[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc19)
iree.list.set %1[%c1], %61 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc19)
%62 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc20)
iree.list.resize %0, %c2 : !iree.list<!iree.variant> loc(#loc21)
iree.list.set %0[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc21)
iree.list.set %0[%c1], %62 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc21)
%63 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc22)
%64 = iree.list.create : !iree.list<!iree.variant> loc(#loc22)
iree.list.resize %64, %c2 : !iree.list<!iree.variant> loc(#loc22)
iree.list.set %64[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc22)
iree.list.set %64[%c1], %c1_i32 : !iree.list<!iree.variant>, i32 loc(#loc22)
%65:2 = call @pydmrtl$dynamic_binary_promote(%63, %64) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, !iree.list<!iree.variant>) loc(#loc22)
%66 = arith.cmpi eq, %c0_i32, %65#0 : i32 loc(#loc22)
cond_br %66, ^bb23, ^bb9(%65#0, %c0_i32 : i32, i32) loc(#loc22)
^bb23: // pred: ^bb22
%67 = iree.list.size %65#1 : !iree.list<!iree.variant> loc(#loc22)
%68 = arith.cmpi eq, %c2, %67 : index loc(#loc22)
cond_br %68, ^bb24, ^bb31 loc(#loc22)
^bb24: // pred: ^bb23
%69 = iree.list.get %65#1[%c0] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc22)
%70 = iree.list.get %65#1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc22)
br ^bb25(%c0_i32, %69, %70 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc22)
^bb25(%71: i32 loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0), %72: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0), %73: !iree.list<!iree.variant> loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":44:0)): // 2 preds: ^bb24, ^bb31
%74 = arith.cmpi eq, %c0_i32, %71 : i32 loc(#loc22)
cond_br %74, ^bb26, ^bb9(%71, %c0_i32 : i32, i32) loc(#loc22)
^bb26: // pred: ^bb25
%75:2 = call @pydmrtl$apply_binary_add(%72, %73) : (!iree.list<!iree.variant>, !iree.list<!iree.variant>) -> (i32, !iree.list<!iree.variant>) loc(#loc22)
%76 = arith.cmpi eq, %c0_i32, %75#0 : i32 loc(#loc22)
cond_br %76, ^bb27, ^bb9(%75#0, %c0_i32 : i32, i32) loc(#loc22)
^bb27: // pred: ^bb26
iree.list.resize %3, %c2 : !iree.list<!iree.variant> loc(#loc23)
iree.list.set %3[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc23)
iree.list.set %3[%c1], %75#1 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc23)
br ^bb11 loc(#loc23)
^bb28: // pred: ^bb1
%77 = iree.list.create : !iree.list<!iree.variant> loc(#loc2)
%78 = iree.list.create : !iree.list<!iree.variant> loc(#loc2)
br ^bb3(%c-4_i32, %77, %78 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc2)
^bb29: // pred: ^bb12
%79 = iree.list.create : !iree.list<!iree.variant> loc(#loc14)
%80 = iree.list.create : !iree.list<!iree.variant> loc(#loc14)
br ^bb14(%c-4_i32, %79, %80 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc14)
^bb30: // pred: ^bb18
%81 = iree.list.create : !iree.list<!iree.variant> loc(#loc15)
%82 = iree.list.create : !iree.list<!iree.variant> loc(#loc15)
br ^bb20(%c-4_i32, %81, %82 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc15)
^bb31: // pred: ^bb23
%83 = iree.list.create : !iree.list<!iree.variant> loc(#loc22)
%84 = iree.list.create : !iree.list<!iree.variant> loc(#loc22)
br ^bb25(%c-4_i32, %83, %84 : i32, !iree.list<!iree.variant>, !iree.list<!iree.variant>) loc(#loc22)
} 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 = arith.constant -3 : i32 loc(#loc25)
%c0_i32 = arith.constant 0 : i32 loc(#loc26)
%c78_i32 = arith.constant 78 : i32 loc(#loc27)
%c0 = arith.constant 0 : index loc(#loc24)
%c1 = arith.constant 1 : index loc(#loc24)
%c256_i32 = arith.constant 256 : i32 loc(#loc24)
%c2 = arith.constant 2 : index loc(#loc24)
%c1_i32 = arith.constant 1 : i32 loc(#loc26)
%c6_i32 = arith.constant 6 : i32 loc(#loc26)
%0 = iree.list.create : !iree.list<!iree.variant> loc(#loc24)
%1 = iree.list.create : !iree.list<!iree.variant> loc(#loc24)
%2 = iree.list.create : !iree.list<!iree.variant> loc(#loc24)
%3 = iree.list.create : !iree.list<!iree.variant> loc(#loc24)
iree.list.resize %0, %c2 : !iree.list<!iree.variant> loc(#loc24)
iree.list.set %0[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc24)
iree.list.set %0[%c1], %arg0 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc24)
iree.list.resize %2, %c2 : !iree.list<!iree.variant> loc(#loc24)
iree.list.set %2[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc24)
iree.list.set %2[%c1], %arg1 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc24)
%4 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc28)
%5 = iree.list.get %4[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc29)
%6 = iree.list.create : !iree.list<!iree.variant> loc(#loc27)
iree.list.resize %6, %c2 : !iree.list<!iree.variant> loc(#loc27)
iree.list.set %6[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc27)
iree.list.set %6[%c1], %5 : !iree.list<!iree.variant>, i32 loc(#loc27)
iree.list.resize %1, %c2 : !iree.list<!iree.variant> loc(#loc27)
iree.list.set %1[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc27)
iree.list.set %1[%c1], %6 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc27)
%7 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc30)
%8 = iree.list.get %7[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc31)
%9 = iree.list.create : !iree.list<!iree.variant> loc(#loc32)
iree.list.resize %9, %c2 : !iree.list<!iree.variant> loc(#loc32)
iree.list.set %9[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc32)
iree.list.set %9[%c1], %8 : !iree.list<!iree.variant>, i32 loc(#loc32)
iree.list.resize %3, %c2 : !iree.list<!iree.variant> loc(#loc32)
iree.list.set %3[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc32)
iree.list.set %3[%c1], %9 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc32)
%10 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc33)
%11 = iree.list.get %10[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc26)
%12 = arith.cmpi eq, %c78_i32, %11 : i32 loc(#loc26)
cond_br %12, ^bb1, ^bb2(%c0_i32 : i32) loc(#loc26)
^bb1: // pred: ^bb0
%13 = iree.list.get %10[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc26)
br ^bb2(%13 : i32) loc(#loc26)
^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 = arith.shrsi %14, %c6_i32 : i32 loc(#loc26)
%16 = arith.cmpi eq, %15, %c1_i32 : i32 loc(#loc26)
cond_br %16, ^bb3, ^bb7 loc(#loc34)
^bb3: // pred: ^bb2
%17 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc35)
%18 = iree.list.get %17[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc36)
%19 = arith.cmpi eq, %c78_i32, %18 : i32 loc(#loc36)
cond_br %19, ^bb4, ^bb5(%c0_i32 : i32) loc(#loc36)
^bb4: // pred: ^bb3
%20 = iree.list.get %17[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc36)
br ^bb5(%20 : i32) loc(#loc36)
^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 = arith.shrsi %21, %c6_i32 : i32 loc(#loc36)
%23 = arith.cmpi eq, %22, %c1_i32 : i32 loc(#loc36)
cond_br %23, ^bb6, ^bb7 loc(#loc37)
^bb6: // pred: ^bb5
%24 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc38)
%25 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc39)
%26 = iree.list.create %c2 : !iree.list<!iree.variant> loc(#loc38)
iree.list.resize %26, %c2 : !iree.list<!iree.variant> loc(#loc38)
iree.list.set %26[%c0], %24 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc38)
iree.list.set %26[%c1], %25 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc38)
return %c0_i32, %26 : i32, !iree.list<!iree.variant> loc(#loc40)
^bb7: // 2 preds: ^bb2, ^bb5
%27 = iree.list.create %c0 : !iree.list<!iree.variant> loc(#loc41)
iree.list.resize %27, %c0 : !iree.list<!iree.variant> loc(#loc41)
%28 = iree.list.create : !iree.list<!iree.variant> loc(#loc25)
return %c-3_i32, %28 : i32, !iree.list<!iree.variant> loc(#loc25)
} loc(#loc24)
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 = arith.constant 0 : i64 loc(#loc43)
%cst = arith.constant 0.000000e+00 : f32 loc(#loc44)
%c-3_i32 = arith.constant -3 : i32 loc(#loc45)
%c90_i32 = arith.constant 90 : i32 loc(#loc44)
%c79_i32 = arith.constant 79 : i32 loc(#loc43)
%c78_i32 = arith.constant 78 : i32 loc(#loc46)
%c0 = arith.constant 0 : index loc(#loc42)
%c1 = arith.constant 1 : index loc(#loc42)
%c256_i32 = arith.constant 256 : i32 loc(#loc42)
%c2 = arith.constant 2 : index loc(#loc42)
%c0_i32 = arith.constant 0 : i32 loc(#loc47)
%c6_i32 = arith.constant 6 : i32 loc(#loc48)
%c2_i32 = arith.constant 2 : i32 loc(#loc49)
%c3_i32 = arith.constant 3 : i32 loc(#loc50)
%c60_i32 = arith.constant 60 : i32 loc(#loc49)
%c1_i32 = arith.constant 1 : i32 loc(#loc48)
%0 = iree.list.create : !iree.list<!iree.variant> loc(#loc42)
%1 = iree.list.create : !iree.list<!iree.variant> loc(#loc42)
%2 = iree.list.create : !iree.list<!iree.variant> loc(#loc42)
%3 = iree.list.create : !iree.list<!iree.variant> loc(#loc42)
%4 = iree.list.create : !iree.list<!iree.variant> loc(#loc42)
%5 = iree.list.create : !iree.list<!iree.variant> loc(#loc42)
iree.list.resize %1, %c2 : !iree.list<!iree.variant> loc(#loc42)
iree.list.set %1[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc42)
iree.list.set %1[%c1], %arg0 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc42)
iree.list.resize %3, %c2 : !iree.list<!iree.variant> loc(#loc42)
iree.list.set %3[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc42)
iree.list.set %3[%c1], %arg1 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc42)
%6 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc51)
%7 = iree.list.get %6[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc52)
%8 = iree.list.create : !iree.list<!iree.variant> loc(#loc46)
iree.list.resize %8, %c2 : !iree.list<!iree.variant> loc(#loc46)
iree.list.set %8[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc46)
iree.list.set %8[%c1], %7 : !iree.list<!iree.variant>, i32 loc(#loc46)
iree.list.resize %5, %c2 : !iree.list<!iree.variant> loc(#loc46)
iree.list.set %5[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc46)
iree.list.set %5[%c1], %8 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc46)
%9 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc53)
%10 = iree.list.get %9[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc54)
%11 = iree.list.create : !iree.list<!iree.variant> loc(#loc55)
iree.list.resize %11, %c2 : !iree.list<!iree.variant> loc(#loc55)
iree.list.set %11[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc55)
iree.list.set %11[%c1], %10 : !iree.list<!iree.variant>, i32 loc(#loc55)
iree.list.resize %4, %c2 : !iree.list<!iree.variant> loc(#loc55)
iree.list.set %4[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc55)
iree.list.set %4[%c1], %11 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc55)
%12 = iree.list.get %5[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc56)
%13 = iree.list.get %12[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc57)
%14 = arith.cmpi eq, %c78_i32, %13 : i32 loc(#loc57)
cond_br %14, ^bb1, ^bb2(%c0_i32 : i32) loc(#loc57)
^bb1: // pred: ^bb0
%15 = iree.list.get %12[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc57)
br ^bb2(%15 : i32) loc(#loc57)
^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 %4[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc58)
%18 = iree.list.get %17[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc59)
%19 = arith.cmpi eq, %c78_i32, %18 : i32 loc(#loc59)
cond_br %19, ^bb3, ^bb4(%c0_i32 : i32) loc(#loc59)
^bb3: // pred: ^bb2
%20 = iree.list.get %17[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc59)
br ^bb4(%20 : i32) loc(#loc59)
^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 = arith.cmpi eq, %16, %21 : i32 loc(#loc59)
cond_br %22, ^bb5, ^bb42 loc(#loc60)
^bb5: // pred: ^bb4
%23 = iree.list.get %5[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc61)
%24 = iree.list.get %23[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc48)
%25 = arith.cmpi eq, %c78_i32, %24 : i32 loc(#loc48)
cond_br %25, ^bb6, ^bb7(%c0_i32 : i32) loc(#loc48)
^bb6: // pred: ^bb5
%26 = iree.list.get %23[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc48)
br ^bb7(%26 : i32) loc(#loc48)
^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 = arith.shrsi %27, %c6_i32 : i32 loc(#loc48)
%29 = arith.cmpi eq, %28, %c1_i32 : i32 loc(#loc48)
cond_br %29, ^bb8, ^bb42 loc(#loc62)
^bb8: // pred: ^bb7
%30 = iree.list.get %5[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc63)
%31 = iree.list.get %30[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc49)
%32 = arith.cmpi eq, %c78_i32, %31 : i32 loc(#loc49)
cond_br %32, ^bb9, ^bb10(%c0_i32 : i32) loc(#loc49)
^bb9: // pred: ^bb8
%33 = iree.list.get %30[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc49)
br ^bb10(%33 : i32) loc(#loc49)
^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 = arith.andi %34, %c60_i32 : i32 loc(#loc49)
%36 = arith.shrsi %35, %c2_i32 : i32 loc(#loc49)
%37 = iree.list.create : !iree.list<!iree.variant> loc(#loc64)
iree.list.resize %37, %c2 : !iree.list<!iree.variant> loc(#loc64)
iree.list.set %37[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc64)
iree.list.set %37[%c1], %36 : !iree.list<!iree.variant>, i32 loc(#loc64)
iree.list.resize %0, %c2 : !iree.list<!iree.variant> loc(#loc64)
iree.list.set %0[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc64)
iree.list.set %0[%c1], %37 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc64)
%38 = iree.list.get %5[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc65)
%39 = iree.list.get %38[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc50)
%40 = arith.cmpi eq, %c78_i32, %39 : i32 loc(#loc50)
cond_br %40, ^bb11, ^bb12(%c0_i32 : i32) loc(#loc50)
^bb11: // pred: ^bb10
%41 = iree.list.get %38[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc50)
br ^bb12(%41 : i32) loc(#loc50)
^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 = arith.andi %42, %c3_i32 : i32 loc(#loc50)
%44 = iree.list.create : !iree.list<!iree.variant> loc(#loc66)
iree.list.resize %44, %c2 : !iree.list<!iree.variant> loc(#loc66)
iree.list.set %44[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc66)
iree.list.set %44[%c1], %43 : !iree.list<!iree.variant>, i32 loc(#loc66)
iree.list.resize %2, %c2 : !iree.list<!iree.variant> loc(#loc66)
iree.list.set %2[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc66)
iree.list.set %2[%c1], %44 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc66)
%45 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc67)
%46 = iree.list.get %45[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc68)
%47 = arith.cmpi eq, %c78_i32, %46 : i32 loc(#loc68)
cond_br %47, ^bb13, ^bb14(%c0_i32 : i32) loc(#loc68)
^bb13: // pred: ^bb12
%48 = iree.list.get %45[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc68)
br ^bb14(%48 : i32) loc(#loc68)
^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 = arith.cmpi sle, %49, %c3_i32 : i32 loc(#loc69)
cond_br %50, ^bb15, ^bb31 loc(#loc70)
^bb15: // pred: ^bb14
%51 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc71)
%52 = iree.list.get %51[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc72)
%53 = arith.cmpi eq, %c78_i32, %52 : i32 loc(#loc72)
cond_br %53, ^bb16, ^bb17(%c0_i32 : i32) loc(#loc72)
^bb16: // pred: ^bb15
%54 = iree.list.get %51[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc72)
br ^bb17(%54 : i32) loc(#loc72)
^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 = arith.cmpi eq, %55, %c2_i32 : i32 loc(#loc73)
cond_br %56, ^bb18, ^bb23 loc(#loc74)
^bb18: // pred: ^bb17
%57 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc75)
%58 = iree.list.get %57[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc76)
%59 = arith.cmpi eq, %c78_i32, %58 : i32 loc(#loc76)
cond_br %59, ^bb19, ^bb20(%c0_i32 : i32) loc(#loc76)
^bb19: // pred: ^bb18
%60 = iree.list.get %57[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc76)
br ^bb20(%60 : i32) loc(#loc76)
^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 %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc77)
%63 = iree.list.get %62[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc78)
%64 = arith.cmpi eq, %c78_i32, %63 : i32 loc(#loc78)
cond_br %64, ^bb21, ^bb22(%c0_i32 : i32) loc(#loc78)
^bb21: // pred: ^bb20
%65 = iree.list.get %62[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc78)
br ^bb22(%65 : i32) loc(#loc78)
^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 = arith.addi %61, %66 : i32 loc(#loc76)
%68 = iree.list.create : !iree.list<!iree.variant> loc(#loc76)
iree.list.resize %68, %c2 : !iree.list<!iree.variant> loc(#loc76)
iree.list.set %68[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc76)
iree.list.set %68[%c1], %67 : !iree.list<!iree.variant>, i32 loc(#loc76)
return %c0_i32, %68 : i32, !iree.list<!iree.variant> loc(#loc79)
^bb23: // pred: ^bb17
%69 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc80)
%70 = iree.list.get %69[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc81)
%71 = arith.cmpi eq, %c78_i32, %70 : i32 loc(#loc81)
cond_br %71, ^bb24, ^bb25(%c0_i32 : i32) loc(#loc81)
^bb24: // pred: ^bb23
%72 = iree.list.get %69[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc81)
br ^bb25(%72 : i32) loc(#loc81)
^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 = arith.cmpi eq, %73, %c3_i32 : i32 loc(#loc82)
cond_br %74, ^bb26, ^bb42 loc(#loc83)
^bb26: // pred: ^bb25
%75 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc84)
%76 = iree.list.get %75[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc43)
%77 = arith.cmpi eq, %c79_i32, %76 : i32 loc(#loc43)
cond_br %77, ^bb27, ^bb28(%c0_i64 : i64) loc(#loc43)
^bb27: // pred: ^bb26
%78 = iree.list.get %75[%c1] : !iree.list<!iree.variant> -> i64 loc(#loc43)
br ^bb28(%78 : i64) loc(#loc43)
^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 %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc85)
%81 = iree.list.get %80[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc86)
%82 = arith.cmpi eq, %c79_i32, %81 : i32 loc(#loc86)
cond_br %82, ^bb29, ^bb30(%c0_i64 : i64) loc(#loc86)
^bb29: // pred: ^bb28
%83 = iree.list.get %80[%c1] : !iree.list<!iree.variant> -> i64 loc(#loc86)
br ^bb30(%83 : i64) loc(#loc86)
^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 = arith.addi %79, %84 : i64 loc(#loc43)
%86 = iree.list.create : !iree.list<!iree.variant> loc(#loc43)
iree.list.resize %86, %c2 : !iree.list<!iree.variant> loc(#loc43)
iree.list.set %86[%c0], %c79_i32 : !iree.list<!iree.variant>, i32 loc(#loc43)
iree.list.set %86[%c1], %85 : !iree.list<!iree.variant>, i64 loc(#loc43)
return %c0_i32, %86 : i32, !iree.list<!iree.variant> loc(#loc87)
^bb31: // pred: ^bb14
%87 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc88)
%88 = iree.list.get %87[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc89)
%89 = arith.cmpi eq, %c78_i32, %88 : i32 loc(#loc89)
cond_br %89, ^bb32, ^bb33(%c0_i32 : i32) loc(#loc89)
^bb32: // pred: ^bb31
%90 = iree.list.get %87[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc89)
br ^bb33(%90 : i32) loc(#loc89)
^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 = arith.cmpi eq, %91, %c6_i32 : i32 loc(#loc90)
cond_br %92, ^bb34, ^bb42 loc(#loc91)
^bb34: // pred: ^bb33
%93 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc92)
%94 = iree.list.get %93[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc93)
%95 = arith.cmpi eq, %c78_i32, %94 : i32 loc(#loc93)
cond_br %95, ^bb35, ^bb36(%c0_i32 : i32) loc(#loc93)
^bb35: // pred: ^bb34
%96 = iree.list.get %93[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc93)
br ^bb36(%96 : i32) loc(#loc93)
^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 = arith.cmpi eq, %97, %c2_i32 : i32 loc(#loc94)
cond_br %98, ^bb37, ^bb42 loc(#loc95)
^bb37: // pred: ^bb36
%99 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc96)
%100 = iree.list.get %99[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc44)
%101 = arith.cmpi eq, %c90_i32, %100 : i32 loc(#loc44)
cond_br %101, ^bb38, ^bb39(%cst : f32) loc(#loc44)
^bb38: // pred: ^bb37
%102 = iree.list.get %99[%c1] : !iree.list<!iree.variant> -> f32 loc(#loc44)
br ^bb39(%102 : f32) loc(#loc44)
^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 %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc97)
%105 = iree.list.get %104[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc98)
%106 = arith.cmpi eq, %c90_i32, %105 : i32 loc(#loc98)
cond_br %106, ^bb40, ^bb41(%cst : f32) loc(#loc98)
^bb40: // pred: ^bb39
%107 = iree.list.get %104[%c1] : !iree.list<!iree.variant> -> f32 loc(#loc98)
br ^bb41(%107 : f32) loc(#loc98)
^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 = arith.addf %103, %108 : f32 loc(#loc44)
%110 = iree.list.create : !iree.list<!iree.variant> loc(#loc44)
iree.list.resize %110, %c2 : !iree.list<!iree.variant> loc(#loc44)
iree.list.set %110[%c0], %c90_i32 : !iree.list<!iree.variant>, i32 loc(#loc44)
iree.list.set %110[%c1], %109 : !iree.list<!iree.variant>, f32 loc(#loc44)
return %c0_i32, %110 : i32, !iree.list<!iree.variant> loc(#loc99)
^bb42: // 5 preds: ^bb4, ^bb7, ^bb25, ^bb33, ^bb36
%111 = iree.list.create : !iree.list<!iree.variant> loc(#loc45)
return %c-3_i32, %111 : i32, !iree.list<!iree.variant> loc(#loc45)
} loc(#loc42)
func private @pydmrtl$apply_compare_le(%arg0: !iree.list<!iree.variant> loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132: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":132:0)) -> (i32, i1) {
%c0_i64 = arith.constant 0 : i64 loc(#loc101)
%cst = arith.constant 0.000000e+00 : f32 loc(#loc102)
%c-3_i32 = arith.constant -3 : i32 loc(#loc103)
%c90_i32 = arith.constant 90 : i32 loc(#loc102)
%c79_i32 = arith.constant 79 : i32 loc(#loc101)
%c0_i32 = arith.constant 0 : i32 loc(#loc104)
%c78_i32 = arith.constant 78 : i32 loc(#loc105)
%c0 = arith.constant 0 : index loc(#loc100)
%c1 = arith.constant 1 : index loc(#loc100)
%c256_i32 = arith.constant 256 : i32 loc(#loc100)
%c2 = arith.constant 2 : index loc(#loc100)
%false = arith.constant false loc(#loc106)
%c6_i32 = arith.constant 6 : i32 loc(#loc107)
%c2_i32 = arith.constant 2 : i32 loc(#loc108)
%c3_i32 = arith.constant 3 : i32 loc(#loc109)
%c60_i32 = arith.constant 60 : i32 loc(#loc108)
%c1_i32 = arith.constant 1 : i32 loc(#loc107)
%0 = iree.list.create : !iree.list<!iree.variant> loc(#loc100)
%1 = iree.list.create : !iree.list<!iree.variant> loc(#loc100)
%2 = iree.list.create : !iree.list<!iree.variant> loc(#loc100)
%3 = iree.list.create : !iree.list<!iree.variant> loc(#loc100)
%4 = iree.list.create : !iree.list<!iree.variant> loc(#loc100)
%5 = iree.list.create : !iree.list<!iree.variant> loc(#loc100)
iree.list.resize %1, %c2 : !iree.list<!iree.variant> loc(#loc100)
iree.list.set %1[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc100)
iree.list.set %1[%c1], %arg0 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc100)
iree.list.resize %3, %c2 : !iree.list<!iree.variant> loc(#loc100)
iree.list.set %3[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc100)
iree.list.set %3[%c1], %arg1 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc100)
%6 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc110)
%7 = iree.list.get %6[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc111)
%8 = iree.list.create : !iree.list<!iree.variant> loc(#loc105)
iree.list.resize %8, %c2 : !iree.list<!iree.variant> loc(#loc105)
iree.list.set %8[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc105)
iree.list.set %8[%c1], %7 : !iree.list<!iree.variant>, i32 loc(#loc105)
iree.list.resize %5, %c2 : !iree.list<!iree.variant> loc(#loc105)
iree.list.set %5[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc105)
iree.list.set %5[%c1], %8 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc105)
%9 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc112)
%10 = iree.list.get %9[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc113)
%11 = iree.list.create : !iree.list<!iree.variant> loc(#loc114)
iree.list.resize %11, %c2 : !iree.list<!iree.variant> loc(#loc114)
iree.list.set %11[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc114)
iree.list.set %11[%c1], %10 : !iree.list<!iree.variant>, i32 loc(#loc114)
iree.list.resize %4, %c2 : !iree.list<!iree.variant> loc(#loc114)
iree.list.set %4[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc114)
iree.list.set %4[%c1], %11 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc114)
%12 = iree.list.get %5[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc115)
%13 = iree.list.get %12[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc104)
%14 = arith.cmpi eq, %c78_i32, %13 : i32 loc(#loc104)
cond_br %14, ^bb1, ^bb2(%c0_i32 : i32) loc(#loc104)
^bb1: // pred: ^bb0
%15 = iree.list.get %12[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc104)
br ^bb2(%15 : i32) loc(#loc104)
^bb2(%16: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132:0)): // 2 preds: ^bb0, ^bb1
%17 = iree.list.get %4[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc116)
%18 = iree.list.get %17[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc117)
%19 = arith.cmpi eq, %c78_i32, %18 : i32 loc(#loc117)
cond_br %19, ^bb3, ^bb4(%c0_i32 : i32) loc(#loc117)
^bb3: // pred: ^bb2
%20 = iree.list.get %17[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc117)
br ^bb4(%20 : i32) loc(#loc117)
^bb4(%21: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132:0)): // 2 preds: ^bb2, ^bb3
%22 = arith.cmpi eq, %16, %21 : i32 loc(#loc117)
cond_br %22, ^bb5, ^bb42 loc(#loc118)
^bb5: // pred: ^bb4
%23 = iree.list.get %5[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc119)
%24 = iree.list.get %23[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc107)
%25 = arith.cmpi eq, %c78_i32, %24 : i32 loc(#loc107)
cond_br %25, ^bb6, ^bb7(%c0_i32 : i32) loc(#loc107)
^bb6: // pred: ^bb5
%26 = iree.list.get %23[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc107)
br ^bb7(%26 : i32) loc(#loc107)
^bb7(%27: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132:0)): // 2 preds: ^bb5, ^bb6
%28 = arith.shrsi %27, %c6_i32 : i32 loc(#loc107)
%29 = arith.cmpi eq, %28, %c1_i32 : i32 loc(#loc107)
cond_br %29, ^bb8, ^bb42 loc(#loc120)
^bb8: // pred: ^bb7
%30 = iree.list.get %5[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc121)
%31 = iree.list.get %30[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc108)
%32 = arith.cmpi eq, %c78_i32, %31 : i32 loc(#loc108)
cond_br %32, ^bb9, ^bb10(%c0_i32 : i32) loc(#loc108)
^bb9: // pred: ^bb8
%33 = iree.list.get %30[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc108)
br ^bb10(%33 : i32) loc(#loc108)
^bb10(%34: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132:0)): // 2 preds: ^bb8, ^bb9
%35 = arith.andi %34, %c60_i32 : i32 loc(#loc108)
%36 = arith.shrsi %35, %c2_i32 : i32 loc(#loc108)
%37 = iree.list.create : !iree.list<!iree.variant> loc(#loc122)
iree.list.resize %37, %c2 : !iree.list<!iree.variant> loc(#loc122)
iree.list.set %37[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc122)
iree.list.set %37[%c1], %36 : !iree.list<!iree.variant>, i32 loc(#loc122)
iree.list.resize %0, %c2 : !iree.list<!iree.variant> loc(#loc122)
iree.list.set %0[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc122)
iree.list.set %0[%c1], %37 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc122)
%38 = iree.list.get %5[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc123)
%39 = iree.list.get %38[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc109)
%40 = arith.cmpi eq, %c78_i32, %39 : i32 loc(#loc109)
cond_br %40, ^bb11, ^bb12(%c0_i32 : i32) loc(#loc109)
^bb11: // pred: ^bb10
%41 = iree.list.get %38[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc109)
br ^bb12(%41 : i32) loc(#loc109)
^bb12(%42: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132:0)): // 2 preds: ^bb10, ^bb11
%43 = arith.andi %42, %c3_i32 : i32 loc(#loc109)
%44 = iree.list.create : !iree.list<!iree.variant> loc(#loc124)
iree.list.resize %44, %c2 : !iree.list<!iree.variant> loc(#loc124)
iree.list.set %44[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc124)
iree.list.set %44[%c1], %43 : !iree.list<!iree.variant>, i32 loc(#loc124)
iree.list.resize %2, %c2 : !iree.list<!iree.variant> loc(#loc124)
iree.list.set %2[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc124)
iree.list.set %2[%c1], %44 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc124)
%45 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc125)
%46 = iree.list.get %45[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc126)
%47 = arith.cmpi eq, %c78_i32, %46 : i32 loc(#loc126)
cond_br %47, ^bb13, ^bb14(%c0_i32 : i32) loc(#loc126)
^bb13: // pred: ^bb12
%48 = iree.list.get %45[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc126)
br ^bb14(%48 : i32) loc(#loc126)
^bb14(%49: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132:0)): // 2 preds: ^bb12, ^bb13
%50 = arith.cmpi sle, %49, %c3_i32 : i32 loc(#loc127)
cond_br %50, ^bb15, ^bb31 loc(#loc128)
^bb15: // pred: ^bb14
%51 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc129)
%52 = iree.list.get %51[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc130)
%53 = arith.cmpi eq, %c78_i32, %52 : i32 loc(#loc130)
cond_br %53, ^bb16, ^bb17(%c0_i32 : i32) loc(#loc130)
^bb16: // pred: ^bb15
%54 = iree.list.get %51[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc130)
br ^bb17(%54 : i32) loc(#loc130)
^bb17(%55: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132:0)): // 2 preds: ^bb15, ^bb16
%56 = arith.cmpi eq, %55, %c2_i32 : i32 loc(#loc131)
cond_br %56, ^bb18, ^bb23 loc(#loc132)
^bb18: // pred: ^bb17
%57 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc133)
%58 = iree.list.get %57[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc134)
%59 = arith.cmpi eq, %c78_i32, %58 : i32 loc(#loc134)
cond_br %59, ^bb19, ^bb20(%c0_i32 : i32) loc(#loc134)
^bb19: // pred: ^bb18
%60 = iree.list.get %57[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc134)
br ^bb20(%60 : i32) loc(#loc134)
^bb20(%61: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132:0)): // 2 preds: ^bb18, ^bb19
%62 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc135)
%63 = iree.list.get %62[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc136)
%64 = arith.cmpi eq, %c78_i32, %63 : i32 loc(#loc136)
cond_br %64, ^bb21, ^bb22(%c0_i32 : i32) loc(#loc136)
^bb21: // pred: ^bb20
%65 = iree.list.get %62[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc136)
br ^bb22(%65 : i32) loc(#loc136)
^bb22(%66: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132:0)): // 2 preds: ^bb20, ^bb21
%67 = arith.cmpi sle, %61, %66 : i32 loc(#loc136)
return %c0_i32, %67 : i32, i1 loc(#loc137)
^bb23: // pred: ^bb17
%68 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc138)
%69 = iree.list.get %68[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc139)
%70 = arith.cmpi eq, %c78_i32, %69 : i32 loc(#loc139)
cond_br %70, ^bb24, ^bb25(%c0_i32 : i32) loc(#loc139)
^bb24: // pred: ^bb23
%71 = iree.list.get %68[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc139)
br ^bb25(%71 : i32) loc(#loc139)
^bb25(%72: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132:0)): // 2 preds: ^bb23, ^bb24
%73 = arith.cmpi eq, %72, %c3_i32 : i32 loc(#loc140)
cond_br %73, ^bb26, ^bb42 loc(#loc141)
^bb26: // pred: ^bb25
%74 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc142)
%75 = iree.list.get %74[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc101)
%76 = arith.cmpi eq, %c79_i32, %75 : i32 loc(#loc101)
cond_br %76, ^bb27, ^bb28(%c0_i64 : i64) loc(#loc101)
^bb27: // pred: ^bb26
%77 = iree.list.get %74[%c1] : !iree.list<!iree.variant> -> i64 loc(#loc101)
br ^bb28(%77 : i64) loc(#loc101)
^bb28(%78: i64 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132:0)): // 2 preds: ^bb26, ^bb27
%79 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc143)
%80 = iree.list.get %79[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc144)
%81 = arith.cmpi eq, %c79_i32, %80 : i32 loc(#loc144)
cond_br %81, ^bb29, ^bb30(%c0_i64 : i64) loc(#loc144)
^bb29: // pred: ^bb28
%82 = iree.list.get %79[%c1] : !iree.list<!iree.variant> -> i64 loc(#loc144)
br ^bb30(%82 : i64) loc(#loc144)
^bb30(%83: i64 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132:0)): // 2 preds: ^bb28, ^bb29
%84 = arith.cmpi sle, %78, %83 : i64 loc(#loc144)
return %c0_i32, %84 : i32, i1 loc(#loc145)
^bb31: // pred: ^bb14
%85 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc146)
%86 = iree.list.get %85[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc147)
%87 = arith.cmpi eq, %c78_i32, %86 : i32 loc(#loc147)
cond_br %87, ^bb32, ^bb33(%c0_i32 : i32) loc(#loc147)
^bb32: // pred: ^bb31
%88 = iree.list.get %85[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc147)
br ^bb33(%88 : i32) loc(#loc147)
^bb33(%89: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132:0)): // 2 preds: ^bb31, ^bb32
%90 = arith.cmpi eq, %89, %c6_i32 : i32 loc(#loc148)
cond_br %90, ^bb34, ^bb42 loc(#loc149)
^bb34: // pred: ^bb33
%91 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc150)
%92 = iree.list.get %91[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc151)
%93 = arith.cmpi eq, %c78_i32, %92 : i32 loc(#loc151)
cond_br %93, ^bb35, ^bb36(%c0_i32 : i32) loc(#loc151)
^bb35: // pred: ^bb34
%94 = iree.list.get %91[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc151)
br ^bb36(%94 : i32) loc(#loc151)
^bb36(%95: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132:0)): // 2 preds: ^bb34, ^bb35
%96 = arith.cmpi eq, %95, %c2_i32 : i32 loc(#loc152)
cond_br %96, ^bb37, ^bb42 loc(#loc153)
^bb37: // pred: ^bb36
%97 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc154)
%98 = iree.list.get %97[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc102)
%99 = arith.cmpi eq, %c90_i32, %98 : i32 loc(#loc102)
cond_br %99, ^bb38, ^bb39(%cst : f32) loc(#loc102)
^bb38: // pred: ^bb37
%100 = iree.list.get %97[%c1] : !iree.list<!iree.variant> -> f32 loc(#loc102)
br ^bb39(%100 : f32) loc(#loc102)
^bb39(%101: f32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132:0)): // 2 preds: ^bb37, ^bb38
%102 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc155)
%103 = iree.list.get %102[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc156)
%104 = arith.cmpi eq, %c90_i32, %103 : i32 loc(#loc156)
cond_br %104, ^bb40, ^bb41(%cst : f32) loc(#loc156)
^bb40: // pred: ^bb39
%105 = iree.list.get %102[%c1] : !iree.list<!iree.variant> -> f32 loc(#loc156)
br ^bb41(%105 : f32) loc(#loc156)
^bb41(%106: f32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":132:0)): // 2 preds: ^bb39, ^bb40
%107 = arith.cmpf ole, %101, %106 : f32 loc(#loc156)
return %c0_i32, %107 : i32, i1 loc(#loc157)
^bb42: // 5 preds: ^bb4, ^bb7, ^bb25, ^bb33, ^bb36
return %c-3_i32, %false : i32, i1 loc(#loc103)
} loc(#loc100)
func private @pydmrtl$apply_compare_eq(%arg0: !iree.list<!iree.variant> loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167: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":167:0)) -> (i32, i1) {
%c0_i64 = arith.constant 0 : i64 loc(#loc159)
%cst = arith.constant 0.000000e+00 : f32 loc(#loc160)
%c-3_i32 = arith.constant -3 : i32 loc(#loc161)
%c90_i32 = arith.constant 90 : i32 loc(#loc160)
%c79_i32 = arith.constant 79 : i32 loc(#loc159)
%c0_i32 = arith.constant 0 : i32 loc(#loc162)
%c78_i32 = arith.constant 78 : i32 loc(#loc163)
%c0 = arith.constant 0 : index loc(#loc158)
%c1 = arith.constant 1 : index loc(#loc158)
%c256_i32 = arith.constant 256 : i32 loc(#loc158)
%c2 = arith.constant 2 : index loc(#loc158)
%false = arith.constant false loc(#loc164)
%c6_i32 = arith.constant 6 : i32 loc(#loc165)
%c2_i32 = arith.constant 2 : i32 loc(#loc166)
%c3_i32 = arith.constant 3 : i32 loc(#loc167)
%c60_i32 = arith.constant 60 : i32 loc(#loc166)
%c1_i32 = arith.constant 1 : i32 loc(#loc165)
%0 = iree.list.create : !iree.list<!iree.variant> loc(#loc158)
%1 = iree.list.create : !iree.list<!iree.variant> loc(#loc158)
%2 = iree.list.create : !iree.list<!iree.variant> loc(#loc158)
%3 = iree.list.create : !iree.list<!iree.variant> loc(#loc158)
%4 = iree.list.create : !iree.list<!iree.variant> loc(#loc158)
%5 = iree.list.create : !iree.list<!iree.variant> loc(#loc158)
iree.list.resize %1, %c2 : !iree.list<!iree.variant> loc(#loc158)
iree.list.set %1[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc158)
iree.list.set %1[%c1], %arg0 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc158)
iree.list.resize %3, %c2 : !iree.list<!iree.variant> loc(#loc158)
iree.list.set %3[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc158)
iree.list.set %3[%c1], %arg1 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc158)
%6 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc168)
%7 = iree.list.get %6[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc169)
%8 = iree.list.create : !iree.list<!iree.variant> loc(#loc163)
iree.list.resize %8, %c2 : !iree.list<!iree.variant> loc(#loc163)
iree.list.set %8[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc163)
iree.list.set %8[%c1], %7 : !iree.list<!iree.variant>, i32 loc(#loc163)
iree.list.resize %5, %c2 : !iree.list<!iree.variant> loc(#loc163)
iree.list.set %5[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc163)
iree.list.set %5[%c1], %8 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc163)
%9 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc170)
%10 = iree.list.get %9[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc171)
%11 = iree.list.create : !iree.list<!iree.variant> loc(#loc172)
iree.list.resize %11, %c2 : !iree.list<!iree.variant> loc(#loc172)
iree.list.set %11[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc172)
iree.list.set %11[%c1], %10 : !iree.list<!iree.variant>, i32 loc(#loc172)
iree.list.resize %4, %c2 : !iree.list<!iree.variant> loc(#loc172)
iree.list.set %4[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc172)
iree.list.set %4[%c1], %11 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc172)
%12 = iree.list.get %5[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc173)
%13 = iree.list.get %12[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc162)
%14 = arith.cmpi eq, %c78_i32, %13 : i32 loc(#loc162)
cond_br %14, ^bb1, ^bb2(%c0_i32 : i32) loc(#loc162)
^bb1: // pred: ^bb0
%15 = iree.list.get %12[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc162)
br ^bb2(%15 : i32) loc(#loc162)
^bb2(%16: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167:0)): // 2 preds: ^bb0, ^bb1
%17 = iree.list.get %4[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc174)
%18 = iree.list.get %17[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc175)
%19 = arith.cmpi eq, %c78_i32, %18 : i32 loc(#loc175)
cond_br %19, ^bb3, ^bb4(%c0_i32 : i32) loc(#loc175)
^bb3: // pred: ^bb2
%20 = iree.list.get %17[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc175)
br ^bb4(%20 : i32) loc(#loc175)
^bb4(%21: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167:0)): // 2 preds: ^bb2, ^bb3
%22 = arith.cmpi eq, %16, %21 : i32 loc(#loc175)
cond_br %22, ^bb5, ^bb42 loc(#loc176)
^bb5: // pred: ^bb4
%23 = iree.list.get %5[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc177)
%24 = iree.list.get %23[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc165)
%25 = arith.cmpi eq, %c78_i32, %24 : i32 loc(#loc165)
cond_br %25, ^bb6, ^bb7(%c0_i32 : i32) loc(#loc165)
^bb6: // pred: ^bb5
%26 = iree.list.get %23[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc165)
br ^bb7(%26 : i32) loc(#loc165)
^bb7(%27: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167:0)): // 2 preds: ^bb5, ^bb6
%28 = arith.shrsi %27, %c6_i32 : i32 loc(#loc165)
%29 = arith.cmpi eq, %28, %c1_i32 : i32 loc(#loc165)
cond_br %29, ^bb8, ^bb42 loc(#loc178)
^bb8: // pred: ^bb7
%30 = iree.list.get %5[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc179)
%31 = iree.list.get %30[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc166)
%32 = arith.cmpi eq, %c78_i32, %31 : i32 loc(#loc166)
cond_br %32, ^bb9, ^bb10(%c0_i32 : i32) loc(#loc166)
^bb9: // pred: ^bb8
%33 = iree.list.get %30[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc166)
br ^bb10(%33 : i32) loc(#loc166)
^bb10(%34: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167:0)): // 2 preds: ^bb8, ^bb9
%35 = arith.andi %34, %c60_i32 : i32 loc(#loc166)
%36 = arith.shrsi %35, %c2_i32 : i32 loc(#loc166)
%37 = iree.list.create : !iree.list<!iree.variant> loc(#loc180)
iree.list.resize %37, %c2 : !iree.list<!iree.variant> loc(#loc180)
iree.list.set %37[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc180)
iree.list.set %37[%c1], %36 : !iree.list<!iree.variant>, i32 loc(#loc180)
iree.list.resize %0, %c2 : !iree.list<!iree.variant> loc(#loc180)
iree.list.set %0[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc180)
iree.list.set %0[%c1], %37 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc180)
%38 = iree.list.get %5[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc181)
%39 = iree.list.get %38[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc167)
%40 = arith.cmpi eq, %c78_i32, %39 : i32 loc(#loc167)
cond_br %40, ^bb11, ^bb12(%c0_i32 : i32) loc(#loc167)
^bb11: // pred: ^bb10
%41 = iree.list.get %38[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc167)
br ^bb12(%41 : i32) loc(#loc167)
^bb12(%42: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167:0)): // 2 preds: ^bb10, ^bb11
%43 = arith.andi %42, %c3_i32 : i32 loc(#loc167)
%44 = iree.list.create : !iree.list<!iree.variant> loc(#loc182)
iree.list.resize %44, %c2 : !iree.list<!iree.variant> loc(#loc182)
iree.list.set %44[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 loc(#loc182)
iree.list.set %44[%c1], %43 : !iree.list<!iree.variant>, i32 loc(#loc182)
iree.list.resize %2, %c2 : !iree.list<!iree.variant> loc(#loc182)
iree.list.set %2[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 loc(#loc182)
iree.list.set %2[%c1], %44 : !iree.list<!iree.variant>, !iree.list<!iree.variant> loc(#loc182)
%45 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc183)
%46 = iree.list.get %45[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc184)
%47 = arith.cmpi eq, %c78_i32, %46 : i32 loc(#loc184)
cond_br %47, ^bb13, ^bb14(%c0_i32 : i32) loc(#loc184)
^bb13: // pred: ^bb12
%48 = iree.list.get %45[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc184)
br ^bb14(%48 : i32) loc(#loc184)
^bb14(%49: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167:0)): // 2 preds: ^bb12, ^bb13
%50 = arith.cmpi sle, %49, %c3_i32 : i32 loc(#loc185)
cond_br %50, ^bb15, ^bb31 loc(#loc186)
^bb15: // pred: ^bb14
%51 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc187)
%52 = iree.list.get %51[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc188)
%53 = arith.cmpi eq, %c78_i32, %52 : i32 loc(#loc188)
cond_br %53, ^bb16, ^bb17(%c0_i32 : i32) loc(#loc188)
^bb16: // pred: ^bb15
%54 = iree.list.get %51[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc188)
br ^bb17(%54 : i32) loc(#loc188)
^bb17(%55: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167:0)): // 2 preds: ^bb15, ^bb16
%56 = arith.cmpi eq, %55, %c2_i32 : i32 loc(#loc189)
cond_br %56, ^bb18, ^bb23 loc(#loc190)
^bb18: // pred: ^bb17
%57 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc191)
%58 = iree.list.get %57[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc192)
%59 = arith.cmpi eq, %c78_i32, %58 : i32 loc(#loc192)
cond_br %59, ^bb19, ^bb20(%c0_i32 : i32) loc(#loc192)
^bb19: // pred: ^bb18
%60 = iree.list.get %57[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc192)
br ^bb20(%60 : i32) loc(#loc192)
^bb20(%61: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167:0)): // 2 preds: ^bb18, ^bb19
%62 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc193)
%63 = iree.list.get %62[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc194)
%64 = arith.cmpi eq, %c78_i32, %63 : i32 loc(#loc194)
cond_br %64, ^bb21, ^bb22(%c0_i32 : i32) loc(#loc194)
^bb21: // pred: ^bb20
%65 = iree.list.get %62[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc194)
br ^bb22(%65 : i32) loc(#loc194)
^bb22(%66: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167:0)): // 2 preds: ^bb20, ^bb21
%67 = arith.cmpi eq, %61, %66 : i32 loc(#loc194)
return %c0_i32, %67 : i32, i1 loc(#loc195)
^bb23: // pred: ^bb17
%68 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc196)
%69 = iree.list.get %68[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc197)
%70 = arith.cmpi eq, %c78_i32, %69 : i32 loc(#loc197)
cond_br %70, ^bb24, ^bb25(%c0_i32 : i32) loc(#loc197)
^bb24: // pred: ^bb23
%71 = iree.list.get %68[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc197)
br ^bb25(%71 : i32) loc(#loc197)
^bb25(%72: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167:0)): // 2 preds: ^bb23, ^bb24
%73 = arith.cmpi eq, %72, %c3_i32 : i32 loc(#loc198)
cond_br %73, ^bb26, ^bb42 loc(#loc199)
^bb26: // pred: ^bb25
%74 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc200)
%75 = iree.list.get %74[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc159)
%76 = arith.cmpi eq, %c79_i32, %75 : i32 loc(#loc159)
cond_br %76, ^bb27, ^bb28(%c0_i64 : i64) loc(#loc159)
^bb27: // pred: ^bb26
%77 = iree.list.get %74[%c1] : !iree.list<!iree.variant> -> i64 loc(#loc159)
br ^bb28(%77 : i64) loc(#loc159)
^bb28(%78: i64 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167:0)): // 2 preds: ^bb26, ^bb27
%79 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc201)
%80 = iree.list.get %79[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc202)
%81 = arith.cmpi eq, %c79_i32, %80 : i32 loc(#loc202)
cond_br %81, ^bb29, ^bb30(%c0_i64 : i64) loc(#loc202)
^bb29: // pred: ^bb28
%82 = iree.list.get %79[%c1] : !iree.list<!iree.variant> -> i64 loc(#loc202)
br ^bb30(%82 : i64) loc(#loc202)
^bb30(%83: i64 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167:0)): // 2 preds: ^bb28, ^bb29
%84 = arith.cmpi eq, %78, %83 : i64 loc(#loc202)
return %c0_i32, %84 : i32, i1 loc(#loc203)
^bb31: // pred: ^bb14
%85 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc204)
%86 = iree.list.get %85[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc205)
%87 = arith.cmpi eq, %c78_i32, %86 : i32 loc(#loc205)
cond_br %87, ^bb32, ^bb33(%c0_i32 : i32) loc(#loc205)
^bb32: // pred: ^bb31
%88 = iree.list.get %85[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc205)
br ^bb33(%88 : i32) loc(#loc205)
^bb33(%89: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167:0)): // 2 preds: ^bb31, ^bb32
%90 = arith.cmpi eq, %89, %c6_i32 : i32 loc(#loc206)
cond_br %90, ^bb34, ^bb42 loc(#loc207)
^bb34: // pred: ^bb33
%91 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc208)
%92 = iree.list.get %91[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc209)
%93 = arith.cmpi eq, %c78_i32, %92 : i32 loc(#loc209)
cond_br %93, ^bb35, ^bb36(%c0_i32 : i32) loc(#loc209)
^bb35: // pred: ^bb34
%94 = iree.list.get %91[%c1] : !iree.list<!iree.variant> -> i32 loc(#loc209)
br ^bb36(%94 : i32) loc(#loc209)
^bb36(%95: i32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167:0)): // 2 preds: ^bb34, ^bb35
%96 = arith.cmpi eq, %95, %c2_i32 : i32 loc(#loc210)
cond_br %96, ^bb37, ^bb42 loc(#loc211)
^bb37: // pred: ^bb36
%97 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc212)
%98 = iree.list.get %97[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc160)
%99 = arith.cmpi eq, %c90_i32, %98 : i32 loc(#loc160)
cond_br %99, ^bb38, ^bb39(%cst : f32) loc(#loc160)
^bb38: // pred: ^bb37
%100 = iree.list.get %97[%c1] : !iree.list<!iree.variant> -> f32 loc(#loc160)
br ^bb39(%100 : f32) loc(#loc160)
^bb39(%101: f32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167:0)): // 2 preds: ^bb37, ^bb38
%102 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> loc(#loc213)
%103 = iree.list.get %102[%c0] : !iree.list<!iree.variant> -> i32 loc(#loc214)
%104 = arith.cmpi eq, %c90_i32, %103 : i32 loc(#loc214)
cond_br %104, ^bb40, ^bb41(%cst : f32) loc(#loc214)
^bb40: // pred: ^bb39
%105 = iree.list.get %102[%c1] : !iree.list<!iree.variant> -> f32 loc(#loc214)
br ^bb41(%105 : f32) loc(#loc214)
^bb41(%106: f32 loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":167:0)): // 2 preds: ^bb39, ^bb40
%107 = arith.cmpf oeq, %101, %106 : f32 loc(#loc214)
return %c0_i32, %107 : i32, i1 loc(#loc215)
^bb42: // 5 preds: ^bb4, ^bb7, ^bb25, ^bb33, ^bb36
return %c-3_i32, %false : i32, i1 loc(#loc161)
} loc(#loc158)
} loc(#loc0)
#loc0 = loc(unknown)
#loc2 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":47:10)
#loc3 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":54:12)
#loc4 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":49:6)
#loc5 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":45:2)
#loc6 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":46:2)
#loc7 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":47:5)
#loc8 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":47:2)
#loc9 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":48:11)
#loc10 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":48:4)
#loc11 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":49:2)
#loc12 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":50:2)
#loc13 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":50:8)
#loc14 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":50:13)
#loc15 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":51:8)
#loc16 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":51:12)
#loc17 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":51:4)
#loc18 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":52:8)
#loc19 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":52:4)
#loc20 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":53:8)
#loc21 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":53:4)
#loc22 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":54:8)
#loc23 = loc("/home/stella/src/iree-samples/pydm/simple/fibonacci.py":54:4)
#loc25 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":23:9)
#loc26 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":19:5)
#loc27 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":17:2)
#loc28 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":17:33)
#loc29 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":17:19)
#loc30 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":18:34)
#loc31 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":18:20)
#loc32 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":18:2)
#loc33 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":19:26)
#loc34 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":19:2)
#loc35 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":20:28)
#loc36 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":20:7)
#loc37 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":20:4)
#loc38 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":22:13)
#loc39 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":22:19)
#loc40 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":22:6)
#loc41 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":23:27)
#loc43 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":44:17)
#loc44 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":49:17)
#loc45 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":57:9)
#loc46 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":28:2)
#loc47 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":57:27)
#loc48 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":31:7)
#loc49 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":32:20)
#loc50 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":33:24)
#loc51 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":28:28)
#loc52 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":28:14)
#loc53 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":29:34)
#loc54 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":29:20)
#loc55 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":29:2)
#loc56 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":30:15)
#loc57 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":30:5)
#loc58 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":30:39)
#loc59 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":30:29)
#loc60 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":30:2)
#loc61 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":31:28)
#loc62 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":31:4)
#loc63 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":32:51)
#loc64 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":32:6)
#loc65 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":33:54)
#loc66 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":33:6)
#loc67 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":34:19)
#loc68 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":34:9)
#loc69 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":34:35)
#loc70 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":34:6)
#loc71 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":41:21)
#loc72 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":41:11)
#loc73 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":41:41)
#loc74 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":41:8)
#loc75 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":42:27)
#loc76 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":42:17)
#loc77 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":42:45)
#loc78 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":42:35)
#loc79 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":42:10)
#loc80 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":43:23)
#loc81 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":43:13)
#loc82 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":43:43)
#loc83 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":43:8)
#loc84 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":44:27)
#loc85 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":44:45)
#loc86 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":44:35)
#loc87 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":44:10)
#loc88 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":46:21)
#loc89 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":46:11)
#loc90 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":46:37)
#loc91 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":46:6)
#loc92 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":48:21)
#loc93 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":48:11)
#loc94 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":48:41)
#loc95 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":48:8)
#loc96 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":49:27)
#loc97 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":49:45)
#loc98 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":49:35)
#loc99 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":49:10)
#loc101 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":149:17)
#loc102 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":154:17)
#loc103 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":162:9)
#loc104 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":135:5)
#loc105 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":133:2)
#loc106 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":162:27)
#loc107 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":136:7)
#loc108 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":137:20)
#loc109 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":138:24)
#loc110 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":133:28)
#loc111 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":133:14)
#loc112 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":134:34)
#loc113 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":134:20)
#loc114 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":134:2)
#loc115 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":135:15)
#loc116 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":135:39)
#loc117 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":135:29)
#loc118 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":135:2)
#loc119 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":136:28)
#loc120 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":136:4)
#loc121 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":137:51)
#loc122 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":137:6)
#loc123 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":138:54)
#loc124 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":138:6)
#loc125 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":139:19)
#loc126 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":139:9)
#loc127 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":139:35)
#loc128 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":139:6)
#loc129 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":146:21)
#loc130 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":146:11)
#loc131 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":146:41)
#loc132 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":146:8)
#loc133 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":147:27)
#loc134 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":147:17)
#loc135 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":147:46)
#loc136 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":147:36)
#loc137 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":147:10)
#loc138 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":148:23)
#loc139 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":148:13)
#loc140 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":148:43)
#loc141 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":148:8)
#loc142 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":149:27)
#loc143 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":149:46)
#loc144 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":149:36)
#loc145 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":149:10)
#loc146 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":151:21)
#loc147 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":151:11)
#loc148 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":151:37)
#loc149 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":151:6)
#loc150 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":153:21)
#loc151 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":153:11)
#loc152 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":153:41)
#loc153 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":153:8)
#loc154 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":154:27)
#loc155 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":154:46)
#loc156 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":154:36)
#loc157 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":154:10)
#loc159 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":184:17)
#loc160 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":189:17)
#loc161 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":197:9)
#loc162 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":170:5)
#loc163 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":168:2)
#loc164 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":197:27)
#loc165 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":171:7)
#loc166 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics.py":172:20)
#loc167 = loc("/home/stella/src/iree-build/compiler-api/python_package/iree/compiler/dialects/iree_pydm/rtl/modules/numerics..
module @module {
iree_pydm.func @main(%arg0: !iree_pydm.integer) -> (!iree_pydm.exception_result, !iree_pydm.integer) attributes {arg_names = ["n"], cell_vars = [], free_vars = ["n", "a", "b", "i", "c"]} {
%b = alloc_free_var "b" -> !iree_pydm.free_var_ref
%a = alloc_free_var "a" -> !iree_pydm.free_var_ref
%c = alloc_free_var "c" -> !iree_pydm.free_var_ref
%i = alloc_free_var "i" -> !iree_pydm.free_var_ref
%n = alloc_free_var "n" -> !iree_pydm.free_var_ref
%0 = box %arg0 : !iree_pydm.integer -> !iree_pydm.object<!iree_pydm.integer>
store_var %n = %0 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer>
%1 = constant 0 : i64 -> !iree_pydm.integer
%2 = box %1 : !iree_pydm.integer -> !iree_pydm.object<!iree_pydm.integer>
store_var %a = %2 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer>
%3 = constant 1 : i64 -> !iree_pydm.integer
%4 = box %3 : !iree_pydm.integer -> !iree_pydm.object<!iree_pydm.integer>
store_var %b = %4 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer>
%5 = constant false -> !iree_pydm.bool
%6 = load_var %n : !iree_pydm.free_var_ref -> !iree_pydm.object
%7 = constant 0 : i64 -> !iree_pydm.integer
%left_prime, %right_prime = dynamic_binary_promote %6, %7 : !iree_pydm.object, !iree_pydm.integer
%8 = apply_compare "eq", %left_prime, %right_prime : !iree_pydm.object, !iree_pydm.object
%9 = as_bool %8 : !iree_pydm.bool -> !iree_pydm.bool
%10 = bool_to_pred %9
std.cond_br %10, ^bb1, ^bb2
^bb1: // pred: ^bb0
%11 = load_var %a : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result, %primitive = unbox %11 : !iree_pydm.object -> !iree_pydm.integer
raise_on_failure %exc_result : !iree_pydm.exception_result
return %primitive : !iree_pydm.integer
^bb2: // pred: ^bb0
%12 = constant 2 : i64 -> !iree_pydm.integer
%13 = box %12 : !iree_pydm.integer -> !iree_pydm.object<!iree_pydm.integer>
store_var %i = %13 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer>
std.br ^bb3
^bb3: // 2 preds: ^bb2, ^bb4
%14 = constant false -> !iree_pydm.bool
%15 = load_var %i : !iree_pydm.free_var_ref -> !iree_pydm.object
%16 = load_var %n : !iree_pydm.free_var_ref -> !iree_pydm.object
%left_prime_0, %right_prime_1 = dynamic_binary_promote %15, %16 : !iree_pydm.object, !iree_pydm.object
%17 = apply_compare "le", %left_prime_0, %right_prime_1 : !iree_pydm.object, !iree_pydm.object
%18 = as_bool %17 : !iree_pydm.bool -> !iree_pydm.bool
%19 = bool_to_pred %18
std.cond_br %19, ^bb4, ^bb5
^bb4: // pred: ^bb3
%20 = load_var %a : !iree_pydm.free_var_ref -> !iree_pydm.object
%21 = load_var %b : !iree_pydm.free_var_ref -> !iree_pydm.object
%left_prime_2, %right_prime_3 = dynamic_binary_promote %20, %21 : !iree_pydm.object, !iree_pydm.object
%22 = apply_binary "add", %left_prime_2, %right_prime_3 : !iree_pydm.object, !iree_pydm.object -> !iree_pydm.object
store_var %c = %22 : !iree_pydm.free_var_ref, !iree_pydm.object
%23 = load_var %b : !iree_pydm.free_var_ref -> !iree_pydm.object
store_var %a = %23 : !iree_pydm.free_var_ref, !iree_pydm.object
%24 = load_var %c : !iree_pydm.free_var_ref -> !iree_pydm.object
store_var %b = %24 : !iree_pydm.free_var_ref, !iree_pydm.object
%25 = load_var %i : !iree_pydm.free_var_ref -> !iree_pydm.object
%26 = constant 1 : i64 -> !iree_pydm.integer
%left_prime_4, %right_prime_5 = dynamic_binary_promote %25, %26 : !iree_pydm.object, !iree_pydm.integer
%27 = apply_binary "add", %left_prime_4, %right_prime_5 : !iree_pydm.object, !iree_pydm.object -> !iree_pydm.object
store_var %i = %27 : !iree_pydm.free_var_ref, !iree_pydm.object
std.br ^bb3
^bb5: // pred: ^bb3
%28 = load_var %b : !iree_pydm.free_var_ref -> !iree_pydm.object
%exc_result_6, %primitive_7 = unbox %28 : !iree_pydm.object -> !iree_pydm.integer
raise_on_failure %exc_result_6 : !iree_pydm.exception_result
return %primitive_7 : !iree_pydm.integer
}
}
def test_spaceopt(self):
@jit(debug=2)
def compute(n: int) -> int:
a = 0
b = 1
if n == 0:
return a
i = 2
while i <= n: # TODO: Upgrade to for...range
c = a + b
a = b
b = c
i = i + 1 # TODO: Support AugAssign
return b
print(compute(20))
# Prints 6765
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment