Advertisement
Guest User

Untitled

a guest
Mar 9th, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
LLVM 28.17 KB | None | 0 0
  1. define void @query_template_0(i8** nocapture %byte_stream, i8* nocapture %literals, i64* nocapture %row_count_ptr, i64* nocapture %frag_row_off_ptr, i32* %max_matched_ptr, i64* %agg_init_val, i64** %out, i64** %unused, i32 %frag_idx, i64* %join_hash_tables, i32* %total_matched, i32* %error_code) {
  2. .entry:
  3.   %0 = getelementptr i8*, i8** %byte_stream, i32 0
  4.   %1 = load i8*, i8** %0
  5.   %2 = getelementptr i8*, i8** %byte_stream, i32 1
  6.   %3 = load i8*, i8** %2
  7.   %row_count = load i64, i64* %row_count_ptr, align 8
  8.   %pos_start = call i32 @pos_start_impl(i32* %error_code)
  9.   %pos_step = call i32 @pos_step_impl()
  10.   %4 = sext i32 %pos_start to i64
  11.   %5 = icmp slt i64 %4, %row_count
  12.   br i1 %5, label %.loop.preheader, label %.exit
  13.  
  14. .loop.preheader:                                  ; preds = %.entry
  15.   %6 = sext i32 %pos_step to i64
  16.   br label %.for.body
  17.  
  18. .for.body:                                        ; preds = %11, %.loop.preheader
  19.   %pos = phi i64 [ %4, %.loop.preheader ], [ %12, %11 ]
  20.   %7 = load i64*, i64** %out
  21.   %8 = call i32 @row_func(i64* %7, i64* %agg_init_val, i64 %pos, i64* %frag_row_off_ptr, i64* %row_count_ptr, i8* %literals, i8* %1, i8* %3, i64* %join_hash_tables)
  22.   %9 = call i32 @record_error_code(i32 %8, i32* %error_code)
  23.   %10 = icmp ne i32 %9, 0
  24.   br i1 %10, label %.error_exit, label %11
  25.  
  26. .error_exit:                                      ; preds = %.for.body
  27.   ret void
  28.  
  29. ; <label>:11:                                     ; preds = %.for.body
  30.   %12 = add nsw i64 %pos, %6
  31.   %13 = icmp slt i64 %12, %row_count
  32.   br i1 %13, label %.for.body, label %._crit_edge
  33.  
  34. ._crit_edge:                                      ; preds = %11
  35.   br label %.exit
  36.  
  37. .exit:                                            ; preds = %._crit_edge, %.entry
  38.   ret void
  39. }
  40.  
  41. ; Function Attrs: alwaysinline
  42. define i32 @row_func(i64* %out, i64* %agg_init_val, i64 %pos, i64* %frag_row_off, i64* %num_rows_per_scan, i8* %literals, i8* %col_buf0, i8* %col_buf1, i64* %join_hash_tables) #22 {
  43. entry:
  44.   %0 = call i64 @fixed_width_int_decode(i8* %col_buf0, i32 8, i64 %pos)
  45.   %1 = icmp eq i64 %0, -9223372036854775808
  46.   %2 = xor i1 %1, true
  47.   %3 = and i1 true, %2
  48.   br i1 %3, label %filter_true, label %filter_false
  49.  
  50. filter_true:                                      ; preds = %entry
  51.   %4 = alloca i64, i32 2
  52.   %5 = getelementptr i8, i8* %literals, i16 0
  53.   %6 = bitcast i8* %5 to i64*
  54.   %7 = load i64, i64* %6
  55.   %8 = getelementptr i8, i8* %literals, i16 0
  56.   %9 = bitcast i8* %8 to i64*
  57.   %10 = load i64, i64* %9
  58.   %11 = getelementptr i8, i8* %literals, i16 8
  59.   %12 = bitcast i8* %11 to i64*
  60.   %13 = load i64, i64* %12
  61.   %14 = getelementptr i8, i8* %literals, i16 0
  62.   %15 = bitcast i8* %14 to i64*
  63.   %16 = load i64, i64* %15
  64.   %17 = call i64 @DateDiffNullable(i32 10, i64 %16, i64 %0, i64 -9223372036854775808)
  65.   %18 = getelementptr i8, i8* %literals, i16 8
  66.   %19 = bitcast i8* %18 to i64*
  67.   %20 = load i64, i64* %19
  68.   %21 = icmp eq i64 %17, -9223372036854775808
  69.   %22 = icmp eq i64 %20, -9223372036854775808
  70.   %23 = or i1 %21, %22
  71.   br i1 %23, label %mul_ok, label %operands_not_null
  72.  
  73. filter_false:                                     ; preds = %div_ok65, %entry
  74.   ret i32 0
  75.  
  76. end_case:                                         ; preds = %args_null37, %add_ok
  77.   %24 = phi i64 [ %183, %add_ok ], [ %245, %args_null37 ]
  78.   %25 = getelementptr i8, i8* %literals, i16 0
  79.   %26 = bitcast i8* %25 to i64*
  80.   %27 = load i64, i64* %26
  81.   %28 = icmp eq i64 %24, -9223372036854775808
  82.   %29 = icmp eq i64 %27, -9223372036854775808
  83.   %30 = or i1 %28, %29
  84.   br i1 %30, label %add_ok38, label %operands_not_null39
  85.  
  86. mul_ok:                                           ; preds = %mul_check, %operands_not_null, %filter_true
  87.   %31 = call i64 @mul_int64_t_nullable_lhs(i64 %17, i64 %20, i64 -9223372036854775808)
  88.   %32 = getelementptr i8, i8* %literals, i16 0
  89.   %33 = bitcast i8* %32 to i64*
  90.   %34 = load i64, i64* %33
  91.   %35 = icmp eq i64 %31, -9223372036854775808
  92.   %36 = icmp eq i64 %34, -9223372036854775808
  93.   %37 = or i1 %35, %36
  94.   br i1 %37, label %sub_ok, label %operands_not_null1
  95.  
  96. operands_not_null:                                ; preds = %filter_true
  97.   %38 = icmp eq i64 %20, 0
  98.   br i1 %38, label %mul_ok, label %mul_check
  99.  
  100. mul_fail:                                         ; preds = %mul_check
  101.   ret i32 7
  102.  
  103. mul_check:                                        ; preds = %operands_not_null
  104.   %39 = icmp slt i64 %20, 0
  105.   %40 = sub i64 0, %20
  106.   %41 = select i1 %39, i64 %40, i64 %20
  107.   %42 = sub i64 0, %17
  108.   %43 = select i1 %39, i64 %42, i64 %17
  109.   %44 = sdiv i64 -9223372036854775808, %41
  110.   %45 = icmp slt i64 %43, %44
  111.   %46 = sdiv i64 9223372036854775807, %41
  112.   %47 = icmp sgt i64 %43, %46
  113.   %48 = or i1 %47, %45
  114.   br i1 %48, label %mul_fail, label %mul_ok
  115.  
  116. sub_ok:                                           ; preds = %operands_not_null1, %mul_ok
  117.   %49 = call i64 @sub_int64_t_nullable_lhs(i64 %31, i64 %34, i64 -9223372036854775808)
  118.   %50 = call double @cast_int64_t_to_double_nullable(i64 %49, i64 -9223372036854775808, double 0x10000000000000)
  119.   %51 = getelementptr i8, i8* %literals, i16 16
  120.   %52 = bitcast i8* %51 to double*
  121.   %53 = load double, double* %52
  122.   %54 = fcmp oeq double %50, 0x10000000000000
  123.   %55 = fcmp oeq double %53, 0x10000000000000
  124.   %56 = or i1 %54, %55
  125.   br i1 %56, label %div_ok, label %operands_not_null2
  126.  
  127. operands_not_null1:                               ; preds = %mul_ok
  128.   %57 = add i64 9223372036854775807, %34
  129.   %58 = icmp sgt i64 %31, %57
  130.   %59 = icmp slt i64 %34, 0
  131.   %60 = and i1 %59, %58
  132.   %61 = add i64 -9223372036854775808, %34
  133.   %62 = icmp slt i64 %31, %61
  134.   %63 = icmp sgt i64 %34, 0
  135.   %64 = and i1 %63, %62
  136.   %65 = or i1 %60, %64
  137.   br i1 %65, label %sub_fail, label %sub_ok
  138.  
  139. sub_fail:                                         ; preds = %operands_not_null1
  140.   ret i32 7
  141.  
  142. div_ok:                                           ; preds = %operands_not_null2, %sub_ok
  143.   %66 = call double @div_double_nullable(double %50, double %53, double 0x10000000000000)
  144.   %67 = fcmp oeq double %66, 0x10000000000000
  145.   %68 = or i1 false, %67
  146.   %69 = xor i1 %68, true
  147.   br i1 %69, label %args_notnull, label %args_null
  148.  
  149. operands_not_null2:                               ; preds = %sub_ok
  150.   %70 = fcmp one double %53, 0.000000e+00
  151.   br i1 %70, label %div_ok, label %div_zero
  152.  
  153. div_zero:                                         ; preds = %operands_not_null2
  154.   ret i32 1
  155.  
  156. args_notnull:                                     ; preds = %div_ok
  157.   %71 = call double @Ceil(double %66)
  158.   br label %args_null
  159.  
  160. args_null:                                        ; preds = %args_notnull, %div_ok
  161.   %72 = phi double [ %71, %args_notnull ], [ 0x10000000000000, %div_ok ]
  162.   %73 = call i64 @cast_double_to_int64_t_nullable(double %72, double 0x10000000000000, i64 -9223372036854775808)
  163.   %74 = call double @cast_int64_t_to_double_nullable(i64 %73, i64 -9223372036854775808, double 0x10000000000000)
  164.   %75 = getelementptr i8, i8* %literals, i16 0
  165.   %76 = bitcast i8* %75 to i64*
  166.   %77 = load i64, i64* %76
  167.   %78 = call i64 @DateDiffNullable(i32 10, i64 %77, i64 %0, i64 -9223372036854775808)
  168.   %79 = getelementptr i8, i8* %literals, i16 8
  169.   %80 = bitcast i8* %79 to i64*
  170.   %81 = load i64, i64* %80
  171.   %82 = icmp eq i64 %78, -9223372036854775808
  172.   %83 = icmp eq i64 %81, -9223372036854775808
  173.   %84 = or i1 %82, %83
  174.   br i1 %84, label %mul_ok3, label %operands_not_null4
  175.  
  176. mul_ok3:                                          ; preds = %mul_check6, %operands_not_null4, %args_null
  177.   %85 = call i64 @mul_int64_t_nullable_lhs(i64 %78, i64 %81, i64 -9223372036854775808)
  178.   %86 = getelementptr i8, i8* %literals, i16 0
  179.   %87 = bitcast i8* %86 to i64*
  180.   %88 = load i64, i64* %87
  181.   %89 = icmp eq i64 %85, -9223372036854775808
  182.   %90 = icmp eq i64 %88, -9223372036854775808
  183.   %91 = or i1 %89, %90
  184.   br i1 %91, label %sub_ok7, label %operands_not_null8
  185.  
  186. operands_not_null4:                               ; preds = %args_null
  187.   %92 = icmp eq i64 %81, 0
  188.   br i1 %92, label %mul_ok3, label %mul_check6
  189.  
  190. mul_fail5:                                        ; preds = %mul_check6
  191.   ret i32 7
  192.  
  193. mul_check6:                                       ; preds = %operands_not_null4
  194.   %93 = icmp slt i64 %81, 0
  195.   %94 = sub i64 0, %81
  196.   %95 = select i1 %93, i64 %94, i64 %81
  197.   %96 = sub i64 0, %78
  198.   %97 = select i1 %93, i64 %96, i64 %78
  199.   %98 = sdiv i64 -9223372036854775808, %95
  200.   %99 = icmp slt i64 %97, %98
  201.   %100 = sdiv i64 9223372036854775807, %95
  202.   %101 = icmp sgt i64 %97, %100
  203.   %102 = or i1 %101, %99
  204.   br i1 %102, label %mul_fail5, label %mul_ok3
  205.  
  206. sub_ok7:                                          ; preds = %operands_not_null8, %mul_ok3
  207.   %103 = call i64 @sub_int64_t_nullable_lhs(i64 %85, i64 %88, i64 -9223372036854775808)
  208.   %104 = call double @cast_int64_t_to_double_nullable(i64 %103, i64 -9223372036854775808, double 0x10000000000000)
  209.   %105 = getelementptr i8, i8* %literals, i16 16
  210.   %106 = bitcast i8* %105 to double*
  211.   %107 = load double, double* %106
  212.   %108 = fcmp oeq double %104, 0x10000000000000
  213.   %109 = fcmp oeq double %107, 0x10000000000000
  214.   %110 = or i1 %108, %109
  215.   br i1 %110, label %div_ok10, label %operands_not_null11
  216.  
  217. operands_not_null8:                               ; preds = %mul_ok3
  218.   %111 = add i64 9223372036854775807, %88
  219.   %112 = icmp sgt i64 %85, %111
  220.   %113 = icmp slt i64 %88, 0
  221.   %114 = and i1 %113, %112
  222.   %115 = add i64 -9223372036854775808, %88
  223.   %116 = icmp slt i64 %85, %115
  224.   %117 = icmp sgt i64 %88, 0
  225.   %118 = and i1 %117, %116
  226.   %119 = or i1 %114, %118
  227.   br i1 %119, label %sub_fail9, label %sub_ok7
  228.  
  229. sub_fail9:                                        ; preds = %operands_not_null8
  230.   ret i32 7
  231.  
  232. div_ok10:                                         ; preds = %operands_not_null11, %sub_ok7
  233.   %120 = call double @div_double_nullable(double %104, double %107, double 0x10000000000000)
  234.   %121 = call i8 @eq_double_nullable(double %74, double %120, double 0x10000000000000, i8 -128)
  235.   %122 = icmp sgt i8 %121, 0
  236.   br i1 %122, label %then_case, label %when_case
  237.  
  238. operands_not_null11:                              ; preds = %sub_ok7
  239.   %123 = fcmp one double %107, 0.000000e+00
  240.   br i1 %123, label %div_ok10, label %div_zero12
  241.  
  242. div_zero12:                                       ; preds = %operands_not_null11
  243.   ret i32 1
  244.  
  245. then_case:                                        ; preds = %div_ok10
  246.   %124 = getelementptr i8, i8* %literals, i16 0
  247.   %125 = bitcast i8* %124 to i64*
  248.   %126 = load i64, i64* %125
  249.   %127 = call i64 @DateDiffNullable(i32 10, i64 %126, i64 %0, i64 -9223372036854775808)
  250.   %128 = getelementptr i8, i8* %literals, i16 8
  251.   %129 = bitcast i8* %128 to i64*
  252.   %130 = load i64, i64* %129
  253.   %131 = icmp eq i64 %127, -9223372036854775808
  254.   %132 = icmp eq i64 %130, -9223372036854775808
  255.   %133 = or i1 %131, %132
  256.   br i1 %133, label %mul_ok13, label %operands_not_null14
  257.  
  258. mul_ok13:                                         ; preds = %mul_check16, %operands_not_null14, %then_case
  259.   %134 = call i64 @mul_int64_t_nullable_lhs(i64 %127, i64 %130, i64 -9223372036854775808)
  260.   %135 = getelementptr i8, i8* %literals, i16 0
  261.   %136 = bitcast i8* %135 to i64*
  262.   %137 = load i64, i64* %136
  263.   %138 = icmp eq i64 %134, -9223372036854775808
  264.   %139 = icmp eq i64 %137, -9223372036854775808
  265.   %140 = or i1 %138, %139
  266.   br i1 %140, label %sub_ok17, label %operands_not_null18
  267.  
  268. operands_not_null14:                              ; preds = %then_case
  269.   %141 = icmp eq i64 %130, 0
  270.   br i1 %141, label %mul_ok13, label %mul_check16
  271.  
  272. mul_fail15:                                       ; preds = %mul_check16
  273.   ret i32 7
  274.  
  275. mul_check16:                                      ; preds = %operands_not_null14
  276.   %142 = icmp slt i64 %130, 0
  277.   %143 = sub i64 0, %130
  278.   %144 = select i1 %142, i64 %143, i64 %130
  279.   %145 = sub i64 0, %127
  280.   %146 = select i1 %142, i64 %145, i64 %127
  281.   %147 = sdiv i64 -9223372036854775808, %144
  282.   %148 = icmp slt i64 %146, %147
  283.   %149 = sdiv i64 9223372036854775807, %144
  284.   %150 = icmp sgt i64 %146, %149
  285.   %151 = or i1 %150, %148
  286.   br i1 %151, label %mul_fail15, label %mul_ok13
  287.  
  288. sub_ok17:                                         ; preds = %operands_not_null18, %mul_ok13
  289.   %152 = call i64 @sub_int64_t_nullable_lhs(i64 %134, i64 %137, i64 -9223372036854775808)
  290.   %153 = call double @cast_int64_t_to_double_nullable(i64 %152, i64 -9223372036854775808, double 0x10000000000000)
  291.   %154 = getelementptr i8, i8* %literals, i16 16
  292.   %155 = bitcast i8* %154 to double*
  293.   %156 = load double, double* %155
  294.   %157 = fcmp oeq double %153, 0x10000000000000
  295.   %158 = fcmp oeq double %156, 0x10000000000000
  296.   %159 = or i1 %157, %158
  297.   br i1 %159, label %div_ok20, label %operands_not_null21
  298.  
  299. operands_not_null18:                              ; preds = %mul_ok13
  300.   %160 = add i64 9223372036854775807, %137
  301.   %161 = icmp sgt i64 %134, %160
  302.   %162 = icmp slt i64 %137, 0
  303.   %163 = and i1 %162, %161
  304.   %164 = add i64 -9223372036854775808, %137
  305.   %165 = icmp slt i64 %134, %164
  306.   %166 = icmp sgt i64 %137, 0
  307.   %167 = and i1 %166, %165
  308.   %168 = or i1 %163, %167
  309.   br i1 %168, label %sub_fail19, label %sub_ok17
  310.  
  311. sub_fail19:                                       ; preds = %operands_not_null18
  312.   ret i32 7
  313.  
  314. div_ok20:                                         ; preds = %operands_not_null21, %sub_ok17
  315.   %169 = call double @div_double_nullable(double %153, double %156, double 0x10000000000000)
  316.   %170 = fcmp oeq double %169, 0x10000000000000
  317.   %171 = or i1 false, %170
  318.   %172 = xor i1 %171, true
  319.   br i1 %172, label %args_notnull23, label %args_null24
  320.  
  321. operands_not_null21:                              ; preds = %sub_ok17
  322.   %173 = fcmp one double %156, 0.000000e+00
  323.   br i1 %173, label %div_ok20, label %div_zero22
  324.  
  325. div_zero22:                                       ; preds = %operands_not_null21
  326.   ret i32 1
  327.  
  328. args_notnull23:                                   ; preds = %div_ok20
  329.   %174 = call double @Ceil(double %169)
  330.   br label %args_null24
  331.  
  332. args_null24:                                      ; preds = %args_notnull23, %div_ok20
  333.   %175 = phi double [ %174, %args_notnull23 ], [ 0x10000000000000, %div_ok20 ]
  334.   %176 = call i64 @cast_double_to_int64_t_nullable(double %175, double 0x10000000000000, i64 -9223372036854775808)
  335.   %177 = getelementptr i8, i8* %literals, i16 24
  336.   %178 = bitcast i8* %177 to i64*
  337.   %179 = load i64, i64* %178
  338.   %180 = icmp eq i64 %176, -9223372036854775808
  339.   %181 = icmp eq i64 %179, -9223372036854775808
  340.   %182 = or i1 %180, %181
  341.   br i1 %182, label %add_ok, label %operands_not_null25
  342.  
  343. add_ok:                                           ; preds = %operands_not_null25, %args_null24
  344.   %183 = call i64 @add_int64_t_nullable_lhs(i64 %176, i64 %179, i64 -9223372036854775808)
  345.   br label %end_case
  346.  
  347. operands_not_null25:                              ; preds = %args_null24
  348.   %184 = sub i64 9223372036854775807, %176
  349.   %185 = icmp sgt i64 %179, %184
  350.   %186 = icmp sgt i64 %176, 0
  351.   %187 = and i1 %186, %185
  352.   %188 = sub i64 -9223372036854775808, %176
  353.   %189 = icmp slt i64 %179, %188
  354.   %190 = icmp slt i64 %176, 0
  355.   %191 = and i1 %190, %189
  356.   %192 = or i1 %187, %191
  357.   br i1 %192, label %add_fail, label %add_ok
  358.  
  359. add_fail:                                         ; preds = %operands_not_null25
  360.   ret i32 7
  361.  
  362. when_case:                                        ; preds = %div_ok10
  363.   %193 = getelementptr i8, i8* %literals, i16 0
  364.   %194 = bitcast i8* %193 to i64*
  365.   %195 = load i64, i64* %194
  366.   %196 = call i64 @DateDiffNullable(i32 10, i64 %195, i64 %0, i64 -9223372036854775808)
  367.   %197 = getelementptr i8, i8* %literals, i16 8
  368.   %198 = bitcast i8* %197 to i64*
  369.   %199 = load i64, i64* %198
  370.   %200 = icmp eq i64 %196, -9223372036854775808
  371.   %201 = icmp eq i64 %199, -9223372036854775808
  372.   %202 = or i1 %200, %201
  373.   br i1 %202, label %mul_ok26, label %operands_not_null27
  374.  
  375. mul_ok26:                                         ; preds = %mul_check29, %operands_not_null27, %when_case
  376.   %203 = call i64 @mul_int64_t_nullable_lhs(i64 %196, i64 %199, i64 -9223372036854775808)
  377.   %204 = getelementptr i8, i8* %literals, i16 0
  378.   %205 = bitcast i8* %204 to i64*
  379.   %206 = load i64, i64* %205
  380.   %207 = icmp eq i64 %203, -9223372036854775808
  381.   %208 = icmp eq i64 %206, -9223372036854775808
  382.   %209 = or i1 %207, %208
  383.   br i1 %209, label %sub_ok30, label %operands_not_null31
  384.  
  385. operands_not_null27:                              ; preds = %when_case
  386.   %210 = icmp eq i64 %199, 0
  387.   br i1 %210, label %mul_ok26, label %mul_check29
  388.  
  389. mul_fail28:                                       ; preds = %mul_check29
  390.   ret i32 7
  391.  
  392. mul_check29:                                      ; preds = %operands_not_null27
  393.   %211 = icmp slt i64 %199, 0
  394.   %212 = sub i64 0, %199
  395.   %213 = select i1 %211, i64 %212, i64 %199
  396.   %214 = sub i64 0, %196
  397.   %215 = select i1 %211, i64 %214, i64 %196
  398.   %216 = sdiv i64 -9223372036854775808, %213
  399.   %217 = icmp slt i64 %215, %216
  400.   %218 = sdiv i64 9223372036854775807, %213
  401.   %219 = icmp sgt i64 %215, %218
  402.   %220 = or i1 %219, %217
  403.   br i1 %220, label %mul_fail28, label %mul_ok26
  404.  
  405. sub_ok30:                                         ; preds = %operands_not_null31, %mul_ok26
  406.   %221 = call i64 @sub_int64_t_nullable_lhs(i64 %203, i64 %206, i64 -9223372036854775808)
  407.   %222 = call double @cast_int64_t_to_double_nullable(i64 %221, i64 -9223372036854775808, double 0x10000000000000)
  408.   %223 = getelementptr i8, i8* %literals, i16 16
  409.   %224 = bitcast i8* %223 to double*
  410.   %225 = load double, double* %224
  411.   %226 = fcmp oeq double %222, 0x10000000000000
  412.   %227 = fcmp oeq double %225, 0x10000000000000
  413.   %228 = or i1 %226, %227
  414.   br i1 %228, label %div_ok33, label %operands_not_null34
  415.  
  416. operands_not_null31:                              ; preds = %mul_ok26
  417.   %229 = add i64 9223372036854775807, %206
  418.   %230 = icmp sgt i64 %203, %229
  419.   %231 = icmp slt i64 %206, 0
  420.   %232 = and i1 %231, %230
  421.   %233 = add i64 -9223372036854775808, %206
  422.   %234 = icmp slt i64 %203, %233
  423.   %235 = icmp sgt i64 %206, 0
  424.   %236 = and i1 %235, %234
  425.   %237 = or i1 %232, %236
  426.   br i1 %237, label %sub_fail32, label %sub_ok30
  427.  
  428. sub_fail32:                                       ; preds = %operands_not_null31
  429.   ret i32 7
  430.  
  431. div_ok33:                                         ; preds = %operands_not_null34, %sub_ok30
  432.   %238 = call double @div_double_nullable(double %222, double %225, double 0x10000000000000)
  433.   %239 = fcmp oeq double %238, 0x10000000000000
  434.   %240 = or i1 false, %239
  435.   %241 = xor i1 %240, true
  436.   br i1 %241, label %args_notnull36, label %args_null37
  437.  
  438. operands_not_null34:                              ; preds = %sub_ok30
  439.   %242 = fcmp one double %225, 0.000000e+00
  440.   br i1 %242, label %div_ok33, label %div_zero35
  441.  
  442. div_zero35:                                       ; preds = %operands_not_null34
  443.   ret i32 1
  444.  
  445. args_notnull36:                                   ; preds = %div_ok33
  446.   %243 = call double @Ceil(double %238)
  447.   br label %args_null37
  448.  
  449. args_null37:                                      ; preds = %args_notnull36, %div_ok33
  450.   %244 = phi double [ %243, %args_notnull36 ], [ 0x10000000000000, %div_ok33 ]
  451.   %245 = call i64 @cast_double_to_int64_t_nullable(double %244, double 0x10000000000000, i64 -9223372036854775808)
  452.   br label %end_case
  453.  
  454. add_ok38:                                         ; preds = %operands_not_null39, %end_case
  455.   %246 = call i64 @add_int64_t_nullable_lhs(i64 %24, i64 %27, i64 -9223372036854775808)
  456.   %247 = getelementptr i8, i8* %literals, i16 24
  457.   %248 = bitcast i8* %247 to i64*
  458.   %249 = load i64, i64* %248
  459.   %250 = icmp eq i64 %246, -9223372036854775808
  460.   %251 = icmp eq i64 %249, -9223372036854775808
  461.   %252 = or i1 %250, %251
  462.   br i1 %252, label %sub_ok41, label %operands_not_null42
  463.  
  464. operands_not_null39:                              ; preds = %end_case
  465.   %253 = sub i64 9223372036854775807, %24
  466.   %254 = icmp sgt i64 %27, %253
  467.   %255 = icmp sgt i64 %24, 0
  468.   %256 = and i1 %255, %254
  469.   %257 = sub i64 -9223372036854775808, %24
  470.   %258 = icmp slt i64 %27, %257
  471.   %259 = icmp slt i64 %24, 0
  472.   %260 = and i1 %259, %258
  473.   %261 = or i1 %256, %260
  474.   br i1 %261, label %add_fail40, label %add_ok38
  475.  
  476. add_fail40:                                       ; preds = %operands_not_null39
  477.   ret i32 7
  478.  
  479. sub_ok41:                                         ; preds = %operands_not_null42, %add_ok38
  480.   %262 = call i64 @sub_int64_t_nullable_lhs(i64 %246, i64 %249, i64 -9223372036854775808)
  481.   %263 = getelementptr i8, i8* %literals, i16 32
  482.   %264 = bitcast i8* %263 to i64*
  483.   %265 = load i64, i64* %264
  484.   %266 = icmp eq i64 %262, -9223372036854775808
  485.   %267 = icmp eq i64 %265, -9223372036854775808
  486.   %268 = or i1 %266, %267
  487.   br i1 %268, label %mul_ok44, label %operands_not_null45
  488.  
  489. operands_not_null42:                              ; preds = %add_ok38
  490.   %269 = add i64 9223372036854775807, %249
  491.   %270 = icmp sgt i64 %246, %269
  492.   %271 = icmp slt i64 %249, 0
  493.   %272 = and i1 %271, %270
  494.   %273 = add i64 -9223372036854775808, %249
  495.   %274 = icmp slt i64 %246, %273
  496.   %275 = icmp sgt i64 %249, 0
  497.   %276 = and i1 %275, %274
  498.   %277 = or i1 %272, %276
  499.   br i1 %277, label %sub_fail43, label %sub_ok41
  500.  
  501. sub_fail43:                                       ; preds = %operands_not_null42
  502.   ret i32 7
  503.  
  504. mul_ok44:                                         ; preds = %mul_check47, %operands_not_null45, %sub_ok41
  505.   %278 = call i64 @mul_int64_t_nullable_lhs(i64 %262, i64 %265, i64 -9223372036854775808)
  506.   %279 = getelementptr i8, i8* %literals, i16 0
  507.   %280 = bitcast i8* %279 to i64*
  508.   %281 = load i64, i64* %280
  509.   %282 = icmp eq i64 %278, -9223372036854775808
  510.   %283 = icmp eq i64 %281, -9223372036854775808
  511.   %284 = or i1 %282, %283
  512.   br i1 %284, label %add_ok48, label %operands_not_null49
  513.  
  514. operands_not_null45:                              ; preds = %sub_ok41
  515.   %285 = icmp eq i64 %265, 0
  516.   br i1 %285, label %mul_ok44, label %mul_check47
  517.  
  518. mul_fail46:                                       ; preds = %mul_check47
  519.   ret i32 7
  520.  
  521. mul_check47:                                      ; preds = %operands_not_null45
  522.   %286 = icmp slt i64 %265, 0
  523.   %287 = sub i64 0, %265
  524.   %288 = select i1 %286, i64 %287, i64 %265
  525.   %289 = sub i64 0, %262
  526.   %290 = select i1 %286, i64 %289, i64 %262
  527.   %291 = sdiv i64 -9223372036854775808, %288
  528.   %292 = icmp slt i64 %290, %291
  529.   %293 = sdiv i64 9223372036854775807, %288
  530.   %294 = icmp sgt i64 %290, %293
  531.   %295 = or i1 %294, %292
  532.   br i1 %295, label %mul_fail46, label %mul_ok44
  533.  
  534. add_ok48:                                         ; preds = %operands_not_null49, %mul_ok44
  535.   %296 = call i64 @add_int64_t_nullable_lhs(i64 %278, i64 %281, i64 -9223372036854775808)
  536.   %297 = getelementptr i8, i8* %literals, i16 40
  537.   %298 = bitcast i8* %297 to i64*
  538.   %299 = load i64, i64* %298
  539.   %300 = icmp eq i64 %296, -9223372036854775808
  540.   %301 = icmp eq i64 %299, -9223372036854775808
  541.   %302 = or i1 %300, %301
  542.   br i1 %302, label %div_ok51, label %operands_not_null52
  543.  
  544. operands_not_null49:                              ; preds = %mul_ok44
  545.   %303 = sub i64 9223372036854775807, %278
  546.   %304 = icmp sgt i64 %281, %303
  547.   %305 = icmp sgt i64 %278, 0
  548.   %306 = and i1 %305, %304
  549.   %307 = sub i64 -9223372036854775808, %278
  550.   %308 = icmp slt i64 %281, %307
  551.   %309 = icmp slt i64 %278, 0
  552.   %310 = and i1 %309, %308
  553.   %311 = or i1 %306, %310
  554.   br i1 %311, label %add_fail50, label %add_ok48
  555.  
  556. add_fail50:                                       ; preds = %operands_not_null49
  557.   ret i32 7
  558.  
  559. div_ok51:                                         ; preds = %operands_not_null52, %add_ok48
  560.   %312 = call i64 @div_int64_t_nullable_lhs(i64 %296, i64 %299, i64 -9223372036854775808)
  561.   %313 = icmp eq i64 %13, -9223372036854775808
  562.   %314 = icmp eq i64 %312, -9223372036854775808
  563.   %315 = or i1 %313, %314
  564.   br i1 %315, label %mul_ok54, label %operands_not_null55
  565.  
  566. operands_not_null52:                              ; preds = %add_ok48
  567.   %316 = icmp ne i64 %299, 0
  568.   br i1 %316, label %div_ok51, label %div_zero53
  569.  
  570. div_zero53:                                       ; preds = %operands_not_null52
  571.   ret i32 1
  572.  
  573. mul_ok54:                                         ; preds = %mul_check57, %operands_not_null55, %div_ok51
  574.   %317 = call i64 @mul_int64_t_nullable_rhs(i64 %13, i64 %312, i64 -9223372036854775808)
  575.   %318 = getelementptr i8, i8* %literals, i16 8
  576.   %319 = bitcast i8* %318 to i64*
  577.   %320 = load i64, i64* %319
  578.   %321 = icmp eq i64 %317, -9223372036854775808
  579.   %322 = icmp eq i64 %320, -9223372036854775808
  580.   %323 = or i1 %321, %322
  581.   br i1 %323, label %div_ok58, label %operands_not_null59
  582.  
  583. operands_not_null55:                              ; preds = %div_ok51
  584.   %324 = icmp eq i64 %312, 0
  585.   br i1 %324, label %mul_ok54, label %mul_check57
  586.  
  587. mul_fail56:                                       ; preds = %mul_check57
  588.   ret i32 7
  589.  
  590. mul_check57:                                      ; preds = %operands_not_null55
  591.   %325 = icmp slt i64 %312, 0
  592.   %326 = sub i64 0, %312
  593.   %327 = select i1 %325, i64 %326, i64 %312
  594.   %328 = sub i64 0, %13
  595.   %329 = select i1 %325, i64 %328, i64 %13
  596.   %330 = sdiv i64 -9223372036854775808, %327
  597.   %331 = icmp slt i64 %329, %330
  598.   %332 = sdiv i64 9223372036854775807, %327
  599.   %333 = icmp sgt i64 %329, %332
  600.   %334 = or i1 %333, %331
  601.   br i1 %334, label %mul_fail56, label %mul_ok54
  602.  
  603. div_ok58:                                         ; preds = %operands_not_null59, %mul_ok54
  604.   %335 = call i64 @div_int64_t_nullable(i64 %317, i64 %320, i64 -9223372036854775808)
  605.   %336 = call i64 @DateAddNullable(i32 6, i64 %335, i64 %10, i64 -9223372036854775808)
  606.   %337 = call i64 @DateDiffNullable(i32 10, i64 %7, i64 %336, i64 -9223372036854775808)
  607.   %338 = getelementptr i8, i8* %literals, i16 8
  608.   %339 = bitcast i8* %338 to i64*
  609.   %340 = load i64, i64* %339
  610.   %341 = icmp eq i64 %337, -9223372036854775808
  611.   %342 = icmp eq i64 %340, -9223372036854775808
  612.   %343 = or i1 %341, %342
  613.   br i1 %343, label %mul_ok61, label %operands_not_null62
  614.  
  615. operands_not_null59:                              ; preds = %mul_ok54
  616.   %344 = icmp ne i64 %320, 0
  617.   br i1 %344, label %div_ok58, label %div_zero60
  618.  
  619. div_zero60:                                       ; preds = %operands_not_null59
  620.   ret i32 1
  621.  
  622. mul_ok61:                                         ; preds = %mul_check64, %operands_not_null62, %div_ok58
  623.   %345 = call i64 @mul_int64_t_nullable_lhs(i64 %337, i64 %340, i64 -9223372036854775808)
  624.   %346 = call double @cast_int64_t_to_double_nullable(i64 %345, i64 -9223372036854775808, double 0x10000000000000)
  625.   %347 = getelementptr i8, i8* %literals, i16 48
  626.   %348 = bitcast i8* %347 to double*
  627.   %349 = load double, double* %348
  628.   %350 = fcmp oeq double %346, 0x10000000000000
  629.   %351 = fcmp oeq double %349, 0x10000000000000
  630.   %352 = or i1 %350, %351
  631.   br i1 %352, label %div_ok65, label %operands_not_null66
  632.  
  633. operands_not_null62:                              ; preds = %div_ok58
  634.   %353 = icmp eq i64 %340, 0
  635.   br i1 %353, label %mul_ok61, label %mul_check64
  636.  
  637. mul_fail63:                                       ; preds = %mul_check64
  638.   ret i32 7
  639.  
  640. mul_check64:                                      ; preds = %operands_not_null62
  641.   %354 = icmp slt i64 %340, 0
  642.   %355 = sub i64 0, %340
  643.   %356 = select i1 %354, i64 %355, i64 %340
  644.   %357 = sub i64 0, %337
  645.   %358 = select i1 %354, i64 %357, i64 %337
  646.   %359 = sdiv i64 -9223372036854775808, %356
  647.   %360 = icmp slt i64 %358, %359
  648.   %361 = sdiv i64 9223372036854775807, %356
  649.   %362 = icmp sgt i64 %358, %361
  650.   %363 = or i1 %362, %360
  651.   br i1 %363, label %mul_fail63, label %mul_ok61
  652.  
  653. div_ok65:                                         ; preds = %operands_not_null66, %mul_ok61
  654.   %364 = call double @div_double_nullable(double %346, double %349, double 0x10000000000000)
  655.   %365 = call i64 @cast_double_to_int64_t_nullable(double %364, double 0x10000000000000, i64 -9223372036854775808)
  656.   %366 = getelementptr i64, i64* %4, i32 0
  657.   store i64 %365, i64* %366
  658.   %367 = call i64 @fixed_width_int_decode(i8* %col_buf1, i32 4, i64 %pos)
  659.   %368 = trunc i64 %367 to i32
  660.   %369 = sext i32 %368 to i64
  661.   %370 = getelementptr i64, i64* %4, i32 1
  662.   store i64 %369, i64* %370
  663.   %371 = bitcast i64* %out to i8*
  664.   %372 = bitcast i64* %4 to i8*
  665.   call void @linear_probabilistic_count(i8* %371, i32 1048576, i8* %372, i32 16)
  666.   br label %filter_false
  667.  
  668. operands_not_null66:                              ; preds = %mul_ok61
  669.   %373 = fcmp one double %349, 0.000000e+00
  670.   br i1 %373, label %div_ok65, label %div_zero67
  671.  
  672. div_zero67:                                       ; preds = %operands_not_null66
  673.   ret i32 1
  674. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement