Created
December 14, 2020 21:50
-
-
Save masahi/6349ddf1c62e11e28925cb15fd11da28 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
; 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