; ModuleID = 'TVMMod'
source_filename = "TVMMod"
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-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 == 19, default_function: num_args should be 19\00", align 1
@.str.1 = private constant [122 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[0] to be pointer\00", align 1
@.str.2 = private constant [122 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[1] to be pointer\00", align 1
@.str.3 = private constant [122 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[2] to be pointer\00", align 1
@.str.4 = private constant [122 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[3] to be pointer\00", align 1
@.str.5 = private constant [122 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[4] to be pointer\00", align 1
@.str.6 = private constant [122 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[5] to be pointer\00", align 1
@.str.7 = private constant [122 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[6] to be pointer\00", align 1
@.str.8 = private constant [122 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[7] to be pointer\00", align 1
@.str.9 = private constant [122 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[8] to be pointer\00", align 1
@.str.10 = private constant [122 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[9] to be pointer\00", align 1
@.str.11 = private constant [123 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[10] to be pointer\00", align 1
@.str.12 = private constant [123 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[11] to be pointer\00", align 1
@.str.13 = private constant [123 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[12] to be pointer\00", align 1
@.str.14 = private constant [123 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[13] to be pointer\00", align 1
@.str.15 = private constant [123 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[14] to be pointer\00", align 1
@.str.16 = private constant [123 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[15] to be pointer\00", align 1
@.str.17 = private constant [123 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[16] to be pointer\00", align 1
@.str.18 = private constant [123 x i8] c"Assert fail: ph_code == 3 or ph_code == 13 or ph_code == 7 or ph_code == 4, default_function: Expect arg[17] to be pointer\00", align 1
@.str.19 = private constant [147 x i8] c"Assert fail: T_concat_code == 3 or T_concat_code == 13 or T_concat_code == 7 or T_concat_code == 4, default_function: Expect arg[18] to be pointer\00", align 1
@.str.20 = private constant [103 x i8] c"Assert fail: 3 == T.tvm_struct_get(ph, 0, 4, \22int32\22), default_function.ph.ndim is expected to equal 3\00", align 1
@.str.21 = private constant [227 x i8] c"Assert fail: T.tvm_struct_get(ph, 0, 5, \22uint8\22) == T.uint8(2) and T.tvm_struct_get(ph, 0, 6, \22uint8\22) == T.uint8(32) and T.tvm_struct_get(ph, 0, 7, \22uint16\22) == T.uint16(1), default_function.ph.dtype is expected to be float32\00", align 1
@.str.22 = private constant [185 x i8] c"Assert fail: T.Cast(\22int32\22, default_function_ph_shape[0]) == 1, Argument default_function.ph.shape[0] has an unsatisfied constraint: 1 == T.Cast(\22int32\22, default_function_ph_shape[0])\00", align 1
@.str.23 = private constant [187 x i8] c"Assert fail: T.Cast(\22int32\22, default_function_ph_shape[1]) == 64, Argument default_function.ph.shape[1] has an unsatisfied constraint: 64 == T.Cast(\22int32\22, default_function_ph_shape[1])\00", align 1
@.str.24 = private constant [189 x i8] c"Assert fail: T.Cast(\22int32\22, default_function_ph_shape[2]) == 100, Argument default_function.ph.shape[2] has an unsatisfied constraint: 100 == T.Cast(\22int32\22, default_function_ph_shape[2])\00", align 1
@.str.25 = private constant [184 x i8] c"Assert fail: 1 == T.Cast(\22int32\22, default_function_ph_strides[2]) and 100 == T.Cast(\22int32\22, default_function_ph_strides[1]), default_function.ph.strides: expected to be compact array\00", align 1
@.str.26 = private constant [190 x i8] c"Assert fail: T.uint64(0) == T.tvm_struct_get(ph, 0, 8, \22uint64\22), Argument default_function.ph.byte_offset has an unsatisfied constraint: T.uint64(0) == T.tvm_struct_get(ph, 0, 8, \22uint64\22)\00", align 1
@.str.27 = private constant [170 x i8] c"Assert fail: T.tvm_struct_get(ph, 0, 10, \22int32\22) == 1, Argument default_function.ph.device_type has an unsatisfied constraint: 1 == T.tvm_struct_get(ph, 0, 10, \22int32\22)\00", align 1
@.str.28 = private constant [189 x i8] c"Assert fail: T.Cast(\22int32\22, default_function_ph_shape[0]) == 128, Argument default_function.ph.shape[0] has an unsatisfied constraint: 128 == T.Cast(\22int32\22, default_function_ph_shape[0])\00", align 1
@.str.29 = private constant [185 x i8] c"Assert fail: T.Cast(\22int32\22, default_function_ph_shape[2]) == 3, Argument default_function.ph.shape[2] has an unsatisfied constraint: 3 == T.Cast(\22int32\22, default_function_ph_shape[2])\00", align 1
@.str.30 = private constant [241 x i8] c"Assert fail: 1 == T.Cast(\22int32\22, default_function_ph_strides[2]) and 3 == T.Cast(\22int32\22, default_function_ph_strides[1]) and 192 == T.Cast(\22int32\22, default_function_ph_strides[0]), default_function.ph.strides: expected to be compact array\00", align 1
@.str.31 = private constant [176 x i8] c"Assert fail: dev_id == T.tvm_struct_get(ph, 0, 9, \22int32\22), Argument default_function.ph.device_id has an unsatisfied constraint: dev_id == T.tvm_struct_get(ph, 0, 9, \22int32\22)\00", align 1
@.str.32 = private constant [189 x i8] c"Assert fail: T.Cast(\22int32\22, default_function_ph_shape[1]) == 128, Argument default_function.ph.shape[1] has an unsatisfied constraint: 128 == T.Cast(\22int32\22, default_function_ph_shape[1])\00", align 1
@.str.33 = private constant [241 x i8] c"Assert fail: 1 == T.Cast(\22int32\22, default_function_ph_strides[2]) and 3 == T.Cast(\22int32\22, default_function_ph_strides[1]) and 384 == T.Cast(\22int32\22, default_function_ph_strides[0]), default_function.ph.strides: expected to be compact array\00", align 1
@.str.34 = private constant [185 x i8] c"Assert fail: T.Cast(\22int32\22, default_function_ph_shape[2]) == 1, Argument default_function.ph.shape[2] has an unsatisfied constraint: 1 == T.Cast(\22int32\22, default_function_ph_shape[2])\00", align 1
@.str.35 = private constant [184 x i8] c"Assert fail: 1 == T.Cast(\22int32\22, default_function_ph_strides[1]) and 128 == T.Cast(\22int32\22, default_function_ph_strides[0]), default_function.ph.strides: expected to be compact array\00", align 1
@.str.36 = private constant [183 x i8] c"Assert fail: 1 == T.Cast(\22int32\22, default_function_ph_strides[1]) and 64 == T.Cast(\22int32\22, default_function_ph_strides[0]), default_function.ph.strides: expected to be compact array\00", align 1
@.str.37 = private constant [115 x i8] c"Assert fail: 3 == T.tvm_struct_get(T_concat, 0, 4, \22int32\22), default_function.T_concat.ndim is expected to equal 3\00", align 1
@.str.38 = private constant [251 x i8] c"Assert fail: T.tvm_struct_get(T_concat, 0, 5, \22uint8\22) == T.uint8(2) and T.tvm_struct_get(T_concat, 0, 6, \22uint8\22) == T.uint8(32) and T.tvm_struct_get(T_concat, 0, 7, \22uint16\22) == T.uint16(1), default_function.T_concat.dtype is expected to be float32\00", align 1
@.str.39 = private constant [203 x i8] c"Assert fail: T.Cast(\22int32\22, default_function_T_concat_shape[0]) == 1, Argument default_function.T_concat.shape[0] has an unsatisfied constraint: 1 == T.Cast(\22int32\22, default_function_T_concat_shape[0])\00", align 1
@.str.40 = private constant [207 x i8] c"Assert fail: T.Cast(\22int32\22, default_function_T_concat_shape[1]) == 512, Argument default_function.T_concat.shape[1] has an unsatisfied constraint: 512 == T.Cast(\22int32\22, default_function_T_concat_shape[1])\00", align 1
@.str.41 = private constant [207 x i8] c"Assert fail: T.Cast(\22int32\22, default_function_T_concat_shape[2]) == 100, Argument default_function.T_concat.shape[2] has an unsatisfied constraint: 100 == T.Cast(\22int32\22, default_function_T_concat_shape[2])\00", align 1
@.str.42 = private constant [202 x i8] c"Assert fail: 1 == T.Cast(\22int32\22, default_function_T_concat_strides[2]) and 100 == T.Cast(\22int32\22, default_function_T_concat_strides[1]), default_function.T_concat.strides: expected to be compact array\00", align 1
@.str.43 = private constant [208 x i8] c"Assert fail: T.uint64(0) == T.tvm_struct_get(T_concat, 0, 8, \22uint64\22), Argument default_function.T_concat.byte_offset has an unsatisfied constraint: T.uint64(0) == T.tvm_struct_get(T_concat, 0, 8, \22uint64\22)\00", align 1
@.str.44 = private constant [188 x i8] c"Assert fail: T.tvm_struct_get(T_concat, 0, 10, \22int32\22) == 1, Argument default_function.T_concat.device_type has an unsatisfied constraint: 1 == T.tvm_struct_get(T_concat, 0, 10, \22int32\22)\00", align 1
@.str.45 = private constant [194 x i8] c"Assert fail: dev_id == T.tvm_struct_get(T_concat, 0, 9, \22int32\22), Argument default_function.T_concat.device_id has an unsatisfied constraint: dev_id == T.tvm_struct_get(T_concat, 0, 9, \22int32\22)\00", align 1
@.tvm_func.default_function_kernel = internal unnamed_addr global i8* null, align 8
@.str.46 = private constant [24 x i8] c"default_function_kernel\00", align 1
@.str.47 = private constant [68 x i8] c"Assert fail: kernel_error_code == 0, Error executing compute kernel\00", align 1
@__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 %args, i32* noalias nocapture readonly %arg_type_ids, i32 %num_args, i8* noalias nocapture readnone %out_ret_value, i32* noalias nocapture readnone %out_ret_tcode, i8* noalias nocapture readnone %resource_handle) local_unnamed_addr #0 !dbg !5 {
entry:
  call void @llvm.dbg.value(metadata i8* %args, metadata !12, metadata !DIExpression()), !dbg !18
  call void @llvm.dbg.value(metadata i32* %arg_type_ids, metadata !13, metadata !DIExpression()), !dbg !18
  call void @llvm.dbg.value(metadata i32 %num_args, metadata !14, metadata !DIExpression()), !dbg !18
  call void @llvm.dbg.value(metadata i8* %out_ret_value, metadata !15, metadata !DIExpression()), !dbg !18
  call void @llvm.dbg.value(metadata i32* %out_ret_tcode, metadata !16, metadata !DIExpression()), !dbg !18
  call void @llvm.dbg.value(metadata i8* %resource_handle, metadata !17, metadata !DIExpression()), !dbg !18
  %stack_value_void_ptr630 = alloca [20 x %0], align 8, !dbg !18
  %stack_tcode631 = alloca [20 x i32], align 4, !dbg !18
  %stack_tcode631.sub = getelementptr inbounds [20 x i32], [20 x i32]* %stack_tcode631, i64 0, i64 0
  %stack_value = bitcast [20 x %0]* %stack_value_void_ptr630 to i8*, !dbg !18
  %0 = icmp eq i32 %num_args, 19, !dbg !18
  br i1 %0, label %assert_end, label %assert_fail, !dbg !18, !prof !19

assert_fail:                                      ; preds = %entry
  %1 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1(i8* getelementptr inbounds ([69 x i8], [69 x i8]* @.str, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end:                                       ; preds = %entry
  %ph.code = load i32, i32* %arg_type_ids, align 4, !dbg !18, !tbaa !23
  %2 = getelementptr inbounds i32, i32* %arg_type_ids, i64 1, !dbg !18
  %ph.code1 = load i32, i32* %2, align 4, !dbg !18, !tbaa !34
  %3 = getelementptr inbounds i32, i32* %arg_type_ids, i64 2, !dbg !18
  %ph.code2 = load i32, i32* %3, align 4, !dbg !18, !tbaa !36
  %4 = getelementptr inbounds i32, i32* %arg_type_ids, i64 3, !dbg !18
  %ph.code3 = load i32, i32* %4, align 4, !dbg !18, !tbaa !39
  %5 = getelementptr inbounds i32, i32* %arg_type_ids, i64 4, !dbg !18
  %ph.code4 = load i32, i32* %5, align 4, !dbg !18, !tbaa !41
  %6 = getelementptr inbounds i32, i32* %arg_type_ids, i64 5, !dbg !18
  %ph.code5 = load i32, i32* %6, align 4, !dbg !18, !tbaa !45
  %7 = getelementptr inbounds i32, i32* %arg_type_ids, i64 6, !dbg !18
  %ph.code6 = load i32, i32* %7, align 4, !dbg !18, !tbaa !47
  %8 = getelementptr inbounds i32, i32* %arg_type_ids, i64 7, !dbg !18
  %ph.code7 = load i32, i32* %8, align 4, !dbg !18, !tbaa !50
  %9 = getelementptr inbounds i32, i32* %arg_type_ids, i64 8, !dbg !18
  %ph.code8 = load i32, i32* %9, align 4, !dbg !18, !tbaa !52
  %10 = getelementptr inbounds i32, i32* %arg_type_ids, i64 9, !dbg !18
  %ph.code9 = load i32, i32* %10, align 4, !dbg !18, !tbaa !57
  %11 = getelementptr inbounds i32, i32* %arg_type_ids, i64 10, !dbg !18
  %ph.code10 = load i32, i32* %11, align 4, !dbg !18, !tbaa !59
  %12 = getelementptr inbounds i32, i32* %arg_type_ids, i64 11, !dbg !18
  %ph.code11 = load i32, i32* %12, align 4, !dbg !18, !tbaa !62
  %13 = getelementptr inbounds i32, i32* %arg_type_ids, i64 12, !dbg !18
  %ph.code12 = load i32, i32* %13, align 4, !dbg !18, !tbaa !64
  %14 = getelementptr inbounds i32, i32* %arg_type_ids, i64 13, !dbg !18
  %ph.code13 = load i32, i32* %14, align 4, !dbg !18, !tbaa !68
  %15 = getelementptr inbounds i32, i32* %arg_type_ids, i64 14, !dbg !18
  %ph.code14 = load i32, i32* %15, align 4, !dbg !18, !tbaa !70
  %16 = getelementptr inbounds i32, i32* %arg_type_ids, i64 15, !dbg !18
  %ph.code15 = load i32, i32* %16, align 4, !dbg !18, !tbaa !73
  %17 = getelementptr inbounds i32, i32* %arg_type_ids, i64 16, !dbg !18
  %ph.code16 = load i32, i32* %17, align 4, !dbg !18, !tbaa !75
  %18 = getelementptr inbounds i32, i32* %arg_type_ids, i64 17, !dbg !18
  %ph.code17 = load i32, i32* %18, align 4, !dbg !18, !tbaa !81
  %19 = getelementptr inbounds i32, i32* %arg_type_ids, i64 18, !dbg !18
  %T_concat.code = load i32, i32* %19, align 4, !dbg !18, !tbaa !83
  %20 = bitcast i8* %args to %1**, !dbg !18
  %ph632 = load %1*, %1** %20, align 8, !dbg !18
  %21 = getelementptr inbounds i8, i8* %args, i64 8, !dbg !18
  %22 = bitcast i8* %21 to %1**, !dbg !18
  %ph18633 = load %1*, %1** %22, align 8, !dbg !18
  %23 = getelementptr inbounds i8, i8* %args, i64 16, !dbg !18
  %24 = bitcast i8* %23 to %1**, !dbg !18
  %ph19634 = load %1*, %1** %24, align 8, !dbg !18
  %25 = getelementptr inbounds i8, i8* %args, i64 24, !dbg !18
  %26 = bitcast i8* %25 to %1**, !dbg !18
  %ph20635 = load %1*, %1** %26, align 8, !dbg !18
  %27 = getelementptr inbounds i8, i8* %args, i64 32, !dbg !18
  %28 = bitcast i8* %27 to %1**, !dbg !18
  %ph21636 = load %1*, %1** %28, align 8, !dbg !18
  %29 = getelementptr inbounds i8, i8* %args, i64 40, !dbg !18
  %30 = bitcast i8* %29 to %1**, !dbg !18
  %ph22637 = load %1*, %1** %30, align 8, !dbg !18
  %31 = getelementptr inbounds i8, i8* %args, i64 48, !dbg !18
  %32 = bitcast i8* %31 to %1**, !dbg !18
  %ph23638 = load %1*, %1** %32, align 8, !dbg !18
  %33 = getelementptr inbounds i8, i8* %args, i64 56, !dbg !18
  %34 = bitcast i8* %33 to %1**, !dbg !18
  %ph24639 = load %1*, %1** %34, align 8, !dbg !18
  %35 = getelementptr inbounds i8, i8* %args, i64 64, !dbg !18
  %36 = bitcast i8* %35 to %1**, !dbg !18
  %ph25640 = load %1*, %1** %36, align 8, !dbg !18
  %37 = getelementptr inbounds i8, i8* %args, i64 72, !dbg !18
  %38 = bitcast i8* %37 to %1**, !dbg !18
  %ph26641 = load %1*, %1** %38, align 8, !dbg !18
  %39 = getelementptr inbounds i8, i8* %args, i64 80, !dbg !18
  %40 = bitcast i8* %39 to %1**, !dbg !18
  %ph27642 = load %1*, %1** %40, align 8, !dbg !18
  %41 = getelementptr inbounds i8, i8* %args, i64 88, !dbg !18
  %42 = bitcast i8* %41 to %1**, !dbg !18
  %ph28643 = load %1*, %1** %42, align 8, !dbg !18
  %43 = getelementptr inbounds i8, i8* %args, i64 96, !dbg !18
  %44 = bitcast i8* %43 to %1**, !dbg !18
  %ph29644 = load %1*, %1** %44, align 8, !dbg !18
  %45 = getelementptr inbounds i8, i8* %args, i64 104, !dbg !18
  %46 = bitcast i8* %45 to %1**, !dbg !18
  %ph30645 = load %1*, %1** %46, align 8, !dbg !18
  %47 = getelementptr inbounds i8, i8* %args, i64 112, !dbg !18
  %48 = bitcast i8* %47 to %1**, !dbg !18
  %ph31646 = load %1*, %1** %48, align 8, !dbg !18
  %49 = getelementptr inbounds i8, i8* %args, i64 120, !dbg !18
  %50 = bitcast i8* %49 to %1**, !dbg !18
  %ph32647 = load %1*, %1** %50, align 8, !dbg !18
  %51 = getelementptr inbounds i8, i8* %args, i64 128, !dbg !18
  %52 = bitcast i8* %51 to %1**, !dbg !18
  %ph33648 = load %1*, %1** %52, align 8, !dbg !18
  %53 = getelementptr inbounds i8, i8* %args, i64 136, !dbg !18
  %54 = bitcast i8* %53 to %1**, !dbg !18
  %ph34649 = load %1*, %1** %54, align 8, !dbg !18
  %55 = getelementptr inbounds i8, i8* %args, i64 144, !dbg !18
  %56 = bitcast i8* %55 to %1**, !dbg !18
  %T_concat650 = load %1*, %1** %56, align 8, !dbg !18
  %57 = bitcast %1* %ph632 to float**, !dbg !18
  %ph_void_ptr651 = load float*, float** %57, align 8, !dbg !18
  %ptrint = ptrtoint float* %ph_void_ptr651 to i64, !dbg !18
  %maskedptr = and i64 %ptrint, 63, !dbg !18
  %maskcond = icmp eq i64 %maskedptr, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond), !dbg !18
  %58 = getelementptr inbounds %1, %1* %ph632, i64 0, i32 4, !dbg !18
  %default_function.ph.shape = load i64*, i64** %58, align 8, !dbg !18
  %59 = getelementptr inbounds %1, %1* %ph632, i64 0, i32 5, !dbg !18
  %default_function.ph.strides = load i64*, i64** %59, align 8, !dbg !18
  %60 = getelementptr inbounds %1, %1* %ph632, i64 0, i32 1, i32 1, !dbg !18
  %dev_id = load i32, i32* %60, align 4, !dbg !18
  %61 = bitcast %1* %ph18633 to float**, !dbg !18
  %ph_void_ptr36652 = load float*, float** %61, align 8, !dbg !18
  %ptrint38 = ptrtoint float* %ph_void_ptr36652 to i64, !dbg !18
  %maskedptr39 = and i64 %ptrint38, 63, !dbg !18
  %maskcond40 = icmp eq i64 %maskedptr39, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond40), !dbg !18
  %62 = getelementptr inbounds %1, %1* %ph18633, i64 0, i32 4, !dbg !18
  %default_function.ph.shape41 = load i64*, i64** %62, align 8, !dbg !18
  %63 = getelementptr inbounds %1, %1* %ph18633, i64 0, i32 5, !dbg !18
  %default_function.ph.strides42 = load i64*, i64** %63, align 8, !dbg !18
  %64 = bitcast %1* %ph19634 to float**, !dbg !18
  %ph_void_ptr43653 = load float*, float** %64, align 8, !dbg !18
  %ptrint45 = ptrtoint float* %ph_void_ptr43653 to i64, !dbg !18
  %maskedptr46 = and i64 %ptrint45, 63, !dbg !18
  %maskcond47 = icmp eq i64 %maskedptr46, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond47), !dbg !18
  %65 = getelementptr inbounds %1, %1* %ph19634, i64 0, i32 4, !dbg !18
  %default_function.ph.shape48 = load i64*, i64** %65, align 8, !dbg !18
  %66 = getelementptr inbounds %1, %1* %ph19634, i64 0, i32 5, !dbg !18
  %default_function.ph.strides49 = load i64*, i64** %66, align 8, !dbg !18
  %67 = bitcast %1* %ph20635 to float**, !dbg !18
  %ph_void_ptr50654 = load float*, float** %67, align 8, !dbg !18
  %ptrint52 = ptrtoint float* %ph_void_ptr50654 to i64, !dbg !18
  %maskedptr53 = and i64 %ptrint52, 63, !dbg !18
  %maskcond54 = icmp eq i64 %maskedptr53, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond54), !dbg !18
  %68 = getelementptr inbounds %1, %1* %ph20635, i64 0, i32 4, !dbg !18
  %default_function.ph.shape55 = load i64*, i64** %68, align 8, !dbg !18
  %69 = getelementptr inbounds %1, %1* %ph20635, i64 0, i32 5, !dbg !18
  %default_function.ph.strides56 = load i64*, i64** %69, align 8, !dbg !18
  %70 = bitcast %1* %ph21636 to float**, !dbg !18
  %ph_void_ptr57655 = load float*, float** %70, align 8, !dbg !18
  %ptrint59 = ptrtoint float* %ph_void_ptr57655 to i64, !dbg !18
  %maskedptr60 = and i64 %ptrint59, 63, !dbg !18
  %maskcond61 = icmp eq i64 %maskedptr60, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond61), !dbg !18
  %71 = getelementptr inbounds %1, %1* %ph21636, i64 0, i32 4, !dbg !18
  %default_function.ph.shape62 = load i64*, i64** %71, align 8, !dbg !18
  %72 = getelementptr inbounds %1, %1* %ph21636, i64 0, i32 5, !dbg !18
  %default_function.ph.strides63 = load i64*, i64** %72, align 8, !dbg !18
  %73 = bitcast %1* %ph22637 to float**, !dbg !18
  %ph_void_ptr64656 = load float*, float** %73, align 8, !dbg !18
  %ptrint66 = ptrtoint float* %ph_void_ptr64656 to i64, !dbg !18
  %maskedptr67 = and i64 %ptrint66, 63, !dbg !18
  %maskcond68 = icmp eq i64 %maskedptr67, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond68), !dbg !18
  %74 = getelementptr inbounds %1, %1* %ph22637, i64 0, i32 4, !dbg !18
  %default_function.ph.shape69 = load i64*, i64** %74, align 8, !dbg !18
  %75 = getelementptr inbounds %1, %1* %ph22637, i64 0, i32 5, !dbg !18
  %default_function.ph.strides70 = load i64*, i64** %75, align 8, !dbg !18
  %76 = bitcast %1* %ph23638 to float**, !dbg !18
  %ph_void_ptr71657 = load float*, float** %76, align 8, !dbg !18
  %ptrint73 = ptrtoint float* %ph_void_ptr71657 to i64, !dbg !18
  %maskedptr74 = and i64 %ptrint73, 63, !dbg !18
  %maskcond75 = icmp eq i64 %maskedptr74, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond75), !dbg !18
  %77 = getelementptr inbounds %1, %1* %ph23638, i64 0, i32 4, !dbg !18
  %default_function.ph.shape76 = load i64*, i64** %77, align 8, !dbg !18
  %78 = getelementptr inbounds %1, %1* %ph23638, i64 0, i32 5, !dbg !18
  %default_function.ph.strides77 = load i64*, i64** %78, align 8, !dbg !18
  %79 = bitcast %1* %ph24639 to float**, !dbg !18
  %ph_void_ptr78658 = load float*, float** %79, align 8, !dbg !18
  %ptrint80 = ptrtoint float* %ph_void_ptr78658 to i64, !dbg !18
  %maskedptr81 = and i64 %ptrint80, 63, !dbg !18
  %maskcond82 = icmp eq i64 %maskedptr81, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond82), !dbg !18
  %80 = getelementptr inbounds %1, %1* %ph24639, i64 0, i32 4, !dbg !18
  %default_function.ph.shape83 = load i64*, i64** %80, align 8, !dbg !18
  %81 = getelementptr inbounds %1, %1* %ph24639, i64 0, i32 5, !dbg !18
  %default_function.ph.strides84 = load i64*, i64** %81, align 8, !dbg !18
  %82 = bitcast %1* %ph25640 to float**, !dbg !18
  %ph_void_ptr85659 = load float*, float** %82, align 8, !dbg !18
  %ptrint87 = ptrtoint float* %ph_void_ptr85659 to i64, !dbg !18
  %maskedptr88 = and i64 %ptrint87, 63, !dbg !18
  %maskcond89 = icmp eq i64 %maskedptr88, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond89), !dbg !18
  %83 = getelementptr inbounds %1, %1* %ph25640, i64 0, i32 4, !dbg !18
  %default_function.ph.shape90 = load i64*, i64** %83, align 8, !dbg !18
  %84 = getelementptr inbounds %1, %1* %ph25640, i64 0, i32 5, !dbg !18
  %default_function.ph.strides91 = load i64*, i64** %84, align 8, !dbg !18
  %85 = bitcast %1* %ph26641 to float**, !dbg !18
  %ph_void_ptr92660 = load float*, float** %85, align 8, !dbg !18
  %ptrint94 = ptrtoint float* %ph_void_ptr92660 to i64, !dbg !18
  %maskedptr95 = and i64 %ptrint94, 63, !dbg !18
  %maskcond96 = icmp eq i64 %maskedptr95, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond96), !dbg !18
  %86 = getelementptr inbounds %1, %1* %ph26641, i64 0, i32 4, !dbg !18
  %default_function.ph.shape97 = load i64*, i64** %86, align 8, !dbg !18
  %87 = getelementptr inbounds %1, %1* %ph26641, i64 0, i32 5, !dbg !18
  %default_function.ph.strides98 = load i64*, i64** %87, align 8, !dbg !18
  %88 = bitcast %1* %ph27642 to float**, !dbg !18
  %ph_void_ptr99661 = load float*, float** %88, align 8, !dbg !18
  %ptrint101 = ptrtoint float* %ph_void_ptr99661 to i64, !dbg !18
  %maskedptr102 = and i64 %ptrint101, 63, !dbg !18
  %maskcond103 = icmp eq i64 %maskedptr102, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond103), !dbg !18
  %89 = getelementptr inbounds %1, %1* %ph27642, i64 0, i32 4, !dbg !18
  %default_function.ph.shape104 = load i64*, i64** %89, align 8, !dbg !18
  %90 = getelementptr inbounds %1, %1* %ph27642, i64 0, i32 5, !dbg !18
  %default_function.ph.strides105 = load i64*, i64** %90, align 8, !dbg !18
  %91 = bitcast %1* %ph28643 to float**, !dbg !18
  %ph_void_ptr106662 = load float*, float** %91, align 8, !dbg !18
  %ptrint108 = ptrtoint float* %ph_void_ptr106662 to i64, !dbg !18
  %maskedptr109 = and i64 %ptrint108, 63, !dbg !18
  %maskcond110 = icmp eq i64 %maskedptr109, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond110), !dbg !18
  %92 = getelementptr inbounds %1, %1* %ph28643, i64 0, i32 4, !dbg !18
  %default_function.ph.shape111 = load i64*, i64** %92, align 8, !dbg !18
  %93 = getelementptr inbounds %1, %1* %ph28643, i64 0, i32 5, !dbg !18
  %default_function.ph.strides112 = load i64*, i64** %93, align 8, !dbg !18
  %94 = bitcast %1* %ph29644 to float**, !dbg !18
  %ph_void_ptr113663 = load float*, float** %94, align 8, !dbg !18
  %ptrint115 = ptrtoint float* %ph_void_ptr113663 to i64, !dbg !18
  %maskedptr116 = and i64 %ptrint115, 63, !dbg !18
  %maskcond117 = icmp eq i64 %maskedptr116, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond117), !dbg !18
  %95 = getelementptr inbounds %1, %1* %ph29644, i64 0, i32 4, !dbg !18
  %default_function.ph.shape118 = load i64*, i64** %95, align 8, !dbg !18
  %96 = getelementptr inbounds %1, %1* %ph29644, i64 0, i32 5, !dbg !18
  %default_function.ph.strides119 = load i64*, i64** %96, align 8, !dbg !18
  %97 = bitcast %1* %ph30645 to float**, !dbg !18
  %ph_void_ptr120664 = load float*, float** %97, align 8, !dbg !18
  %ptrint122 = ptrtoint float* %ph_void_ptr120664 to i64, !dbg !18
  %maskedptr123 = and i64 %ptrint122, 63, !dbg !18
  %maskcond124 = icmp eq i64 %maskedptr123, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond124), !dbg !18
  %98 = getelementptr inbounds %1, %1* %ph30645, i64 0, i32 4, !dbg !18
  %default_function.ph.shape125 = load i64*, i64** %98, align 8, !dbg !18
  %99 = getelementptr inbounds %1, %1* %ph30645, i64 0, i32 5, !dbg !18
  %default_function.ph.strides126 = load i64*, i64** %99, align 8, !dbg !18
  %100 = bitcast %1* %ph31646 to float**, !dbg !18
  %ph_void_ptr127665 = load float*, float** %100, align 8, !dbg !18
  %ptrint129 = ptrtoint float* %ph_void_ptr127665 to i64, !dbg !18
  %maskedptr130 = and i64 %ptrint129, 63, !dbg !18
  %maskcond131 = icmp eq i64 %maskedptr130, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond131), !dbg !18
  %101 = getelementptr inbounds %1, %1* %ph31646, i64 0, i32 4, !dbg !18
  %default_function.ph.shape132 = load i64*, i64** %101, align 8, !dbg !18
  %102 = getelementptr inbounds %1, %1* %ph31646, i64 0, i32 5, !dbg !18
  %default_function.ph.strides133 = load i64*, i64** %102, align 8, !dbg !18
  %103 = bitcast %1* %ph32647 to float**, !dbg !18
  %ph_void_ptr134666 = load float*, float** %103, align 8, !dbg !18
  %ptrint136 = ptrtoint float* %ph_void_ptr134666 to i64, !dbg !18
  %maskedptr137 = and i64 %ptrint136, 63, !dbg !18
  %maskcond138 = icmp eq i64 %maskedptr137, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond138), !dbg !18
  %104 = getelementptr inbounds %1, %1* %ph32647, i64 0, i32 4, !dbg !18
  %default_function.ph.shape139 = load i64*, i64** %104, align 8, !dbg !18
  %105 = getelementptr inbounds %1, %1* %ph32647, i64 0, i32 5, !dbg !18
  %default_function.ph.strides140 = load i64*, i64** %105, align 8, !dbg !18
  %106 = bitcast %1* %ph33648 to float**, !dbg !18
  %ph_void_ptr141667 = load float*, float** %106, align 8, !dbg !18
  %ptrint143 = ptrtoint float* %ph_void_ptr141667 to i64, !dbg !18
  %maskedptr144 = and i64 %ptrint143, 63, !dbg !18
  %maskcond145 = icmp eq i64 %maskedptr144, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond145), !dbg !18
  %107 = getelementptr inbounds %1, %1* %ph33648, i64 0, i32 4, !dbg !18
  %default_function.ph.shape146 = load i64*, i64** %107, align 8, !dbg !18
  %108 = getelementptr inbounds %1, %1* %ph33648, i64 0, i32 5, !dbg !18
  %default_function.ph.strides147 = load i64*, i64** %108, align 8, !dbg !18
  %109 = bitcast %1* %ph34649 to float**, !dbg !18
  %ph_void_ptr148668 = load float*, float** %109, align 8, !dbg !18
  %ptrint150 = ptrtoint float* %ph_void_ptr148668 to i64, !dbg !18
  %maskedptr151 = and i64 %ptrint150, 63, !dbg !18
  %maskcond152 = icmp eq i64 %maskedptr151, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond152), !dbg !18
  %110 = getelementptr inbounds %1, %1* %ph34649, i64 0, i32 4, !dbg !18
  %default_function.ph.shape153 = load i64*, i64** %110, align 8, !dbg !18
  %111 = getelementptr inbounds %1, %1* %ph34649, i64 0, i32 5, !dbg !18
  %default_function.ph.strides154 = load i64*, i64** %111, align 8, !dbg !18
  %112 = bitcast %1* %T_concat650 to float**, !dbg !18
  %T_concat_void_ptr669 = load float*, float** %112, align 8, !dbg !18
  %ptrint156 = ptrtoint float* %T_concat_void_ptr669 to i64, !dbg !18
  %maskedptr157 = and i64 %ptrint156, 63, !dbg !18
  %maskcond158 = icmp eq i64 %maskedptr157, 0, !dbg !18
  tail call void @llvm.assume(i1 %maskcond158), !dbg !18
  %113 = getelementptr inbounds %1, %1* %T_concat650, i64 0, i32 4, !dbg !18
  %default_function.T_concat.shape = load i64*, i64** %113, align 8, !dbg !18
  %114 = getelementptr inbounds %1, %1* %T_concat650, i64 0, i32 5, !dbg !18
  %default_function.T_concat.strides = load i64*, i64** %114, align 8, !dbg !18
  switch i32 %ph.code, label %assert_fail159 [
    i32 13, label %assert_end160
    i32 7, label %assert_end160
    i32 4, label %assert_end160
    i32 3, label %assert_end160
  ], !dbg !18

assert_fail159:                                   ; preds = %assert_end
  %115 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %115(i8* getelementptr inbounds ([122 x i8], [122 x i8]* @.str.1, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end160:                                    ; preds = %assert_end, %assert_end, %assert_end, %assert_end
  switch i32 %ph.code1, label %assert_fail161 [
    i32 13, label %assert_end162
    i32 7, label %assert_end162
    i32 4, label %assert_end162
    i32 3, label %assert_end162
  ], !dbg !18

assert_fail161:                                   ; preds = %assert_end160
  %116 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %116(i8* getelementptr inbounds ([122 x i8], [122 x i8]* @.str.2, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end162:                                    ; preds = %assert_end160, %assert_end160, %assert_end160, %assert_end160
  switch i32 %ph.code2, label %assert_fail163 [
    i32 13, label %assert_end164
    i32 7, label %assert_end164
    i32 4, label %assert_end164
    i32 3, label %assert_end164
  ], !dbg !18

assert_fail163:                                   ; preds = %assert_end162
  %117 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %117(i8* getelementptr inbounds ([122 x i8], [122 x i8]* @.str.3, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end164:                                    ; preds = %assert_end162, %assert_end162, %assert_end162, %assert_end162
  switch i32 %ph.code3, label %assert_fail165 [
    i32 13, label %assert_end166
    i32 7, label %assert_end166
    i32 4, label %assert_end166
    i32 3, label %assert_end166
  ], !dbg !18

assert_fail165:                                   ; preds = %assert_end164
  %118 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %118(i8* getelementptr inbounds ([122 x i8], [122 x i8]* @.str.4, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end166:                                    ; preds = %assert_end164, %assert_end164, %assert_end164, %assert_end164
  switch i32 %ph.code4, label %assert_fail167 [
    i32 13, label %assert_end168
    i32 7, label %assert_end168
    i32 4, label %assert_end168
    i32 3, label %assert_end168
  ], !dbg !18

assert_fail167:                                   ; preds = %assert_end166
  %119 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %119(i8* getelementptr inbounds ([122 x i8], [122 x i8]* @.str.5, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end168:                                    ; preds = %assert_end166, %assert_end166, %assert_end166, %assert_end166
  switch i32 %ph.code5, label %assert_fail169 [
    i32 13, label %assert_end170
    i32 7, label %assert_end170
    i32 4, label %assert_end170
    i32 3, label %assert_end170
  ], !dbg !18

assert_fail169:                                   ; preds = %assert_end168
  %120 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %120(i8* getelementptr inbounds ([122 x i8], [122 x i8]* @.str.6, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end170:                                    ; preds = %assert_end168, %assert_end168, %assert_end168, %assert_end168
  switch i32 %ph.code6, label %assert_fail171 [
    i32 13, label %assert_end172
    i32 7, label %assert_end172
    i32 4, label %assert_end172
    i32 3, label %assert_end172
  ], !dbg !18

assert_fail171:                                   ; preds = %assert_end170
  %121 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %121(i8* getelementptr inbounds ([122 x i8], [122 x i8]* @.str.7, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end172:                                    ; preds = %assert_end170, %assert_end170, %assert_end170, %assert_end170
  switch i32 %ph.code7, label %assert_fail173 [
    i32 13, label %assert_end174
    i32 7, label %assert_end174
    i32 4, label %assert_end174
    i32 3, label %assert_end174
  ], !dbg !18

assert_fail173:                                   ; preds = %assert_end172
  %122 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %122(i8* getelementptr inbounds ([122 x i8], [122 x i8]* @.str.8, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end174:                                    ; preds = %assert_end172, %assert_end172, %assert_end172, %assert_end172
  switch i32 %ph.code8, label %assert_fail175 [
    i32 13, label %assert_end176
    i32 7, label %assert_end176
    i32 4, label %assert_end176
    i32 3, label %assert_end176
  ], !dbg !18

assert_fail175:                                   ; preds = %assert_end174
  %123 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %123(i8* getelementptr inbounds ([122 x i8], [122 x i8]* @.str.9, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end176:                                    ; preds = %assert_end174, %assert_end174, %assert_end174, %assert_end174
  switch i32 %ph.code9, label %assert_fail177 [
    i32 13, label %assert_end178
    i32 7, label %assert_end178
    i32 4, label %assert_end178
    i32 3, label %assert_end178
  ], !dbg !18

assert_fail177:                                   ; preds = %assert_end176
  %124 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %124(i8* getelementptr inbounds ([122 x i8], [122 x i8]* @.str.10, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end178:                                    ; preds = %assert_end176, %assert_end176, %assert_end176, %assert_end176
  switch i32 %ph.code10, label %assert_fail179 [
    i32 13, label %assert_end180
    i32 7, label %assert_end180
    i32 4, label %assert_end180
    i32 3, label %assert_end180
  ], !dbg !18

assert_fail179:                                   ; preds = %assert_end178
  %125 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %125(i8* getelementptr inbounds ([123 x i8], [123 x i8]* @.str.11, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end180:                                    ; preds = %assert_end178, %assert_end178, %assert_end178, %assert_end178
  switch i32 %ph.code11, label %assert_fail181 [
    i32 13, label %assert_end182
    i32 7, label %assert_end182
    i32 4, label %assert_end182
    i32 3, label %assert_end182
  ], !dbg !18

assert_fail181:                                   ; preds = %assert_end180
  %126 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %126(i8* getelementptr inbounds ([123 x i8], [123 x i8]* @.str.12, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end182:                                    ; preds = %assert_end180, %assert_end180, %assert_end180, %assert_end180
  switch i32 %ph.code12, label %assert_fail183 [
    i32 13, label %assert_end184
    i32 7, label %assert_end184
    i32 4, label %assert_end184
    i32 3, label %assert_end184
  ], !dbg !18

assert_fail183:                                   ; preds = %assert_end182
  %127 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %127(i8* getelementptr inbounds ([123 x i8], [123 x i8]* @.str.13, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end184:                                    ; preds = %assert_end182, %assert_end182, %assert_end182, %assert_end182
  switch i32 %ph.code13, label %assert_fail185 [
    i32 13, label %assert_end186
    i32 7, label %assert_end186
    i32 4, label %assert_end186
    i32 3, label %assert_end186
  ], !dbg !18

assert_fail185:                                   ; preds = %assert_end184
  %128 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %128(i8* getelementptr inbounds ([123 x i8], [123 x i8]* @.str.14, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end186:                                    ; preds = %assert_end184, %assert_end184, %assert_end184, %assert_end184
  switch i32 %ph.code14, label %assert_fail187 [
    i32 13, label %assert_end188
    i32 7, label %assert_end188
    i32 4, label %assert_end188
    i32 3, label %assert_end188
  ], !dbg !18

assert_fail187:                                   ; preds = %assert_end186
  %129 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %129(i8* getelementptr inbounds ([123 x i8], [123 x i8]* @.str.15, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end188:                                    ; preds = %assert_end186, %assert_end186, %assert_end186, %assert_end186
  switch i32 %ph.code15, label %assert_fail189 [
    i32 13, label %assert_end190
    i32 7, label %assert_end190
    i32 4, label %assert_end190
    i32 3, label %assert_end190
  ], !dbg !18

assert_fail189:                                   ; preds = %assert_end188
  %130 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %130(i8* getelementptr inbounds ([123 x i8], [123 x i8]* @.str.16, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end190:                                    ; preds = %assert_end188, %assert_end188, %assert_end188, %assert_end188
  switch i32 %ph.code16, label %assert_fail191 [
    i32 13, label %assert_end192
    i32 7, label %assert_end192
    i32 4, label %assert_end192
    i32 3, label %assert_end192
  ], !dbg !18

assert_fail191:                                   ; preds = %assert_end190
  %131 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %131(i8* getelementptr inbounds ([123 x i8], [123 x i8]* @.str.17, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end192:                                    ; preds = %assert_end190, %assert_end190, %assert_end190, %assert_end190
  switch i32 %ph.code17, label %assert_fail193 [
    i32 13, label %assert_end194
    i32 7, label %assert_end194
    i32 4, label %assert_end194
    i32 3, label %assert_end194
  ], !dbg !18

assert_fail193:                                   ; preds = %assert_end192
  %132 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %132(i8* getelementptr inbounds ([123 x i8], [123 x i8]* @.str.18, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end194:                                    ; preds = %assert_end192, %assert_end192, %assert_end192, %assert_end192
  switch i32 %T_concat.code, label %assert_fail195 [
    i32 13, label %assert_end196
    i32 7, label %assert_end196
    i32 4, label %assert_end196
    i32 3, label %assert_end196
  ], !dbg !18

assert_fail195:                                   ; preds = %assert_end194
  %133 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %133(i8* getelementptr inbounds ([147 x i8], [147 x i8]* @.str.19, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end196:                                    ; preds = %assert_end194, %assert_end194, %assert_end194, %assert_end194
  %134 = getelementptr inbounds %1, %1* %ph632, i64 0, i32 2, !dbg !18
  %135 = load i32, i32* %134, align 4, !dbg !18
  %136 = icmp eq i32 %135, 3, !dbg !18
  br i1 %136, label %assert_end200, label %assert_fail197, !dbg !18, !prof !19

assert_fail197:                                   ; preds = %assert_end196
  %137 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %137(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end200:                                    ; preds = %assert_end196
  %138 = getelementptr inbounds %1, %1* %ph632, i64 0, i32 3, i32 2, !dbg !18
  %139 = load i16, i16* %138, align 2, !dbg !18
  %140 = icmp eq i16 %139, 1, !dbg !18
  %141 = getelementptr inbounds %1, %1* %ph632, i64 0, i32 3, i32 1, !dbg !18
  %142 = load i8, i8* %141, align 1, !dbg !18
  %143 = icmp eq i8 %142, 32, !dbg !18
  %144 = getelementptr inbounds %1, %1* %ph632, i64 0, i32 3, i32 0, !dbg !18
  %145 = load i8, i8* %144, align 1, !dbg !18
  %146 = icmp eq i8 %145, 2, !dbg !18
  %147 = and i1 %143, %146, !dbg !18
  %148 = and i1 %140, %147, !dbg !18
  br i1 %148, label %assert_end202, label %assert_fail201, !dbg !18, !prof !19

assert_fail201:                                   ; preds = %assert_end200
  %149 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %149(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end202:                                    ; preds = %assert_end200
  %150 = load i64, i64* %default_function.ph.shape, align 8, !dbg !18, !tbaa !86
  %151 = trunc i64 %150 to i32, !dbg !18
  %152 = icmp eq i32 %151, 1, !dbg !18
  br i1 %152, label %assert_end204, label %assert_fail203, !dbg !18, !prof !19

assert_fail203:                                   ; preds = %assert_end202
  %153 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %153(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.22, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end204:                                    ; preds = %assert_end202
  %154 = getelementptr inbounds i64, i64* %default_function.ph.shape, i64 1, !dbg !18
  %155 = load i64, i64* %154, align 8, !dbg !18, !tbaa !96
  %156 = trunc i64 %155 to i32, !dbg !18
  %157 = icmp eq i32 %156, 64, !dbg !18
  br i1 %157, label %assert_end206, label %assert_fail205, !dbg !18, !prof !19

assert_fail205:                                   ; preds = %assert_end204
  %158 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %158(i8* getelementptr inbounds ([187 x i8], [187 x i8]* @.str.23, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end206:                                    ; preds = %assert_end204
  %159 = getelementptr inbounds i64, i64* %default_function.ph.shape, i64 2, !dbg !18
  %160 = load i64, i64* %159, align 8, !dbg !18, !tbaa !98
  %161 = trunc i64 %160 to i32, !dbg !18
  %162 = icmp eq i32 %161, 100, !dbg !18
  br i1 %162, label %assert_end208, label %assert_fail207, !dbg !18, !prof !19

assert_fail207:                                   ; preds = %assert_end206
  %163 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %163(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.24, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end208:                                    ; preds = %assert_end206
  %164 = icmp eq i64* %default_function.ph.strides, null, !dbg !18
  br i1 %164, label %if_end, label %if_then, !dbg !18, !prof !101

if_then:                                          ; preds = %assert_end208
  %165 = getelementptr inbounds i64, i64* %default_function.ph.strides, i64 1, !dbg !18
  %166 = load i64, i64* %165, align 8, !dbg !18, !tbaa !102
  %167 = trunc i64 %166 to i32, !dbg !18
  %168 = icmp eq i32 %167, 100, !dbg !18
  %169 = getelementptr inbounds i64, i64* %default_function.ph.strides, i64 2, !dbg !18
  %170 = load i64, i64* %169, align 8, !dbg !18, !tbaa !112
  %171 = trunc i64 %170 to i32, !dbg !18
  %172 = icmp eq i32 %171, 1, !dbg !18
  %173 = and i1 %168, %172, !dbg !18
  br i1 %173, label %if_end, label %assert_fail209, !dbg !18, !prof !19

if_end:                                           ; preds = %assert_end208, %if_then
  %174 = getelementptr inbounds %1, %1* %ph632, i64 0, i32 6, !dbg !18
  %175 = load i64, i64* %174, align 8, !dbg !18
  %176 = icmp eq i64 %175, 0, !dbg !18
  br i1 %176, label %assert_end212, label %assert_fail211, !dbg !18, !prof !19

assert_fail209:                                   ; preds = %if_then
  %177 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %177(i8* getelementptr inbounds ([184 x i8], [184 x i8]* @.str.25, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail211:                                   ; preds = %if_end
  %178 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %178(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end212:                                    ; preds = %if_end
  %179 = getelementptr inbounds %1, %1* %ph632, i64 0, i32 1, i32 0, !dbg !18
  %180 = load i32, i32* %179, align 4, !dbg !18
  %181 = icmp eq i32 %180, 1, !dbg !18
  br i1 %181, label %assert_end214, label %assert_fail213, !dbg !18, !prof !19

assert_fail213:                                   ; preds = %assert_end212
  %182 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %182(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end214:                                    ; preds = %assert_end212
  %183 = getelementptr inbounds %1, %1* %ph18633, i64 0, i32 2, !dbg !18
  %184 = load i32, i32* %183, align 4, !dbg !18
  %185 = icmp eq i32 %184, 3, !dbg !18
  br i1 %185, label %assert_end218, label %assert_fail215, !dbg !18, !prof !19

assert_fail215:                                   ; preds = %assert_end214
  %186 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %186(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end218:                                    ; preds = %assert_end214
  %187 = getelementptr inbounds %1, %1* %ph18633, i64 0, i32 3, i32 2, !dbg !18
  %188 = load i16, i16* %187, align 2, !dbg !18
  %189 = icmp eq i16 %188, 1, !dbg !18
  %190 = getelementptr inbounds %1, %1* %ph18633, i64 0, i32 3, i32 1, !dbg !18
  %191 = load i8, i8* %190, align 1, !dbg !18
  %192 = icmp eq i8 %191, 32, !dbg !18
  %193 = getelementptr inbounds %1, %1* %ph18633, i64 0, i32 3, i32 0, !dbg !18
  %194 = load i8, i8* %193, align 1, !dbg !18
  %195 = icmp eq i8 %194, 2, !dbg !18
  %196 = and i1 %192, %195, !dbg !18
  %197 = and i1 %189, %196, !dbg !18
  br i1 %197, label %assert_end220, label %assert_fail219, !dbg !18, !prof !19

assert_fail219:                                   ; preds = %assert_end218
  %198 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %198(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end220:                                    ; preds = %assert_end218
  %199 = load i64, i64* %default_function.ph.shape41, align 8, !dbg !18, !tbaa !115
  %200 = trunc i64 %199 to i32, !dbg !18
  %201 = icmp eq i32 %200, 128, !dbg !18
  br i1 %201, label %assert_end222, label %assert_fail221, !dbg !18, !prof !19

assert_fail221:                                   ; preds = %assert_end220
  %202 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %202(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end222:                                    ; preds = %assert_end220
  %203 = getelementptr inbounds i64, i64* %default_function.ph.shape41, i64 1, !dbg !18
  %204 = load i64, i64* %203, align 8, !dbg !18, !tbaa !125
  %205 = trunc i64 %204 to i32, !dbg !18
  %206 = icmp eq i32 %205, 64, !dbg !18
  br i1 %206, label %assert_end224, label %assert_fail223, !dbg !18, !prof !19

assert_fail223:                                   ; preds = %assert_end222
  %207 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %207(i8* getelementptr inbounds ([187 x i8], [187 x i8]* @.str.23, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end224:                                    ; preds = %assert_end222
  %208 = getelementptr inbounds i64, i64* %default_function.ph.shape41, i64 2, !dbg !18
  %209 = load i64, i64* %208, align 8, !dbg !18, !tbaa !127
  %210 = trunc i64 %209 to i32, !dbg !18
  %211 = icmp eq i32 %210, 3, !dbg !18
  br i1 %211, label %assert_end226, label %assert_fail225, !dbg !18, !prof !19

assert_fail225:                                   ; preds = %assert_end224
  %212 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %212(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.29, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end226:                                    ; preds = %assert_end224
  %213 = icmp eq i64* %default_function.ph.strides42, null, !dbg !18
  br i1 %213, label %if_end228, label %if_then227, !dbg !18, !prof !101

if_then227:                                       ; preds = %assert_end226
  %214 = load i64, i64* %default_function.ph.strides42, align 8, !dbg !18, !tbaa !130
  %215 = trunc i64 %214 to i32, !dbg !18
  %216 = icmp eq i32 %215, 192, !dbg !18
  %217 = getelementptr inbounds i64, i64* %default_function.ph.strides42, i64 1, !dbg !18
  %218 = load i64, i64* %217, align 8, !dbg !18, !tbaa !140
  %219 = trunc i64 %218 to i32, !dbg !18
  %220 = icmp eq i32 %219, 3, !dbg !18
  %221 = getelementptr inbounds i64, i64* %default_function.ph.strides42, i64 2, !dbg !18
  %222 = load i64, i64* %221, align 8, !dbg !18, !tbaa !142
  %223 = trunc i64 %222 to i32, !dbg !18
  %224 = icmp eq i32 %223, 1, !dbg !18
  %225 = and i1 %220, %224, !dbg !18
  %226 = and i1 %216, %225, !dbg !18
  br i1 %226, label %if_end228, label %assert_fail229, !dbg !18, !prof !19

if_end228:                                        ; preds = %assert_end226, %if_then227
  %227 = getelementptr inbounds %1, %1* %ph18633, i64 0, i32 6, !dbg !18
  %228 = load i64, i64* %227, align 8, !dbg !18
  %229 = icmp eq i64 %228, 0, !dbg !18
  br i1 %229, label %assert_end232, label %assert_fail231, !dbg !18, !prof !19

assert_fail229:                                   ; preds = %if_then227
  %230 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %230(i8* getelementptr inbounds ([241 x i8], [241 x i8]* @.str.30, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail231:                                   ; preds = %if_end228
  %231 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %231(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end232:                                    ; preds = %if_end228
  %232 = getelementptr inbounds %1, %1* %ph18633, i64 0, i32 1, i32 0, !dbg !18
  %233 = load i32, i32* %232, align 4, !dbg !18
  %234 = icmp eq i32 %233, 1, !dbg !18
  br i1 %234, label %assert_end234, label %assert_fail233, !dbg !18, !prof !19

assert_fail233:                                   ; preds = %assert_end232
  %235 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %235(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end234:                                    ; preds = %assert_end232
  %236 = getelementptr inbounds %1, %1* %ph18633, i64 0, i32 1, i32 1, !dbg !18
  %237 = load i32, i32* %236, align 4, !dbg !18
  %238 = icmp eq i32 %dev_id, %237, !dbg !18
  br i1 %238, label %assert_end236, label %assert_fail235, !dbg !18, !prof !19

assert_fail235:                                   ; preds = %assert_end234
  %239 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %239(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end236:                                    ; preds = %assert_end234
  %240 = getelementptr inbounds %1, %1* %ph19634, i64 0, i32 2, !dbg !18
  %241 = load i32, i32* %240, align 4, !dbg !18
  %242 = icmp eq i32 %241, 3, !dbg !18
  br i1 %242, label %assert_end240, label %assert_fail237, !dbg !18, !prof !19

assert_fail237:                                   ; preds = %assert_end236
  %243 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %243(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end240:                                    ; preds = %assert_end236
  %244 = getelementptr inbounds %1, %1* %ph19634, i64 0, i32 3, i32 2, !dbg !18
  %245 = load i16, i16* %244, align 2, !dbg !18
  %246 = icmp eq i16 %245, 1, !dbg !18
  %247 = getelementptr inbounds %1, %1* %ph19634, i64 0, i32 3, i32 1, !dbg !18
  %248 = load i8, i8* %247, align 1, !dbg !18
  %249 = icmp eq i8 %248, 32, !dbg !18
  %250 = getelementptr inbounds %1, %1* %ph19634, i64 0, i32 3, i32 0, !dbg !18
  %251 = load i8, i8* %250, align 1, !dbg !18
  %252 = icmp eq i8 %251, 2, !dbg !18
  %253 = and i1 %249, %252, !dbg !18
  %254 = and i1 %246, %253, !dbg !18
  br i1 %254, label %assert_end242, label %assert_fail241, !dbg !18, !prof !19

assert_fail241:                                   ; preds = %assert_end240
  %255 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %255(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end242:                                    ; preds = %assert_end240
  %256 = load i64, i64* %default_function.ph.shape48, align 8, !dbg !18, !tbaa !145
  %257 = trunc i64 %256 to i32, !dbg !18
  %258 = icmp eq i32 %257, 128, !dbg !18
  br i1 %258, label %assert_end244, label %assert_fail243, !dbg !18, !prof !19

assert_fail243:                                   ; preds = %assert_end242
  %259 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %259(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end244:                                    ; preds = %assert_end242
  %260 = getelementptr inbounds i64, i64* %default_function.ph.shape48, i64 1, !dbg !18
  %261 = load i64, i64* %260, align 8, !dbg !18, !tbaa !155
  %262 = trunc i64 %261 to i32, !dbg !18
  %263 = icmp eq i32 %262, 128, !dbg !18
  br i1 %263, label %assert_end246, label %assert_fail245, !dbg !18, !prof !19

assert_fail245:                                   ; preds = %assert_end244
  %264 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %264(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.32, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end246:                                    ; preds = %assert_end244
  %265 = getelementptr inbounds i64, i64* %default_function.ph.shape48, i64 2, !dbg !18
  %266 = load i64, i64* %265, align 8, !dbg !18, !tbaa !157
  %267 = trunc i64 %266 to i32, !dbg !18
  %268 = icmp eq i32 %267, 3, !dbg !18
  br i1 %268, label %assert_end248, label %assert_fail247, !dbg !18, !prof !19

assert_fail247:                                   ; preds = %assert_end246
  %269 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %269(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.29, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end248:                                    ; preds = %assert_end246
  %270 = icmp eq i64* %default_function.ph.strides49, null, !dbg !18
  br i1 %270, label %if_end250, label %if_then249, !dbg !18, !prof !101

if_then249:                                       ; preds = %assert_end248
  %271 = load i64, i64* %default_function.ph.strides49, align 8, !dbg !18, !tbaa !160
  %272 = trunc i64 %271 to i32, !dbg !18
  %273 = icmp eq i32 %272, 384, !dbg !18
  %274 = getelementptr inbounds i64, i64* %default_function.ph.strides49, i64 1, !dbg !18
  %275 = load i64, i64* %274, align 8, !dbg !18, !tbaa !170
  %276 = trunc i64 %275 to i32, !dbg !18
  %277 = icmp eq i32 %276, 3, !dbg !18
  %278 = getelementptr inbounds i64, i64* %default_function.ph.strides49, i64 2, !dbg !18
  %279 = load i64, i64* %278, align 8, !dbg !18, !tbaa !172
  %280 = trunc i64 %279 to i32, !dbg !18
  %281 = icmp eq i32 %280, 1, !dbg !18
  %282 = and i1 %277, %281, !dbg !18
  %283 = and i1 %273, %282, !dbg !18
  br i1 %283, label %if_end250, label %assert_fail251, !dbg !18, !prof !19

if_end250:                                        ; preds = %assert_end248, %if_then249
  %284 = getelementptr inbounds %1, %1* %ph19634, i64 0, i32 6, !dbg !18
  %285 = load i64, i64* %284, align 8, !dbg !18
  %286 = icmp eq i64 %285, 0, !dbg !18
  br i1 %286, label %assert_end254, label %assert_fail253, !dbg !18, !prof !19

assert_fail251:                                   ; preds = %if_then249
  %287 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %287(i8* getelementptr inbounds ([241 x i8], [241 x i8]* @.str.33, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail253:                                   ; preds = %if_end250
  %288 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %288(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end254:                                    ; preds = %if_end250
  %289 = getelementptr inbounds %1, %1* %ph19634, i64 0, i32 1, i32 0, !dbg !18
  %290 = load i32, i32* %289, align 4, !dbg !18
  %291 = icmp eq i32 %290, 1, !dbg !18
  br i1 %291, label %assert_end256, label %assert_fail255, !dbg !18, !prof !19

assert_fail255:                                   ; preds = %assert_end254
  %292 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %292(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end256:                                    ; preds = %assert_end254
  %293 = getelementptr inbounds %1, %1* %ph19634, i64 0, i32 1, i32 1, !dbg !18
  %294 = load i32, i32* %293, align 4, !dbg !18
  %295 = icmp eq i32 %dev_id, %294, !dbg !18
  br i1 %295, label %assert_end258, label %assert_fail257, !dbg !18, !prof !19

assert_fail257:                                   ; preds = %assert_end256
  %296 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %296(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end258:                                    ; preds = %assert_end256
  %297 = getelementptr inbounds %1, %1* %ph20635, i64 0, i32 2, !dbg !18
  %298 = load i32, i32* %297, align 4, !dbg !18
  %299 = icmp eq i32 %298, 3, !dbg !18
  br i1 %299, label %assert_end262, label %assert_fail259, !dbg !18, !prof !19

assert_fail259:                                   ; preds = %assert_end258
  %300 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %300(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end262:                                    ; preds = %assert_end258
  %301 = getelementptr inbounds %1, %1* %ph20635, i64 0, i32 3, i32 2, !dbg !18
  %302 = load i16, i16* %301, align 2, !dbg !18
  %303 = icmp eq i16 %302, 1, !dbg !18
  %304 = getelementptr inbounds %1, %1* %ph20635, i64 0, i32 3, i32 1, !dbg !18
  %305 = load i8, i8* %304, align 1, !dbg !18
  %306 = icmp eq i8 %305, 32, !dbg !18
  %307 = getelementptr inbounds %1, %1* %ph20635, i64 0, i32 3, i32 0, !dbg !18
  %308 = load i8, i8* %307, align 1, !dbg !18
  %309 = icmp eq i8 %308, 2, !dbg !18
  %310 = and i1 %306, %309, !dbg !18
  %311 = and i1 %303, %310, !dbg !18
  br i1 %311, label %assert_end264, label %assert_fail263, !dbg !18, !prof !19

assert_fail263:                                   ; preds = %assert_end262
  %312 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %312(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end264:                                    ; preds = %assert_end262
  %313 = load i64, i64* %default_function.ph.shape55, align 8, !dbg !18, !tbaa !175
  %314 = trunc i64 %313 to i32, !dbg !18
  %315 = icmp eq i32 %314, 128, !dbg !18
  br i1 %315, label %assert_end266, label %assert_fail265, !dbg !18, !prof !19

assert_fail265:                                   ; preds = %assert_end264
  %316 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %316(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end266:                                    ; preds = %assert_end264
  %317 = getelementptr inbounds i64, i64* %default_function.ph.shape55, i64 1, !dbg !18
  %318 = load i64, i64* %317, align 8, !dbg !18, !tbaa !185
  %319 = trunc i64 %318 to i32, !dbg !18
  %320 = icmp eq i32 %319, 128, !dbg !18
  br i1 %320, label %assert_end268, label %assert_fail267, !dbg !18, !prof !19

assert_fail267:                                   ; preds = %assert_end266
  %321 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %321(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.32, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end268:                                    ; preds = %assert_end266
  %322 = getelementptr inbounds i64, i64* %default_function.ph.shape55, i64 2, !dbg !18
  %323 = load i64, i64* %322, align 8, !dbg !18, !tbaa !187
  %324 = trunc i64 %323 to i32, !dbg !18
  %325 = icmp eq i32 %324, 3, !dbg !18
  br i1 %325, label %assert_end270, label %assert_fail269, !dbg !18, !prof !19

assert_fail269:                                   ; preds = %assert_end268
  %326 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %326(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.29, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end270:                                    ; preds = %assert_end268
  %327 = icmp eq i64* %default_function.ph.strides56, null, !dbg !18
  br i1 %327, label %if_end272, label %if_then271, !dbg !18, !prof !101

if_then271:                                       ; preds = %assert_end270
  %328 = load i64, i64* %default_function.ph.strides56, align 8, !dbg !18, !tbaa !190
  %329 = trunc i64 %328 to i32, !dbg !18
  %330 = icmp eq i32 %329, 384, !dbg !18
  %331 = getelementptr inbounds i64, i64* %default_function.ph.strides56, i64 1, !dbg !18
  %332 = load i64, i64* %331, align 8, !dbg !18, !tbaa !200
  %333 = trunc i64 %332 to i32, !dbg !18
  %334 = icmp eq i32 %333, 3, !dbg !18
  %335 = getelementptr inbounds i64, i64* %default_function.ph.strides56, i64 2, !dbg !18
  %336 = load i64, i64* %335, align 8, !dbg !18, !tbaa !202
  %337 = trunc i64 %336 to i32, !dbg !18
  %338 = icmp eq i32 %337, 1, !dbg !18
  %339 = and i1 %334, %338, !dbg !18
  %340 = and i1 %330, %339, !dbg !18
  br i1 %340, label %if_end272, label %assert_fail273, !dbg !18, !prof !19

if_end272:                                        ; preds = %assert_end270, %if_then271
  %341 = getelementptr inbounds %1, %1* %ph20635, i64 0, i32 6, !dbg !18
  %342 = load i64, i64* %341, align 8, !dbg !18
  %343 = icmp eq i64 %342, 0, !dbg !18
  br i1 %343, label %assert_end276, label %assert_fail275, !dbg !18, !prof !19

assert_fail273:                                   ; preds = %if_then271
  %344 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %344(i8* getelementptr inbounds ([241 x i8], [241 x i8]* @.str.33, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail275:                                   ; preds = %if_end272
  %345 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %345(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end276:                                    ; preds = %if_end272
  %346 = getelementptr inbounds %1, %1* %ph20635, i64 0, i32 1, i32 0, !dbg !18
  %347 = load i32, i32* %346, align 4, !dbg !18
  %348 = icmp eq i32 %347, 1, !dbg !18
  br i1 %348, label %assert_end278, label %assert_fail277, !dbg !18, !prof !19

assert_fail277:                                   ; preds = %assert_end276
  %349 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %349(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end278:                                    ; preds = %assert_end276
  %350 = getelementptr inbounds %1, %1* %ph20635, i64 0, i32 1, i32 1, !dbg !18
  %351 = load i32, i32* %350, align 4, !dbg !18
  %352 = icmp eq i32 %dev_id, %351, !dbg !18
  br i1 %352, label %assert_end280, label %assert_fail279, !dbg !18, !prof !19

assert_fail279:                                   ; preds = %assert_end278
  %353 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %353(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end280:                                    ; preds = %assert_end278
  %354 = getelementptr inbounds %1, %1* %ph21636, i64 0, i32 2, !dbg !18
  %355 = load i32, i32* %354, align 4, !dbg !18
  %356 = icmp eq i32 %355, 3, !dbg !18
  br i1 %356, label %assert_end284, label %assert_fail281, !dbg !18, !prof !19

assert_fail281:                                   ; preds = %assert_end280
  %357 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %357(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end284:                                    ; preds = %assert_end280
  %358 = getelementptr inbounds %1, %1* %ph21636, i64 0, i32 3, i32 2, !dbg !18
  %359 = load i16, i16* %358, align 2, !dbg !18
  %360 = icmp eq i16 %359, 1, !dbg !18
  %361 = getelementptr inbounds %1, %1* %ph21636, i64 0, i32 3, i32 1, !dbg !18
  %362 = load i8, i8* %361, align 1, !dbg !18
  %363 = icmp eq i8 %362, 32, !dbg !18
  %364 = getelementptr inbounds %1, %1* %ph21636, i64 0, i32 3, i32 0, !dbg !18
  %365 = load i8, i8* %364, align 1, !dbg !18
  %366 = icmp eq i8 %365, 2, !dbg !18
  %367 = and i1 %363, %366, !dbg !18
  %368 = and i1 %360, %367, !dbg !18
  br i1 %368, label %assert_end286, label %assert_fail285, !dbg !18, !prof !19

assert_fail285:                                   ; preds = %assert_end284
  %369 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %369(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end286:                                    ; preds = %assert_end284
  %370 = load i64, i64* %default_function.ph.shape62, align 8, !dbg !18, !tbaa !205
  %371 = trunc i64 %370 to i32, !dbg !18
  %372 = icmp eq i32 %371, 128, !dbg !18
  br i1 %372, label %assert_end288, label %assert_fail287, !dbg !18, !prof !19

assert_fail287:                                   ; preds = %assert_end286
  %373 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %373(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end288:                                    ; preds = %assert_end286
  %374 = getelementptr inbounds i64, i64* %default_function.ph.shape62, i64 1, !dbg !18
  %375 = load i64, i64* %374, align 8, !dbg !18, !tbaa !215
  %376 = trunc i64 %375 to i32, !dbg !18
  %377 = icmp eq i32 %376, 128, !dbg !18
  br i1 %377, label %assert_end290, label %assert_fail289, !dbg !18, !prof !19

assert_fail289:                                   ; preds = %assert_end288
  %378 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %378(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.32, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end290:                                    ; preds = %assert_end288
  %379 = getelementptr inbounds i64, i64* %default_function.ph.shape62, i64 2, !dbg !18
  %380 = load i64, i64* %379, align 8, !dbg !18, !tbaa !217
  %381 = trunc i64 %380 to i32, !dbg !18
  %382 = icmp eq i32 %381, 1, !dbg !18
  br i1 %382, label %assert_end292, label %assert_fail291, !dbg !18, !prof !19

assert_fail291:                                   ; preds = %assert_end290
  %383 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %383(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.34, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end292:                                    ; preds = %assert_end290
  %384 = icmp eq i64* %default_function.ph.strides63, null, !dbg !18
  br i1 %384, label %if_end294, label %if_then293, !dbg !18, !prof !101

if_then293:                                       ; preds = %assert_end292
  %385 = load i64, i64* %default_function.ph.strides63, align 8, !dbg !18, !tbaa !220
  %386 = trunc i64 %385 to i32, !dbg !18
  %387 = icmp eq i32 %386, 128, !dbg !18
  %388 = getelementptr inbounds i64, i64* %default_function.ph.strides63, i64 1, !dbg !18
  %389 = load i64, i64* %388, align 8, !dbg !18, !tbaa !230
  %390 = trunc i64 %389 to i32, !dbg !18
  %391 = icmp eq i32 %390, 1, !dbg !18
  %392 = and i1 %387, %391, !dbg !18
  br i1 %392, label %if_end294, label %assert_fail295, !dbg !18, !prof !19

if_end294:                                        ; preds = %assert_end292, %if_then293
  %393 = getelementptr inbounds %1, %1* %ph21636, i64 0, i32 6, !dbg !18
  %394 = load i64, i64* %393, align 8, !dbg !18
  %395 = icmp eq i64 %394, 0, !dbg !18
  br i1 %395, label %assert_end298, label %assert_fail297, !dbg !18, !prof !19

assert_fail295:                                   ; preds = %if_then293
  %396 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %396(i8* getelementptr inbounds ([184 x i8], [184 x i8]* @.str.35, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail297:                                   ; preds = %if_end294
  %397 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %397(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end298:                                    ; preds = %if_end294
  %398 = getelementptr inbounds %1, %1* %ph21636, i64 0, i32 1, i32 0, !dbg !18
  %399 = load i32, i32* %398, align 4, !dbg !18
  %400 = icmp eq i32 %399, 1, !dbg !18
  br i1 %400, label %assert_end300, label %assert_fail299, !dbg !18, !prof !19

assert_fail299:                                   ; preds = %assert_end298
  %401 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %401(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end300:                                    ; preds = %assert_end298
  %402 = getelementptr inbounds %1, %1* %ph21636, i64 0, i32 1, i32 1, !dbg !18
  %403 = load i32, i32* %402, align 4, !dbg !18
  %404 = icmp eq i32 %dev_id, %403, !dbg !18
  br i1 %404, label %assert_end302, label %assert_fail301, !dbg !18, !prof !19

assert_fail301:                                   ; preds = %assert_end300
  %405 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %405(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end302:                                    ; preds = %assert_end300
  %406 = getelementptr inbounds %1, %1* %ph22637, i64 0, i32 2, !dbg !18
  %407 = load i32, i32* %406, align 4, !dbg !18
  %408 = icmp eq i32 %407, 3, !dbg !18
  br i1 %408, label %assert_end306, label %assert_fail303, !dbg !18, !prof !19

assert_fail303:                                   ; preds = %assert_end302
  %409 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %409(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end306:                                    ; preds = %assert_end302
  %410 = getelementptr inbounds %1, %1* %ph22637, i64 0, i32 3, i32 2, !dbg !18
  %411 = load i16, i16* %410, align 2, !dbg !18
  %412 = icmp eq i16 %411, 1, !dbg !18
  %413 = getelementptr inbounds %1, %1* %ph22637, i64 0, i32 3, i32 1, !dbg !18
  %414 = load i8, i8* %413, align 1, !dbg !18
  %415 = icmp eq i8 %414, 32, !dbg !18
  %416 = getelementptr inbounds %1, %1* %ph22637, i64 0, i32 3, i32 0, !dbg !18
  %417 = load i8, i8* %416, align 1, !dbg !18
  %418 = icmp eq i8 %417, 2, !dbg !18
  %419 = and i1 %415, %418, !dbg !18
  %420 = and i1 %412, %419, !dbg !18
  br i1 %420, label %assert_end308, label %assert_fail307, !dbg !18, !prof !19

assert_fail307:                                   ; preds = %assert_end306
  %421 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %421(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end308:                                    ; preds = %assert_end306
  %422 = load i64, i64* %default_function.ph.shape69, align 8, !dbg !18, !tbaa !232
  %423 = trunc i64 %422 to i32, !dbg !18
  %424 = icmp eq i32 %423, 128, !dbg !18
  br i1 %424, label %assert_end310, label %assert_fail309, !dbg !18, !prof !19

assert_fail309:                                   ; preds = %assert_end308
  %425 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %425(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end310:                                    ; preds = %assert_end308
  %426 = getelementptr inbounds i64, i64* %default_function.ph.shape69, i64 1, !dbg !18
  %427 = load i64, i64* %426, align 8, !dbg !18, !tbaa !242
  %428 = trunc i64 %427 to i32, !dbg !18
  %429 = icmp eq i32 %428, 64, !dbg !18
  br i1 %429, label %assert_end312, label %assert_fail311, !dbg !18, !prof !19

assert_fail311:                                   ; preds = %assert_end310
  %430 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %430(i8* getelementptr inbounds ([187 x i8], [187 x i8]* @.str.23, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end312:                                    ; preds = %assert_end310
  %431 = getelementptr inbounds i64, i64* %default_function.ph.shape69, i64 2, !dbg !18
  %432 = load i64, i64* %431, align 8, !dbg !18, !tbaa !244
  %433 = trunc i64 %432 to i32, !dbg !18
  %434 = icmp eq i32 %433, 1, !dbg !18
  br i1 %434, label %assert_end314, label %assert_fail313, !dbg !18, !prof !19

assert_fail313:                                   ; preds = %assert_end312
  %435 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %435(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.34, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end314:                                    ; preds = %assert_end312
  %436 = icmp eq i64* %default_function.ph.strides70, null, !dbg !18
  br i1 %436, label %if_end316, label %if_then315, !dbg !18, !prof !101

if_then315:                                       ; preds = %assert_end314
  %437 = load i64, i64* %default_function.ph.strides70, align 8, !dbg !18, !tbaa !247
  %438 = trunc i64 %437 to i32, !dbg !18
  %439 = icmp eq i32 %438, 64, !dbg !18
  %440 = getelementptr inbounds i64, i64* %default_function.ph.strides70, i64 1, !dbg !18
  %441 = load i64, i64* %440, align 8, !dbg !18, !tbaa !257
  %442 = trunc i64 %441 to i32, !dbg !18
  %443 = icmp eq i32 %442, 1, !dbg !18
  %444 = and i1 %439, %443, !dbg !18
  br i1 %444, label %if_end316, label %assert_fail317, !dbg !18, !prof !19

if_end316:                                        ; preds = %assert_end314, %if_then315
  %445 = getelementptr inbounds %1, %1* %ph22637, i64 0, i32 6, !dbg !18
  %446 = load i64, i64* %445, align 8, !dbg !18
  %447 = icmp eq i64 %446, 0, !dbg !18
  br i1 %447, label %assert_end320, label %assert_fail319, !dbg !18, !prof !19

assert_fail317:                                   ; preds = %if_then315
  %448 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %448(i8* getelementptr inbounds ([183 x i8], [183 x i8]* @.str.36, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail319:                                   ; preds = %if_end316
  %449 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %449(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end320:                                    ; preds = %if_end316
  %450 = getelementptr inbounds %1, %1* %ph22637, i64 0, i32 1, i32 0, !dbg !18
  %451 = load i32, i32* %450, align 4, !dbg !18
  %452 = icmp eq i32 %451, 1, !dbg !18
  br i1 %452, label %assert_end322, label %assert_fail321, !dbg !18, !prof !19

assert_fail321:                                   ; preds = %assert_end320
  %453 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %453(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end322:                                    ; preds = %assert_end320
  %454 = getelementptr inbounds %1, %1* %ph22637, i64 0, i32 1, i32 1, !dbg !18
  %455 = load i32, i32* %454, align 4, !dbg !18
  %456 = icmp eq i32 %dev_id, %455, !dbg !18
  br i1 %456, label %assert_end324, label %assert_fail323, !dbg !18, !prof !19

assert_fail323:                                   ; preds = %assert_end322
  %457 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %457(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end324:                                    ; preds = %assert_end322
  %458 = getelementptr inbounds %1, %1* %ph23638, i64 0, i32 2, !dbg !18
  %459 = load i32, i32* %458, align 4, !dbg !18
  %460 = icmp eq i32 %459, 3, !dbg !18
  br i1 %460, label %assert_end328, label %assert_fail325, !dbg !18, !prof !19

assert_fail325:                                   ; preds = %assert_end324
  %461 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %461(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end328:                                    ; preds = %assert_end324
  %462 = getelementptr inbounds %1, %1* %ph23638, i64 0, i32 3, i32 2, !dbg !18
  %463 = load i16, i16* %462, align 2, !dbg !18
  %464 = icmp eq i16 %463, 1, !dbg !18
  %465 = getelementptr inbounds %1, %1* %ph23638, i64 0, i32 3, i32 1, !dbg !18
  %466 = load i8, i8* %465, align 1, !dbg !18
  %467 = icmp eq i8 %466, 32, !dbg !18
  %468 = getelementptr inbounds %1, %1* %ph23638, i64 0, i32 3, i32 0, !dbg !18
  %469 = load i8, i8* %468, align 1, !dbg !18
  %470 = icmp eq i8 %469, 2, !dbg !18
  %471 = and i1 %467, %470, !dbg !18
  %472 = and i1 %464, %471, !dbg !18
  br i1 %472, label %assert_end330, label %assert_fail329, !dbg !18, !prof !19

assert_fail329:                                   ; preds = %assert_end328
  %473 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %473(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end330:                                    ; preds = %assert_end328
  %474 = load i64, i64* %default_function.ph.shape76, align 8, !dbg !18, !tbaa !259
  %475 = trunc i64 %474 to i32, !dbg !18
  %476 = icmp eq i32 %475, 128, !dbg !18
  br i1 %476, label %assert_end332, label %assert_fail331, !dbg !18, !prof !19

assert_fail331:                                   ; preds = %assert_end330
  %477 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %477(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end332:                                    ; preds = %assert_end330
  %478 = getelementptr inbounds i64, i64* %default_function.ph.shape76, i64 1, !dbg !18
  %479 = load i64, i64* %478, align 8, !dbg !18, !tbaa !269
  %480 = trunc i64 %479 to i32, !dbg !18
  %481 = icmp eq i32 %480, 128, !dbg !18
  br i1 %481, label %assert_end334, label %assert_fail333, !dbg !18, !prof !19

assert_fail333:                                   ; preds = %assert_end332
  %482 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %482(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.32, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end334:                                    ; preds = %assert_end332
  %483 = getelementptr inbounds i64, i64* %default_function.ph.shape76, i64 2, !dbg !18
  %484 = load i64, i64* %483, align 8, !dbg !18, !tbaa !271
  %485 = trunc i64 %484 to i32, !dbg !18
  %486 = icmp eq i32 %485, 3, !dbg !18
  br i1 %486, label %assert_end336, label %assert_fail335, !dbg !18, !prof !19

assert_fail335:                                   ; preds = %assert_end334
  %487 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %487(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.29, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end336:                                    ; preds = %assert_end334
  %488 = icmp eq i64* %default_function.ph.strides77, null, !dbg !18
  br i1 %488, label %if_end338, label %if_then337, !dbg !18, !prof !101

if_then337:                                       ; preds = %assert_end336
  %489 = load i64, i64* %default_function.ph.strides77, align 8, !dbg !18, !tbaa !274
  %490 = trunc i64 %489 to i32, !dbg !18
  %491 = icmp eq i32 %490, 384, !dbg !18
  %492 = getelementptr inbounds i64, i64* %default_function.ph.strides77, i64 1, !dbg !18
  %493 = load i64, i64* %492, align 8, !dbg !18, !tbaa !284
  %494 = trunc i64 %493 to i32, !dbg !18
  %495 = icmp eq i32 %494, 3, !dbg !18
  %496 = getelementptr inbounds i64, i64* %default_function.ph.strides77, i64 2, !dbg !18
  %497 = load i64, i64* %496, align 8, !dbg !18, !tbaa !286
  %498 = trunc i64 %497 to i32, !dbg !18
  %499 = icmp eq i32 %498, 1, !dbg !18
  %500 = and i1 %495, %499, !dbg !18
  %501 = and i1 %491, %500, !dbg !18
  br i1 %501, label %if_end338, label %assert_fail339, !dbg !18, !prof !19

if_end338:                                        ; preds = %assert_end336, %if_then337
  %502 = getelementptr inbounds %1, %1* %ph23638, i64 0, i32 6, !dbg !18
  %503 = load i64, i64* %502, align 8, !dbg !18
  %504 = icmp eq i64 %503, 0, !dbg !18
  br i1 %504, label %assert_end342, label %assert_fail341, !dbg !18, !prof !19

assert_fail339:                                   ; preds = %if_then337
  %505 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %505(i8* getelementptr inbounds ([241 x i8], [241 x i8]* @.str.33, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail341:                                   ; preds = %if_end338
  %506 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %506(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end342:                                    ; preds = %if_end338
  %507 = getelementptr inbounds %1, %1* %ph23638, i64 0, i32 1, i32 0, !dbg !18
  %508 = load i32, i32* %507, align 4, !dbg !18
  %509 = icmp eq i32 %508, 1, !dbg !18
  br i1 %509, label %assert_end344, label %assert_fail343, !dbg !18, !prof !19

assert_fail343:                                   ; preds = %assert_end342
  %510 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %510(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end344:                                    ; preds = %assert_end342
  %511 = getelementptr inbounds %1, %1* %ph23638, i64 0, i32 1, i32 1, !dbg !18
  %512 = load i32, i32* %511, align 4, !dbg !18
  %513 = icmp eq i32 %dev_id, %512, !dbg !18
  br i1 %513, label %assert_end346, label %assert_fail345, !dbg !18, !prof !19

assert_fail345:                                   ; preds = %assert_end344
  %514 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %514(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end346:                                    ; preds = %assert_end344
  %515 = getelementptr inbounds %1, %1* %ph24639, i64 0, i32 2, !dbg !18
  %516 = load i32, i32* %515, align 4, !dbg !18
  %517 = icmp eq i32 %516, 3, !dbg !18
  br i1 %517, label %assert_end350, label %assert_fail347, !dbg !18, !prof !19

assert_fail347:                                   ; preds = %assert_end346
  %518 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %518(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end350:                                    ; preds = %assert_end346
  %519 = getelementptr inbounds %1, %1* %ph24639, i64 0, i32 3, i32 2, !dbg !18
  %520 = load i16, i16* %519, align 2, !dbg !18
  %521 = icmp eq i16 %520, 1, !dbg !18
  %522 = getelementptr inbounds %1, %1* %ph24639, i64 0, i32 3, i32 1, !dbg !18
  %523 = load i8, i8* %522, align 1, !dbg !18
  %524 = icmp eq i8 %523, 32, !dbg !18
  %525 = getelementptr inbounds %1, %1* %ph24639, i64 0, i32 3, i32 0, !dbg !18
  %526 = load i8, i8* %525, align 1, !dbg !18
  %527 = icmp eq i8 %526, 2, !dbg !18
  %528 = and i1 %524, %527, !dbg !18
  %529 = and i1 %521, %528, !dbg !18
  br i1 %529, label %assert_end352, label %assert_fail351, !dbg !18, !prof !19

assert_fail351:                                   ; preds = %assert_end350
  %530 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %530(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end352:                                    ; preds = %assert_end350
  %531 = load i64, i64* %default_function.ph.shape83, align 8, !dbg !18, !tbaa !289
  %532 = trunc i64 %531 to i32, !dbg !18
  %533 = icmp eq i32 %532, 128, !dbg !18
  br i1 %533, label %assert_end354, label %assert_fail353, !dbg !18, !prof !19

assert_fail353:                                   ; preds = %assert_end352
  %534 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %534(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end354:                                    ; preds = %assert_end352
  %535 = getelementptr inbounds i64, i64* %default_function.ph.shape83, i64 1, !dbg !18
  %536 = load i64, i64* %535, align 8, !dbg !18, !tbaa !299
  %537 = trunc i64 %536 to i32, !dbg !18
  %538 = icmp eq i32 %537, 128, !dbg !18
  br i1 %538, label %assert_end356, label %assert_fail355, !dbg !18, !prof !19

assert_fail355:                                   ; preds = %assert_end354
  %539 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %539(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.32, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end356:                                    ; preds = %assert_end354
  %540 = getelementptr inbounds i64, i64* %default_function.ph.shape83, i64 2, !dbg !18
  %541 = load i64, i64* %540, align 8, !dbg !18, !tbaa !301
  %542 = trunc i64 %541 to i32, !dbg !18
  %543 = icmp eq i32 %542, 3, !dbg !18
  br i1 %543, label %assert_end358, label %assert_fail357, !dbg !18, !prof !19

assert_fail357:                                   ; preds = %assert_end356
  %544 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %544(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.29, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end358:                                    ; preds = %assert_end356
  %545 = icmp eq i64* %default_function.ph.strides84, null, !dbg !18
  br i1 %545, label %if_end360, label %if_then359, !dbg !18, !prof !101

if_then359:                                       ; preds = %assert_end358
  %546 = load i64, i64* %default_function.ph.strides84, align 8, !dbg !18, !tbaa !304
  %547 = trunc i64 %546 to i32, !dbg !18
  %548 = icmp eq i32 %547, 384, !dbg !18
  %549 = getelementptr inbounds i64, i64* %default_function.ph.strides84, i64 1, !dbg !18
  %550 = load i64, i64* %549, align 8, !dbg !18, !tbaa !314
  %551 = trunc i64 %550 to i32, !dbg !18
  %552 = icmp eq i32 %551, 3, !dbg !18
  %553 = getelementptr inbounds i64, i64* %default_function.ph.strides84, i64 2, !dbg !18
  %554 = load i64, i64* %553, align 8, !dbg !18, !tbaa !316
  %555 = trunc i64 %554 to i32, !dbg !18
  %556 = icmp eq i32 %555, 1, !dbg !18
  %557 = and i1 %552, %556, !dbg !18
  %558 = and i1 %548, %557, !dbg !18
  br i1 %558, label %if_end360, label %assert_fail361, !dbg !18, !prof !19

if_end360:                                        ; preds = %assert_end358, %if_then359
  %559 = getelementptr inbounds %1, %1* %ph24639, i64 0, i32 6, !dbg !18
  %560 = load i64, i64* %559, align 8, !dbg !18
  %561 = icmp eq i64 %560, 0, !dbg !18
  br i1 %561, label %assert_end364, label %assert_fail363, !dbg !18, !prof !19

assert_fail361:                                   ; preds = %if_then359
  %562 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %562(i8* getelementptr inbounds ([241 x i8], [241 x i8]* @.str.33, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail363:                                   ; preds = %if_end360
  %563 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %563(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end364:                                    ; preds = %if_end360
  %564 = getelementptr inbounds %1, %1* %ph24639, i64 0, i32 1, i32 0, !dbg !18
  %565 = load i32, i32* %564, align 4, !dbg !18
  %566 = icmp eq i32 %565, 1, !dbg !18
  br i1 %566, label %assert_end366, label %assert_fail365, !dbg !18, !prof !19

assert_fail365:                                   ; preds = %assert_end364
  %567 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %567(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end366:                                    ; preds = %assert_end364
  %568 = getelementptr inbounds %1, %1* %ph24639, i64 0, i32 1, i32 1, !dbg !18
  %569 = load i32, i32* %568, align 4, !dbg !18
  %570 = icmp eq i32 %dev_id, %569, !dbg !18
  br i1 %570, label %assert_end368, label %assert_fail367, !dbg !18, !prof !19

assert_fail367:                                   ; preds = %assert_end366
  %571 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %571(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end368:                                    ; preds = %assert_end366
  %572 = getelementptr inbounds %1, %1* %ph25640, i64 0, i32 2, !dbg !18
  %573 = load i32, i32* %572, align 4, !dbg !18
  %574 = icmp eq i32 %573, 3, !dbg !18
  br i1 %574, label %assert_end372, label %assert_fail369, !dbg !18, !prof !19

assert_fail369:                                   ; preds = %assert_end368
  %575 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %575(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end372:                                    ; preds = %assert_end368
  %576 = getelementptr inbounds %1, %1* %ph25640, i64 0, i32 3, i32 2, !dbg !18
  %577 = load i16, i16* %576, align 2, !dbg !18
  %578 = icmp eq i16 %577, 1, !dbg !18
  %579 = getelementptr inbounds %1, %1* %ph25640, i64 0, i32 3, i32 1, !dbg !18
  %580 = load i8, i8* %579, align 1, !dbg !18
  %581 = icmp eq i8 %580, 32, !dbg !18
  %582 = getelementptr inbounds %1, %1* %ph25640, i64 0, i32 3, i32 0, !dbg !18
  %583 = load i8, i8* %582, align 1, !dbg !18
  %584 = icmp eq i8 %583, 2, !dbg !18
  %585 = and i1 %581, %584, !dbg !18
  %586 = and i1 %578, %585, !dbg !18
  br i1 %586, label %assert_end374, label %assert_fail373, !dbg !18, !prof !19

assert_fail373:                                   ; preds = %assert_end372
  %587 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %587(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end374:                                    ; preds = %assert_end372
  %588 = load i64, i64* %default_function.ph.shape90, align 8, !dbg !18, !tbaa !319
  %589 = trunc i64 %588 to i32, !dbg !18
  %590 = icmp eq i32 %589, 128, !dbg !18
  br i1 %590, label %assert_end376, label %assert_fail375, !dbg !18, !prof !19

assert_fail375:                                   ; preds = %assert_end374
  %591 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %591(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end376:                                    ; preds = %assert_end374
  %592 = getelementptr inbounds i64, i64* %default_function.ph.shape90, i64 1, !dbg !18
  %593 = load i64, i64* %592, align 8, !dbg !18, !tbaa !329
  %594 = trunc i64 %593 to i32, !dbg !18
  %595 = icmp eq i32 %594, 128, !dbg !18
  br i1 %595, label %assert_end378, label %assert_fail377, !dbg !18, !prof !19

assert_fail377:                                   ; preds = %assert_end376
  %596 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %596(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.32, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end378:                                    ; preds = %assert_end376
  %597 = getelementptr inbounds i64, i64* %default_function.ph.shape90, i64 2, !dbg !18
  %598 = load i64, i64* %597, align 8, !dbg !18, !tbaa !331
  %599 = trunc i64 %598 to i32, !dbg !18
  %600 = icmp eq i32 %599, 1, !dbg !18
  br i1 %600, label %assert_end380, label %assert_fail379, !dbg !18, !prof !19

assert_fail379:                                   ; preds = %assert_end378
  %601 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %601(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.34, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end380:                                    ; preds = %assert_end378
  %602 = icmp eq i64* %default_function.ph.strides91, null, !dbg !18
  br i1 %602, label %if_end382, label %if_then381, !dbg !18, !prof !101

if_then381:                                       ; preds = %assert_end380
  %603 = load i64, i64* %default_function.ph.strides91, align 8, !dbg !18, !tbaa !334
  %604 = trunc i64 %603 to i32, !dbg !18
  %605 = icmp eq i32 %604, 128, !dbg !18
  %606 = getelementptr inbounds i64, i64* %default_function.ph.strides91, i64 1, !dbg !18
  %607 = load i64, i64* %606, align 8, !dbg !18, !tbaa !344
  %608 = trunc i64 %607 to i32, !dbg !18
  %609 = icmp eq i32 %608, 1, !dbg !18
  %610 = and i1 %605, %609, !dbg !18
  br i1 %610, label %if_end382, label %assert_fail383, !dbg !18, !prof !19

if_end382:                                        ; preds = %assert_end380, %if_then381
  %611 = getelementptr inbounds %1, %1* %ph25640, i64 0, i32 6, !dbg !18
  %612 = load i64, i64* %611, align 8, !dbg !18
  %613 = icmp eq i64 %612, 0, !dbg !18
  br i1 %613, label %assert_end386, label %assert_fail385, !dbg !18, !prof !19

assert_fail383:                                   ; preds = %if_then381
  %614 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %614(i8* getelementptr inbounds ([184 x i8], [184 x i8]* @.str.35, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail385:                                   ; preds = %if_end382
  %615 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %615(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end386:                                    ; preds = %if_end382
  %616 = getelementptr inbounds %1, %1* %ph25640, i64 0, i32 1, i32 0, !dbg !18
  %617 = load i32, i32* %616, align 4, !dbg !18
  %618 = icmp eq i32 %617, 1, !dbg !18
  br i1 %618, label %assert_end388, label %assert_fail387, !dbg !18, !prof !19

assert_fail387:                                   ; preds = %assert_end386
  %619 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %619(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end388:                                    ; preds = %assert_end386
  %620 = getelementptr inbounds %1, %1* %ph25640, i64 0, i32 1, i32 1, !dbg !18
  %621 = load i32, i32* %620, align 4, !dbg !18
  %622 = icmp eq i32 %dev_id, %621, !dbg !18
  br i1 %622, label %assert_end390, label %assert_fail389, !dbg !18, !prof !19

assert_fail389:                                   ; preds = %assert_end388
  %623 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %623(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end390:                                    ; preds = %assert_end388
  %624 = getelementptr inbounds %1, %1* %ph26641, i64 0, i32 2, !dbg !18
  %625 = load i32, i32* %624, align 4, !dbg !18
  %626 = icmp eq i32 %625, 3, !dbg !18
  br i1 %626, label %assert_end394, label %assert_fail391, !dbg !18, !prof !19

assert_fail391:                                   ; preds = %assert_end390
  %627 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %627(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end394:                                    ; preds = %assert_end390
  %628 = getelementptr inbounds %1, %1* %ph26641, i64 0, i32 3, i32 2, !dbg !18
  %629 = load i16, i16* %628, align 2, !dbg !18
  %630 = icmp eq i16 %629, 1, !dbg !18
  %631 = getelementptr inbounds %1, %1* %ph26641, i64 0, i32 3, i32 1, !dbg !18
  %632 = load i8, i8* %631, align 1, !dbg !18
  %633 = icmp eq i8 %632, 32, !dbg !18
  %634 = getelementptr inbounds %1, %1* %ph26641, i64 0, i32 3, i32 0, !dbg !18
  %635 = load i8, i8* %634, align 1, !dbg !18
  %636 = icmp eq i8 %635, 2, !dbg !18
  %637 = and i1 %633, %636, !dbg !18
  %638 = and i1 %630, %637, !dbg !18
  br i1 %638, label %assert_end396, label %assert_fail395, !dbg !18, !prof !19

assert_fail395:                                   ; preds = %assert_end394
  %639 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %639(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end396:                                    ; preds = %assert_end394
  %640 = load i64, i64* %default_function.ph.shape97, align 8, !dbg !18, !tbaa !346
  %641 = trunc i64 %640 to i32, !dbg !18
  %642 = icmp eq i32 %641, 128, !dbg !18
  br i1 %642, label %assert_end398, label %assert_fail397, !dbg !18, !prof !19

assert_fail397:                                   ; preds = %assert_end396
  %643 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %643(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end398:                                    ; preds = %assert_end396
  %644 = getelementptr inbounds i64, i64* %default_function.ph.shape97, i64 1, !dbg !18
  %645 = load i64, i64* %644, align 8, !dbg !18, !tbaa !356
  %646 = trunc i64 %645 to i32, !dbg !18
  %647 = icmp eq i32 %646, 64, !dbg !18
  br i1 %647, label %assert_end400, label %assert_fail399, !dbg !18, !prof !19

assert_fail399:                                   ; preds = %assert_end398
  %648 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %648(i8* getelementptr inbounds ([187 x i8], [187 x i8]* @.str.23, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end400:                                    ; preds = %assert_end398
  %649 = getelementptr inbounds i64, i64* %default_function.ph.shape97, i64 2, !dbg !18
  %650 = load i64, i64* %649, align 8, !dbg !18, !tbaa !358
  %651 = trunc i64 %650 to i32, !dbg !18
  %652 = icmp eq i32 %651, 1, !dbg !18
  br i1 %652, label %assert_end402, label %assert_fail401, !dbg !18, !prof !19

assert_fail401:                                   ; preds = %assert_end400
  %653 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %653(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.34, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end402:                                    ; preds = %assert_end400
  %654 = icmp eq i64* %default_function.ph.strides98, null, !dbg !18
  br i1 %654, label %if_end404, label %if_then403, !dbg !18, !prof !101

if_then403:                                       ; preds = %assert_end402
  %655 = load i64, i64* %default_function.ph.strides98, align 8, !dbg !18, !tbaa !361
  %656 = trunc i64 %655 to i32, !dbg !18
  %657 = icmp eq i32 %656, 64, !dbg !18
  %658 = getelementptr inbounds i64, i64* %default_function.ph.strides98, i64 1, !dbg !18
  %659 = load i64, i64* %658, align 8, !dbg !18, !tbaa !371
  %660 = trunc i64 %659 to i32, !dbg !18
  %661 = icmp eq i32 %660, 1, !dbg !18
  %662 = and i1 %657, %661, !dbg !18
  br i1 %662, label %if_end404, label %assert_fail405, !dbg !18, !prof !19

if_end404:                                        ; preds = %assert_end402, %if_then403
  %663 = getelementptr inbounds %1, %1* %ph26641, i64 0, i32 6, !dbg !18
  %664 = load i64, i64* %663, align 8, !dbg !18
  %665 = icmp eq i64 %664, 0, !dbg !18
  br i1 %665, label %assert_end408, label %assert_fail407, !dbg !18, !prof !19

assert_fail405:                                   ; preds = %if_then403
  %666 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %666(i8* getelementptr inbounds ([183 x i8], [183 x i8]* @.str.36, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail407:                                   ; preds = %if_end404
  %667 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %667(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end408:                                    ; preds = %if_end404
  %668 = getelementptr inbounds %1, %1* %ph26641, i64 0, i32 1, i32 0, !dbg !18
  %669 = load i32, i32* %668, align 4, !dbg !18
  %670 = icmp eq i32 %669, 1, !dbg !18
  br i1 %670, label %assert_end410, label %assert_fail409, !dbg !18, !prof !19

assert_fail409:                                   ; preds = %assert_end408
  %671 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %671(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end410:                                    ; preds = %assert_end408
  %672 = getelementptr inbounds %1, %1* %ph26641, i64 0, i32 1, i32 1, !dbg !18
  %673 = load i32, i32* %672, align 4, !dbg !18
  %674 = icmp eq i32 %dev_id, %673, !dbg !18
  br i1 %674, label %assert_end412, label %assert_fail411, !dbg !18, !prof !19

assert_fail411:                                   ; preds = %assert_end410
  %675 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %675(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end412:                                    ; preds = %assert_end410
  %676 = getelementptr inbounds %1, %1* %ph27642, i64 0, i32 2, !dbg !18
  %677 = load i32, i32* %676, align 4, !dbg !18
  %678 = icmp eq i32 %677, 3, !dbg !18
  br i1 %678, label %assert_end416, label %assert_fail413, !dbg !18, !prof !19

assert_fail413:                                   ; preds = %assert_end412
  %679 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %679(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end416:                                    ; preds = %assert_end412
  %680 = getelementptr inbounds %1, %1* %ph27642, i64 0, i32 3, i32 2, !dbg !18
  %681 = load i16, i16* %680, align 2, !dbg !18
  %682 = icmp eq i16 %681, 1, !dbg !18
  %683 = getelementptr inbounds %1, %1* %ph27642, i64 0, i32 3, i32 1, !dbg !18
  %684 = load i8, i8* %683, align 1, !dbg !18
  %685 = icmp eq i8 %684, 32, !dbg !18
  %686 = getelementptr inbounds %1, %1* %ph27642, i64 0, i32 3, i32 0, !dbg !18
  %687 = load i8, i8* %686, align 1, !dbg !18
  %688 = icmp eq i8 %687, 2, !dbg !18
  %689 = and i1 %685, %688, !dbg !18
  %690 = and i1 %682, %689, !dbg !18
  br i1 %690, label %assert_end418, label %assert_fail417, !dbg !18, !prof !19

assert_fail417:                                   ; preds = %assert_end416
  %691 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %691(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end418:                                    ; preds = %assert_end416
  %692 = load i64, i64* %default_function.ph.shape104, align 8, !dbg !18, !tbaa !373
  %693 = trunc i64 %692 to i32, !dbg !18
  %694 = icmp eq i32 %693, 128, !dbg !18
  br i1 %694, label %assert_end420, label %assert_fail419, !dbg !18, !prof !19

assert_fail419:                                   ; preds = %assert_end418
  %695 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %695(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end420:                                    ; preds = %assert_end418
  %696 = getelementptr inbounds i64, i64* %default_function.ph.shape104, i64 1, !dbg !18
  %697 = load i64, i64* %696, align 8, !dbg !18, !tbaa !383
  %698 = trunc i64 %697 to i32, !dbg !18
  %699 = icmp eq i32 %698, 128, !dbg !18
  br i1 %699, label %assert_end422, label %assert_fail421, !dbg !18, !prof !19

assert_fail421:                                   ; preds = %assert_end420
  %700 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %700(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.32, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end422:                                    ; preds = %assert_end420
  %701 = getelementptr inbounds i64, i64* %default_function.ph.shape104, i64 2, !dbg !18
  %702 = load i64, i64* %701, align 8, !dbg !18, !tbaa !385
  %703 = trunc i64 %702 to i32, !dbg !18
  %704 = icmp eq i32 %703, 3, !dbg !18
  br i1 %704, label %assert_end424, label %assert_fail423, !dbg !18, !prof !19

assert_fail423:                                   ; preds = %assert_end422
  %705 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %705(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.29, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end424:                                    ; preds = %assert_end422
  %706 = icmp eq i64* %default_function.ph.strides105, null, !dbg !18
  br i1 %706, label %if_end426, label %if_then425, !dbg !18, !prof !101

if_then425:                                       ; preds = %assert_end424
  %707 = load i64, i64* %default_function.ph.strides105, align 8, !dbg !18, !tbaa !388
  %708 = trunc i64 %707 to i32, !dbg !18
  %709 = icmp eq i32 %708, 384, !dbg !18
  %710 = getelementptr inbounds i64, i64* %default_function.ph.strides105, i64 1, !dbg !18
  %711 = load i64, i64* %710, align 8, !dbg !18, !tbaa !398
  %712 = trunc i64 %711 to i32, !dbg !18
  %713 = icmp eq i32 %712, 3, !dbg !18
  %714 = getelementptr inbounds i64, i64* %default_function.ph.strides105, i64 2, !dbg !18
  %715 = load i64, i64* %714, align 8, !dbg !18, !tbaa !400
  %716 = trunc i64 %715 to i32, !dbg !18
  %717 = icmp eq i32 %716, 1, !dbg !18
  %718 = and i1 %713, %717, !dbg !18
  %719 = and i1 %709, %718, !dbg !18
  br i1 %719, label %if_end426, label %assert_fail427, !dbg !18, !prof !19

if_end426:                                        ; preds = %assert_end424, %if_then425
  %720 = getelementptr inbounds %1, %1* %ph27642, i64 0, i32 6, !dbg !18
  %721 = load i64, i64* %720, align 8, !dbg !18
  %722 = icmp eq i64 %721, 0, !dbg !18
  br i1 %722, label %assert_end430, label %assert_fail429, !dbg !18, !prof !19

assert_fail427:                                   ; preds = %if_then425
  %723 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %723(i8* getelementptr inbounds ([241 x i8], [241 x i8]* @.str.33, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail429:                                   ; preds = %if_end426
  %724 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %724(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end430:                                    ; preds = %if_end426
  %725 = getelementptr inbounds %1, %1* %ph27642, i64 0, i32 1, i32 0, !dbg !18
  %726 = load i32, i32* %725, align 4, !dbg !18
  %727 = icmp eq i32 %726, 1, !dbg !18
  br i1 %727, label %assert_end432, label %assert_fail431, !dbg !18, !prof !19

assert_fail431:                                   ; preds = %assert_end430
  %728 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %728(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end432:                                    ; preds = %assert_end430
  %729 = getelementptr inbounds %1, %1* %ph27642, i64 0, i32 1, i32 1, !dbg !18
  %730 = load i32, i32* %729, align 4, !dbg !18
  %731 = icmp eq i32 %dev_id, %730, !dbg !18
  br i1 %731, label %assert_end434, label %assert_fail433, !dbg !18, !prof !19

assert_fail433:                                   ; preds = %assert_end432
  %732 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %732(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end434:                                    ; preds = %assert_end432
  %733 = getelementptr inbounds %1, %1* %ph28643, i64 0, i32 2, !dbg !18
  %734 = load i32, i32* %733, align 4, !dbg !18
  %735 = icmp eq i32 %734, 3, !dbg !18
  br i1 %735, label %assert_end438, label %assert_fail435, !dbg !18, !prof !19

assert_fail435:                                   ; preds = %assert_end434
  %736 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %736(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end438:                                    ; preds = %assert_end434
  %737 = getelementptr inbounds %1, %1* %ph28643, i64 0, i32 3, i32 2, !dbg !18
  %738 = load i16, i16* %737, align 2, !dbg !18
  %739 = icmp eq i16 %738, 1, !dbg !18
  %740 = getelementptr inbounds %1, %1* %ph28643, i64 0, i32 3, i32 1, !dbg !18
  %741 = load i8, i8* %740, align 1, !dbg !18
  %742 = icmp eq i8 %741, 32, !dbg !18
  %743 = getelementptr inbounds %1, %1* %ph28643, i64 0, i32 3, i32 0, !dbg !18
  %744 = load i8, i8* %743, align 1, !dbg !18
  %745 = icmp eq i8 %744, 2, !dbg !18
  %746 = and i1 %742, %745, !dbg !18
  %747 = and i1 %739, %746, !dbg !18
  br i1 %747, label %assert_end440, label %assert_fail439, !dbg !18, !prof !19

assert_fail439:                                   ; preds = %assert_end438
  %748 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %748(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end440:                                    ; preds = %assert_end438
  %749 = load i64, i64* %default_function.ph.shape111, align 8, !dbg !18, !tbaa !403
  %750 = trunc i64 %749 to i32, !dbg !18
  %751 = icmp eq i32 %750, 128, !dbg !18
  br i1 %751, label %assert_end442, label %assert_fail441, !dbg !18, !prof !19

assert_fail441:                                   ; preds = %assert_end440
  %752 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %752(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end442:                                    ; preds = %assert_end440
  %753 = getelementptr inbounds i64, i64* %default_function.ph.shape111, i64 1, !dbg !18
  %754 = load i64, i64* %753, align 8, !dbg !18, !tbaa !413
  %755 = trunc i64 %754 to i32, !dbg !18
  %756 = icmp eq i32 %755, 128, !dbg !18
  br i1 %756, label %assert_end444, label %assert_fail443, !dbg !18, !prof !19

assert_fail443:                                   ; preds = %assert_end442
  %757 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %757(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.32, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end444:                                    ; preds = %assert_end442
  %758 = getelementptr inbounds i64, i64* %default_function.ph.shape111, i64 2, !dbg !18
  %759 = load i64, i64* %758, align 8, !dbg !18, !tbaa !415
  %760 = trunc i64 %759 to i32, !dbg !18
  %761 = icmp eq i32 %760, 3, !dbg !18
  br i1 %761, label %assert_end446, label %assert_fail445, !dbg !18, !prof !19

assert_fail445:                                   ; preds = %assert_end444
  %762 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %762(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.29, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end446:                                    ; preds = %assert_end444
  %763 = icmp eq i64* %default_function.ph.strides112, null, !dbg !18
  br i1 %763, label %if_end448, label %if_then447, !dbg !18, !prof !101

if_then447:                                       ; preds = %assert_end446
  %764 = load i64, i64* %default_function.ph.strides112, align 8, !dbg !18, !tbaa !418
  %765 = trunc i64 %764 to i32, !dbg !18
  %766 = icmp eq i32 %765, 384, !dbg !18
  %767 = getelementptr inbounds i64, i64* %default_function.ph.strides112, i64 1, !dbg !18
  %768 = load i64, i64* %767, align 8, !dbg !18, !tbaa !428
  %769 = trunc i64 %768 to i32, !dbg !18
  %770 = icmp eq i32 %769, 3, !dbg !18
  %771 = getelementptr inbounds i64, i64* %default_function.ph.strides112, i64 2, !dbg !18
  %772 = load i64, i64* %771, align 8, !dbg !18, !tbaa !430
  %773 = trunc i64 %772 to i32, !dbg !18
  %774 = icmp eq i32 %773, 1, !dbg !18
  %775 = and i1 %770, %774, !dbg !18
  %776 = and i1 %766, %775, !dbg !18
  br i1 %776, label %if_end448, label %assert_fail449, !dbg !18, !prof !19

if_end448:                                        ; preds = %assert_end446, %if_then447
  %777 = getelementptr inbounds %1, %1* %ph28643, i64 0, i32 6, !dbg !18
  %778 = load i64, i64* %777, align 8, !dbg !18
  %779 = icmp eq i64 %778, 0, !dbg !18
  br i1 %779, label %assert_end452, label %assert_fail451, !dbg !18, !prof !19

assert_fail449:                                   ; preds = %if_then447
  %780 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %780(i8* getelementptr inbounds ([241 x i8], [241 x i8]* @.str.33, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail451:                                   ; preds = %if_end448
  %781 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %781(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end452:                                    ; preds = %if_end448
  %782 = getelementptr inbounds %1, %1* %ph28643, i64 0, i32 1, i32 0, !dbg !18
  %783 = load i32, i32* %782, align 4, !dbg !18
  %784 = icmp eq i32 %783, 1, !dbg !18
  br i1 %784, label %assert_end454, label %assert_fail453, !dbg !18, !prof !19

assert_fail453:                                   ; preds = %assert_end452
  %785 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %785(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end454:                                    ; preds = %assert_end452
  %786 = getelementptr inbounds %1, %1* %ph28643, i64 0, i32 1, i32 1, !dbg !18
  %787 = load i32, i32* %786, align 4, !dbg !18
  %788 = icmp eq i32 %dev_id, %787, !dbg !18
  br i1 %788, label %assert_end456, label %assert_fail455, !dbg !18, !prof !19

assert_fail455:                                   ; preds = %assert_end454
  %789 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %789(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end456:                                    ; preds = %assert_end454
  %790 = getelementptr inbounds %1, %1* %ph29644, i64 0, i32 2, !dbg !18
  %791 = load i32, i32* %790, align 4, !dbg !18
  %792 = icmp eq i32 %791, 3, !dbg !18
  br i1 %792, label %assert_end460, label %assert_fail457, !dbg !18, !prof !19

assert_fail457:                                   ; preds = %assert_end456
  %793 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %793(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end460:                                    ; preds = %assert_end456
  %794 = getelementptr inbounds %1, %1* %ph29644, i64 0, i32 3, i32 2, !dbg !18
  %795 = load i16, i16* %794, align 2, !dbg !18
  %796 = icmp eq i16 %795, 1, !dbg !18
  %797 = getelementptr inbounds %1, %1* %ph29644, i64 0, i32 3, i32 1, !dbg !18
  %798 = load i8, i8* %797, align 1, !dbg !18
  %799 = icmp eq i8 %798, 32, !dbg !18
  %800 = getelementptr inbounds %1, %1* %ph29644, i64 0, i32 3, i32 0, !dbg !18
  %801 = load i8, i8* %800, align 1, !dbg !18
  %802 = icmp eq i8 %801, 2, !dbg !18
  %803 = and i1 %799, %802, !dbg !18
  %804 = and i1 %796, %803, !dbg !18
  br i1 %804, label %assert_end462, label %assert_fail461, !dbg !18, !prof !19

assert_fail461:                                   ; preds = %assert_end460
  %805 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %805(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end462:                                    ; preds = %assert_end460
  %806 = load i64, i64* %default_function.ph.shape118, align 8, !dbg !18, !tbaa !433
  %807 = trunc i64 %806 to i32, !dbg !18
  %808 = icmp eq i32 %807, 128, !dbg !18
  br i1 %808, label %assert_end464, label %assert_fail463, !dbg !18, !prof !19

assert_fail463:                                   ; preds = %assert_end462
  %809 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %809(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end464:                                    ; preds = %assert_end462
  %810 = getelementptr inbounds i64, i64* %default_function.ph.shape118, i64 1, !dbg !18
  %811 = load i64, i64* %810, align 8, !dbg !18, !tbaa !443
  %812 = trunc i64 %811 to i32, !dbg !18
  %813 = icmp eq i32 %812, 128, !dbg !18
  br i1 %813, label %assert_end466, label %assert_fail465, !dbg !18, !prof !19

assert_fail465:                                   ; preds = %assert_end464
  %814 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %814(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.32, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end466:                                    ; preds = %assert_end464
  %815 = getelementptr inbounds i64, i64* %default_function.ph.shape118, i64 2, !dbg !18
  %816 = load i64, i64* %815, align 8, !dbg !18, !tbaa !445
  %817 = trunc i64 %816 to i32, !dbg !18
  %818 = icmp eq i32 %817, 1, !dbg !18
  br i1 %818, label %assert_end468, label %assert_fail467, !dbg !18, !prof !19

assert_fail467:                                   ; preds = %assert_end466
  %819 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %819(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.34, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end468:                                    ; preds = %assert_end466
  %820 = icmp eq i64* %default_function.ph.strides119, null, !dbg !18
  br i1 %820, label %if_end470, label %if_then469, !dbg !18, !prof !101

if_then469:                                       ; preds = %assert_end468
  %821 = load i64, i64* %default_function.ph.strides119, align 8, !dbg !18, !tbaa !448
  %822 = trunc i64 %821 to i32, !dbg !18
  %823 = icmp eq i32 %822, 128, !dbg !18
  %824 = getelementptr inbounds i64, i64* %default_function.ph.strides119, i64 1, !dbg !18
  %825 = load i64, i64* %824, align 8, !dbg !18, !tbaa !458
  %826 = trunc i64 %825 to i32, !dbg !18
  %827 = icmp eq i32 %826, 1, !dbg !18
  %828 = and i1 %823, %827, !dbg !18
  br i1 %828, label %if_end470, label %assert_fail471, !dbg !18, !prof !19

if_end470:                                        ; preds = %assert_end468, %if_then469
  %829 = getelementptr inbounds %1, %1* %ph29644, i64 0, i32 6, !dbg !18
  %830 = load i64, i64* %829, align 8, !dbg !18
  %831 = icmp eq i64 %830, 0, !dbg !18
  br i1 %831, label %assert_end474, label %assert_fail473, !dbg !18, !prof !19

assert_fail471:                                   ; preds = %if_then469
  %832 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %832(i8* getelementptr inbounds ([184 x i8], [184 x i8]* @.str.35, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail473:                                   ; preds = %if_end470
  %833 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %833(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end474:                                    ; preds = %if_end470
  %834 = getelementptr inbounds %1, %1* %ph29644, i64 0, i32 1, i32 0, !dbg !18
  %835 = load i32, i32* %834, align 4, !dbg !18
  %836 = icmp eq i32 %835, 1, !dbg !18
  br i1 %836, label %assert_end476, label %assert_fail475, !dbg !18, !prof !19

assert_fail475:                                   ; preds = %assert_end474
  %837 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %837(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end476:                                    ; preds = %assert_end474
  %838 = getelementptr inbounds %1, %1* %ph29644, i64 0, i32 1, i32 1, !dbg !18
  %839 = load i32, i32* %838, align 4, !dbg !18
  %840 = icmp eq i32 %dev_id, %839, !dbg !18
  br i1 %840, label %assert_end478, label %assert_fail477, !dbg !18, !prof !19

assert_fail477:                                   ; preds = %assert_end476
  %841 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %841(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end478:                                    ; preds = %assert_end476
  %842 = getelementptr inbounds %1, %1* %ph30645, i64 0, i32 2, !dbg !18
  %843 = load i32, i32* %842, align 4, !dbg !18
  %844 = icmp eq i32 %843, 3, !dbg !18
  br i1 %844, label %assert_end482, label %assert_fail479, !dbg !18, !prof !19

assert_fail479:                                   ; preds = %assert_end478
  %845 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %845(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end482:                                    ; preds = %assert_end478
  %846 = getelementptr inbounds %1, %1* %ph30645, i64 0, i32 3, i32 2, !dbg !18
  %847 = load i16, i16* %846, align 2, !dbg !18
  %848 = icmp eq i16 %847, 1, !dbg !18
  %849 = getelementptr inbounds %1, %1* %ph30645, i64 0, i32 3, i32 1, !dbg !18
  %850 = load i8, i8* %849, align 1, !dbg !18
  %851 = icmp eq i8 %850, 32, !dbg !18
  %852 = getelementptr inbounds %1, %1* %ph30645, i64 0, i32 3, i32 0, !dbg !18
  %853 = load i8, i8* %852, align 1, !dbg !18
  %854 = icmp eq i8 %853, 2, !dbg !18
  %855 = and i1 %851, %854, !dbg !18
  %856 = and i1 %848, %855, !dbg !18
  br i1 %856, label %assert_end484, label %assert_fail483, !dbg !18, !prof !19

assert_fail483:                                   ; preds = %assert_end482
  %857 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %857(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end484:                                    ; preds = %assert_end482
  %858 = load i64, i64* %default_function.ph.shape125, align 8, !dbg !18, !tbaa !460
  %859 = trunc i64 %858 to i32, !dbg !18
  %860 = icmp eq i32 %859, 128, !dbg !18
  br i1 %860, label %assert_end486, label %assert_fail485, !dbg !18, !prof !19

assert_fail485:                                   ; preds = %assert_end484
  %861 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %861(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end486:                                    ; preds = %assert_end484
  %862 = getelementptr inbounds i64, i64* %default_function.ph.shape125, i64 1, !dbg !18
  %863 = load i64, i64* %862, align 8, !dbg !18, !tbaa !470
  %864 = trunc i64 %863 to i32, !dbg !18
  %865 = icmp eq i32 %864, 64, !dbg !18
  br i1 %865, label %assert_end488, label %assert_fail487, !dbg !18, !prof !19

assert_fail487:                                   ; preds = %assert_end486
  %866 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %866(i8* getelementptr inbounds ([187 x i8], [187 x i8]* @.str.23, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end488:                                    ; preds = %assert_end486
  %867 = getelementptr inbounds i64, i64* %default_function.ph.shape125, i64 2, !dbg !18
  %868 = load i64, i64* %867, align 8, !dbg !18, !tbaa !472
  %869 = trunc i64 %868 to i32, !dbg !18
  %870 = icmp eq i32 %869, 1, !dbg !18
  br i1 %870, label %assert_end490, label %assert_fail489, !dbg !18, !prof !19

assert_fail489:                                   ; preds = %assert_end488
  %871 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %871(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.34, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end490:                                    ; preds = %assert_end488
  %872 = icmp eq i64* %default_function.ph.strides126, null, !dbg !18
  br i1 %872, label %if_end492, label %if_then491, !dbg !18, !prof !101

if_then491:                                       ; preds = %assert_end490
  %873 = load i64, i64* %default_function.ph.strides126, align 8, !dbg !18, !tbaa !475
  %874 = trunc i64 %873 to i32, !dbg !18
  %875 = icmp eq i32 %874, 64, !dbg !18
  %876 = getelementptr inbounds i64, i64* %default_function.ph.strides126, i64 1, !dbg !18
  %877 = load i64, i64* %876, align 8, !dbg !18, !tbaa !485
  %878 = trunc i64 %877 to i32, !dbg !18
  %879 = icmp eq i32 %878, 1, !dbg !18
  %880 = and i1 %875, %879, !dbg !18
  br i1 %880, label %if_end492, label %assert_fail493, !dbg !18, !prof !19

if_end492:                                        ; preds = %assert_end490, %if_then491
  %881 = getelementptr inbounds %1, %1* %ph30645, i64 0, i32 6, !dbg !18
  %882 = load i64, i64* %881, align 8, !dbg !18
  %883 = icmp eq i64 %882, 0, !dbg !18
  br i1 %883, label %assert_end496, label %assert_fail495, !dbg !18, !prof !19

assert_fail493:                                   ; preds = %if_then491
  %884 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %884(i8* getelementptr inbounds ([183 x i8], [183 x i8]* @.str.36, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail495:                                   ; preds = %if_end492
  %885 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %885(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end496:                                    ; preds = %if_end492
  %886 = getelementptr inbounds %1, %1* %ph30645, i64 0, i32 1, i32 0, !dbg !18
  %887 = load i32, i32* %886, align 4, !dbg !18
  %888 = icmp eq i32 %887, 1, !dbg !18
  br i1 %888, label %assert_end498, label %assert_fail497, !dbg !18, !prof !19

assert_fail497:                                   ; preds = %assert_end496
  %889 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %889(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end498:                                    ; preds = %assert_end496
  %890 = getelementptr inbounds %1, %1* %ph30645, i64 0, i32 1, i32 1, !dbg !18
  %891 = load i32, i32* %890, align 4, !dbg !18
  %892 = icmp eq i32 %dev_id, %891, !dbg !18
  br i1 %892, label %assert_end500, label %assert_fail499, !dbg !18, !prof !19

assert_fail499:                                   ; preds = %assert_end498
  %893 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %893(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end500:                                    ; preds = %assert_end498
  %894 = getelementptr inbounds %1, %1* %ph31646, i64 0, i32 2, !dbg !18
  %895 = load i32, i32* %894, align 4, !dbg !18
  %896 = icmp eq i32 %895, 3, !dbg !18
  br i1 %896, label %assert_end504, label %assert_fail501, !dbg !18, !prof !19

assert_fail501:                                   ; preds = %assert_end500
  %897 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %897(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end504:                                    ; preds = %assert_end500
  %898 = getelementptr inbounds %1, %1* %ph31646, i64 0, i32 3, i32 2, !dbg !18
  %899 = load i16, i16* %898, align 2, !dbg !18
  %900 = icmp eq i16 %899, 1, !dbg !18
  %901 = getelementptr inbounds %1, %1* %ph31646, i64 0, i32 3, i32 1, !dbg !18
  %902 = load i8, i8* %901, align 1, !dbg !18
  %903 = icmp eq i8 %902, 32, !dbg !18
  %904 = getelementptr inbounds %1, %1* %ph31646, i64 0, i32 3, i32 0, !dbg !18
  %905 = load i8, i8* %904, align 1, !dbg !18
  %906 = icmp eq i8 %905, 2, !dbg !18
  %907 = and i1 %903, %906, !dbg !18
  %908 = and i1 %900, %907, !dbg !18
  br i1 %908, label %assert_end506, label %assert_fail505, !dbg !18, !prof !19

assert_fail505:                                   ; preds = %assert_end504
  %909 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %909(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end506:                                    ; preds = %assert_end504
  %910 = load i64, i64* %default_function.ph.shape132, align 8, !dbg !18, !tbaa !487
  %911 = trunc i64 %910 to i32, !dbg !18
  %912 = icmp eq i32 %911, 128, !dbg !18
  br i1 %912, label %assert_end508, label %assert_fail507, !dbg !18, !prof !19

assert_fail507:                                   ; preds = %assert_end506
  %913 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %913(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end508:                                    ; preds = %assert_end506
  %914 = getelementptr inbounds i64, i64* %default_function.ph.shape132, i64 1, !dbg !18
  %915 = load i64, i64* %914, align 8, !dbg !18, !tbaa !497
  %916 = trunc i64 %915 to i32, !dbg !18
  %917 = icmp eq i32 %916, 128, !dbg !18
  br i1 %917, label %assert_end510, label %assert_fail509, !dbg !18, !prof !19

assert_fail509:                                   ; preds = %assert_end508
  %918 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %918(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.32, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end510:                                    ; preds = %assert_end508
  %919 = getelementptr inbounds i64, i64* %default_function.ph.shape132, i64 2, !dbg !18
  %920 = load i64, i64* %919, align 8, !dbg !18, !tbaa !499
  %921 = trunc i64 %920 to i32, !dbg !18
  %922 = icmp eq i32 %921, 3, !dbg !18
  br i1 %922, label %assert_end512, label %assert_fail511, !dbg !18, !prof !19

assert_fail511:                                   ; preds = %assert_end510
  %923 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %923(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.29, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end512:                                    ; preds = %assert_end510
  %924 = icmp eq i64* %default_function.ph.strides133, null, !dbg !18
  br i1 %924, label %if_end514, label %if_then513, !dbg !18, !prof !101

if_then513:                                       ; preds = %assert_end512
  %925 = load i64, i64* %default_function.ph.strides133, align 8, !dbg !18, !tbaa !502
  %926 = trunc i64 %925 to i32, !dbg !18
  %927 = icmp eq i32 %926, 384, !dbg !18
  %928 = getelementptr inbounds i64, i64* %default_function.ph.strides133, i64 1, !dbg !18
  %929 = load i64, i64* %928, align 8, !dbg !18, !tbaa !512
  %930 = trunc i64 %929 to i32, !dbg !18
  %931 = icmp eq i32 %930, 3, !dbg !18
  %932 = getelementptr inbounds i64, i64* %default_function.ph.strides133, i64 2, !dbg !18
  %933 = load i64, i64* %932, align 8, !dbg !18, !tbaa !514
  %934 = trunc i64 %933 to i32, !dbg !18
  %935 = icmp eq i32 %934, 1, !dbg !18
  %936 = and i1 %931, %935, !dbg !18
  %937 = and i1 %927, %936, !dbg !18
  br i1 %937, label %if_end514, label %assert_fail515, !dbg !18, !prof !19

if_end514:                                        ; preds = %assert_end512, %if_then513
  %938 = getelementptr inbounds %1, %1* %ph31646, i64 0, i32 6, !dbg !18
  %939 = load i64, i64* %938, align 8, !dbg !18
  %940 = icmp eq i64 %939, 0, !dbg !18
  br i1 %940, label %assert_end518, label %assert_fail517, !dbg !18, !prof !19

assert_fail515:                                   ; preds = %if_then513
  %941 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %941(i8* getelementptr inbounds ([241 x i8], [241 x i8]* @.str.33, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail517:                                   ; preds = %if_end514
  %942 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %942(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end518:                                    ; preds = %if_end514
  %943 = getelementptr inbounds %1, %1* %ph31646, i64 0, i32 1, i32 0, !dbg !18
  %944 = load i32, i32* %943, align 4, !dbg !18
  %945 = icmp eq i32 %944, 1, !dbg !18
  br i1 %945, label %assert_end520, label %assert_fail519, !dbg !18, !prof !19

assert_fail519:                                   ; preds = %assert_end518
  %946 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %946(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end520:                                    ; preds = %assert_end518
  %947 = getelementptr inbounds %1, %1* %ph31646, i64 0, i32 1, i32 1, !dbg !18
  %948 = load i32, i32* %947, align 4, !dbg !18
  %949 = icmp eq i32 %dev_id, %948, !dbg !18
  br i1 %949, label %assert_end522, label %assert_fail521, !dbg !18, !prof !19

assert_fail521:                                   ; preds = %assert_end520
  %950 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %950(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end522:                                    ; preds = %assert_end520
  %951 = getelementptr inbounds %1, %1* %ph32647, i64 0, i32 2, !dbg !18
  %952 = load i32, i32* %951, align 4, !dbg !18
  %953 = icmp eq i32 %952, 3, !dbg !18
  br i1 %953, label %assert_end526, label %assert_fail523, !dbg !18, !prof !19

assert_fail523:                                   ; preds = %assert_end522
  %954 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %954(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end526:                                    ; preds = %assert_end522
  %955 = getelementptr inbounds %1, %1* %ph32647, i64 0, i32 3, i32 2, !dbg !18
  %956 = load i16, i16* %955, align 2, !dbg !18
  %957 = icmp eq i16 %956, 1, !dbg !18
  %958 = getelementptr inbounds %1, %1* %ph32647, i64 0, i32 3, i32 1, !dbg !18
  %959 = load i8, i8* %958, align 1, !dbg !18
  %960 = icmp eq i8 %959, 32, !dbg !18
  %961 = getelementptr inbounds %1, %1* %ph32647, i64 0, i32 3, i32 0, !dbg !18
  %962 = load i8, i8* %961, align 1, !dbg !18
  %963 = icmp eq i8 %962, 2, !dbg !18
  %964 = and i1 %960, %963, !dbg !18
  %965 = and i1 %957, %964, !dbg !18
  br i1 %965, label %assert_end528, label %assert_fail527, !dbg !18, !prof !19

assert_fail527:                                   ; preds = %assert_end526
  %966 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %966(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end528:                                    ; preds = %assert_end526
  %967 = load i64, i64* %default_function.ph.shape139, align 8, !dbg !18, !tbaa !517
  %968 = trunc i64 %967 to i32, !dbg !18
  %969 = icmp eq i32 %968, 128, !dbg !18
  br i1 %969, label %assert_end530, label %assert_fail529, !dbg !18, !prof !19

assert_fail529:                                   ; preds = %assert_end528
  %970 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %970(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end530:                                    ; preds = %assert_end528
  %971 = getelementptr inbounds i64, i64* %default_function.ph.shape139, i64 1, !dbg !18
  %972 = load i64, i64* %971, align 8, !dbg !18, !tbaa !527
  %973 = trunc i64 %972 to i32, !dbg !18
  %974 = icmp eq i32 %973, 128, !dbg !18
  br i1 %974, label %assert_end532, label %assert_fail531, !dbg !18, !prof !19

assert_fail531:                                   ; preds = %assert_end530
  %975 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %975(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.32, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end532:                                    ; preds = %assert_end530
  %976 = getelementptr inbounds i64, i64* %default_function.ph.shape139, i64 2, !dbg !18
  %977 = load i64, i64* %976, align 8, !dbg !18, !tbaa !529
  %978 = trunc i64 %977 to i32, !dbg !18
  %979 = icmp eq i32 %978, 3, !dbg !18
  br i1 %979, label %assert_end534, label %assert_fail533, !dbg !18, !prof !19

assert_fail533:                                   ; preds = %assert_end532
  %980 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %980(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.29, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end534:                                    ; preds = %assert_end532
  %981 = icmp eq i64* %default_function.ph.strides140, null, !dbg !18
  br i1 %981, label %if_end536, label %if_then535, !dbg !18, !prof !101

if_then535:                                       ; preds = %assert_end534
  %982 = load i64, i64* %default_function.ph.strides140, align 8, !dbg !18, !tbaa !532
  %983 = trunc i64 %982 to i32, !dbg !18
  %984 = icmp eq i32 %983, 384, !dbg !18
  %985 = getelementptr inbounds i64, i64* %default_function.ph.strides140, i64 1, !dbg !18
  %986 = load i64, i64* %985, align 8, !dbg !18, !tbaa !542
  %987 = trunc i64 %986 to i32, !dbg !18
  %988 = icmp eq i32 %987, 3, !dbg !18
  %989 = getelementptr inbounds i64, i64* %default_function.ph.strides140, i64 2, !dbg !18
  %990 = load i64, i64* %989, align 8, !dbg !18, !tbaa !544
  %991 = trunc i64 %990 to i32, !dbg !18
  %992 = icmp eq i32 %991, 1, !dbg !18
  %993 = and i1 %988, %992, !dbg !18
  %994 = and i1 %984, %993, !dbg !18
  br i1 %994, label %if_end536, label %assert_fail537, !dbg !18, !prof !19

if_end536:                                        ; preds = %assert_end534, %if_then535
  %995 = getelementptr inbounds %1, %1* %ph32647, i64 0, i32 6, !dbg !18
  %996 = load i64, i64* %995, align 8, !dbg !18
  %997 = icmp eq i64 %996, 0, !dbg !18
  br i1 %997, label %assert_end540, label %assert_fail539, !dbg !18, !prof !19

assert_fail537:                                   ; preds = %if_then535
  %998 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %998(i8* getelementptr inbounds ([241 x i8], [241 x i8]* @.str.33, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail539:                                   ; preds = %if_end536
  %999 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %999(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end540:                                    ; preds = %if_end536
  %1000 = getelementptr inbounds %1, %1* %ph32647, i64 0, i32 1, i32 0, !dbg !18
  %1001 = load i32, i32* %1000, align 4, !dbg !18
  %1002 = icmp eq i32 %1001, 1, !dbg !18
  br i1 %1002, label %assert_end542, label %assert_fail541, !dbg !18, !prof !19

assert_fail541:                                   ; preds = %assert_end540
  %1003 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1003(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end542:                                    ; preds = %assert_end540
  %1004 = getelementptr inbounds %1, %1* %ph32647, i64 0, i32 1, i32 1, !dbg !18
  %1005 = load i32, i32* %1004, align 4, !dbg !18
  %1006 = icmp eq i32 %dev_id, %1005, !dbg !18
  br i1 %1006, label %assert_end544, label %assert_fail543, !dbg !18, !prof !19

assert_fail543:                                   ; preds = %assert_end542
  %1007 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1007(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end544:                                    ; preds = %assert_end542
  %1008 = getelementptr inbounds %1, %1* %ph33648, i64 0, i32 2, !dbg !18
  %1009 = load i32, i32* %1008, align 4, !dbg !18
  %1010 = icmp eq i32 %1009, 3, !dbg !18
  br i1 %1010, label %assert_end548, label %assert_fail545, !dbg !18, !prof !19

assert_fail545:                                   ; preds = %assert_end544
  %1011 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1011(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end548:                                    ; preds = %assert_end544
  %1012 = getelementptr inbounds %1, %1* %ph33648, i64 0, i32 3, i32 2, !dbg !18
  %1013 = load i16, i16* %1012, align 2, !dbg !18
  %1014 = icmp eq i16 %1013, 1, !dbg !18
  %1015 = getelementptr inbounds %1, %1* %ph33648, i64 0, i32 3, i32 1, !dbg !18
  %1016 = load i8, i8* %1015, align 1, !dbg !18
  %1017 = icmp eq i8 %1016, 32, !dbg !18
  %1018 = getelementptr inbounds %1, %1* %ph33648, i64 0, i32 3, i32 0, !dbg !18
  %1019 = load i8, i8* %1018, align 1, !dbg !18
  %1020 = icmp eq i8 %1019, 2, !dbg !18
  %1021 = and i1 %1017, %1020, !dbg !18
  %1022 = and i1 %1014, %1021, !dbg !18
  br i1 %1022, label %assert_end550, label %assert_fail549, !dbg !18, !prof !19

assert_fail549:                                   ; preds = %assert_end548
  %1023 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1023(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end550:                                    ; preds = %assert_end548
  %1024 = load i64, i64* %default_function.ph.shape146, align 8, !dbg !18, !tbaa !547
  %1025 = trunc i64 %1024 to i32, !dbg !18
  %1026 = icmp eq i32 %1025, 128, !dbg !18
  br i1 %1026, label %assert_end552, label %assert_fail551, !dbg !18, !prof !19

assert_fail551:                                   ; preds = %assert_end550
  %1027 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1027(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end552:                                    ; preds = %assert_end550
  %1028 = getelementptr inbounds i64, i64* %default_function.ph.shape146, i64 1, !dbg !18
  %1029 = load i64, i64* %1028, align 8, !dbg !18, !tbaa !557
  %1030 = trunc i64 %1029 to i32, !dbg !18
  %1031 = icmp eq i32 %1030, 128, !dbg !18
  br i1 %1031, label %assert_end554, label %assert_fail553, !dbg !18, !prof !19

assert_fail553:                                   ; preds = %assert_end552
  %1032 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1032(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.32, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end554:                                    ; preds = %assert_end552
  %1033 = getelementptr inbounds i64, i64* %default_function.ph.shape146, i64 2, !dbg !18
  %1034 = load i64, i64* %1033, align 8, !dbg !18, !tbaa !559
  %1035 = trunc i64 %1034 to i32, !dbg !18
  %1036 = icmp eq i32 %1035, 1, !dbg !18
  br i1 %1036, label %assert_end556, label %assert_fail555, !dbg !18, !prof !19

assert_fail555:                                   ; preds = %assert_end554
  %1037 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1037(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.34, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end556:                                    ; preds = %assert_end554
  %1038 = icmp eq i64* %default_function.ph.strides147, null, !dbg !18
  br i1 %1038, label %if_end558, label %if_then557, !dbg !18, !prof !101

if_then557:                                       ; preds = %assert_end556
  %1039 = load i64, i64* %default_function.ph.strides147, align 8, !dbg !18, !tbaa !562
  %1040 = trunc i64 %1039 to i32, !dbg !18
  %1041 = icmp eq i32 %1040, 128, !dbg !18
  %1042 = getelementptr inbounds i64, i64* %default_function.ph.strides147, i64 1, !dbg !18
  %1043 = load i64, i64* %1042, align 8, !dbg !18, !tbaa !572
  %1044 = trunc i64 %1043 to i32, !dbg !18
  %1045 = icmp eq i32 %1044, 1, !dbg !18
  %1046 = and i1 %1041, %1045, !dbg !18
  br i1 %1046, label %if_end558, label %assert_fail559, !dbg !18, !prof !19

if_end558:                                        ; preds = %assert_end556, %if_then557
  %1047 = getelementptr inbounds %1, %1* %ph33648, i64 0, i32 6, !dbg !18
  %1048 = load i64, i64* %1047, align 8, !dbg !18
  %1049 = icmp eq i64 %1048, 0, !dbg !18
  br i1 %1049, label %assert_end562, label %assert_fail561, !dbg !18, !prof !19

assert_fail559:                                   ; preds = %if_then557
  %1050 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1050(i8* getelementptr inbounds ([184 x i8], [184 x i8]* @.str.35, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail561:                                   ; preds = %if_end558
  %1051 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1051(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end562:                                    ; preds = %if_end558
  %1052 = getelementptr inbounds %1, %1* %ph33648, i64 0, i32 1, i32 0, !dbg !18
  %1053 = load i32, i32* %1052, align 4, !dbg !18
  %1054 = icmp eq i32 %1053, 1, !dbg !18
  br i1 %1054, label %assert_end564, label %assert_fail563, !dbg !18, !prof !19

assert_fail563:                                   ; preds = %assert_end562
  %1055 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1055(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end564:                                    ; preds = %assert_end562
  %1056 = getelementptr inbounds %1, %1* %ph33648, i64 0, i32 1, i32 1, !dbg !18
  %1057 = load i32, i32* %1056, align 4, !dbg !18
  %1058 = icmp eq i32 %dev_id, %1057, !dbg !18
  br i1 %1058, label %assert_end566, label %assert_fail565, !dbg !18, !prof !19

assert_fail565:                                   ; preds = %assert_end564
  %1059 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1059(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end566:                                    ; preds = %assert_end564
  %1060 = getelementptr inbounds %1, %1* %ph34649, i64 0, i32 2, !dbg !18
  %1061 = load i32, i32* %1060, align 4, !dbg !18
  %1062 = icmp eq i32 %1061, 3, !dbg !18
  br i1 %1062, label %assert_end570, label %assert_fail567, !dbg !18, !prof !19

assert_fail567:                                   ; preds = %assert_end566
  %1063 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1063(i8* getelementptr inbounds ([103 x i8], [103 x i8]* @.str.20, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end570:                                    ; preds = %assert_end566
  %1064 = getelementptr inbounds %1, %1* %ph34649, i64 0, i32 3, i32 2, !dbg !18
  %1065 = load i16, i16* %1064, align 2, !dbg !18
  %1066 = icmp eq i16 %1065, 1, !dbg !18
  %1067 = getelementptr inbounds %1, %1* %ph34649, i64 0, i32 3, i32 1, !dbg !18
  %1068 = load i8, i8* %1067, align 1, !dbg !18
  %1069 = icmp eq i8 %1068, 32, !dbg !18
  %1070 = getelementptr inbounds %1, %1* %ph34649, i64 0, i32 3, i32 0, !dbg !18
  %1071 = load i8, i8* %1070, align 1, !dbg !18
  %1072 = icmp eq i8 %1071, 2, !dbg !18
  %1073 = and i1 %1069, %1072, !dbg !18
  %1074 = and i1 %1066, %1073, !dbg !18
  br i1 %1074, label %assert_end572, label %assert_fail571, !dbg !18, !prof !19

assert_fail571:                                   ; preds = %assert_end570
  %1075 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1075(i8* getelementptr inbounds ([227 x i8], [227 x i8]* @.str.21, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end572:                                    ; preds = %assert_end570
  %1076 = load i64, i64* %default_function.ph.shape153, align 8, !dbg !18, !tbaa !574
  %1077 = trunc i64 %1076 to i32, !dbg !18
  %1078 = icmp eq i32 %1077, 128, !dbg !18
  br i1 %1078, label %assert_end574, label %assert_fail573, !dbg !18, !prof !19

assert_fail573:                                   ; preds = %assert_end572
  %1079 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1079(i8* getelementptr inbounds ([189 x i8], [189 x i8]* @.str.28, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end574:                                    ; preds = %assert_end572
  %1080 = getelementptr inbounds i64, i64* %default_function.ph.shape153, i64 1, !dbg !18
  %1081 = load i64, i64* %1080, align 8, !dbg !18, !tbaa !584
  %1082 = trunc i64 %1081 to i32, !dbg !18
  %1083 = icmp eq i32 %1082, 64, !dbg !18
  br i1 %1083, label %assert_end576, label %assert_fail575, !dbg !18, !prof !19

assert_fail575:                                   ; preds = %assert_end574
  %1084 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1084(i8* getelementptr inbounds ([187 x i8], [187 x i8]* @.str.23, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end576:                                    ; preds = %assert_end574
  %1085 = getelementptr inbounds i64, i64* %default_function.ph.shape153, i64 2, !dbg !18
  %1086 = load i64, i64* %1085, align 8, !dbg !18, !tbaa !586
  %1087 = trunc i64 %1086 to i32, !dbg !18
  %1088 = icmp eq i32 %1087, 1, !dbg !18
  br i1 %1088, label %assert_end578, label %assert_fail577, !dbg !18, !prof !19

assert_fail577:                                   ; preds = %assert_end576
  %1089 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1089(i8* getelementptr inbounds ([185 x i8], [185 x i8]* @.str.34, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end578:                                    ; preds = %assert_end576
  %1090 = icmp eq i64* %default_function.ph.strides154, null, !dbg !18
  br i1 %1090, label %if_end580, label %if_then579, !dbg !18, !prof !101

if_then579:                                       ; preds = %assert_end578
  %1091 = load i64, i64* %default_function.ph.strides154, align 8, !dbg !18, !tbaa !589
  %1092 = trunc i64 %1091 to i32, !dbg !18
  %1093 = icmp eq i32 %1092, 64, !dbg !18
  %1094 = getelementptr inbounds i64, i64* %default_function.ph.strides154, i64 1, !dbg !18
  %1095 = load i64, i64* %1094, align 8, !dbg !18, !tbaa !599
  %1096 = trunc i64 %1095 to i32, !dbg !18
  %1097 = icmp eq i32 %1096, 1, !dbg !18
  %1098 = and i1 %1093, %1097, !dbg !18
  br i1 %1098, label %if_end580, label %assert_fail581, !dbg !18, !prof !19

if_end580:                                        ; preds = %assert_end578, %if_then579
  %1099 = getelementptr inbounds %1, %1* %ph34649, i64 0, i32 6, !dbg !18
  %1100 = load i64, i64* %1099, align 8, !dbg !18
  %1101 = icmp eq i64 %1100, 0, !dbg !18
  br i1 %1101, label %assert_end584, label %assert_fail583, !dbg !18, !prof !19

assert_fail581:                                   ; preds = %if_then579
  %1102 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1102(i8* getelementptr inbounds ([183 x i8], [183 x i8]* @.str.36, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail583:                                   ; preds = %if_end580
  %1103 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1103(i8* getelementptr inbounds ([190 x i8], [190 x i8]* @.str.26, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end584:                                    ; preds = %if_end580
  %1104 = getelementptr inbounds %1, %1* %ph34649, i64 0, i32 1, i32 0, !dbg !18
  %1105 = load i32, i32* %1104, align 4, !dbg !18
  %1106 = icmp eq i32 %1105, 1, !dbg !18
  br i1 %1106, label %assert_end586, label %assert_fail585, !dbg !18, !prof !19

assert_fail585:                                   ; preds = %assert_end584
  %1107 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1107(i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.27, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end586:                                    ; preds = %assert_end584
  %1108 = getelementptr inbounds %1, %1* %ph34649, i64 0, i32 1, i32 1, !dbg !18
  %1109 = load i32, i32* %1108, align 4, !dbg !18
  %1110 = icmp eq i32 %dev_id, %1109, !dbg !18
  br i1 %1110, label %assert_end588, label %assert_fail587, !dbg !18, !prof !19

assert_fail587:                                   ; preds = %assert_end586
  %1111 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1111(i8* getelementptr inbounds ([176 x i8], [176 x i8]* @.str.31, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end588:                                    ; preds = %assert_end586
  %1112 = getelementptr inbounds %1, %1* %T_concat650, i64 0, i32 2, !dbg !18
  %1113 = load i32, i32* %1112, align 4, !dbg !18
  %1114 = icmp eq i32 %1113, 3, !dbg !18
  br i1 %1114, label %assert_end592, label %assert_fail589, !dbg !18, !prof !19

assert_fail589:                                   ; preds = %assert_end588
  %1115 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1115(i8* getelementptr inbounds ([115 x i8], [115 x i8]* @.str.37, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end592:                                    ; preds = %assert_end588
  %1116 = getelementptr inbounds %1, %1* %T_concat650, i64 0, i32 3, i32 2, !dbg !18
  %1117 = load i16, i16* %1116, align 2, !dbg !18
  %1118 = icmp eq i16 %1117, 1, !dbg !18
  %1119 = getelementptr inbounds %1, %1* %T_concat650, i64 0, i32 3, i32 1, !dbg !18
  %1120 = load i8, i8* %1119, align 1, !dbg !18
  %1121 = icmp eq i8 %1120, 32, !dbg !18
  %1122 = getelementptr inbounds %1, %1* %T_concat650, i64 0, i32 3, i32 0, !dbg !18
  %1123 = load i8, i8* %1122, align 1, !dbg !18
  %1124 = icmp eq i8 %1123, 2, !dbg !18
  %1125 = and i1 %1121, %1124, !dbg !18
  %1126 = and i1 %1118, %1125, !dbg !18
  br i1 %1126, label %assert_end594, label %assert_fail593, !dbg !18, !prof !19

assert_fail593:                                   ; preds = %assert_end592
  %1127 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1127(i8* getelementptr inbounds ([251 x i8], [251 x i8]* @.str.38, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end594:                                    ; preds = %assert_end592
  %1128 = load i64, i64* %default_function.T_concat.shape, align 8, !dbg !18, !tbaa !601
  %1129 = trunc i64 %1128 to i32, !dbg !18
  %1130 = icmp eq i32 %1129, 1, !dbg !18
  br i1 %1130, label %assert_end596, label %assert_fail595, !dbg !18, !prof !19

assert_fail595:                                   ; preds = %assert_end594
  %1131 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1131(i8* getelementptr inbounds ([203 x i8], [203 x i8]* @.str.39, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end596:                                    ; preds = %assert_end594
  %1132 = getelementptr inbounds i64, i64* %default_function.T_concat.shape, i64 1, !dbg !18
  %1133 = load i64, i64* %1132, align 8, !dbg !18, !tbaa !611
  %1134 = trunc i64 %1133 to i32, !dbg !18
  %1135 = icmp eq i32 %1134, 512, !dbg !18
  br i1 %1135, label %assert_end598, label %assert_fail597, !dbg !18, !prof !19

assert_fail597:                                   ; preds = %assert_end596
  %1136 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1136(i8* getelementptr inbounds ([207 x i8], [207 x i8]* @.str.40, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end598:                                    ; preds = %assert_end596
  %1137 = getelementptr inbounds i64, i64* %default_function.T_concat.shape, i64 2, !dbg !18
  %1138 = load i64, i64* %1137, align 8, !dbg !18, !tbaa !613
  %1139 = trunc i64 %1138 to i32, !dbg !18
  %1140 = icmp eq i32 %1139, 100, !dbg !18
  br i1 %1140, label %assert_end600, label %assert_fail599, !dbg !18, !prof !19

assert_fail599:                                   ; preds = %assert_end598
  %1141 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1141(i8* getelementptr inbounds ([207 x i8], [207 x i8]* @.str.41, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end600:                                    ; preds = %assert_end598
  %1142 = icmp eq i64* %default_function.T_concat.strides, null, !dbg !18
  br i1 %1142, label %if_end602, label %if_then601, !dbg !18, !prof !101

if_then601:                                       ; preds = %assert_end600
  %1143 = getelementptr inbounds i64, i64* %default_function.T_concat.strides, i64 1, !dbg !18
  %1144 = load i64, i64* %1143, align 8, !dbg !18, !tbaa !616
  %1145 = trunc i64 %1144 to i32, !dbg !18
  %1146 = icmp eq i32 %1145, 100, !dbg !18
  %1147 = getelementptr inbounds i64, i64* %default_function.T_concat.strides, i64 2, !dbg !18
  %1148 = load i64, i64* %1147, align 8, !dbg !18, !tbaa !626
  %1149 = trunc i64 %1148 to i32, !dbg !18
  %1150 = icmp eq i32 %1149, 1, !dbg !18
  %1151 = and i1 %1146, %1150, !dbg !18
  br i1 %1151, label %if_end602, label %assert_fail603, !dbg !18, !prof !19

if_end602:                                        ; preds = %assert_end600, %if_then601
  %1152 = getelementptr inbounds %1, %1* %T_concat650, i64 0, i32 6, !dbg !18
  %1153 = load i64, i64* %1152, align 8, !dbg !18
  %1154 = icmp eq i64 %1153, 0, !dbg !18
  br i1 %1154, label %assert_end606, label %assert_fail605, !dbg !18, !prof !19

assert_fail603:                                   ; preds = %if_then601
  %1155 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1155(i8* getelementptr inbounds ([202 x i8], [202 x i8]* @.str.42, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_fail605:                                   ; preds = %if_end602
  %1156 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1156(i8* getelementptr inbounds ([208 x i8], [208 x i8]* @.str.43, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end606:                                    ; preds = %if_end602
  %1157 = getelementptr inbounds %1, %1* %T_concat650, i64 0, i32 1, i32 0, !dbg !18
  %1158 = load i32, i32* %1157, align 4, !dbg !18
  %1159 = icmp eq i32 %1158, 1, !dbg !18
  br i1 %1159, label %assert_end608, label %assert_fail607, !dbg !18, !prof !19

assert_fail607:                                   ; preds = %assert_end606
  %1160 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1160(i8* getelementptr inbounds ([188 x i8], [188 x i8]* @.str.44, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end608:                                    ; preds = %assert_end606
  %1161 = getelementptr inbounds %1, %1* %T_concat650, i64 0, i32 1, i32 1, !dbg !18
  %1162 = load i32, i32* %1161, align 4, !dbg !18
  %1163 = icmp eq i32 %dev_id, %1162, !dbg !18
  br i1 %1163, label %assert_end610, label %assert_fail609, !dbg !18, !prof !19

assert_fail609:                                   ; preds = %assert_end608
  %1164 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !dbg !18, !tbaa !20
  tail call void %1164(i8* getelementptr inbounds ([194 x i8], [194 x i8]* @.str.45, i64 0, i64 0)), !dbg !18
  ret i32 -1, !dbg !18

assert_end610:                                    ; preds = %assert_end608
  %1165 = call fastcc i32 @default_function_compute_(i8* nonnull %stack_value, float* %T_concat_void_ptr669, i32* nonnull %stack_tcode631.sub, float* %ph_void_ptr92660, float* %ph_void_ptr148668, float* %ph_void_ptr141667, float* %ph_void_ptr134666, float* %ph_void_ptr127665, float* %ph_void_ptr120664, float* %ph_void_ptr113663, float* %ph_void_ptr106662, float* %ph_void_ptr99661, float* %ph_void_ptr651, float* %ph_void_ptr85659, float* %ph_void_ptr78658, float* %ph_void_ptr71657, float* %ph_void_ptr64656, float* %ph_void_ptr57655, float* %ph_void_ptr50654, float* %ph_void_ptr43653, float* %ph_void_ptr36652), !dbg !18
  ret i32 %1165, !dbg !18
}

; Function Attrs: nounwind willreturn
declare void @llvm.assume(i1) #1

; Function Attrs: noinline
define internal fastcc i32 @default_function_compute_(i8* noalias %0, float* noalias align 64 %1, i32* noalias %2, float* noalias align 64 %3, float* noalias align 64 %4, float* noalias align 64 %5, float* noalias align 64 %6, float* noalias align 64 %7, float* noalias align 64 %8, float* noalias align 64 %9, float* noalias align 64 %10, float* noalias align 64 %11, float* noalias align 64 %12, float* noalias align 64 %13, float* noalias align 64 %14, float* noalias align 64 %15, float* noalias align 64 %16, float* noalias align 64 %17, float* noalias align 64 %18, float* noalias align 64 %19, float* noalias align 64 %20) unnamed_addr #2 {
entry:
  %21 = alloca i8*, align 8
  %22 = bitcast i8* %0 to %0*
  %23 = bitcast i8* %0 to float**
  store float* %1, float** %23, align 8
  %24 = getelementptr inbounds i8, i8* %0, i64 8
  %25 = bitcast i8* %24 to float**
  store float* %3, float** %25, align 8
  %26 = getelementptr inbounds i8, i8* %0, i64 16
  %27 = bitcast i8* %26 to float**
  store float* %4, float** %27, align 8
  %28 = getelementptr inbounds i8, i8* %0, i64 24
  %29 = bitcast i8* %28 to float**
  store float* %5, float** %29, align 8
  %30 = bitcast i32* %2 to <4 x i32>*
  store <4 x i32> <i32 3, i32 3, i32 3, i32 3>, <4 x i32>* %30, align 4, !tbaa !629
  %31 = getelementptr inbounds i8, i8* %0, i64 32
  %32 = bitcast i8* %31 to float**
  store float* %6, float** %32, align 8
  %33 = getelementptr inbounds i32, i32* %2, i64 4
  %34 = getelementptr inbounds i8, i8* %0, i64 40
  %35 = bitcast i8* %34 to float**
  store float* %7, float** %35, align 8
  %36 = getelementptr inbounds i8, i8* %0, i64 48
  %37 = bitcast i8* %36 to float**
  store float* %8, float** %37, align 8
  %38 = getelementptr inbounds i8, i8* %0, i64 56
  %39 = bitcast i8* %38 to float**
  store float* %9, float** %39, align 8
  %40 = bitcast i32* %33 to <4 x i32>*
  store <4 x i32> <i32 3, i32 3, i32 3, i32 3>, <4 x i32>* %40, align 4, !tbaa !638
  %41 = getelementptr inbounds i8, i8* %0, i64 64
  %42 = bitcast i8* %41 to float**
  store float* %10, float** %42, align 8
  %43 = getelementptr inbounds i32, i32* %2, i64 8
  %44 = getelementptr inbounds i8, i8* %0, i64 72
  %45 = bitcast i8* %44 to float**
  store float* %11, float** %45, align 8
  %46 = getelementptr inbounds i8, i8* %0, i64 80
  %47 = bitcast i8* %46 to float**
  store float* %12, float** %47, align 8
  %48 = getelementptr inbounds i8, i8* %0, i64 88
  %49 = bitcast i8* %48 to float**
  store float* %13, float** %49, align 8
  %50 = bitcast i32* %43 to <4 x i32>*
  store <4 x i32> <i32 3, i32 3, i32 3, i32 3>, <4 x i32>* %50, align 4, !tbaa !640
  %51 = getelementptr inbounds i8, i8* %0, i64 96
  %52 = bitcast i8* %51 to float**
  store float* %14, float** %52, align 8
  %53 = getelementptr inbounds i32, i32* %2, i64 12
  %54 = getelementptr inbounds i8, i8* %0, i64 104
  %55 = bitcast i8* %54 to float**
  store float* %15, float** %55, align 8
  %56 = getelementptr inbounds i8, i8* %0, i64 112
  %57 = bitcast i8* %56 to float**
  store float* %16, float** %57, align 8
  %58 = getelementptr inbounds i8, i8* %0, i64 120
  %59 = bitcast i8* %58 to float**
  store float* %17, float** %59, align 8
  %60 = bitcast i32* %53 to <4 x i32>*
  store <4 x i32> <i32 3, i32 3, i32 3, i32 3>, <4 x i32>* %60, align 4, !tbaa !643
  %61 = getelementptr inbounds i8, i8* %0, i64 128
  %62 = bitcast i8* %61 to float**
  store float* %18, float** %62, align 8
  %63 = getelementptr inbounds i32, i32* %2, i64 16
  store i32 3, i32* %63, align 4, !tbaa !645
  %64 = getelementptr inbounds i8, i8* %0, i64 136
  %65 = bitcast i8* %64 to float**
  store float* %19, float** %65, align 8
  %66 = getelementptr inbounds i32, i32* %2, i64 17
  store i32 3, i32* %66, align 4, !tbaa !651
  %67 = getelementptr inbounds i8, i8* %0, i64 144
  %68 = bitcast i8* %67 to float**
  store float* %20, float** %68, align 8
  %69 = getelementptr inbounds i32, i32* %2, i64 18
  store i32 3, i32* %69, align 4, !tbaa !653
  %70 = getelementptr inbounds i8, i8* %0, i64 152
  %71 = bitcast i8* %70 to %0*
  %72 = getelementptr inbounds i32, i32* %2, i64 19
  %73 = load i32 (i8*, %0*, i32*, i32, %0*, i32*)*, i32 (i8*, %0*, i32*, i32, %0*, i32*)** @__TVMFuncCall, align 8, !tbaa !20
  %74 = load i8*, i8** @.tvm_func.default_function_kernel, align 8
  %75 = icmp eq i8* %74, null
  br i1 %75, label %handle_init, label %handle_init_end, !prof !101

handle_init:                                      ; preds = %entry
  %76 = load i8*, i8** @__tvm_module_ctx, align 8, !tbaa !20
  %77 = load i32 (i8*, i8*, i8**)*, i32 (i8*, i8*, i8**)** @__TVMBackendGetFuncFromEnv, align 8, !tbaa !20
  %78 = call i32 %77(i8* %76, i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.46, i64 0, i64 0), i8** nonnull %21)
  %79 = icmp eq i32 %78, 0
  br i1 %79, label %call_end, label %call_fail, !prof !19

handle_init_end:                                  ; preds = %entry, %call_end
  %80 = phi i8* [ %74, %entry ], [ %83, %call_end ]
  %81 = call i32 %73(i8* %80, %0* %22, i32* nonnull %2, i32 19, %0* nonnull %71, i32* nonnull %72)
  %82 = icmp eq i32 %81, 0
  br i1 %82, label %call_end2, label %call_fail, !prof !19

call_fail:                                        ; preds = %call_end2, %handle_init_end, %handle_init
  %merge = phi i32 [ %78, %handle_init ], [ %81, %handle_init_end ], [ 0, %call_end2 ]
  ret i32 %merge

call_end:                                         ; preds = %handle_init
  %83 = load i8*, i8** %21, align 8
  store i8* %83, i8** @.tvm_func.default_function_kernel, align 8
  br label %handle_init_end

call_end2:                                        ; preds = %handle_init_end
  %84 = bitcast i8* %70 to i64*
  %85 = load i64, i64* %84, align 8
  %kernel_error_code = trunc i64 %85 to i32
  %86 = icmp eq i32 %kernel_error_code, 0
  br i1 %86, label %call_fail, label %assert_fail, !prof !19

assert_fail:                                      ; preds = %call_end2
  %87 = load void (i8*)*, void (i8*)** @__TVMAPISetLastError, align 8, !tbaa !20
  call void %87(i8* getelementptr inbounds ([68 x i8], [68 x i8]* @.str.47, i64 0, i64 0))
  ret i32 -1
}

; Function Attrs: nounwind readnone
define weak dso_local i16 @__truncsfhf2(float %a0) local_unnamed_addr #3 section ".text.tvm.fp16.conv" {
b0:
  %v0 = bitcast float %a0 to i32
  %v1 = and i32 %v0, 2147483647
  %v2 = add nsw i32 %v1, -947912704
  %v3 = add nsw i32 %v1, -1199570944
  %v4 = icmp ult i32 %v2, %v3
  br i1 %v4, label %b1, label %b5

b1:                                               ; preds = %b0
  %v5 = lshr i32 %v0, 13
  %v6 = and i32 %v5, 65535
  %v7 = add nuw nsw i32 %v6, -114688
  %v8 = and i32 %v0, 8191
  %v9 = icmp ugt i32 %v8, 4096
  br i1 %v9, label %b2, label %b3

b2:                                               ; preds = %b1
  %v10 = add nuw nsw i32 %v6, -114687
  br label %b13

b3:                                               ; preds = %b1
  %v11 = icmp eq i32 %v8, 4096
  br i1 %v11, label %b4, label %b13

b4:                                               ; preds = %b3
  %v12 = and i32 %v7, 65535
  %v13 = and i32 %v5, 1
  %v14 = add nuw nsw i32 %v12, %v13
  br label %b13

b5:                                               ; preds = %b0
  %v15 = icmp ugt i32 %v1, 2139095040
  br i1 %v15, label %b6, label %b7

b6:                                               ; preds = %b5
  %v16 = lshr i32 %v0, 13
  %v17 = and i32 %v16, 511
  %v18 = or i32 %v17, 32256
  br label %b13

b7:                                               ; preds = %b5
  %v19 = icmp ugt i32 %v1, 1199570943
  br i1 %v19, label %b13, label %b8

b8:                                               ; preds = %b7
  %v20 = icmp ult i32 %v1, 754974720
  br i1 %v20, label %b13, label %b9

b9:                                               ; preds = %b8
  %v21 = lshr i32 %v1, 23
  %v22 = sub nsw i32 113, %v21
  %v23 = and i32 %v0, 8388607
  %v24 = or i32 %v23, 8388608
  %v25 = add nsw i32 %v21, -81
  %v26 = shl i32 %v24, %v25
  %v27 = icmp ne i32 %v26, 0
  %v28 = lshr i32 %v24, %v22
  %v29 = zext i1 %v27 to i32
  %v30 = lshr i32 %v28, 13
  %v31 = and i32 %v28, 8191
  %v32 = or i32 %v31, %v29
  %v33 = icmp ugt i32 %v32, 4096
  br i1 %v33, label %b10, label %b11

b10:                                              ; preds = %b9
  %v34 = add nuw nsw i32 %v30, 1
  br label %b13

b11:                                              ; preds = %b9
  %v35 = icmp eq i32 %v32, 4096
  br i1 %v35, label %b12, label %b13

b12:                                              ; preds = %b11
  %v36 = and i32 %v30, 1
  %v37 = add nuw nsw i32 %v36, %v30
  br label %b13

b13:                                              ; preds = %b12, %b11, %b10, %b8, %b7, %b6, %b4, %b3, %b2
  %v38 = phi i32 [ %v18, %b6 ], [ %v10, %b2 ], [ %v14, %b4 ], [ %v7, %b3 ], [ 31744, %b7 ], [ 0, %b8 ], [ %v34, %b10 ], [ %v37, %b12 ], [ %v30, %b11 ]
  %v39 = lshr i32 %v0, 16
  %v40 = and i32 %v39, 32768
  %v41 = or i32 %v38, %v40
  %vlast = trunc i32 %v41 to i16
  ret i16 %vlast
}

; Function Attrs: nounwind readnone
define weak dso_local float @__extendhfsf2(i16 %a0) local_unnamed_addr #3 section ".text.tvm.fp16.conv" {
b0:
  %v1 = and i16 %a0, 32767
  %v2 = zext i16 %v1 to i32
  %v3 = add nsw i16 %v1, -1024
  %v4 = icmp ult i16 %v3, 30720
  br i1 %v4, label %b1, label %b2

b1:                                               ; preds = %b0
  %v5 = shl nuw nsw i32 %v2, 13
  %v6 = add nuw nsw i32 %v5, 939524096
  br label %b6

b2:                                               ; preds = %b0
  %v7 = icmp ugt i16 %v1, 31743
  br i1 %v7, label %b3, label %b4

b3:                                               ; preds = %b2
  %v8 = shl nuw nsw i32 %v2, 13
  %v9 = or i32 %v8, 2139095040
  br label %b6

b4:                                               ; preds = %b2
  %v10 = icmp eq i16 %v1, 0
  br i1 %v10, label %b6, label %b5

b5:                                               ; preds = %b4
  %v11 = icmp ult i16 %v1, 256
  %v12 = lshr i32 %v2, 8
  %v13 = select i1 %v11, i32 %v2, i32 %v12
  %v14 = select i1 %v11, i32 32, i32 24
  %v15 = icmp ult i32 %v13, 16
  %v16 = lshr i32 %v13, 4
  %v17 = add nsw i32 %v14, -4
  %v18 = select i1 %v15, i32 %v13, i32 %v16
  %v19 = select i1 %v15, i32 %v14, i32 %v17
  %v20 = icmp ult i32 %v18, 4
  %v21 = lshr i32 %v18, 2
  %v22 = add nsw i32 %v19, -2
  %v23 = select i1 %v20, i32 %v18, i32 %v21
  %v24 = select i1 %v20, i32 %v19, i32 %v22
  %v25 = icmp ult i32 %v23, 2
  %v26 = sub nsw i32 0, %v23
  %v27 = select i1 %v25, i32 %v26, i32 -2
  %v28 = add nsw i32 %v27, %v24
  %v29 = add nsw i32 %v28, -8
  %v30 = shl i32 %v2, %v29
  %v31 = xor i32 %v30, 8388608
  %v32 = shl i32 %v28, 23
  %v33 = sub i32 1124073472, %v32
  %v34 = or i32 %v31, %v33
  br label %b6

b6:                                               ; preds = %b5, %b4, %b3, %b1
  %v35 = phi i32 [ %v6, %b1 ], [ %v9, %b3 ], [ %v34, %b5 ], [ 0, %b4 ]
  %v36 = and i16 %a0, -32768
  %v37 = zext i16 %v36 to i32
  %v38 = shl nuw i32 %v37, 16
  %v39 = or i32 %v35, %v38
  %v40 = bitcast i32 %v39 to float
  ret float %v40
}

; Function Attrs: nounwind readnone speculatable willreturn
declare void @llvm.dbg.value(metadata, metadata, metadata) #4

attributes #0 = { "target-cpu"="generic" }
attributes #1 = { nounwind willreturn }
attributes #2 = { noinline "target-cpu"="generic" }
attributes #3 = { nounwind readnone "target-cpu"="generic" "target-features" }
attributes #4 = { nounwind readnone speculatable willreturn }

!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)
!1 = !DIFile(filename: "main.tir", directory: ".")
!2 = !{}
!3 = !{i32 2, !"tvm_target", !"llvm -mtriple=x86_64-pc-linux-gnu"}
!4 = !{i32 4, !"Debug Info Version", i32 3}
!5 = distinct !DISubprogram(name: "main.tir", scope: !1, file: !1, type: !6, spFlags: DISPFlagLocalToUnit | DISPFlagDefinition | DISPFlagOptimized, unit: !0, retainedNodes: !11)
!6 = !DISubroutineType(types: !7)
!7 = !{!8, !9, !10, !8, !9, !10, !9}
!8 = !DIBasicType(name: "int32", size: 32, encoding: DW_ATE_signed)
!9 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: null)
!10 = !DIDerivedType(tag: DW_TAG_pointer_type, baseType: !8)
!11 = !{!12, !13, !14, !15, !16, !17}
!12 = !DILocalVariable(name: "arg1", arg: 1, scope: !5, file: !1, type: !9)
!13 = !DILocalVariable(name: "arg2", arg: 2, scope: !5, file: !1, type: !10)
!14 = !DILocalVariable(name: "arg3", arg: 3, scope: !5, file: !1, type: !8)
!15 = !DILocalVariable(name: "arg4", arg: 4, scope: !5, file: !1, type: !9)
!16 = !DILocalVariable(name: "arg5", arg: 5, scope: !5, file: !1, type: !10)
!17 = !DILocalVariable(name: "arg6", arg: 6, scope: !5, file: !1, type: !9)
!18 = !DILocation(line: 0, scope: !5)
!19 = !{!"branch_weights", i32 1048576, i32 1}
!20 = !{!21, !21, i64 0}
!21 = !{!"ctx_ptr", !22, i64 0}
!22 = !{!"tvm-tbaa"}
!23 = !{!24, !24, i64 0}
!24 = !{!"0x557241c1fa10.w4.b0", !25, i64 0}
!25 = !{!"0x557241c1fa10.w8.b0", !26, i64 0}
!26 = !{!"0x557241c1fa10.w16.b0", !27, i64 0}
!27 = !{!"0x557241c1fa10.w32.b0", !28, i64 0}
!28 = !{!"0x557241c1fa10.w64.b0", !29, i64 0}
!29 = !{!"0x557241c1fa10.w128.b0", !30, i64 0}
!30 = !{!"0x557241c1fa10.w256.b0", !31, i64 0}
!31 = !{!"0x557241c1fa10.w512.b0", !32, i64 0}
!32 = !{!"0x557241c1fa10.w1024.b0", !33, i64 0}
!33 = !{!"0x557241c1fa10", !22, i64 0}
!34 = !{!35, !35, i64 0}
!35 = !{!"0x557241c1fa10.w4.b4", !25, i64 0}
!36 = !{!37, !37, i64 0}
!37 = !{!"0x557241c1fa10.w4.b8", !38, i64 0}
!38 = !{!"0x557241c1fa10.w8.b8", !26, i64 0}
!39 = !{!40, !40, i64 0}
!40 = !{!"0x557241c1fa10.w4.b12", !38, i64 0}
!41 = !{!42, !42, i64 0}
!42 = !{!"0x557241c1fa10.w4.b16", !43, i64 0}
!43 = !{!"0x557241c1fa10.w8.b16", !44, i64 0}
!44 = !{!"0x557241c1fa10.w16.b16", !27, i64 0}
!45 = !{!46, !46, i64 0}
!46 = !{!"0x557241c1fa10.w4.b20", !43, i64 0}
!47 = !{!48, !48, i64 0}
!48 = !{!"0x557241c1fa10.w4.b24", !49, i64 0}
!49 = !{!"0x557241c1fa10.w8.b24", !44, i64 0}
!50 = !{!51, !51, i64 0}
!51 = !{!"0x557241c1fa10.w4.b28", !49, i64 0}
!52 = !{!53, !53, i64 0}
!53 = !{!"0x557241c1fa10.w4.b32", !54, i64 0}
!54 = !{!"0x557241c1fa10.w8.b32", !55, i64 0}
!55 = !{!"0x557241c1fa10.w16.b32", !56, i64 0}
!56 = !{!"0x557241c1fa10.w32.b32", !28, i64 0}
!57 = !{!58, !58, i64 0}
!58 = !{!"0x557241c1fa10.w4.b36", !54, i64 0}
!59 = !{!60, !60, i64 0}
!60 = !{!"0x557241c1fa10.w4.b40", !61, i64 0}
!61 = !{!"0x557241c1fa10.w8.b40", !55, i64 0}
!62 = !{!63, !63, i64 0}
!63 = !{!"0x557241c1fa10.w4.b44", !61, i64 0}
!64 = !{!65, !65, i64 0}
!65 = !{!"0x557241c1fa10.w4.b48", !66, i64 0}
!66 = !{!"0x557241c1fa10.w8.b48", !67, i64 0}
!67 = !{!"0x557241c1fa10.w16.b48", !56, i64 0}
!68 = !{!69, !69, i64 0}
!69 = !{!"0x557241c1fa10.w4.b52", !66, i64 0}
!70 = !{!71, !71, i64 0}
!71 = !{!"0x557241c1fa10.w4.b56", !72, i64 0}
!72 = !{!"0x557241c1fa10.w8.b56", !67, i64 0}
!73 = !{!74, !74, i64 0}
!74 = !{!"0x557241c1fa10.w4.b60", !72, i64 0}
!75 = !{!76, !76, i64 0}
!76 = !{!"0x557241c1fa10.w4.b64", !77, i64 0}
!77 = !{!"0x557241c1fa10.w8.b64", !78, i64 0}
!78 = !{!"0x557241c1fa10.w16.b64", !79, i64 0}
!79 = !{!"0x557241c1fa10.w32.b64", !80, i64 0}
!80 = !{!"0x557241c1fa10.w64.b64", !29, i64 0}
!81 = !{!82, !82, i64 0}
!82 = !{!"0x557241c1fa10.w4.b68", !77, i64 0}
!83 = !{!84, !84, i64 0}
!84 = !{!"0x557241c1fa10.w4.b72", !85, i64 0}
!85 = !{!"0x557241c1fa10.w8.b72", !78, i64 0}
!86 = !{!87, !87, i64 0}
!87 = !{!"0x557241f31f90.w8.b0", !88, i64 0}
!88 = !{!"0x557241f31f90.w16.b0", !89, i64 0}
!89 = !{!"0x557241f31f90.w32.b0", !90, i64 0}
!90 = !{!"0x557241f31f90.w64.b0", !91, i64 0}
!91 = !{!"0x557241f31f90.w128.b0", !92, i64 0}
!92 = !{!"0x557241f31f90.w256.b0", !93, i64 0}
!93 = !{!"0x557241f31f90.w512.b0", !94, i64 0}
!94 = !{!"0x557241f31f90.w1024.b0", !95, i64 0}
!95 = !{!"0x557241f31f90", !22, i64 0}
!96 = !{!97, !97, i64 0}
!97 = !{!"0x557241f31f90.w8.b8", !88, i64 0}
!98 = !{!99, !99, i64 0}
!99 = !{!"0x557241f31f90.w8.b16", !100, i64 0}
!100 = !{!"0x557241f31f90.w16.b16", !89, i64 0}
!101 = !{!"branch_weights", i32 1, i32 1048576}
!102 = !{!103, !103, i64 0}
!103 = !{!"0x557241c94e60.w8.b8", !104, i64 0}
!104 = !{!"0x557241c94e60.w16.b0", !105, i64 0}
!105 = !{!"0x557241c94e60.w32.b0", !106, i64 0}
!106 = !{!"0x557241c94e60.w64.b0", !107, i64 0}
!107 = !{!"0x557241c94e60.w128.b0", !108, i64 0}
!108 = !{!"0x557241c94e60.w256.b0", !109, i64 0}
!109 = !{!"0x557241c94e60.w512.b0", !110, i64 0}
!110 = !{!"0x557241c94e60.w1024.b0", !111, i64 0}
!111 = !{!"0x557241c94e60", !22, i64 0}
!112 = !{!113, !113, i64 0}
!113 = !{!"0x557241c94e60.w8.b16", !114, i64 0}
!114 = !{!"0x557241c94e60.w16.b16", !105, i64 0}
!115 = !{!116, !116, i64 0}
!116 = !{!"0x55724172cc20.w8.b0", !117, i64 0}
!117 = !{!"0x55724172cc20.w16.b0", !118, i64 0}
!118 = !{!"0x55724172cc20.w32.b0", !119, i64 0}
!119 = !{!"0x55724172cc20.w64.b0", !120, i64 0}
!120 = !{!"0x55724172cc20.w128.b0", !121, i64 0}
!121 = !{!"0x55724172cc20.w256.b0", !122, i64 0}
!122 = !{!"0x55724172cc20.w512.b0", !123, i64 0}
!123 = !{!"0x55724172cc20.w1024.b0", !124, i64 0}
!124 = !{!"0x55724172cc20", !22, i64 0}
!125 = !{!126, !126, i64 0}
!126 = !{!"0x55724172cc20.w8.b8", !117, i64 0}
!127 = !{!128, !128, i64 0}
!128 = !{!"0x55724172cc20.w8.b16", !129, i64 0}
!129 = !{!"0x55724172cc20.w16.b16", !118, i64 0}
!130 = !{!131, !131, i64 0}
!131 = !{!"0x557241d81340.w8.b0", !132, i64 0}
!132 = !{!"0x557241d81340.w16.b0", !133, i64 0}
!133 = !{!"0x557241d81340.w32.b0", !134, i64 0}
!134 = !{!"0x557241d81340.w64.b0", !135, i64 0}
!135 = !{!"0x557241d81340.w128.b0", !136, i64 0}
!136 = !{!"0x557241d81340.w256.b0", !137, i64 0}
!137 = !{!"0x557241d81340.w512.b0", !138, i64 0}
!138 = !{!"0x557241d81340.w1024.b0", !139, i64 0}
!139 = !{!"0x557241d81340", !22, i64 0}
!140 = !{!141, !141, i64 0}
!141 = !{!"0x557241d81340.w8.b8", !132, i64 0}
!142 = !{!143, !143, i64 0}
!143 = !{!"0x557241d81340.w8.b16", !144, i64 0}
!144 = !{!"0x557241d81340.w16.b16", !133, i64 0}
!145 = !{!146, !146, i64 0}
!146 = !{!"0x55724196ca40.w8.b0", !147, i64 0}
!147 = !{!"0x55724196ca40.w16.b0", !148, i64 0}
!148 = !{!"0x55724196ca40.w32.b0", !149, i64 0}
!149 = !{!"0x55724196ca40.w64.b0", !150, i64 0}
!150 = !{!"0x55724196ca40.w128.b0", !151, i64 0}
!151 = !{!"0x55724196ca40.w256.b0", !152, i64 0}
!152 = !{!"0x55724196ca40.w512.b0", !153, i64 0}
!153 = !{!"0x55724196ca40.w1024.b0", !154, i64 0}
!154 = !{!"0x55724196ca40", !22, i64 0}
!155 = !{!156, !156, i64 0}
!156 = !{!"0x55724196ca40.w8.b8", !147, i64 0}
!157 = !{!158, !158, i64 0}
!158 = !{!"0x55724196ca40.w8.b16", !159, i64 0}
!159 = !{!"0x55724196ca40.w16.b16", !148, i64 0}
!160 = !{!161, !161, i64 0}
!161 = !{!"0x557241e75c50.w8.b0", !162, i64 0}
!162 = !{!"0x557241e75c50.w16.b0", !163, i64 0}
!163 = !{!"0x557241e75c50.w32.b0", !164, i64 0}
!164 = !{!"0x557241e75c50.w64.b0", !165, i64 0}
!165 = !{!"0x557241e75c50.w128.b0", !166, i64 0}
!166 = !{!"0x557241e75c50.w256.b0", !167, i64 0}
!167 = !{!"0x557241e75c50.w512.b0", !168, i64 0}
!168 = !{!"0x557241e75c50.w1024.b0", !169, i64 0}
!169 = !{!"0x557241e75c50", !22, i64 0}
!170 = !{!171, !171, i64 0}
!171 = !{!"0x557241e75c50.w8.b8", !162, i64 0}
!172 = !{!173, !173, i64 0}
!173 = !{!"0x557241e75c50.w8.b16", !174, i64 0}
!174 = !{!"0x557241e75c50.w16.b16", !163, i64 0}
!175 = !{!176, !176, i64 0}
!176 = !{!"0x557241a74fb0.w8.b0", !177, i64 0}
!177 = !{!"0x557241a74fb0.w16.b0", !178, i64 0}
!178 = !{!"0x557241a74fb0.w32.b0", !179, i64 0}
!179 = !{!"0x557241a74fb0.w64.b0", !180, i64 0}
!180 = !{!"0x557241a74fb0.w128.b0", !181, i64 0}
!181 = !{!"0x557241a74fb0.w256.b0", !182, i64 0}
!182 = !{!"0x557241a74fb0.w512.b0", !183, i64 0}
!183 = !{!"0x557241a74fb0.w1024.b0", !184, i64 0}
!184 = !{!"0x557241a74fb0", !22, i64 0}
!185 = !{!186, !186, i64 0}
!186 = !{!"0x557241a74fb0.w8.b8", !177, i64 0}
!187 = !{!188, !188, i64 0}
!188 = !{!"0x557241a74fb0.w8.b16", !189, i64 0}
!189 = !{!"0x557241a74fb0.w16.b16", !178, i64 0}
!190 = !{!191, !191, i64 0}
!191 = !{!"0x557241ab6c00.w8.b0", !192, i64 0}
!192 = !{!"0x557241ab6c00.w16.b0", !193, i64 0}
!193 = !{!"0x557241ab6c00.w32.b0", !194, i64 0}
!194 = !{!"0x557241ab6c00.w64.b0", !195, i64 0}
!195 = !{!"0x557241ab6c00.w128.b0", !196, i64 0}
!196 = !{!"0x557241ab6c00.w256.b0", !197, i64 0}
!197 = !{!"0x557241ab6c00.w512.b0", !198, i64 0}
!198 = !{!"0x557241ab6c00.w1024.b0", !199, i64 0}
!199 = !{!"0x557241ab6c00", !22, i64 0}
!200 = !{!201, !201, i64 0}
!201 = !{!"0x557241ab6c00.w8.b8", !192, i64 0}
!202 = !{!203, !203, i64 0}
!203 = !{!"0x557241ab6c00.w8.b16", !204, i64 0}
!204 = !{!"0x557241ab6c00.w16.b16", !193, i64 0}
!205 = !{!206, !206, i64 0}
!206 = !{!"0x557241983110.w8.b0", !207, i64 0}
!207 = !{!"0x557241983110.w16.b0", !208, i64 0}
!208 = !{!"0x557241983110.w32.b0", !209, i64 0}
!209 = !{!"0x557241983110.w64.b0", !210, i64 0}
!210 = !{!"0x557241983110.w128.b0", !211, i64 0}
!211 = !{!"0x557241983110.w256.b0", !212, i64 0}
!212 = !{!"0x557241983110.w512.b0", !213, i64 0}
!213 = !{!"0x557241983110.w1024.b0", !214, i64 0}
!214 = !{!"0x557241983110", !22, i64 0}
!215 = !{!216, !216, i64 0}
!216 = !{!"0x557241983110.w8.b8", !207, i64 0}
!217 = !{!218, !218, i64 0}
!218 = !{!"0x557241983110.w8.b16", !219, i64 0}
!219 = !{!"0x557241983110.w16.b16", !208, i64 0}
!220 = !{!221, !221, i64 0}
!221 = !{!"0x557241dc5d20.w8.b0", !222, i64 0}
!222 = !{!"0x557241dc5d20.w16.b0", !223, i64 0}
!223 = !{!"0x557241dc5d20.w32.b0", !224, i64 0}
!224 = !{!"0x557241dc5d20.w64.b0", !225, i64 0}
!225 = !{!"0x557241dc5d20.w128.b0", !226, i64 0}
!226 = !{!"0x557241dc5d20.w256.b0", !227, i64 0}
!227 = !{!"0x557241dc5d20.w512.b0", !228, i64 0}
!228 = !{!"0x557241dc5d20.w1024.b0", !229, i64 0}
!229 = !{!"0x557241dc5d20", !22, i64 0}
!230 = !{!231, !231, i64 0}
!231 = !{!"0x557241dc5d20.w8.b8", !222, i64 0}
!232 = !{!233, !233, i64 0}
!233 = !{!"0x557241bf91b0.w8.b0", !234, i64 0}
!234 = !{!"0x557241bf91b0.w16.b0", !235, i64 0}
!235 = !{!"0x557241bf91b0.w32.b0", !236, i64 0}
!236 = !{!"0x557241bf91b0.w64.b0", !237, i64 0}
!237 = !{!"0x557241bf91b0.w128.b0", !238, i64 0}
!238 = !{!"0x557241bf91b0.w256.b0", !239, i64 0}
!239 = !{!"0x557241bf91b0.w512.b0", !240, i64 0}
!240 = !{!"0x557241bf91b0.w1024.b0", !241, i64 0}
!241 = !{!"0x557241bf91b0", !22, i64 0}
!242 = !{!243, !243, i64 0}
!243 = !{!"0x557241bf91b0.w8.b8", !234, i64 0}
!244 = !{!245, !245, i64 0}
!245 = !{!"0x557241bf91b0.w8.b16", !246, i64 0}
!246 = !{!"0x557241bf91b0.w16.b16", !235, i64 0}
!247 = !{!248, !248, i64 0}
!248 = !{!"0x557241977470.w8.b0", !249, i64 0}
!249 = !{!"0x557241977470.w16.b0", !250, i64 0}
!250 = !{!"0x557241977470.w32.b0", !251, i64 0}
!251 = !{!"0x557241977470.w64.b0", !252, i64 0}
!252 = !{!"0x557241977470.w128.b0", !253, i64 0}
!253 = !{!"0x557241977470.w256.b0", !254, i64 0}
!254 = !{!"0x557241977470.w512.b0", !255, i64 0}
!255 = !{!"0x557241977470.w1024.b0", !256, i64 0}
!256 = !{!"0x557241977470", !22, i64 0}
!257 = !{!258, !258, i64 0}
!258 = !{!"0x557241977470.w8.b8", !249, i64 0}
!259 = !{!260, !260, i64 0}
!260 = !{!"0x557241679bf0.w8.b0", !261, i64 0}
!261 = !{!"0x557241679bf0.w16.b0", !262, i64 0}
!262 = !{!"0x557241679bf0.w32.b0", !263, i64 0}
!263 = !{!"0x557241679bf0.w64.b0", !264, i64 0}
!264 = !{!"0x557241679bf0.w128.b0", !265, i64 0}
!265 = !{!"0x557241679bf0.w256.b0", !266, i64 0}
!266 = !{!"0x557241679bf0.w512.b0", !267, i64 0}
!267 = !{!"0x557241679bf0.w1024.b0", !268, i64 0}
!268 = !{!"0x557241679bf0", !22, i64 0}
!269 = !{!270, !270, i64 0}
!270 = !{!"0x557241679bf0.w8.b8", !261, i64 0}
!271 = !{!272, !272, i64 0}
!272 = !{!"0x557241679bf0.w8.b16", !273, i64 0}
!273 = !{!"0x557241679bf0.w16.b16", !262, i64 0}
!274 = !{!275, !275, i64 0}
!275 = !{!"0x557241c646f0.w8.b0", !276, i64 0}
!276 = !{!"0x557241c646f0.w16.b0", !277, i64 0}
!277 = !{!"0x557241c646f0.w32.b0", !278, i64 0}
!278 = !{!"0x557241c646f0.w64.b0", !279, i64 0}
!279 = !{!"0x557241c646f0.w128.b0", !280, i64 0}
!280 = !{!"0x557241c646f0.w256.b0", !281, i64 0}
!281 = !{!"0x557241c646f0.w512.b0", !282, i64 0}
!282 = !{!"0x557241c646f0.w1024.b0", !283, i64 0}
!283 = !{!"0x557241c646f0", !22, i64 0}
!284 = !{!285, !285, i64 0}
!285 = !{!"0x557241c646f0.w8.b8", !276, i64 0}
!286 = !{!287, !287, i64 0}
!287 = !{!"0x557241c646f0.w8.b16", !288, i64 0}
!288 = !{!"0x557241c646f0.w16.b16", !277, i64 0}
!289 = !{!290, !290, i64 0}
!290 = !{!"0x557241a9e230.w8.b0", !291, i64 0}
!291 = !{!"0x557241a9e230.w16.b0", !292, i64 0}
!292 = !{!"0x557241a9e230.w32.b0", !293, i64 0}
!293 = !{!"0x557241a9e230.w64.b0", !294, i64 0}
!294 = !{!"0x557241a9e230.w128.b0", !295, i64 0}
!295 = !{!"0x557241a9e230.w256.b0", !296, i64 0}
!296 = !{!"0x557241a9e230.w512.b0", !297, i64 0}
!297 = !{!"0x557241a9e230.w1024.b0", !298, i64 0}
!298 = !{!"0x557241a9e230", !22, i64 0}
!299 = !{!300, !300, i64 0}
!300 = !{!"0x557241a9e230.w8.b8", !291, i64 0}
!301 = !{!302, !302, i64 0}
!302 = !{!"0x557241a9e230.w8.b16", !303, i64 0}
!303 = !{!"0x557241a9e230.w16.b16", !292, i64 0}
!304 = !{!305, !305, i64 0}
!305 = !{!"0x557241a82660.w8.b0", !306, i64 0}
!306 = !{!"0x557241a82660.w16.b0", !307, i64 0}
!307 = !{!"0x557241a82660.w32.b0", !308, i64 0}
!308 = !{!"0x557241a82660.w64.b0", !309, i64 0}
!309 = !{!"0x557241a82660.w128.b0", !310, i64 0}
!310 = !{!"0x557241a82660.w256.b0", !311, i64 0}
!311 = !{!"0x557241a82660.w512.b0", !312, i64 0}
!312 = !{!"0x557241a82660.w1024.b0", !313, i64 0}
!313 = !{!"0x557241a82660", !22, i64 0}
!314 = !{!315, !315, i64 0}
!315 = !{!"0x557241a82660.w8.b8", !306, i64 0}
!316 = !{!317, !317, i64 0}
!317 = !{!"0x557241a82660.w8.b16", !318, i64 0}
!318 = !{!"0x557241a82660.w16.b16", !307, i64 0}
!319 = !{!320, !320, i64 0}
!320 = !{!"0x5572419e08b0.w8.b0", !321, i64 0}
!321 = !{!"0x5572419e08b0.w16.b0", !322, i64 0}
!322 = !{!"0x5572419e08b0.w32.b0", !323, i64 0}
!323 = !{!"0x5572419e08b0.w64.b0", !324, i64 0}
!324 = !{!"0x5572419e08b0.w128.b0", !325, i64 0}
!325 = !{!"0x5572419e08b0.w256.b0", !326, i64 0}
!326 = !{!"0x5572419e08b0.w512.b0", !327, i64 0}
!327 = !{!"0x5572419e08b0.w1024.b0", !328, i64 0}
!328 = !{!"0x5572419e08b0", !22, i64 0}
!329 = !{!330, !330, i64 0}
!330 = !{!"0x5572419e08b0.w8.b8", !321, i64 0}
!331 = !{!332, !332, i64 0}
!332 = !{!"0x5572419e08b0.w8.b16", !333, i64 0}
!333 = !{!"0x5572419e08b0.w16.b16", !322, i64 0}
!334 = !{!335, !335, i64 0}
!335 = !{!"0x55724182e4e0.w8.b0", !336, i64 0}
!336 = !{!"0x55724182e4e0.w16.b0", !337, i64 0}
!337 = !{!"0x55724182e4e0.w32.b0", !338, i64 0}
!338 = !{!"0x55724182e4e0.w64.b0", !339, i64 0}
!339 = !{!"0x55724182e4e0.w128.b0", !340, i64 0}
!340 = !{!"0x55724182e4e0.w256.b0", !341, i64 0}
!341 = !{!"0x55724182e4e0.w512.b0", !342, i64 0}
!342 = !{!"0x55724182e4e0.w1024.b0", !343, i64 0}
!343 = !{!"0x55724182e4e0", !22, i64 0}
!344 = !{!345, !345, i64 0}
!345 = !{!"0x55724182e4e0.w8.b8", !336, i64 0}
!346 = !{!347, !347, i64 0}
!347 = !{!"0x5572419a99b0.w8.b0", !348, i64 0}
!348 = !{!"0x5572419a99b0.w16.b0", !349, i64 0}
!349 = !{!"0x5572419a99b0.w32.b0", !350, i64 0}
!350 = !{!"0x5572419a99b0.w64.b0", !351, i64 0}
!351 = !{!"0x5572419a99b0.w128.b0", !352, i64 0}
!352 = !{!"0x5572419a99b0.w256.b0", !353, i64 0}
!353 = !{!"0x5572419a99b0.w512.b0", !354, i64 0}
!354 = !{!"0x5572419a99b0.w1024.b0", !355, i64 0}
!355 = !{!"0x5572419a99b0", !22, i64 0}
!356 = !{!357, !357, i64 0}
!357 = !{!"0x5572419a99b0.w8.b8", !348, i64 0}
!358 = !{!359, !359, i64 0}
!359 = !{!"0x5572419a99b0.w8.b16", !360, i64 0}
!360 = !{!"0x5572419a99b0.w16.b16", !349, i64 0}
!361 = !{!362, !362, i64 0}
!362 = !{!"0x557241cf1440.w8.b0", !363, i64 0}
!363 = !{!"0x557241cf1440.w16.b0", !364, i64 0}
!364 = !{!"0x557241cf1440.w32.b0", !365, i64 0}
!365 = !{!"0x557241cf1440.w64.b0", !366, i64 0}
!366 = !{!"0x557241cf1440.w128.b0", !367, i64 0}
!367 = !{!"0x557241cf1440.w256.b0", !368, i64 0}
!368 = !{!"0x557241cf1440.w512.b0", !369, i64 0}
!369 = !{!"0x557241cf1440.w1024.b0", !370, i64 0}
!370 = !{!"0x557241cf1440", !22, i64 0}
!371 = !{!372, !372, i64 0}
!372 = !{!"0x557241cf1440.w8.b8", !363, i64 0}
!373 = !{!374, !374, i64 0}
!374 = !{!"0x55724198a7d0.w8.b0", !375, i64 0}
!375 = !{!"0x55724198a7d0.w16.b0", !376, i64 0}
!376 = !{!"0x55724198a7d0.w32.b0", !377, i64 0}
!377 = !{!"0x55724198a7d0.w64.b0", !378, i64 0}
!378 = !{!"0x55724198a7d0.w128.b0", !379, i64 0}
!379 = !{!"0x55724198a7d0.w256.b0", !380, i64 0}
!380 = !{!"0x55724198a7d0.w512.b0", !381, i64 0}
!381 = !{!"0x55724198a7d0.w1024.b0", !382, i64 0}
!382 = !{!"0x55724198a7d0", !22, i64 0}
!383 = !{!384, !384, i64 0}
!384 = !{!"0x55724198a7d0.w8.b8", !375, i64 0}
!385 = !{!386, !386, i64 0}
!386 = !{!"0x55724198a7d0.w8.b16", !387, i64 0}
!387 = !{!"0x55724198a7d0.w16.b16", !376, i64 0}
!388 = !{!389, !389, i64 0}
!389 = !{!"0x557241a75760.w8.b0", !390, i64 0}
!390 = !{!"0x557241a75760.w16.b0", !391, i64 0}
!391 = !{!"0x557241a75760.w32.b0", !392, i64 0}
!392 = !{!"0x557241a75760.w64.b0", !393, i64 0}
!393 = !{!"0x557241a75760.w128.b0", !394, i64 0}
!394 = !{!"0x557241a75760.w256.b0", !395, i64 0}
!395 = !{!"0x557241a75760.w512.b0", !396, i64 0}
!396 = !{!"0x557241a75760.w1024.b0", !397, i64 0}
!397 = !{!"0x557241a75760", !22, i64 0}
!398 = !{!399, !399, i64 0}
!399 = !{!"0x557241a75760.w8.b8", !390, i64 0}
!400 = !{!401, !401, i64 0}
!401 = !{!"0x557241a75760.w8.b16", !402, i64 0}
!402 = !{!"0x557241a75760.w16.b16", !391, i64 0}
!403 = !{!404, !404, i64 0}
!404 = !{!"0x5572419a5230.w8.b0", !405, i64 0}
!405 = !{!"0x5572419a5230.w16.b0", !406, i64 0}
!406 = !{!"0x5572419a5230.w32.b0", !407, i64 0}
!407 = !{!"0x5572419a5230.w64.b0", !408, i64 0}
!408 = !{!"0x5572419a5230.w128.b0", !409, i64 0}
!409 = !{!"0x5572419a5230.w256.b0", !410, i64 0}
!410 = !{!"0x5572419a5230.w512.b0", !411, i64 0}
!411 = !{!"0x5572419a5230.w1024.b0", !412, i64 0}
!412 = !{!"0x5572419a5230", !22, i64 0}
!413 = !{!414, !414, i64 0}
!414 = !{!"0x5572419a5230.w8.b8", !405, i64 0}
!415 = !{!416, !416, i64 0}
!416 = !{!"0x5572419a5230.w8.b16", !417, i64 0}
!417 = !{!"0x5572419a5230.w16.b16", !406, i64 0}
!418 = !{!419, !419, i64 0}
!419 = !{!"0x5572418d2c70.w8.b0", !420, i64 0}
!420 = !{!"0x5572418d2c70.w16.b0", !421, i64 0}
!421 = !{!"0x5572418d2c70.w32.b0", !422, i64 0}
!422 = !{!"0x5572418d2c70.w64.b0", !423, i64 0}
!423 = !{!"0x5572418d2c70.w128.b0", !424, i64 0}
!424 = !{!"0x5572418d2c70.w256.b0", !425, i64 0}
!425 = !{!"0x5572418d2c70.w512.b0", !426, i64 0}
!426 = !{!"0x5572418d2c70.w1024.b0", !427, i64 0}
!427 = !{!"0x5572418d2c70", !22, i64 0}
!428 = !{!429, !429, i64 0}
!429 = !{!"0x5572418d2c70.w8.b8", !420, i64 0}
!430 = !{!431, !431, i64 0}
!431 = !{!"0x5572418d2c70.w8.b16", !432, i64 0}
!432 = !{!"0x5572418d2c70.w16.b16", !421, i64 0}
!433 = !{!434, !434, i64 0}
!434 = !{!"0x557241ee40e0.w8.b0", !435, i64 0}
!435 = !{!"0x557241ee40e0.w16.b0", !436, i64 0}
!436 = !{!"0x557241ee40e0.w32.b0", !437, i64 0}
!437 = !{!"0x557241ee40e0.w64.b0", !438, i64 0}
!438 = !{!"0x557241ee40e0.w128.b0", !439, i64 0}
!439 = !{!"0x557241ee40e0.w256.b0", !440, i64 0}
!440 = !{!"0x557241ee40e0.w512.b0", !441, i64 0}
!441 = !{!"0x557241ee40e0.w1024.b0", !442, i64 0}
!442 = !{!"0x557241ee40e0", !22, i64 0}
!443 = !{!444, !444, i64 0}
!444 = !{!"0x557241ee40e0.w8.b8", !435, i64 0}
!445 = !{!446, !446, i64 0}
!446 = !{!"0x557241ee40e0.w8.b16", !447, i64 0}
!447 = !{!"0x557241ee40e0.w16.b16", !436, i64 0}
!448 = !{!449, !449, i64 0}
!449 = !{!"0x557241c5b740.w8.b0", !450, i64 0}
!450 = !{!"0x557241c5b740.w16.b0", !451, i64 0}
!451 = !{!"0x557241c5b740.w32.b0", !452, i64 0}
!452 = !{!"0x557241c5b740.w64.b0", !453, i64 0}
!453 = !{!"0x557241c5b740.w128.b0", !454, i64 0}
!454 = !{!"0x557241c5b740.w256.b0", !455, i64 0}
!455 = !{!"0x557241c5b740.w512.b0", !456, i64 0}
!456 = !{!"0x557241c5b740.w1024.b0", !457, i64 0}
!457 = !{!"0x557241c5b740", !22, i64 0}
!458 = !{!459, !459, i64 0}
!459 = !{!"0x557241c5b740.w8.b8", !450, i64 0}
!460 = !{!461, !461, i64 0}
!461 = !{!"0x557241e782b0.w8.b0", !462, i64 0}
!462 = !{!"0x557241e782b0.w16.b0", !463, i64 0}
!463 = !{!"0x557241e782b0.w32.b0", !464, i64 0}
!464 = !{!"0x557241e782b0.w64.b0", !465, i64 0}
!465 = !{!"0x557241e782b0.w128.b0", !466, i64 0}
!466 = !{!"0x557241e782b0.w256.b0", !467, i64 0}
!467 = !{!"0x557241e782b0.w512.b0", !468, i64 0}
!468 = !{!"0x557241e782b0.w1024.b0", !469, i64 0}
!469 = !{!"0x557241e782b0", !22, i64 0}
!470 = !{!471, !471, i64 0}
!471 = !{!"0x557241e782b0.w8.b8", !462, i64 0}
!472 = !{!473, !473, i64 0}
!473 = !{!"0x557241e782b0.w8.b16", !474, i64 0}
!474 = !{!"0x557241e782b0.w16.b16", !463, i64 0}
!475 = !{!476, !476, i64 0}
!476 = !{!"0x557241eb8770.w8.b0", !477, i64 0}
!477 = !{!"0x557241eb8770.w16.b0", !478, i64 0}
!478 = !{!"0x557241eb8770.w32.b0", !479, i64 0}
!479 = !{!"0x557241eb8770.w64.b0", !480, i64 0}
!480 = !{!"0x557241eb8770.w128.b0", !481, i64 0}
!481 = !{!"0x557241eb8770.w256.b0", !482, i64 0}
!482 = !{!"0x557241eb8770.w512.b0", !483, i64 0}
!483 = !{!"0x557241eb8770.w1024.b0", !484, i64 0}
!484 = !{!"0x557241eb8770", !22, i64 0}
!485 = !{!486, !486, i64 0}
!486 = !{!"0x557241eb8770.w8.b8", !477, i64 0}
!487 = !{!488, !488, i64 0}
!488 = !{!"0x557241ea22e0.w8.b0", !489, i64 0}
!489 = !{!"0x557241ea22e0.w16.b0", !490, i64 0}
!490 = !{!"0x557241ea22e0.w32.b0", !491, i64 0}
!491 = !{!"0x557241ea22e0.w64.b0", !492, i64 0}
!492 = !{!"0x557241ea22e0.w128.b0", !493, i64 0}
!493 = !{!"0x557241ea22e0.w256.b0", !494, i64 0}
!494 = !{!"0x557241ea22e0.w512.b0", !495, i64 0}
!495 = !{!"0x557241ea22e0.w1024.b0", !496, i64 0}
!496 = !{!"0x557241ea22e0", !22, i64 0}
!497 = !{!498, !498, i64 0}
!498 = !{!"0x557241ea22e0.w8.b8", !489, i64 0}
!499 = !{!500, !500, i64 0}
!500 = !{!"0x557241ea22e0.w8.b16", !501, i64 0}
!501 = !{!"0x557241ea22e0.w16.b16", !490, i64 0}
!502 = !{!503, !503, i64 0}
!503 = !{!"0x557241edc880.w8.b0", !504, i64 0}
!504 = !{!"0x557241edc880.w16.b0", !505, i64 0}
!505 = !{!"0x557241edc880.w32.b0", !506, i64 0}
!506 = !{!"0x557241edc880.w64.b0", !507, i64 0}
!507 = !{!"0x557241edc880.w128.b0", !508, i64 0}
!508 = !{!"0x557241edc880.w256.b0", !509, i64 0}
!509 = !{!"0x557241edc880.w512.b0", !510, i64 0}
!510 = !{!"0x557241edc880.w1024.b0", !511, i64 0}
!511 = !{!"0x557241edc880", !22, i64 0}
!512 = !{!513, !513, i64 0}
!513 = !{!"0x557241edc880.w8.b8", !504, i64 0}
!514 = !{!515, !515, i64 0}
!515 = !{!"0x557241edc880.w8.b16", !516, i64 0}
!516 = !{!"0x557241edc880.w16.b16", !505, i64 0}
!517 = !{!518, !518, i64 0}
!518 = !{!"0x557241c9bba0.w8.b0", !519, i64 0}
!519 = !{!"0x557241c9bba0.w16.b0", !520, i64 0}
!520 = !{!"0x557241c9bba0.w32.b0", !521, i64 0}
!521 = !{!"0x557241c9bba0.w64.b0", !522, i64 0}
!522 = !{!"0x557241c9bba0.w128.b0", !523, i64 0}
!523 = !{!"0x557241c9bba0.w256.b0", !524, i64 0}
!524 = !{!"0x557241c9bba0.w512.b0", !525, i64 0}
!525 = !{!"0x557241c9bba0.w1024.b0", !526, i64 0}
!526 = !{!"0x557241c9bba0", !22, i64 0}
!527 = !{!528, !528, i64 0}
!528 = !{!"0x557241c9bba0.w8.b8", !519, i64 0}
!529 = !{!530, !530, i64 0}
!530 = !{!"0x557241c9bba0.w8.b16", !531, i64 0}
!531 = !{!"0x557241c9bba0.w16.b16", !520, i64 0}
!532 = !{!533, !533, i64 0}
!533 = !{!"0x557241a48d80.w8.b0", !534, i64 0}
!534 = !{!"0x557241a48d80.w16.b0", !535, i64 0}
!535 = !{!"0x557241a48d80.w32.b0", !536, i64 0}
!536 = !{!"0x557241a48d80.w64.b0", !537, i64 0}
!537 = !{!"0x557241a48d80.w128.b0", !538, i64 0}
!538 = !{!"0x557241a48d80.w256.b0", !539, i64 0}
!539 = !{!"0x557241a48d80.w512.b0", !540, i64 0}
!540 = !{!"0x557241a48d80.w1024.b0", !541, i64 0}
!541 = !{!"0x557241a48d80", !22, i64 0}
!542 = !{!543, !543, i64 0}
!543 = !{!"0x557241a48d80.w8.b8", !534, i64 0}
!544 = !{!545, !545, i64 0}
!545 = !{!"0x557241a48d80.w8.b16", !546, i64 0}
!546 = !{!"0x557241a48d80.w16.b16", !535, i64 0}
!547 = !{!548, !548, i64 0}
!548 = !{!"0x557241d981c0.w8.b0", !549, i64 0}
!549 = !{!"0x557241d981c0.w16.b0", !550, i64 0}
!550 = !{!"0x557241d981c0.w32.b0", !551, i64 0}
!551 = !{!"0x557241d981c0.w64.b0", !552, i64 0}
!552 = !{!"0x557241d981c0.w128.b0", !553, i64 0}
!553 = !{!"0x557241d981c0.w256.b0", !554, i64 0}
!554 = !{!"0x557241d981c0.w512.b0", !555, i64 0}
!555 = !{!"0x557241d981c0.w1024.b0", !556, i64 0}
!556 = !{!"0x557241d981c0", !22, i64 0}
!557 = !{!558, !558, i64 0}
!558 = !{!"0x557241d981c0.w8.b8", !549, i64 0}
!559 = !{!560, !560, i64 0}
!560 = !{!"0x557241d981c0.w8.b16", !561, i64 0}
!561 = !{!"0x557241d981c0.w16.b16", !550, i64 0}
!562 = !{!563, !563, i64 0}
!563 = !{!"0x557241981920.w8.b0", !564, i64 0}
!564 = !{!"0x557241981920.w16.b0", !565, i64 0}
!565 = !{!"0x557241981920.w32.b0", !566, i64 0}
!566 = !{!"0x557241981920.w64.b0", !567, i64 0}
!567 = !{!"0x557241981920.w128.b0", !568, i64 0}
!568 = !{!"0x557241981920.w256.b0", !569, i64 0}
!569 = !{!"0x557241981920.w512.b0", !570, i64 0}
!570 = !{!"0x557241981920.w1024.b0", !571, i64 0}
!571 = !{!"0x557241981920", !22, i64 0}
!572 = !{!573, !573, i64 0}
!573 = !{!"0x557241981920.w8.b8", !564, i64 0}
!574 = !{!575, !575, i64 0}
!575 = !{!"0x557241e1dc00.w8.b0", !576, i64 0}
!576 = !{!"0x557241e1dc00.w16.b0", !577, i64 0}
!577 = !{!"0x557241e1dc00.w32.b0", !578, i64 0}
!578 = !{!"0x557241e1dc00.w64.b0", !579, i64 0}
!579 = !{!"0x557241e1dc00.w128.b0", !580, i64 0}
!580 = !{!"0x557241e1dc00.w256.b0", !581, i64 0}
!581 = !{!"0x557241e1dc00.w512.b0", !582, i64 0}
!582 = !{!"0x557241e1dc00.w1024.b0", !583, i64 0}
!583 = !{!"0x557241e1dc00", !22, i64 0}
!584 = !{!585, !585, i64 0}
!585 = !{!"0x557241e1dc00.w8.b8", !576, i64 0}
!586 = !{!587, !587, i64 0}
!587 = !{!"0x557241e1dc00.w8.b16", !588, i64 0}
!588 = !{!"0x557241e1dc00.w16.b16", !577, i64 0}
!589 = !{!590, !590, i64 0}
!590 = !{!"0x557241a2fed0.w8.b0", !591, i64 0}
!591 = !{!"0x557241a2fed0.w16.b0", !592, i64 0}
!592 = !{!"0x557241a2fed0.w32.b0", !593, i64 0}
!593 = !{!"0x557241a2fed0.w64.b0", !594, i64 0}
!594 = !{!"0x557241a2fed0.w128.b0", !595, i64 0}
!595 = !{!"0x557241a2fed0.w256.b0", !596, i64 0}
!596 = !{!"0x557241a2fed0.w512.b0", !597, i64 0}
!597 = !{!"0x557241a2fed0.w1024.b0", !598, i64 0}
!598 = !{!"0x557241a2fed0", !22, i64 0}
!599 = !{!600, !600, i64 0}
!600 = !{!"0x557241a2fed0.w8.b8", !591, i64 0}
!601 = !{!602, !602, i64 0}
!602 = !{!"0x557241a2fd00.w8.b0", !603, i64 0}
!603 = !{!"0x557241a2fd00.w16.b0", !604, i64 0}
!604 = !{!"0x557241a2fd00.w32.b0", !605, i64 0}
!605 = !{!"0x557241a2fd00.w64.b0", !606, i64 0}
!606 = !{!"0x557241a2fd00.w128.b0", !607, i64 0}
!607 = !{!"0x557241a2fd00.w256.b0", !608, i64 0}
!608 = !{!"0x557241a2fd00.w512.b0", !609, i64 0}
!609 = !{!"0x557241a2fd00.w1024.b0", !610, i64 0}
!610 = !{!"0x557241a2fd00", !22, i64 0}
!611 = !{!612, !612, i64 0}
!612 = !{!"0x557241a2fd00.w8.b8", !603, i64 0}
!613 = !{!614, !614, i64 0}
!614 = !{!"0x557241a2fd00.w8.b16", !615, i64 0}
!615 = !{!"0x557241a2fd00.w16.b16", !604, i64 0}
!616 = !{!617, !617, i64 0}
!617 = !{!"0x557241f069e0.w8.b8", !618, i64 0}
!618 = !{!"0x557241f069e0.w16.b0", !619, i64 0}
!619 = !{!"0x557241f069e0.w32.b0", !620, i64 0}
!620 = !{!"0x557241f069e0.w64.b0", !621, i64 0}
!621 = !{!"0x557241f069e0.w128.b0", !622, i64 0}
!622 = !{!"0x557241f069e0.w256.b0", !623, i64 0}
!623 = !{!"0x557241f069e0.w512.b0", !624, i64 0}
!624 = !{!"0x557241f069e0.w1024.b0", !625, i64 0}
!625 = !{!"0x557241f069e0", !22, i64 0}
!626 = !{!627, !627, i64 0}
!627 = !{!"0x557241f069e0.w8.b16", !628, i64 0}
!628 = !{!"0x557241f069e0.w16.b16", !619, i64 0}
!629 = !{!630, !630, i64 0}
!630 = !{!"0x557241949010.w16.b0", !631, i64 0}
!631 = !{!"0x557241949010.w32.b0", !632, i64 0}
!632 = !{!"0x557241949010.w64.b0", !633, i64 0}
!633 = !{!"0x557241949010.w128.b0", !634, i64 0}
!634 = !{!"0x557241949010.w256.b0", !635, i64 0}
!635 = !{!"0x557241949010.w512.b0", !636, i64 0}
!636 = !{!"0x557241949010.w1024.b0", !637, i64 0}
!637 = !{!"0x557241949010", !22, i64 0}
!638 = !{!639, !639, i64 0}
!639 = !{!"0x557241949010.w16.b16", !631, i64 0}
!640 = !{!641, !641, i64 0}
!641 = !{!"0x557241949010.w16.b32", !642, i64 0}
!642 = !{!"0x557241949010.w32.b32", !632, i64 0}
!643 = !{!644, !644, i64 0}
!644 = !{!"0x557241949010.w16.b48", !642, i64 0}
!645 = !{!646, !646, i64 0}
!646 = !{!"0x557241949010.w4.b64", !647, i64 0}
!647 = !{!"0x557241949010.w8.b64", !648, i64 0}
!648 = !{!"0x557241949010.w16.b64", !649, i64 0}
!649 = !{!"0x557241949010.w32.b64", !650, i64 0}
!650 = !{!"0x557241949010.w64.b64", !633, i64 0}
!651 = !{!652, !652, i64 0}
!652 = !{!"0x557241949010.w4.b68", !647, i64 0}
!653 = !{!654, !654, i64 0}
!654 = !{!"0x557241949010.w4.b72", !655, i64 0}
!655 = !{!"0x557241949010.w8.b72", !648, i64 0}
