Last active
October 6, 2021 02:17
-
-
Save stellaraccident/e9f41a09a3834465d7576312fc63c278 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module @module { | |
func @object_as_bool_int(%arg0: i32, %arg1: i32, %arg2: i32) -> (i32, i32) { | |
%c-4_i32 = constant -4 : i32 | |
%c0_i32 = constant 0 : i32 | |
%c1 = constant 1 : index | |
%c256_i32 = constant 256 : i32 | |
%c0 = constant 0 : index | |
%c2 = constant 2 : index | |
%c78_i32 = constant 78 : i32 | |
%0 = iree.list.create : !iree.list<!iree.variant> | |
%1 = iree.list.create : !iree.list<!iree.variant> | |
%2 = iree.list.create : !iree.list<!iree.variant> | |
%3 = iree.list.create : !iree.list<!iree.variant> | |
iree.list.resize %3, %c2 : !iree.list<!iree.variant> | |
iree.list.set %3[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %3[%c1], %arg0 : !iree.list<!iree.variant>, i32 | |
iree.list.resize %1, %c2 : !iree.list<!iree.variant> | |
iree.list.set %1[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %1[%c1], %3 : !iree.list<!iree.variant>, !iree.list<!iree.variant> | |
%4 = iree.list.create : !iree.list<!iree.variant> | |
iree.list.resize %4, %c2 : !iree.list<!iree.variant> | |
iree.list.set %4[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %4[%c1], %arg1 : !iree.list<!iree.variant>, i32 | |
iree.list.resize %0, %c2 : !iree.list<!iree.variant> | |
iree.list.set %0[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %0[%c1], %4 : !iree.list<!iree.variant>, !iree.list<!iree.variant> | |
%5 = iree.list.create : !iree.list<!iree.variant> | |
iree.list.resize %5, %c2 : !iree.list<!iree.variant> | |
iree.list.set %5[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %5[%c1], %arg2 : !iree.list<!iree.variant>, i32 | |
iree.list.resize %2, %c2 : !iree.list<!iree.variant> | |
iree.list.set %2[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %2[%c1], %5 : !iree.list<!iree.variant>, !iree.list<!iree.variant> | |
%6 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%7:2 = call @pydmrtl$object_as_bool(%6) : (!iree.list<!iree.variant>) -> (i32, i1) | |
%8 = cmpi eq, %c0_i32, %7#0 : i32 | |
cond_br %8, ^bb1, ^bb4(%7#0, %c0_i32 : i32, i32) | |
^bb1: // pred: ^bb0 | |
%9 = select %7#1, %0, %2 : !iree.list<!iree.variant> | |
%10 = iree.list.get %9[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%11 = iree.list.get %10[%c0] : !iree.list<!iree.variant> -> i32 | |
%12 = cmpi eq, %c78_i32, %11 : i32 | |
cond_br %12, ^bb2, ^bb3(%c-4_i32, %c0_i32 : i32, i32) | |
^bb2: // pred: ^bb1 | |
%13 = iree.list.get %10[%c1] : !iree.list<!iree.variant> -> i32 | |
br ^bb3(%c0_i32, %13 : i32, i32) | |
^bb3(%14: i32, %15: i32): // 2 preds: ^bb1, ^bb2 | |
%16 = cmpi eq, %c0_i32, %14 : i32 | |
cond_br %16, ^bb4(%c0_i32, %15 : i32, i32), ^bb4(%14, %c0_i32 : i32, i32) | |
^bb4(%17: i32, %18: i32): // 3 preds: ^bb0, ^bb3, ^bb3 | |
return %17, %18 : i32, i32 | |
} | |
func @object_as_bool_bool(%arg0: i1, %arg1: i32, %arg2: i32) -> (i32, i32) { | |
%c-4_i32 = constant -4 : i32 | |
%c0_i32 = constant 0 : i32 | |
%c1 = constant 1 : index | |
%c256_i32 = constant 256 : i32 | |
%c0 = constant 0 : index | |
%c2 = constant 2 : index | |
%c78_i32 = constant 78 : i32 | |
%c64_i32 = constant 64 : i32 | |
%0 = iree.list.create : !iree.list<!iree.variant> | |
%1 = iree.list.create : !iree.list<!iree.variant> | |
%2 = iree.list.create : !iree.list<!iree.variant> | |
%3 = iree.list.create : !iree.list<!iree.variant> | |
iree.list.resize %3, %c2 : !iree.list<!iree.variant> | |
iree.list.set %3[%c0], %c64_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %3[%c1], %arg0 : !iree.list<!iree.variant>, i1 | |
iree.list.resize %1, %c2 : !iree.list<!iree.variant> | |
iree.list.set %1[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %1[%c1], %3 : !iree.list<!iree.variant>, !iree.list<!iree.variant> | |
%4 = iree.list.create : !iree.list<!iree.variant> | |
iree.list.resize %4, %c2 : !iree.list<!iree.variant> | |
iree.list.set %4[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %4[%c1], %arg1 : !iree.list<!iree.variant>, i32 | |
iree.list.resize %0, %c2 : !iree.list<!iree.variant> | |
iree.list.set %0[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %0[%c1], %4 : !iree.list<!iree.variant>, !iree.list<!iree.variant> | |
%5 = iree.list.create : !iree.list<!iree.variant> | |
iree.list.resize %5, %c2 : !iree.list<!iree.variant> | |
iree.list.set %5[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %5[%c1], %arg2 : !iree.list<!iree.variant>, i32 | |
iree.list.resize %2, %c2 : !iree.list<!iree.variant> | |
iree.list.set %2[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %2[%c1], %5 : !iree.list<!iree.variant>, !iree.list<!iree.variant> | |
%6 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%7:2 = call @pydmrtl$object_as_bool(%6) : (!iree.list<!iree.variant>) -> (i32, i1) | |
%8 = cmpi eq, %c0_i32, %7#0 : i32 | |
cond_br %8, ^bb1, ^bb4(%7#0, %c0_i32 : i32, i32) | |
^bb1: // pred: ^bb0 | |
%9 = select %7#1, %0, %2 : !iree.list<!iree.variant> | |
%10 = iree.list.get %9[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%11 = iree.list.get %10[%c0] : !iree.list<!iree.variant> -> i32 | |
%12 = cmpi eq, %c78_i32, %11 : i32 | |
cond_br %12, ^bb2, ^bb3(%c-4_i32, %c0_i32 : i32, i32) | |
^bb2: // pred: ^bb1 | |
%13 = iree.list.get %10[%c1] : !iree.list<!iree.variant> -> i32 | |
br ^bb3(%c0_i32, %13 : i32, i32) | |
^bb3(%14: i32, %15: i32): // 2 preds: ^bb1, ^bb2 | |
%16 = cmpi eq, %c0_i32, %14 : i32 | |
cond_br %16, ^bb4(%c0_i32, %15 : i32, i32), ^bb4(%14, %c0_i32 : i32, i32) | |
^bb4(%17: i32, %18: i32): // 3 preds: ^bb0, ^bb3, ^bb3 | |
return %17, %18 : i32, i32 | |
} | |
func @object_as_bool_float(%arg0: f32, %arg1: i32, %arg2: i32) -> (i32, i32) { | |
%c-4_i32 = constant -4 : i32 | |
%c0_i32 = constant 0 : i32 | |
%c1 = constant 1 : index | |
%c256_i32 = constant 256 : i32 | |
%c0 = constant 0 : index | |
%c2 = constant 2 : index | |
%c78_i32 = constant 78 : i32 | |
%c90_i32 = constant 90 : i32 | |
%0 = iree.list.create : !iree.list<!iree.variant> | |
%1 = iree.list.create : !iree.list<!iree.variant> | |
%2 = iree.list.create : !iree.list<!iree.variant> | |
%3 = iree.list.create : !iree.list<!iree.variant> | |
iree.list.resize %3, %c2 : !iree.list<!iree.variant> | |
iree.list.set %3[%c0], %c90_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %3[%c1], %arg0 : !iree.list<!iree.variant>, f32 | |
iree.list.resize %1, %c2 : !iree.list<!iree.variant> | |
iree.list.set %1[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %1[%c1], %3 : !iree.list<!iree.variant>, !iree.list<!iree.variant> | |
%4 = iree.list.create : !iree.list<!iree.variant> | |
iree.list.resize %4, %c2 : !iree.list<!iree.variant> | |
iree.list.set %4[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %4[%c1], %arg1 : !iree.list<!iree.variant>, i32 | |
iree.list.resize %0, %c2 : !iree.list<!iree.variant> | |
iree.list.set %0[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %0[%c1], %4 : !iree.list<!iree.variant>, !iree.list<!iree.variant> | |
%5 = iree.list.create : !iree.list<!iree.variant> | |
iree.list.resize %5, %c2 : !iree.list<!iree.variant> | |
iree.list.set %5[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %5[%c1], %arg2 : !iree.list<!iree.variant>, i32 | |
iree.list.resize %2, %c2 : !iree.list<!iree.variant> | |
iree.list.set %2[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %2[%c1], %5 : !iree.list<!iree.variant>, !iree.list<!iree.variant> | |
%6 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%7:2 = call @pydmrtl$object_as_bool(%6) : (!iree.list<!iree.variant>) -> (i32, i1) | |
%8 = cmpi eq, %c0_i32, %7#0 : i32 | |
cond_br %8, ^bb1, ^bb4(%7#0, %c0_i32 : i32, i32) | |
^bb1: // pred: ^bb0 | |
%9 = select %7#1, %0, %2 : !iree.list<!iree.variant> | |
%10 = iree.list.get %9[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%11 = iree.list.get %10[%c0] : !iree.list<!iree.variant> -> i32 | |
%12 = cmpi eq, %c78_i32, %11 : i32 | |
cond_br %12, ^bb2, ^bb3(%c-4_i32, %c0_i32 : i32, i32) | |
^bb2: // pred: ^bb1 | |
%13 = iree.list.get %10[%c1] : !iree.list<!iree.variant> -> i32 | |
br ^bb3(%c0_i32, %13 : i32, i32) | |
^bb3(%14: i32, %15: i32): // 2 preds: ^bb1, ^bb2 | |
%16 = cmpi eq, %c0_i32, %14 : i32 | |
cond_br %16, ^bb4(%c0_i32, %15 : i32, i32), ^bb4(%14, %c0_i32 : i32, i32) | |
^bb4(%17: i32, %18: i32): // 3 preds: ^bb0, ^bb3, ^bb3 | |
return %17, %18 : i32, i32 | |
} | |
func private @pydmrtl$object_as_bool(%arg0: !iree.list<!iree.variant>) -> (i32, i1) { | |
%c-3_i32 = constant -3 : i32 | |
%c79_i32 = constant 79 : i32 | |
%c64_i32 = constant 64 : i32 | |
%c78_i32 = constant 78 : i32 | |
%c0 = constant 0 : index | |
%c1 = constant 1 : index | |
%c256_i32 = constant 256 : i32 | |
%c2 = constant 2 : index | |
%true = constant true | |
%c6_i32 = constant 6 : i32 | |
%c0_i64 = constant 0 : i64 | |
%c0_i32 = constant 0 : i32 | |
%c2_i32 = constant 2 : i32 | |
%c3_i32 = constant 3 : i32 | |
%c60_i32 = constant 60 : i32 | |
%c1_i32 = constant 1 : i32 | |
%false = constant false | |
%0 = iree.list.create : !iree.list<!iree.variant> | |
%1 = iree.list.create : !iree.list<!iree.variant> | |
%2 = iree.list.create : !iree.list<!iree.variant> | |
%3 = iree.list.create : !iree.list<!iree.variant> | |
iree.list.resize %0, %c2 : !iree.list<!iree.variant> | |
iree.list.set %0[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %0[%c1], %arg0 : !iree.list<!iree.variant>, !iree.list<!iree.variant> | |
%4 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%5 = iree.list.get %4[%c0] : !iree.list<!iree.variant> -> i32 | |
%6 = iree.list.create : !iree.list<!iree.variant> | |
iree.list.resize %6, %c2 : !iree.list<!iree.variant> | |
iree.list.set %6[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %6[%c1], %5 : !iree.list<!iree.variant>, i32 | |
iree.list.resize %3, %c2 : !iree.list<!iree.variant> | |
iree.list.set %3[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %3[%c1], %6 : !iree.list<!iree.variant>, !iree.list<!iree.variant> | |
%7 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%8 = iree.list.get %7[%c0] : !iree.list<!iree.variant> -> i32 | |
%9 = cmpi eq, %c78_i32, %8 : i32 | |
cond_br %9, ^bb1, ^bb2(%c0_i32 : i32) | |
^bb1: // pred: ^bb0 | |
%10 = iree.list.get %7[%c1] : !iree.list<!iree.variant> -> i32 | |
br ^bb2(%10 : i32) | |
^bb2(%11: i32): // 2 preds: ^bb0, ^bb1 | |
%12 = cmpi eq, %11, %c1_i32 : i32 | |
cond_br %12, ^bb3(%false : i1), ^bb4 | |
^bb3(%13: i1): // 7 preds: ^bb2, ^bb6, ^bb12, ^bb13, ^bb37, ^bb40, ^bb43 | |
return %c0_i32, %13 : i32, i1 | |
^bb4: // pred: ^bb2 | |
%14 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%15 = iree.list.get %14[%c0] : !iree.list<!iree.variant> -> i32 | |
%16 = cmpi eq, %c78_i32, %15 : i32 | |
cond_br %16, ^bb5, ^bb6(%c0_i32 : i32) | |
^bb5: // pred: ^bb4 | |
%17 = iree.list.get %14[%c1] : !iree.list<!iree.variant> -> i32 | |
br ^bb6(%17 : i32) | |
^bb6(%18: i32): // 2 preds: ^bb4, ^bb5 | |
%19 = shift_right_signed %18, %c6_i32 : i32 | |
%20 = cmpi eq, %19, %c1_i32 : i32 | |
cond_br %20, ^bb7, ^bb3(%true : i1) | |
^bb7: // pred: ^bb6 | |
%21 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%22 = iree.list.get %21[%c0] : !iree.list<!iree.variant> -> i32 | |
%23 = cmpi eq, %c78_i32, %22 : i32 | |
cond_br %23, ^bb8, ^bb9(%c0_i32 : i32) | |
^bb8: // pred: ^bb7 | |
%24 = iree.list.get %21[%c1] : !iree.list<!iree.variant> -> i32 | |
br ^bb9(%24 : i32) | |
^bb9(%25: i32): // 2 preds: ^bb7, ^bb8 | |
%26 = and %25, %c60_i32 : i32 | |
%27 = shift_right_signed %26, %c2_i32 : i32 | |
%28 = iree.list.create : !iree.list<!iree.variant> | |
iree.list.resize %28, %c2 : !iree.list<!iree.variant> | |
iree.list.set %28[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %28[%c1], %27 : !iree.list<!iree.variant>, i32 | |
iree.list.resize %1, %c2 : !iree.list<!iree.variant> | |
iree.list.set %1[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %1[%c1], %28 : !iree.list<!iree.variant>, !iree.list<!iree.variant> | |
%29 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%30 = iree.list.get %29[%c0] : !iree.list<!iree.variant> -> i32 | |
%31 = cmpi eq, %c78_i32, %30 : i32 | |
cond_br %31, ^bb10, ^bb11(%c0_i32 : i32) | |
^bb10: // pred: ^bb9 | |
%32 = iree.list.get %29[%c1] : !iree.list<!iree.variant> -> i32 | |
br ^bb11(%32 : i32) | |
^bb11(%33: i32): // 2 preds: ^bb9, ^bb10 | |
%34 = cmpi eq, %33, %c0_i32 : i32 | |
cond_br %34, ^bb12, ^bb14 | |
^bb12: // pred: ^bb11 | |
%35 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%36 = iree.list.get %35[%c0] : !iree.list<!iree.variant> -> i32 | |
%37 = cmpi eq, %c64_i32, %36 : i32 | |
cond_br %37, ^bb13, ^bb3(%false : i1) | |
^bb13: // pred: ^bb12 | |
%38 = iree.list.get %35[%c1] : !iree.list<!iree.variant> -> i1 | |
br ^bb3(%38 : i1) | |
^bb14: // pred: ^bb11 | |
%39 = iree.list.get %3[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%40 = iree.list.get %39[%c0] : !iree.list<!iree.variant> -> i32 | |
%41 = cmpi eq, %c78_i32, %40 : i32 | |
cond_br %41, ^bb15, ^bb16(%c0_i32 : i32) | |
^bb15: // pred: ^bb14 | |
%42 = iree.list.get %39[%c1] : !iree.list<!iree.variant> -> i32 | |
br ^bb16(%42 : i32) | |
^bb16(%43: i32): // 2 preds: ^bb14, ^bb15 | |
%44 = and %43, %c3_i32 : i32 | |
%45 = iree.list.create : !iree.list<!iree.variant> | |
iree.list.resize %45, %c2 : !iree.list<!iree.variant> | |
iree.list.set %45[%c0], %c78_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %45[%c1], %44 : !iree.list<!iree.variant>, i32 | |
iree.list.resize %2, %c2 : !iree.list<!iree.variant> | |
iree.list.set %2[%c0], %c256_i32 : !iree.list<!iree.variant>, i32 | |
iree.list.set %2[%c1], %45 : !iree.list<!iree.variant>, !iree.list<!iree.variant> | |
%46 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%47 = iree.list.get %46[%c0] : !iree.list<!iree.variant> -> i32 | |
%48 = cmpi eq, %c78_i32, %47 : i32 | |
cond_br %48, ^bb17, ^bb18(%c0_i32 : i32) | |
^bb17: // pred: ^bb16 | |
%49 = iree.list.get %46[%c1] : !iree.list<!iree.variant> -> i32 | |
br ^bb18(%49 : i32) | |
^bb18(%50: i32): // 2 preds: ^bb16, ^bb17 | |
%51 = cmpi eq, %50, %c3_i32 : i32 | |
cond_br %51, ^bb19, ^bb32 | |
^bb19: // pred: ^bb18 | |
%52 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%53 = iree.list.get %52[%c0] : !iree.list<!iree.variant> -> i32 | |
%54 = cmpi eq, %c78_i32, %53 : i32 | |
cond_br %54, ^bb20, ^bb21(%c0_i32 : i32) | |
^bb20: // pred: ^bb19 | |
%55 = iree.list.get %52[%c1] : !iree.list<!iree.variant> -> i32 | |
br ^bb21(%55 : i32) | |
^bb21(%56: i32): // 2 preds: ^bb19, ^bb20 | |
%57 = cmpi eq, %56, %c2_i32 : i32 | |
cond_br %57, ^bb22, ^bb25 | |
^bb22: // pred: ^bb21 | |
%58 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%59 = iree.list.get %58[%c0] : !iree.list<!iree.variant> -> i32 | |
%60 = cmpi eq, %c78_i32, %59 : i32 | |
cond_br %60, ^bb23, ^bb24(%c0_i32 : i32) | |
^bb23: // pred: ^bb22 | |
%61 = iree.list.get %58[%c1] : !iree.list<!iree.variant> -> i32 | |
br ^bb24(%61 : i32) | |
^bb24(%62: i32): // 2 preds: ^bb22, ^bb23 | |
%63 = cmpi ne, %62, %c0_i32 : i32 | |
return %c0_i32, %63 : i32, i1 | |
^bb25: // pred: ^bb21 | |
%64 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%65 = iree.list.get %64[%c0] : !iree.list<!iree.variant> -> i32 | |
%66 = cmpi eq, %c78_i32, %65 : i32 | |
cond_br %66, ^bb26, ^bb27(%c0_i32 : i32) | |
^bb26: // pred: ^bb25 | |
%67 = iree.list.get %64[%c1] : !iree.list<!iree.variant> -> i32 | |
br ^bb27(%67 : i32) | |
^bb27(%68: i32): // 2 preds: ^bb25, ^bb26 | |
%69 = cmpi eq, %68, %c3_i32 : i32 | |
cond_br %69, ^bb28, ^bb31 | |
^bb28: // pred: ^bb27 | |
%70 = iree.list.get %0[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%71 = iree.list.get %70[%c0] : !iree.list<!iree.variant> -> i32 | |
%72 = cmpi eq, %c79_i32, %71 : i32 | |
cond_br %72, ^bb29, ^bb30(%c0_i64 : i64) | |
^bb29: // pred: ^bb28 | |
%73 = iree.list.get %70[%c1] : !iree.list<!iree.variant> -> i64 | |
br ^bb30(%73 : i64) | |
^bb30(%74: i64): // 2 preds: ^bb28, ^bb29 | |
%75 = cmpi ne, %74, %c0_i64 : i64 | |
return %c0_i32, %75 : i32, i1 | |
^bb31: // 3 preds: ^bb27, ^bb34, ^bb43 | |
return %c-3_i32, %false : i32, i1 | |
^bb32: // pred: ^bb18 | |
%76 = iree.list.get %1[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%77 = iree.list.get %76[%c0] : !iree.list<!iree.variant> -> i32 | |
%78 = cmpi eq, %c78_i32, %77 : i32 | |
cond_br %78, ^bb33, ^bb34(%c0_i32 : i32) | |
^bb33: // pred: ^bb32 | |
%79 = iree.list.get %76[%c1] : !iree.list<!iree.variant> -> i32 | |
br ^bb34(%79 : i32) | |
^bb34(%80: i32): // 2 preds: ^bb32, ^bb33 | |
%81 = cmpi eq, %80, %c6_i32 : i32 | |
cond_br %81, ^bb35, ^bb31 | |
^bb35: // pred: ^bb34 | |
%82 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%83 = iree.list.get %82[%c0] : !iree.list<!iree.variant> -> i32 | |
%84 = cmpi eq, %c78_i32, %83 : i32 | |
cond_br %84, ^bb36, ^bb37(%c0_i32 : i32) | |
^bb36: // pred: ^bb35 | |
%85 = iree.list.get %82[%c1] : !iree.list<!iree.variant> -> i32 | |
br ^bb37(%85 : i32) | |
^bb37(%86: i32): // 2 preds: ^bb35, ^bb36 | |
%87 = cmpi eq, %86, %c2_i32 : i32 | |
cond_br %87, ^bb3(%true : i1), ^bb38 | |
^bb38: // pred: ^bb37 | |
%88 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%89 = iree.list.get %88[%c0] : !iree.list<!iree.variant> -> i32 | |
%90 = cmpi eq, %c78_i32, %89 : i32 | |
cond_br %90, ^bb39, ^bb40(%c0_i32 : i32) | |
^bb39: // pred: ^bb38 | |
%91 = iree.list.get %88[%c1] : !iree.list<!iree.variant> -> i32 | |
br ^bb40(%91 : i32) | |
^bb40(%92: i32): // 2 preds: ^bb38, ^bb39 | |
%93 = cmpi eq, %92, %c3_i32 : i32 | |
cond_br %93, ^bb3(%true : i1), ^bb41 | |
^bb41: // pred: ^bb40 | |
%94 = iree.list.get %2[%c1] : !iree.list<!iree.variant> -> !iree.list<!iree.variant> | |
%95 = iree.list.get %94[%c0] : !iree.list<!iree.variant> -> i32 | |
%96 = cmpi eq, %c78_i32, %95 : i32 | |
cond_br %96, ^bb42, ^bb43(%c0_i32 : i32) | |
^bb42: // pred: ^bb41 | |
%97 = iree.list.get %94[%c1] : !iree.list<!iree.variant> -> i32 | |
br ^bb43(%97 : i32) | |
^bb43(%98: i32): // 2 preds: ^bb41, ^bb42 | |
%99 = cmpi eq, %98, %c0_i32 : i32 | |
cond_br %99, ^bb3(%true : i1), ^bb31 | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
module @module { | |
iree_pydm.func @object_as_bool_int(%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 = ["condition", "true_value", "false_value"], cell_vars = [], free_vars = ["condition", "true_value", "false_value"]} { | |
%true_value = alloc_free_var "true_value" -> !iree_pydm.free_var_ref | |
%condition = alloc_free_var "condition" -> !iree_pydm.free_var_ref | |
%false_value = alloc_free_var "false_value" -> !iree_pydm.free_var_ref | |
%0 = box %arg0 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>> | |
store_var %condition = %0 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>> | |
%1 = box %arg1 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>> | |
store_var %true_value = %1 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>> | |
%2 = box %arg2 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>> | |
store_var %false_value = %2 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>> | |
%3 = load_var %condition : !iree_pydm.free_var_ref -> !iree_pydm.object | |
%exc_result, %result = call @pydmrtl$object_as_bool(%3) : (!iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.bool) | |
raise_on_failure %exc_result : !iree_pydm.exception_result | |
%4 = bool_to_pred %result | |
%5 = select %4, %true_value, %false_value : !iree_pydm.free_var_ref | |
%6 = load_var %5 : !iree_pydm.free_var_ref -> !iree_pydm.object | |
%status, %primitive = unbox %6 : !iree_pydm.object -> !iree_pydm.integer<32> | |
raise_on_failure %status : !iree_pydm.exception_result | |
return %primitive : !iree_pydm.integer<32> | |
} | |
iree_pydm.func @object_as_bool_bool(%arg0: !iree_pydm.bool, %arg1: !iree_pydm.integer<32>, %arg2: !iree_pydm.integer<32>) -> (!iree_pydm.exception_result, !iree_pydm.integer<32>) attributes {arg_names = ["condition", "true_value", "false_value"], cell_vars = [], free_vars = ["condition", "true_value", "false_value"]} { | |
%true_value = alloc_free_var "true_value" -> !iree_pydm.free_var_ref | |
%condition = alloc_free_var "condition" -> !iree_pydm.free_var_ref | |
%false_value = alloc_free_var "false_value" -> !iree_pydm.free_var_ref | |
%0 = box %arg0 : !iree_pydm.bool -> !iree_pydm.object<!iree_pydm.bool> | |
store_var %condition = %0 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.bool> | |
%1 = box %arg1 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>> | |
store_var %true_value = %1 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>> | |
%2 = box %arg2 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>> | |
store_var %false_value = %2 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>> | |
%3 = load_var %condition : !iree_pydm.free_var_ref -> !iree_pydm.object | |
%exc_result, %result = call @pydmrtl$object_as_bool(%3) : (!iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.bool) | |
raise_on_failure %exc_result : !iree_pydm.exception_result | |
%4 = bool_to_pred %result | |
%5 = select %4, %true_value, %false_value : !iree_pydm.free_var_ref | |
%6 = load_var %5 : !iree_pydm.free_var_ref -> !iree_pydm.object | |
%status, %primitive = unbox %6 : !iree_pydm.object -> !iree_pydm.integer<32> | |
raise_on_failure %status : !iree_pydm.exception_result | |
return %primitive : !iree_pydm.integer<32> | |
} | |
iree_pydm.func @object_as_bool_float(%arg0: !iree_pydm.real<f32>, %arg1: !iree_pydm.integer<32>, %arg2: !iree_pydm.integer<32>) -> (!iree_pydm.exception_result, !iree_pydm.integer<32>) attributes {arg_names = ["condition", "true_value", "false_value"], cell_vars = [], free_vars = ["condition", "true_value", "false_value"]} { | |
%true_value = alloc_free_var "true_value" -> !iree_pydm.free_var_ref | |
%condition = alloc_free_var "condition" -> !iree_pydm.free_var_ref | |
%false_value = alloc_free_var "false_value" -> !iree_pydm.free_var_ref | |
%0 = box %arg0 : !iree_pydm.real<f32> -> !iree_pydm.object<!iree_pydm.real<f32>> | |
store_var %condition = %0 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.real<f32>> | |
%1 = box %arg1 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>> | |
store_var %true_value = %1 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>> | |
%2 = box %arg2 : !iree_pydm.integer<32> -> !iree_pydm.object<!iree_pydm.integer<32>> | |
store_var %false_value = %2 : !iree_pydm.free_var_ref, !iree_pydm.object<!iree_pydm.integer<32>> | |
%3 = load_var %condition : !iree_pydm.free_var_ref -> !iree_pydm.object | |
%exc_result, %result = call @pydmrtl$object_as_bool(%3) : (!iree_pydm.object) -> (!iree_pydm.exception_result, !iree_pydm.bool) | |
raise_on_failure %exc_result : !iree_pydm.exception_result | |
%4 = bool_to_pred %result | |
%5 = select %4, %true_value, %false_value : !iree_pydm.free_var_ref | |
%6 = load_var %5 : !iree_pydm.free_var_ref -> !iree_pydm.object | |
%status, %primitive = unbox %6 : !iree_pydm.object -> !iree_pydm.integer<32> | |
raise_on_failure %status : !iree_pydm.exception_result | |
return %primitive : !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 | |
%v = alloc_free_var "v" -> !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 | |
%type_code = alloc_free_var "type_code" -> !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 | |
%status, %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 | |
cond_br %19, ^bb1(%1 : !iree_pydm.bool), ^bb2 | |
^bb1(%20: !iree_pydm.bool): // 5 preds: ^bb0, ^bb2, ^bb12, ^bb13, ^bb14 | |
return %20 : !iree_pydm.bool | |
^bb2: // pred: ^bb0 | |
%21 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object | |
%status_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 | |
cond_br %24, ^bb3, ^bb1(%13 : !iree_pydm.bool) | |
^bb3: // pred: ^bb2 | |
%25 = load_var %type_code : !iree_pydm.free_var_ref -> !iree_pydm.object | |
%status_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 | |
%status_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 | |
cond_br %31, ^bb4, ^bb5 | |
^bb4: // pred: ^bb3 | |
%32 = load_var %v : !iree_pydm.free_var_ref -> !iree_pydm.object | |
%status_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 | |
%status_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 | |
%status_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 | |
cond_br %38, ^bb6, ^bb11 | |
^bb6: // pred: ^bb5 | |
%39 = load_var %numeric_subtype : !iree_pydm.free_var_ref -> !iree_pydm.object | |
%status_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 | |
cond_br %41, ^bb7, ^bb8 | |
^bb7: // pred: ^bb6 | |
%42 = load_var %v : !iree_pydm.free_var_ref -> !iree_pydm.object | |
%status_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 | |
%status_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 | |
cond_br %46, ^bb9, ^bb10 | |
^bb9: // pred: ^bb8 | |
%47 = load_var %v : !iree_pydm.free_var_ref -> !iree_pydm.object | |
%status_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: // 3 preds: ^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 | |
%status_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 | |
cond_br %52, ^bb12, ^bb10 | |
^bb12: // pred: ^bb11 | |
%53 = load_var %numeric_subtype : !iree_pydm.free_var_ref -> !iree_pydm.object | |
%status_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 | |
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 | |
%status_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 | |
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 | |
%status_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 | |
cond_br %61, ^bb1(%13 : !iree_pydm.bool), ^bb10 | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment