Skip to content

Instantly share code, notes, and snippets.

@masahi
Created December 14, 2020 21:50
Show Gist options
  • Save masahi/6349ddf1c62e11e28925cb15fd11da28 to your computer and use it in GitHub Desktop.
Save masahi/6349ddf1c62e11e28925cb15fd11da28 to your computer and use it in GitHub Desktop.
; ModuleID = 'TVMMod'
source_filename = "TVMMod"
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"
%0 = type { double }
%1 = type { i8*, %2, i32, %3, i64*, i64*, i64 }
%2 = type { i32, i32 }
%3 = type { i8, i8, i16 }
@__tvm_module_ctx = linkonce dllexport local_unnamed_addr global i8* null, align 8
@__TVMFuncCall = linkonce dllexport local_unnamed_addr global i32 (i8*, %0*, i32*, i32, %0*, i32*)* null, align 8
@__TVMBackendGetFuncFromEnv = linkonce dllexport local_unnamed_addr global i32 (i8*, i8*, i8**)* null, align 8
@__TVMAPISetLastError = linkonce dllexport local_unnamed_addr global void (i8*)* null, align 8
@.str = private constant [69 x i8] c"Assert fail: (num_args == 2), default_function: num_args should be 2\00", align 1
@.str.1 = private constant [144 x i8] c"Assert fail: ((((arg0.code == 3) || (arg0.code == 13)) || (arg0.code == 7)) || (arg0.code == 4)), default_function: Expect arg[0] to be pointer\00", align 1
@.str.2 = private constant [144 x i8] c"Assert fail: ((((arg1.code == 3) || (arg1.code == 13)) || (arg1.code == 7)) || (arg1.code == 4)), default_function: Expect arg[1] to be pointer\00", align 1
@.str.3 = private constant [85 x i8] c"Assert fail: (2 == tir.tvm_struct_get(arg0, 0, 4)), arg0.ndim is expected to equal 2\00", align 1
@.str.4 = private constant [198 x i8] c"Assert fail: (((tir.tvm_struct_get(arg0, 0, 5) == (uint8)2) && (tir.tvm_struct_get(arg0, 0, 6) == (uint8)32)) && (tir.tvm_struct_get(arg0, 0, 7) == (uint16)1)), arg0.dtype is expected to be float32\00", align 1
@.str.5 = private constant [128 x i8] c"Assert fail: (200 == int32(arg0.shape[0])), Argument arg0.shape[0] has an unsatisfied constraint: (200 == int32(arg0.shape[0]))\00", align 1
@.str.6 = private constant [128 x i8] c"Assert fail: (100 == int32(arg0.shape[1])), Argument arg0.shape[1] has an unsatisfied constraint: (100 == int32(arg0.shape[1]))\00", align 1
@.str.7 = private constant [124 x i8] c"Assert fail: ((1 == int32(arg0.strides[1])) && (100 == int32(arg0.strides[0]))), arg0.strides: expected to be compact array\00", align 1
@.str.8 = private constant [163 x i8] c"Assert fail: ((uint64)0 == tir.tvm_struct_get(arg0, 0, 8)), Argument arg0.byte_offset has an unsatisfied constraint: ((uint64)0 == tir.tvm_struct_get(arg0, 0, 8))\00", align 1
@.str.9 = private constant [149 x i8] c"Assert fail: (2 == tir.tvm_struct_get(arg0, 0, 10)), Argument arg0.device_type has an unsatisfied constraint: (2 == tir.tvm_struct_get(arg0, 0, 10))\00", align 1
@.str.10 = private constant [85 x i8] c"Assert fail: (2 == tir.tvm_struct_get(arg1, 0, 4)), arg1.ndim is expected to equal 2\00", align 1
@.str.11 = private constant [198 x i8] c"Assert fail: (((tir.tvm_struct_get(arg1, 0, 5) == (uint8)2) && (tir.tvm_struct_get(arg1, 0, 6) == (uint8)32)) && (tir.tvm_struct_get(arg1, 0, 7) == (uint16)1)), arg1.dtype is expected to be float32\00", align 1
@.str.12 = private constant [128 x i8] c"Assert fail: (200 == int32(arg1.shape[0])), Argument arg1.shape[0] has an unsatisfied constraint: (200 == int32(arg1.shape[0]))\00", align 1
@.str.13 = private constant [128 x i8] c"Assert fail: (100 == int32(arg1.shape[1])), Argument arg1.shape[1] has an unsatisfied constraint: (100 == int32(arg1.shape[1]))\00", align 1
@.str.14 = private constant [124 x i8] c"Assert fail: ((1 == int32(arg1.strides[1])) && (100 == int32(arg1.strides[0]))), arg1.strides: expected to be compact array\00", align 1
@.str.15 = private constant [163 x i8] c"Assert fail: ((uint64)0 == tir.tvm_struct_get(arg1, 0, 8)), Argument arg1.byte_offset has an unsatisfied constraint: ((uint64)0 == tir.tvm_struct_get(arg1, 0, 8))\00", align 1
@.str.16 = private constant [149 x i8] c"Assert fail: (2 == tir.tvm_struct_get(arg1, 0, 10)), Argument arg1.device_type has an unsatisfied constraint: (2 == tir.tvm_struct_get(arg1, 0, 10))\00", align 1
@.str.17 = private constant [155 x i8] c"Assert fail: (dev_id == tir.tvm_struct_get(arg1, 0, 9)), Argument arg1.device_id has an unsatisfied constraint: (dev_id == tir.tvm_struct_get(arg1, 0, 9))\00", align 1
@.tvm_func.__tvm_set_device = internal unnamed_addr global i8* null, align 8
@.str.18 = private constant [17 x i8] c"__tvm_set_device\00", align 1
@__TVMBackendAllocWorkspace = linkonce dllexport local_unnamed_addr global i8* (i32, i32, i64, i32, i32)* null, align 8
@.tvm_func.default_function_kernel0 = internal unnamed_addr global i8* null, align 8
@.str.19 = private constant [25 x i8] c"default_function_kernel0\00", align 1
@.tvm_func.default_function_kernel1 = internal unnamed_addr global i8* null, align 8
@.str.20 = private constant [25 x i8] c"default_function_kernel1\00", align 1
@.tvm_func.default_function_kernel2 = internal unnamed_addr global i8* null, align 8
@.str.21 = private constant [25 x i8] c"default_function_kernel2\00", align 1
@__TVMBackendFreeWorkspace = linkonce dllexport local_unnamed_addr global i32 (i32, i32, i8*)* null, align 8
@__tvm_main__ = weak dllexport local_unnamed_addr constant [17 x i8] c"default_function\00", align 1
@llvm.global_ctors = appending global [0 x { i32, void ()*, i8* }] zeroinitializer
define dllexport i32 @default_function(i8* noalias nocapture readonly, i8* noalias nocapture readonly, i32, i8* noalias nocapture readnone, i8* noalias nocapture readnone, i8* noalias nocapture readnone) local_unnamed_addr {
entry:
%6 = alloca i8*, align 8
%7 = alloca [15 x %0], align 8
%8 = alloca [15 x i32], align 4
%.sub51 = getelementptr inbounds [15 x i32], [15 x i32]* %8, i64 0, i64 0
%.sub = getelementptr inbounds [15 x %0], [15 x %0]* %7, i64 0, i64 0
%9 = icmp eq i32 %2, 2
br i1 %9, label %assert_end, label %assert_fail, !prof !5
assert_fail: ; preds = %entry
%10 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %10(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str, i64 0, i64 0))
ret i32 -1
assert_end: ; preds = %entry
%11 = bitcast i8* %0 to %1**
%12 = load %1*, %1** %11, align 8
%13 = bitcast i8* %1 to i32*
%14 = load i32, i32* %13, align 4, !tbaa !9
%15 = getelementptr inbounds i8, i8* %0, i64 8
%16 = bitcast i8* %15 to %1**
%17 = load %1*, %1** %16, align 8
%18 = getelementptr inbounds i8, i8* %1, i64 4
%19 = bitcast i8* %18 to i32*
%20 = load i32, i32* %19, align 4, !tbaa !23
%21 = getelementptr inbounds %1, %1* %12, i64 0, i32 0
%22 = load i8*, i8** %21, align 8
%ptrint = ptrtoint i8* %22 to i64
%maskedptr = and i64 %ptrint, 127
%maskcond = icmp eq i64 %maskedptr, 0
tail call void @llvm.assume(i1 %maskcond)
%23 = getelementptr inbounds %1, %1* %12, i64 0, i32 4
%24 = load i64*, i64** %23, align 8
%25 = getelementptr inbounds %1, %1* %12, i64 0, i32 5
%26 = load i64*, i64** %25, align 8
%27 = getelementptr inbounds %1, %1* %12, i64 0, i32 1, i32 1
%28 = load i32, i32* %27, align 4
%29 = getelementptr inbounds %1, %1* %17, i64 0, i32 0
%30 = load i8*, i8** %29, align 8
%ptrint1 = ptrtoint i8* %30 to i64
%maskedptr2 = and i64 %ptrint1, 127
%maskcond3 = icmp eq i64 %maskedptr2, 0
tail call void @llvm.assume(i1 %maskcond3)
%31 = getelementptr inbounds %1, %1* %17, i64 0, i32 4
%32 = load i64*, i64** %31, align 8
%33 = getelementptr inbounds %1, %1* %17, i64 0, i32 5
%34 = load i64*, i64** %33, align 8
switch i32 %14, label %assert_fail4 [
i32 13, label %assert_end5
i32 7, label %assert_end5
i32 4, label %assert_end5
i32 3, label %assert_end5
]
assert_fail4: ; preds = %assert_end
%35 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %35(i8* getelementptr inbounds ([144 x i8], [144 x i8]* @.str.1, i64 0, i64 0))
ret i32 -1
assert_end5: ; preds = %assert_end, %assert_end, %assert_end, %assert_end
switch i32 %20, label %assert_fail6 [
i32 13, label %assert_end7
i32 7, label %assert_end7
i32 4, label %assert_end7
i32 3, label %assert_end7
]
assert_fail6: ; preds = %assert_end5
%36 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %36(i8* getelementptr inbounds ([144 x i8], [144 x i8]* @.str.2, i64 0, i64 0))
ret i32 -1
assert_end7: ; preds = %assert_end5, %assert_end5, %assert_end5, %assert_end5
%37 = getelementptr inbounds %1, %1* %12, i64 0, i32 2
%38 = load i32, i32* %37, align 4
%39 = icmp eq i32 %38, 2
br i1 %39, label %assert_end11, label %assert_fail8, !prof !5
assert_fail8: ; preds = %assert_end7
%40 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %40(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.3, i64 0, i64 0))
ret i32 -1
assert_end11: ; preds = %assert_end7
%41 = getelementptr inbounds %1, %1* %12, i64 0, i32 3, i32 2
%42 = load i16, i16* %41, align 2
%43 = icmp eq i16 %42, 1
%44 = getelementptr inbounds %1, %1* %12, i64 0, i32 3, i32 1
%45 = load i8, i8* %44, align 1
%46 = icmp eq i8 %45, 32
%47 = getelementptr inbounds %1, %1* %12, i64 0, i32 3, i32 0
%48 = load i8, i8* %47, align 1
%49 = icmp eq i8 %48, 2
%50 = and i1 %46, %49
%51 = and i1 %43, %50
br i1 %51, label %assert_end13, label %assert_fail12, !prof !5
assert_fail12: ; preds = %assert_end11
%52 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %52(i8* getelementptr inbounds ([198 x i8], [198 x i8]* @.str.4, i64 0, i64 0))
ret i32 -1
assert_end13: ; preds = %assert_end11
%53 = load i64, i64* %24, align 8, !tbaa !25
%54 = trunc i64 %53 to i32
%55 = icmp eq i32 %54, 200
br i1 %55, label %assert_end15, label %assert_fail14, !prof !5
assert_fail14: ; preds = %assert_end13
%56 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %56(i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.5, i64 0, i64 0))
ret i32 -1
assert_end15: ; preds = %assert_end13
%57 = getelementptr inbounds i64, i64* %24, i64 1
%58 = load i64, i64* %57, align 8, !tbaa !39
%59 = trunc i64 %58 to i32
%60 = icmp eq i32 %59, 100
br i1 %60, label %assert_end17, label %assert_fail16, !prof !5
assert_fail16: ; preds = %assert_end15
%61 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %61(i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.6, i64 0, i64 0))
ret i32 -1
assert_end17: ; preds = %assert_end15
%62 = icmp eq i64* %26, null
br i1 %62, label %if_end, label %if_then, !prof !41
if_then: ; preds = %assert_end17
%63 = load i64, i64* %26, align 8, !tbaa !42
%64 = trunc i64 %63 to i32
%65 = icmp eq i32 %64, 100
%66 = getelementptr inbounds i64, i64* %26, i64 1
%67 = load i64, i64* %66, align 8, !tbaa !56
%68 = trunc i64 %67 to i32
%69 = icmp eq i32 %68, 1
%70 = and i1 %65, %69
br i1 %70, label %if_end, label %assert_fail18, !prof !5
if_end: ; preds = %assert_end17, %if_then
%71 = getelementptr inbounds %1, %1* %12, i64 0, i32 6
%72 = load i64, i64* %71, align 8
%73 = icmp eq i64 %72, 0
br i1 %73, label %assert_end21, label %assert_fail20, !prof !5
assert_fail18: ; preds = %if_then
%74 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %74(i8* getelementptr inbounds ([124 x i8], [124 x i8]* @.str.7, i64 0, i64 0))
ret i32 -1
assert_fail20: ; preds = %if_end
%75 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %75(i8* getelementptr inbounds ([163 x i8], [163 x i8]* @.str.8, i64 0, i64 0))
ret i32 -1
assert_end21: ; preds = %if_end
%76 = getelementptr inbounds %1, %1* %12, i64 0, i32 1, i32 0
%77 = load i32, i32* %76, align 4
%78 = icmp eq i32 %77, 2
br i1 %78, label %assert_end23, label %assert_fail22, !prof !5
assert_fail22: ; preds = %assert_end21
%79 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %79(i8* getelementptr inbounds ([149 x i8], [149 x i8]* @.str.9, i64 0, i64 0))
ret i32 -1
assert_end23: ; preds = %assert_end21
%80 = getelementptr inbounds %1, %1* %17, i64 0, i32 2
%81 = load i32, i32* %80, align 4
%82 = icmp eq i32 %81, 2
br i1 %82, label %assert_end27, label %assert_fail24, !prof !5
assert_fail24: ; preds = %assert_end23
%83 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %83(i8* getelementptr inbounds ([85 x i8], [85 x i8]* @.str.10, i64 0, i64 0))
ret i32 -1
assert_end27: ; preds = %assert_end23
%84 = getelementptr inbounds %1, %1* %17, i64 0, i32 3, i32 2
%85 = load i16, i16* %84, align 2
%86 = icmp eq i16 %85, 1
%87 = getelementptr inbounds %1, %1* %17, i64 0, i32 3, i32 1
%88 = load i8, i8* %87, align 1
%89 = icmp eq i8 %88, 32
%90 = getelementptr inbounds %1, %1* %17, i64 0, i32 3, i32 0
%91 = load i8, i8* %90, align 1
%92 = icmp eq i8 %91, 2
%93 = and i1 %89, %92
%94 = and i1 %86, %93
br i1 %94, label %assert_end29, label %assert_fail28, !prof !5
assert_fail28: ; preds = %assert_end27
%95 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %95(i8* getelementptr inbounds ([198 x i8], [198 x i8]* @.str.11, i64 0, i64 0))
ret i32 -1
assert_end29: ; preds = %assert_end27
%96 = load i64, i64* %32, align 8, !tbaa !58
%97 = trunc i64 %96 to i32
%98 = icmp eq i32 %97, 200
br i1 %98, label %assert_end31, label %assert_fail30, !prof !5
assert_fail30: ; preds = %assert_end29
%99 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %99(i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.12, i64 0, i64 0))
ret i32 -1
assert_end31: ; preds = %assert_end29
%100 = getelementptr inbounds i64, i64* %32, i64 1
%101 = load i64, i64* %100, align 8, !tbaa !72
%102 = trunc i64 %101 to i32
%103 = icmp eq i32 %102, 100
br i1 %103, label %assert_end33, label %assert_fail32, !prof !5
assert_fail32: ; preds = %assert_end31
%104 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %104(i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.13, i64 0, i64 0))
ret i32 -1
assert_end33: ; preds = %assert_end31
%105 = icmp eq i64* %34, null
br i1 %105, label %if_end35, label %if_then34, !prof !41
if_then34: ; preds = %assert_end33
%106 = load i64, i64* %34, align 8, !tbaa !74
%107 = trunc i64 %106 to i32
%108 = icmp eq i32 %107, 100
%109 = getelementptr inbounds i64, i64* %34, i64 1
%110 = load i64, i64* %109, align 8, !tbaa !88
%111 = trunc i64 %110 to i32
%112 = icmp eq i32 %111, 1
%113 = and i1 %108, %112
br i1 %113, label %if_end35, label %assert_fail36, !prof !5
if_end35: ; preds = %assert_end33, %if_then34
%114 = getelementptr inbounds %1, %1* %17, i64 0, i32 6
%115 = load i64, i64* %114, align 8
%116 = icmp eq i64 %115, 0
br i1 %116, label %assert_end39, label %assert_fail38, !prof !5
assert_fail36: ; preds = %if_then34
%117 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %117(i8* getelementptr inbounds ([124 x i8], [124 x i8]* @.str.14, i64 0, i64 0))
ret i32 -1
assert_fail38: ; preds = %if_end35
%118 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %118(i8* getelementptr inbounds ([163 x i8], [163 x i8]* @.str.15, i64 0, i64 0))
ret i32 -1
assert_end39: ; preds = %if_end35
%119 = getelementptr inbounds %1, %1* %17, i64 0, i32 1, i32 0
%120 = load i32, i32* %119, align 4
%121 = icmp eq i32 %120, 2
br i1 %121, label %assert_end41, label %assert_fail40, !prof !5
assert_fail40: ; preds = %assert_end39
%122 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %122(i8* getelementptr inbounds ([149 x i8], [149 x i8]* @.str.16, i64 0, i64 0))
ret i32 -1
assert_end41: ; preds = %assert_end39
%123 = getelementptr inbounds %1, %1* %17, i64 0, i32 1, i32 1
%124 = load i32, i32* %123, align 4
%125 = icmp eq i32 %28, %124
br i1 %125, label %assert_end43, label %assert_fail42, !prof !5
assert_fail42: ; preds = %assert_end41
%126 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !6
tail call void %126(i8* getelementptr inbounds ([155 x i8], [155 x i8]* @.str.17, i64 0, i64 0))
ret i32 -1
assert_end43: ; preds = %assert_end41
%127 = bitcast [15 x %0]* %7 to i64*
store i64 2, i64* %127, align 8
store i32 0, i32* %.sub51, align 4, !tbaa !90
%128 = sext i32 %28 to i64
%129 = getelementptr inbounds [15 x %0], [15 x %0]* %7, i64 0, i64 1
%130 = bitcast %0* %129 to i64*
store i64 %128, i64* %130, align 8
%131 = getelementptr inbounds [15 x i32], [15 x i32]* %8, i64 0, i64 1
store i32 0, i32* %131, align 4, !tbaa !104
%132 = load i8*, i8** @.tvm_func.__tvm_set_device, align 8
%133 = icmp eq i8* %132, null
br i1 %133, label %handle_init, label %handle_init_end, !prof !41
handle_init: ; preds = %assert_end43
%134 = load i8*, i8** @__tvm_module_ctx, align 8, !tbaa !6
%135 = load i32 (i8*, i8*, i8**)*, i32 (i8*, i8*, i8**)** @__TVMBackendGetFuncFromEnv, align 8, !tbaa !6
%136 = call i32 %135(i8* %134, i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.18, i64 0, i64 0), i8** nonnull %6)
%137 = icmp eq i32 %136, 0
br i1 %137, label %call_end, label %call_fail, !prof !5
handle_init_end: ; preds = %assert_end43, %call_end
%138 = phi i8* [ %132, %assert_end43 ], [ %144, %call_end ]
%139 = getelementptr inbounds [15 x %0], [15 x %0]* %7, i64 0, i64 2
%140 = getelementptr inbounds [15 x i32], [15 x i32]* %8, i64 0, i64 2
%141 = load i32 (i8*, %0*, i32*, i32, %0*, i32*)*, i32 (i8*, %0*, i32*, i32, %0*, i32*)** @__TVMFuncCall, align 8, !tbaa !6
%142 = call i32 %141(i8* %138, %0* nonnull %.sub, i32* nonnull %.sub51, i32 2, %0* nonnull %139, i32* nonnull %140)
%143 = icmp eq i32 %142, 0
br i1 %143, label %call_end45, label %call_fail, !prof !5
call_fail: ; preds = %call_end45, %handle_init_end, %handle_init
%merge = phi i32 [ %136, %handle_init ], [ %142, %handle_init_end ], [ %145, %call_end45 ]
ret i32 %merge
call_end: ; preds = %handle_init
%144 = load i8*, i8** %6, align 8
store i8* %144, i8** @.tvm_func.__tvm_set_device, align 8
br label %handle_init_end
call_end45: ; preds = %handle_init_end
%145 = call fastcc i32 @default_function_compute_(%0* nonnull %.sub, i32* nonnull %.sub51, i8* %22, i8* %30, i32 %28)
br label %call_fail
}
; Function Attrs: nounwind
declare void @llvm.assume(i1) #0
; Function Attrs: noinline
define private fastcc i32 @default_function_compute_(%0* noalias, i32* noalias, i8* noalias align 128, i8* noalias align 128, i32) unnamed_addr #1 {
entry:
%5 = alloca i8*, align 8
%6 = alloca i8*, align 8
%7 = alloca i8*, align 8
%8 = load i8* (i32, i32, i64, i32, i32)*, i8* (i32, i32, i64, i32, i32)** @__TVMBackendAllocWorkspace, align 8, !tbaa !6
%9 = tail call i8* %8(i32 2, i32 %4, i64 80000, i32 2, i32 32)
%ptrint = ptrtoint i8* %9 to i64
%maskedptr = and i64 %ptrint, 127
%maskcond = icmp eq i64 %maskedptr, 0
tail call void @llvm.assume(i1 %maskcond)
%10 = icmp eq i8* %9, null
br i1 %10, label %if_then, label %if_end, !prof !5
if_then: ; preds = %handle_init_end46, %handle_init45, %if_end75, %if_end72, %if_end69, %if_end66, %if_end63, %if_end60, %if_end52, %if_end78, %handle_init_end54, %handle_init53, %handle_init_end, %handle_init, %if_end35, %if_end29, %if_end23, %if_end17, %if_end11, %if_end5, %if_end, %entry
%merge = phi i32 [ -1, %if_end35 ], [ -1, %if_end29 ], [ -1, %if_end23 ], [ -1, %if_end17 ], [ -1, %if_end11 ], [ -1, %if_end5 ], [ -1, %if_end ], [ -1, %entry ], [ %51, %handle_init ], [ %57, %handle_init_end ], [ %115, %handle_init53 ], [ %121, %handle_init_end54 ], [ -1, %if_end52 ], [ -1, %if_end60 ], [ -1, %if_end63 ], [ -1, %if_end66 ], [ -1, %if_end69 ], [ -1, %if_end72 ], [ -1, %if_end75 ], [ %., %if_end78 ], [ %100, %handle_init_end46 ], [ %96, %handle_init45 ]
ret i32 %merge
if_end: ; preds = %entry
%11 = load i8* (i32, i32, i64, i32, i32)*, i8* (i32, i32, i64, i32, i32)** @__TVMBackendAllocWorkspace, align 8, !tbaa !6
%12 = tail call i8* %11(i32 2, i32 %4, i64 80000, i32 2, i32 32)
%ptrint1 = ptrtoint i8* %12 to i64
%maskedptr2 = and i64 %ptrint1, 127
%maskcond3 = icmp eq i64 %maskedptr2, 0
tail call void @llvm.assume(i1 %maskcond3)
%13 = icmp eq i8* %12, null
br i1 %13, label %if_then, label %if_end5, !prof !5
if_end5: ; preds = %if_end
%14 = load i8* (i32, i32, i64, i32, i32)*, i8* (i32, i32, i64, i32, i32)** @__TVMBackendAllocWorkspace, align 8, !tbaa !6
%15 = tail call i8* %14(i32 2, i32 %4, i64 80000, i32 2, i32 32)
%ptrint7 = ptrtoint i8* %15 to i64
%maskedptr8 = and i64 %ptrint7, 127
%maskcond9 = icmp eq i64 %maskedptr8, 0
tail call void @llvm.assume(i1 %maskcond9)
%16 = icmp eq i8* %15, null
br i1 %16, label %if_then, label %if_end11, !prof !5
if_end11: ; preds = %if_end5
%17 = load i8* (i32, i32, i64, i32, i32)*, i8* (i32, i32, i64, i32, i32)** @__TVMBackendAllocWorkspace, align 8, !tbaa !6
%18 = tail call i8* %17(i32 2, i32 %4, i64 4, i32 0, i32 32)
%ptrint13 = ptrtoint i8* %18 to i64
%maskedptr14 = and i64 %ptrint13, 127
%maskcond15 = icmp eq i64 %maskedptr14, 0
tail call void @llvm.assume(i1 %maskcond15)
%19 = icmp eq i8* %18, null
br i1 %19, label %if_then, label %if_end17, !prof !5
if_end17: ; preds = %if_end11
%20 = load i8* (i32, i32, i64, i32, i32)*, i8* (i32, i32, i64, i32, i32)** @__TVMBackendAllocWorkspace, align 8, !tbaa !6
%21 = tail call i8* %20(i32 2, i32 %4, i64 4, i32 0, i32 32)
%ptrint19 = ptrtoint i8* %21 to i64
%maskedptr20 = and i64 %ptrint19, 127
%maskcond21 = icmp eq i64 %maskedptr20, 0
tail call void @llvm.assume(i1 %maskcond21)
%22 = icmp eq i8* %21, null
br i1 %22, label %if_then, label %if_end23, !prof !5
if_end23: ; preds = %if_end17
%23 = load i8* (i32, i32, i64, i32, i32)*, i8* (i32, i32, i64, i32, i32)** @__TVMBackendAllocWorkspace, align 8, !tbaa !6
%24 = tail call i8* %23(i32 2, i32 %4, i64 4, i32 0, i32 32)
%ptrint25 = ptrtoint i8* %24 to i64
%maskedptr26 = and i64 %ptrint25, 127
%maskcond27 = icmp eq i64 %maskedptr26, 0
tail call void @llvm.assume(i1 %maskcond27)
%25 = icmp eq i8* %24, null
br i1 %25, label %if_then, label %if_end29, !prof !5
if_end29: ; preds = %if_end23
%26 = load i8* (i32, i32, i64, i32, i32)*, i8* (i32, i32, i64, i32, i32)** @__TVMBackendAllocWorkspace, align 8, !tbaa !6
%27 = tail call i8* %26(i32 2, i32 %4, i64 4, i32 0, i32 32)
%ptrint31 = ptrtoint i8* %27 to i64
%maskedptr32 = and i64 %ptrint31, 127
%maskcond33 = icmp eq i64 %maskedptr32, 0
tail call void @llvm.assume(i1 %maskcond33)
%28 = icmp eq i8* %27, null
br i1 %28, label %if_then, label %if_end35, !prof !5
if_end35: ; preds = %if_end29
%29 = load i8* (i32, i32, i64, i32, i32)*, i8* (i32, i32, i64, i32, i32)** @__TVMBackendAllocWorkspace, align 8, !tbaa !6
%30 = tail call i8* %29(i32 2, i32 %4, i64 4, i32 0, i32 32)
%ptrint37 = ptrtoint i8* %30 to i64
%maskedptr38 = and i64 %ptrint37, 127
%maskcond39 = icmp eq i64 %maskedptr38, 0
tail call void @llvm.assume(i1 %maskcond39)
%31 = icmp eq i8* %30, null
br i1 %31, label %if_then, label %if_end41, !prof !5
if_end41: ; preds = %if_end35
%32 = bitcast %0* %0 to i8**
store i8* %9, i8** %32, align 8
%33 = getelementptr inbounds %0, %0* %0, i64 1
%34 = bitcast %0* %33 to i8**
store i8* %2, i8** %34, align 8
%35 = getelementptr inbounds %0, %0* %0, i64 2
%36 = bitcast %0* %35 to i8**
store i8* %3, i8** %36, align 8
%37 = getelementptr inbounds %0, %0* %0, i64 3
%38 = bitcast i32* %1 to <4 x i32>*
store <4 x i32> <i32 3, i32 3, i32 3, i32 0>, <4 x i32>* %38, align 4, !tbaa !106
%39 = getelementptr inbounds %0, %0* %0, i64 4
%40 = bitcast %0* %37 to <2 x i64>*
store <2 x i64> <i64 1024, i64 1>, <2 x i64>* %40, align 8
%41 = getelementptr inbounds i32, i32* %1, i64 4
store i32 0, i32* %41, align 4, !tbaa !107
%42 = getelementptr inbounds %0, %0* %0, i64 5
%43 = getelementptr inbounds i32, i32* %1, i64 5
store i32 0, i32* %43, align 4, !tbaa !111
%44 = getelementptr inbounds %0, %0* %0, i64 6
%45 = bitcast %0* %42 to <2 x i64>*
store <2 x i64> <i64 1, i64 100>, <2 x i64>* %45, align 8
%46 = getelementptr inbounds i32, i32* %1, i64 6
store i32 0, i32* %46, align 4, !tbaa !113
%47 = load i8*, i8** @.tvm_func.default_function_kernel0, align 8
%48 = icmp eq i8* %47, null
br i1 %48, label %handle_init, label %handle_init_end, !prof !41
handle_init: ; preds = %if_end41
%49 = load i8*, i8** @__tvm_module_ctx, align 8, !tbaa !6
%50 = load i32 (i8*, i8*, i8**)*, i32 (i8*, i8*, i8**)** @__TVMBackendGetFuncFromEnv, align 8, !tbaa !6
%51 = call i32 %50(i8* %49, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.19, i64 0, i64 0), i8** nonnull %7)
%52 = icmp eq i32 %51, 0
br i1 %52, label %call_end, label %if_then, !prof !5
handle_init_end: ; preds = %if_end41, %call_end
%53 = phi i8* [ %47, %if_end41 ], [ %59, %call_end ]
%54 = getelementptr inbounds %0, %0* %0, i64 7
%55 = getelementptr inbounds i32, i32* %1, i64 7
%56 = load i32 (i8*, %0*, i32*, i32, %0*, i32*)*, i32 (i8*, %0*, i32*, i32, %0*, i32*)** @__TVMFuncCall, align 8, !tbaa !6
%57 = call i32 %56(i8* %53, %0* nonnull %0, i32* nonnull %1, i32 7, %0* nonnull %54, i32* nonnull %55)
%58 = icmp eq i32 %57, 0
br i1 %58, label %call_end44, label %if_then, !prof !5
call_end: ; preds = %handle_init
%59 = load i8*, i8** %7, align 8
store i8* %59, i8** @.tvm_func.default_function_kernel0, align 8
br label %handle_init_end
call_end44: ; preds = %handle_init_end
%60 = call double @log2(double 2.000000e+02)
%61 = call double @llvm.ceil.f64(double %60)
%62 = fptosi double %61 to i32
%63 = icmp sgt i32 %62, 0
br i1 %63, label %for_body.lr.ph, label %for_end, !prof !5
for_body.lr.ph: ; preds = %call_end44
%64 = bitcast %0* %37 to i8**
%65 = bitcast %0* %39 to i8**
%66 = bitcast %0* %42 to i8**
%67 = bitcast %0* %44 to i8**
%68 = bitcast %0* %54 to i8**
%69 = getelementptr inbounds %0, %0* %0, i64 8
%70 = bitcast %0* %69 to i8**
%71 = getelementptr inbounds i32, i32* %1, i64 8
%72 = getelementptr inbounds %0, %0* %0, i64 9
%73 = bitcast %0* %72 to i64*
%74 = getelementptr inbounds %0, %0* %0, i64 10
%75 = getelementptr inbounds %0, %0* %0, i64 12
%76 = getelementptr inbounds i32, i32* %1, i64 12
%77 = getelementptr inbounds i32, i32* %1, i64 13
%78 = getelementptr inbounds %0, %0* %0, i64 14
%79 = getelementptr inbounds i32, i32* %1, i64 14
%80 = sext i32 %62 to i64
%81 = bitcast i32* %1 to <4 x i32>*
%82 = bitcast i32* %41 to <4 x i32>*
%83 = bitcast %0* %74 to <2 x i64>*
%84 = bitcast i32* %71 to <4 x i32>*
%85 = bitcast %0* %75 to <2 x i64>*
br label %for_body
for_begin: ; preds = %handle_init_end46
%86 = icmp slt i64 %indvars.iv.next, %80
br i1 %86, label %for_body, label %for_end, !prof !5
for_body: ; preds = %for_body.lr.ph, %for_begin
%indvars.iv = phi i64 [ 0, %for_body.lr.ph ], [ %indvars.iv.next, %for_begin ]
store i8* %18, i8** %32, align 8
store i8* %21, i8** %34, align 8
store i8* %24, i8** %36, align 8
store i8* %27, i8** %64, align 8
store <4 x i32> <i32 3, i32 3, i32 3, i32 3>, <4 x i32>* %81, align 4, !tbaa !106
store i8* %30, i8** %65, align 8
store i8* %9, i8** %66, align 8
store i8* %12, i8** %67, align 8
store i8* %15, i8** %68, align 8
store <4 x i32> <i32 3, i32 3, i32 3, i32 3>, <4 x i32>* %82, align 4, !tbaa !116
store i8* %3, i8** %70, align 8
store i64 %indvars.iv, i64* %73, align 8
store <2 x i64> <i64 1024, i64 1>, <2 x i64>* %83, align 8
store <4 x i32> <i32 3, i32 0, i32 0, i32 0>, <4 x i32>* %84, align 4, !tbaa !117
store i32 0, i32* %76, align 4, !tbaa !120
store <2 x i64> <i64 1, i64 100>, <2 x i64>* %85, align 8
store i32 0, i32* %77, align 4, !tbaa !124
%87 = load i8*, i8** @.tvm_func.default_function_kernel1, align 8
%88 = icmp eq i8* %87, null
br i1 %88, label %handle_init45, label %handle_init_end46, !prof !41
for_end: ; preds = %for_begin, %call_end44
%89 = call double @log2(double 2.000000e+02)
%90 = call double @llvm.ceil.f64(double %89)
%91 = fptosi double %90 to i32
%92 = and i32 %91, 1
%93 = icmp eq i32 %92, 0
br i1 %93, label %if_end52, label %if_then51, !prof !41
handle_init45: ; preds = %for_body
%94 = load i8*, i8** @__tvm_module_ctx, align 8, !tbaa !6
%95 = load i32 (i8*, i8*, i8**)*, i32 (i8*, i8*, i8**)** @__TVMBackendGetFuncFromEnv, align 8, !tbaa !6
%96 = call i32 %95(i8* %94, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.20, i64 0, i64 0), i8** nonnull %6)
%97 = icmp eq i32 %96, 0
br i1 %97, label %call_end48, label %if_then, !prof !5
handle_init_end46: ; preds = %for_body, %call_end48
%98 = phi i8* [ %87, %for_body ], [ %102, %call_end48 ]
%99 = load i32 (i8*, %0*, i32*, i32, %0*, i32*)*, i32 (i8*, %0*, i32*, i32, %0*, i32*)** @__TVMFuncCall, align 8, !tbaa !6
%100 = call i32 %99(i8* %98, %0* nonnull %0, i32* nonnull %1, i32 14, %0* nonnull %78, i32* nonnull %79)
%101 = icmp eq i32 %100, 0
%indvars.iv.next = add nuw nsw i64 %indvars.iv, 1
br i1 %101, label %for_begin, label %if_then, !prof !5
call_end48: ; preds = %handle_init45
%102 = load i8*, i8** %6, align 8
store i8* %102, i8** @.tvm_func.default_function_kernel1, align 8
br label %handle_init_end46
if_then51: ; preds = %for_end
store i8* %9, i8** %32, align 8
store i8* %12, i8** %34, align 8
store i8* %3, i8** %36, align 8
%103 = bitcast %0* %37 to i8**
store i8* %15, i8** %103, align 8
%104 = bitcast i32* %1 to <4 x i32>*
store <4 x i32> <i32 3, i32 3, i32 3, i32 3>, <4 x i32>* %104, align 4, !tbaa !106
%105 = bitcast %0* %39 to <2 x i64>*
store <2 x i64> <i64 1024, i64 1>, <2 x i64>* %105, align 8
%106 = bitcast %0* %44 to <2 x i64>*
store <2 x i64> <i64 1, i64 100>, <2 x i64>* %106, align 8
%107 = bitcast i32* %41 to <4 x i32>*
store <4 x i32> zeroinitializer, <4 x i32>* %107, align 4, !tbaa !116
%108 = load i8*, i8** @.tvm_func.default_function_kernel2, align 8
%109 = icmp eq i8* %108, null
br i1 %109, label %handle_init53, label %handle_init_end54, !prof !41
if_end52: ; preds = %handle_init_end54, %for_end
%110 = load i32 (i32, i32, i8*)*, i32 (i32, i32, i8*)** @__TVMBackendFreeWorkspace, align 8, !tbaa !6
%111 = call i32 %110(i32 2, i32 %4, i8* nonnull %30)
%112 = icmp eq i32 %111, 0
br i1 %112, label %if_end60, label %if_then, !prof !41
handle_init53: ; preds = %if_then51
%113 = load i8*, i8** @__tvm_module_ctx, align 8, !tbaa !6
%114 = load i32 (i8*, i8*, i8**)*, i32 (i8*, i8*, i8**)** @__TVMBackendGetFuncFromEnv, align 8, !tbaa !6
%115 = call i32 %114(i8* %113, i8* getelementptr inbounds ([25 x i8], [25 x i8]* @.str.21, i64 0, i64 0), i8** nonnull %5)
%116 = icmp eq i32 %115, 0
br i1 %116, label %call_end56, label %if_then, !prof !5
handle_init_end54: ; preds = %if_then51, %call_end56
%117 = phi i8* [ %108, %if_then51 ], [ %123, %call_end56 ]
%118 = getelementptr inbounds %0, %0* %0, i64 8
%119 = getelementptr inbounds i32, i32* %1, i64 8
%120 = load i32 (i8*, %0*, i32*, i32, %0*, i32*)*, i32 (i8*, %0*, i32*, i32, %0*, i32*)** @__TVMFuncCall, align 8, !tbaa !6
%121 = call i32 %120(i8* %117, %0* nonnull %0, i32* nonnull %1, i32 8, %0* nonnull %118, i32* nonnull %119)
%122 = icmp eq i32 %121, 0
br i1 %122, label %if_end52, label %if_then, !prof !5
call_end56: ; preds = %handle_init53
%123 = load i8*, i8** %5, align 8
store i8* %123, i8** @.tvm_func.default_function_kernel2, align 8
br label %handle_init_end54
if_end60: ; preds = %if_end52
%124 = load i32 (i32, i32, i8*)*, i32 (i32, i32, i8*)** @__TVMBackendFreeWorkspace, align 8, !tbaa !6
%125 = call i32 %124(i32 2, i32 %4, i8* nonnull %27)
%126 = icmp eq i32 %125, 0
br i1 %126, label %if_end63, label %if_then, !prof !41
if_end63: ; preds = %if_end60
%127 = load i32 (i32, i32, i8*)*, i32 (i32, i32, i8*)** @__TVMBackendFreeWorkspace, align 8, !tbaa !6
%128 = call i32 %127(i32 2, i32 %4, i8* nonnull %24)
%129 = icmp eq i32 %128, 0
br i1 %129, label %if_end66, label %if_then, !prof !41
if_end66: ; preds = %if_end63
%130 = load i32 (i32, i32, i8*)*, i32 (i32, i32, i8*)** @__TVMBackendFreeWorkspace, align 8, !tbaa !6
%131 = call i32 %130(i32 2, i32 %4, i8* nonnull %21)
%132 = icmp eq i32 %131, 0
br i1 %132, label %if_end69, label %if_then, !prof !41
if_end69: ; preds = %if_end66
%133 = load i32 (i32, i32, i8*)*, i32 (i32, i32, i8*)** @__TVMBackendFreeWorkspace, align 8, !tbaa !6
%134 = call i32 %133(i32 2, i32 %4, i8* nonnull %18)
%135 = icmp eq i32 %134, 0
br i1 %135, label %if_end72, label %if_then, !prof !41
if_end72: ; preds = %if_end69
%136 = load i32 (i32, i32, i8*)*, i32 (i32, i32, i8*)** @__TVMBackendFreeWorkspace, align 8, !tbaa !6
%137 = call i32 %136(i32 2, i32 %4, i8* nonnull %15)
%138 = icmp eq i32 %137, 0
br i1 %138, label %if_end75, label %if_then, !prof !41
if_end75: ; preds = %if_end72
%139 = load i32 (i32, i32, i8*)*, i32 (i32, i32, i8*)** @__TVMBackendFreeWorkspace, align 8, !tbaa !6
%140 = call i32 %139(i32 2, i32 %4, i8* nonnull %12)
%141 = icmp eq i32 %140, 0
br i1 %141, label %if_end78, label %if_then, !prof !41
if_end78: ; preds = %if_end75
%142 = load i32 (i32, i32, i8*)*, i32 (i32, i32, i8*)** @__TVMBackendFreeWorkspace, align 8, !tbaa !6
%143 = call i32 %142(i32 2, i32 %4, i8* nonnull %9)
%144 = icmp ne i32 %143, 0
%. = sext i1 %144 to i32
br label %if_then
}
declare double @log2(double) local_unnamed_addr
; Function Attrs: nounwind readnone speculatable
declare double @llvm.ceil.f64(double) #2
attributes #0 = { nounwind }
attributes #1 = { noinline }
attributes #2 = { nounwind readnone speculatable }
!llvm.dbg.cu = !{!0}
!llvm.module.flags = !{!3, !4}
!0 = distinct !DICompileUnit(language: DW_LANG_C, file: !1, producer: "TVM", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2, dwoId: 1)
!1 = !DIFile(filename: "model.tvm", directory: "/tmp/")
!2 = !{}
!3 = !{i32 2, !"tvm_target", !"llvm"}
!4 = !{i32 4, !"Debug Info Version", i32 3}
!5 = !{!"branch_weights", i32 1048576, i32 1}
!6 = !{!7, !7, i64 0}
!7 = !{!"ctx_ptr", !8, i64 0}
!8 = !{!"tvm-tbaa"}
!9 = !{!10, !10, i64 0}
!10 = !{!"0x5596efa0d3e0.w1.b0", !11, i64 0}
!11 = !{!"0x5596efa0d3e0.w2.b0", !12, i64 0}
!12 = !{!"0x5596efa0d3e0.w4.b0", !13, i64 0}
!13 = !{!"0x5596efa0d3e0.w8.b0", !14, i64 0}
!14 = !{!"0x5596efa0d3e0.w16.b0", !15, i64 0}
!15 = !{!"0x5596efa0d3e0.w32.b0", !16, i64 0}
!16 = !{!"0x5596efa0d3e0.w64.b0", !17, i64 0}
!17 = !{!"0x5596efa0d3e0.w128.b0", !18, i64 0}
!18 = !{!"0x5596efa0d3e0.w256.b0", !19, i64 0}
!19 = !{!"0x5596efa0d3e0.w512.b0", !20, i64 0}
!20 = !{!"0x5596efa0d3e0.w1024.b0", !21, i64 0}
!21 = !{!"i8", !22, i64 0}
!22 = !{!"0x5596efa0d3e0", !8, i64 0}
!23 = !{!24, !24, i64 0}
!24 = !{!"0x5596efa0d3e0.w1.b1", !11, i64 0}
!25 = !{!26, !26, i64 0}
!26 = !{!"0x5596ef8d0b00.w1.b0", !27, i64 0}
!27 = !{!"0x5596ef8d0b00.w2.b0", !28, i64 0}
!28 = !{!"0x5596ef8d0b00.w4.b0", !29, i64 0}
!29 = !{!"0x5596ef8d0b00.w8.b0", !30, i64 0}
!30 = !{!"0x5596ef8d0b00.w16.b0", !31, i64 0}
!31 = !{!"0x5596ef8d0b00.w32.b0", !32, i64 0}
!32 = !{!"0x5596ef8d0b00.w64.b0", !33, i64 0}
!33 = !{!"0x5596ef8d0b00.w128.b0", !34, i64 0}
!34 = !{!"0x5596ef8d0b00.w256.b0", !35, i64 0}
!35 = !{!"0x5596ef8d0b00.w512.b0", !36, i64 0}
!36 = !{!"0x5596ef8d0b00.w1024.b0", !37, i64 0}
!37 = !{!"i64", !38, i64 0}
!38 = !{!"0x5596ef8d0b00", !8, i64 0}
!39 = !{!40, !40, i64 0}
!40 = !{!"0x5596ef8d0b00.w1.b1", !27, i64 0}
!41 = !{!"branch_weights", i32 1, i32 1048576}
!42 = !{!43, !43, i64 0}
!43 = !{!"0x5596ef94aba0.w1.b0", !44, i64 0}
!44 = !{!"0x5596ef94aba0.w2.b0", !45, i64 0}
!45 = !{!"0x5596ef94aba0.w4.b0", !46, i64 0}
!46 = !{!"0x5596ef94aba0.w8.b0", !47, i64 0}
!47 = !{!"0x5596ef94aba0.w16.b0", !48, i64 0}
!48 = !{!"0x5596ef94aba0.w32.b0", !49, i64 0}
!49 = !{!"0x5596ef94aba0.w64.b0", !50, i64 0}
!50 = !{!"0x5596ef94aba0.w128.b0", !51, i64 0}
!51 = !{!"0x5596ef94aba0.w256.b0", !52, i64 0}
!52 = !{!"0x5596ef94aba0.w512.b0", !53, i64 0}
!53 = !{!"0x5596ef94aba0.w1024.b0", !54, i64 0}
!54 = !{!"i64", !55, i64 0}
!55 = !{!"0x5596ef94aba0", !8, i64 0}
!56 = !{!57, !57, i64 0}
!57 = !{!"0x5596ef94aba0.w1.b1", !44, i64 0}
!58 = !{!59, !59, i64 0}
!59 = !{!"0x5596efa17370.w1.b0", !60, i64 0}
!60 = !{!"0x5596efa17370.w2.b0", !61, i64 0}
!61 = !{!"0x5596efa17370.w4.b0", !62, i64 0}
!62 = !{!"0x5596efa17370.w8.b0", !63, i64 0}
!63 = !{!"0x5596efa17370.w16.b0", !64, i64 0}
!64 = !{!"0x5596efa17370.w32.b0", !65, i64 0}
!65 = !{!"0x5596efa17370.w64.b0", !66, i64 0}
!66 = !{!"0x5596efa17370.w128.b0", !67, i64 0}
!67 = !{!"0x5596efa17370.w256.b0", !68, i64 0}
!68 = !{!"0x5596efa17370.w512.b0", !69, i64 0}
!69 = !{!"0x5596efa17370.w1024.b0", !70, i64 0}
!70 = !{!"i64", !71, i64 0}
!71 = !{!"0x5596efa17370", !8, i64 0}
!72 = !{!73, !73, i64 0}
!73 = !{!"0x5596efa17370.w1.b1", !60, i64 0}
!74 = !{!75, !75, i64 0}
!75 = !{!"0x5596efa12680.w1.b0", !76, i64 0}
!76 = !{!"0x5596efa12680.w2.b0", !77, i64 0}
!77 = !{!"0x5596efa12680.w4.b0", !78, i64 0}
!78 = !{!"0x5596efa12680.w8.b0", !79, i64 0}
!79 = !{!"0x5596efa12680.w16.b0", !80, i64 0}
!80 = !{!"0x5596efa12680.w32.b0", !81, i64 0}
!81 = !{!"0x5596efa12680.w64.b0", !82, i64 0}
!82 = !{!"0x5596efa12680.w128.b0", !83, i64 0}
!83 = !{!"0x5596efa12680.w256.b0", !84, i64 0}
!84 = !{!"0x5596efa12680.w512.b0", !85, i64 0}
!85 = !{!"0x5596efa12680.w1024.b0", !86, i64 0}
!86 = !{!"i64", !87, i64 0}
!87 = !{!"0x5596efa12680", !8, i64 0}
!88 = !{!89, !89, i64 0}
!89 = !{!"0x5596efa12680.w1.b1", !76, i64 0}
!90 = !{!91, !91, i64 0}
!91 = !{!"0x5596efc2aeb0.w1.b0", !92, i64 0}
!92 = !{!"0x5596efc2aeb0.w2.b0", !93, i64 0}
!93 = !{!"0x5596efc2aeb0.w4.b0", !94, i64 0}
!94 = !{!"0x5596efc2aeb0.w8.b0", !95, i64 0}
!95 = !{!"0x5596efc2aeb0.w16.b0", !96, i64 0}
!96 = !{!"0x5596efc2aeb0.w32.b0", !97, i64 0}
!97 = !{!"0x5596efc2aeb0.w64.b0", !98, i64 0}
!98 = !{!"0x5596efc2aeb0.w128.b0", !99, i64 0}
!99 = !{!"0x5596efc2aeb0.w256.b0", !100, i64 0}
!100 = !{!"0x5596efc2aeb0.w512.b0", !101, i64 0}
!101 = !{!"0x5596efc2aeb0.w1024.b0", !102, i64 0}
!102 = !{!"i32", !103, i64 0}
!103 = !{!"0x5596efc2aeb0", !8, i64 0}
!104 = !{!105, !105, i64 0}
!105 = !{!"0x5596efc2aeb0.w1.b1", !92, i64 0}
!106 = !{!93, !93, i64 0}
!107 = !{!108, !108, i64 0}
!108 = !{!"0x5596efc2aeb0.w1.b4", !109, i64 0}
!109 = !{!"0x5596efc2aeb0.w2.b4", !110, i64 0}
!110 = !{!"0x5596efc2aeb0.w4.b4", !94, i64 0}
!111 = !{!112, !112, i64 0}
!112 = !{!"0x5596efc2aeb0.w1.b5", !109, i64 0}
!113 = !{!114, !114, i64 0}
!114 = !{!"0x5596efc2aeb0.w1.b6", !115, i64 0}
!115 = !{!"0x5596efc2aeb0.w2.b6", !110, i64 0}
!116 = !{!110, !110, i64 0}
!117 = !{!118, !118, i64 0}
!118 = !{!"0x5596efc2aeb0.w4.b8", !119, i64 0}
!119 = !{!"0x5596efc2aeb0.w8.b8", !95, i64 0}
!120 = !{!121, !121, i64 0}
!121 = !{!"0x5596efc2aeb0.w1.b12", !122, i64 0}
!122 = !{!"0x5596efc2aeb0.w2.b12", !123, i64 0}
!123 = !{!"0x5596efc2aeb0.w4.b12", !119, i64 0}
!124 = !{!125, !125, i64 0}
!125 = !{!"0x5596efc2aeb0.w1.b13", !122, i64 0}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment