--- good.txt 2023-07-20 11:56:52.032491333 -0400 +++ bad.txt 2023-07-20 11:54:21.502521991 -0400 @@ -193,7 +193,7 @@ br label %L105, !dbg !111 L105: ; preds = %L105.preheader, %merge_own - %value_phi18 = phi i64 [ %378, %merge_own ], [ 1, %L105.preheader ] + %value_phi18 = phi i64 [ %385, %merge_own ], [ 1, %L105.preheader ] %30 = add i64 %value_phi18, -1, !dbg !111 %.length21 = load i64, i64 addrspace(11)* %.length_ptr, align 8, !dbg !111, !tbaa !89, !range !92, !alias.scope !93, !noalias !94 %inbounds = icmp ult i64 %30, %.length21, !dbg !111 @@ -292,7 +292,7 @@ br label %L136, !dbg !146 L136: ; preds = %L136.preheader, %merge_own148 - %value_phi29 = phi i64 [ %418, %merge_own148 ], [ 1, %L136.preheader ] + %value_phi29 = phi i64 [ %425, %merge_own148 ], [ 1, %L136.preheader ] %79 = mul i64 %value_phi29, 5, !dbg !149 %80 = add i64 %79, -5, !dbg !149 %81 = add i64 %79, -4, !dbg !152 @@ -324,12 +324,12 @@ unreachable, !dbg !162 L175: ; preds = %pass32 - %.not954 = icmp eq i64 %380, %.zext, !dbg !164 + %.not954 = icmp eq i64 %387, %.zext, !dbg !164 br i1 %.not954, label %L177, label %L218, !dbg !165 L177: ; preds = %L175 - store i64 %381, i64* %40, align 8, !dbg !166, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %382, i64* %41, align 8, !dbg !166, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %388, i64* %40, align 8, !dbg !166, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %389, i64* %41, align 8, !dbg !166, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L192, label %L195, !dbg !168 L192: ; preds = %L177 @@ -372,13 +372,13 @@ br i1 %exactly_isa, label %L278, label %fail36, !dbg !145 L218: ; preds = %L175 - %91 = icmp ule i64 %381, %.zext, !dbg !174 + %91 = icmp ule i64 %388, %.zext, !dbg !174 %92 = xor i1 %91, %35, !dbg !175 br i1 %92, label %L249, label %L225, !dbg !175 L225: ; preds = %L218 - store i64 %381, i64* %36, align 8, !dbg !176, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %382, i64* %37, align 8, !dbg !176, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %388, i64* %36, align 8, !dbg !176, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %389, i64* %37, align 8, !dbg !176, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L240, label %L243, !dbg !178 L240: ; preds = %L225 @@ -399,8 +399,8 @@ br i1 %iscached239.not, label %notfound240, label %found242, !dbg !126 L249: ; preds = %L218 - store i64 %382, i64* %38, align 8, !dbg !180, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %381, i64* %39, align 8, !dbg !180, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %389, i64* %38, align 8, !dbg !180, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %388, i64* %39, align 8, !dbg !180, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L264, label %L267, !dbg !182 L264: ; preds = %L249 @@ -421,7 +421,7 @@ br i1 %iscached253.not, label %notfound254, label %found256, !dbg !138 L278: ; preds = %L213, %ok246, %ok260 - %value_phi38 = phi {} addrspace(10)* [ %unsafe_load0.checked244, %ok246 ], [ %427, %ok260 ], [ %87, %L213 ] + %value_phi38 = phi {} addrspace(10)* [ %unsafe_load0.checked244, %ok246 ], [ %434, %ok260 ], [ %87, %L213 ] store i64 1, i64* %memcpy_refined_dst, align 8, !dbg !184, !tbaa !154, !alias.scope !156, !noalias !157 br i1 %.not957, label %L291, label %L294, !dbg !187 @@ -456,8 +456,8 @@ br i1 %.not954, label %L337, label %L378, !dbg !165 L337: ; preds = %L335 - store i64 %381, i64* %54, align 8, !dbg !166, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %382, i64* %55, align 8, !dbg !166, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %388, i64* %54, align 8, !dbg !166, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %389, i64* %55, align 8, !dbg !166, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L352, label %L355, !dbg !168 L352: ; preds = %L337 @@ -500,13 +500,13 @@ br i1 %exactly_isa70, label %L438, label %fail71, !dbg !145 L378: ; preds = %L335 - %102 = icmp ule i64 %381, %.zext, !dbg !174 + %102 = icmp ule i64 %388, %.zext, !dbg !174 %103 = xor i1 %102, %49, !dbg !175 br i1 %103, label %L409, label %L385, !dbg !175 L385: ; preds = %L378 - store i64 %381, i64* %50, align 8, !dbg !176, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %382, i64* %51, align 8, !dbg !176, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %388, i64* %50, align 8, !dbg !176, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %389, i64* %51, align 8, !dbg !176, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L400, label %L403, !dbg !178 L400: ; preds = %L385 @@ -527,8 +527,8 @@ br i1 %iscached203.not, label %notfound204, label %found206, !dbg !126 L409: ; preds = %L378 - store i64 %382, i64* %52, align 8, !dbg !180, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %381, i64* %53, align 8, !dbg !180, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %389, i64* %52, align 8, !dbg !180, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %388, i64* %53, align 8, !dbg !180, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L424, label %L427, !dbg !182 L424: ; preds = %L409 @@ -549,7 +549,7 @@ br i1 %iscached217.not, label %notfound218, label %found220, !dbg !138 L438: ; preds = %L373, %ok210, %ok224 - %value_phi73 = phi {} addrspace(10)* [ %unsafe_load0.checked208, %ok210 ], [ %424, %ok224 ], [ %98, %L373 ] + %value_phi73 = phi {} addrspace(10)* [ %unsafe_load0.checked208, %ok210 ], [ %431, %ok224 ], [ %98, %L373 ] store i64 1, i64* %memcpy_refined_dst75, align 8, !dbg !184, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L451, label %L454, !dbg !187 @@ -570,8 +570,8 @@ br i1 %inbounds82, label %idxend85, label %oob83, !dbg !188 L478: ; preds = %L478.preheader, %pass133 - %value_phi92 = phi i64 [ %414, %pass133 ], [ 1, %L478.preheader ] - %value_phi94 = phi {} addrspace(10)* [ %413, %pass133 ], [ %397, %L478.preheader ] + %value_phi92 = phi i64 [ %421, %pass133 ], [ 1, %L478.preheader ] + %value_phi94 = phi {} addrspace(10)* [ %420, %pass133 ], [ %404, %L478.preheader ] %107 = add i64 %80, %value_phi92, !dbg !191 store i64 %107, i64* %58, align 8, !dbg !193, !tbaa !154, !alias.scope !156, !noalias !157 %108 = add i64 %107, -26, !dbg !196 @@ -585,9 +585,9 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - call void @llvm.julia.gc_preserve_end(token %401), !dbg !200 - call void @llvm.julia.gc_preserve_end(token %400), !dbg !205 - call void @llvm.julia.gc_preserve_end(token %399), !dbg !209 + call void @llvm.julia.gc_preserve_end(token %408), !dbg !200 + call void @llvm.julia.gc_preserve_end(token %407), !dbg !205 + call void @llvm.julia.gc_preserve_end(token %406), !dbg !209 %110 = addrspacecast [1 x i64]* %newstruct95 to [1 x i64] addrspace(11)*, !dbg !199 call swiftcc void @julia_throw_boundserror_1426({}*** nonnull swiftself %pgcstack, { {} addrspace(10)*, i32 } addrspace(11)* nocapture nonnull readonly %"A::Hermitian", [1 x i64] addrspace(11)* nocapture readonly %110) #3, !dbg !199 unreachable, !dbg !199 @@ -599,20 +599,20 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - call void @llvm.julia.gc_preserve_end(token %401), !dbg !200 - call void @llvm.julia.gc_preserve_end(token %400), !dbg !205 - call void @llvm.julia.gc_preserve_end(token %399), !dbg !209 + call void @llvm.julia.gc_preserve_end(token %408), !dbg !200 + call void @llvm.julia.gc_preserve_end(token %407), !dbg !205 + call void @llvm.julia.gc_preserve_end(token %406), !dbg !209 %111 = addrspacecast [2 x i64]* %newstruct99 to [2 x i64] addrspace(11)*, !dbg !213 call swiftcc void @julia_throw_boundserror_1428({}*** nonnull swiftself %pgcstack, { {} addrspace(10)*, i32 } addrspace(11)* nocapture nonnull readonly %"A::Hermitian", [2 x i64] addrspace(11)* nocapture readonly %111) #3, !dbg !213 unreachable, !dbg !213 L516: ; preds = %pass98 - %.not968 = icmp eq i64 %404, %405, !dbg !215 + %.not968 = icmp eq i64 %411, %412, !dbg !215 br i1 %.not968, label %L518, label %L559, !dbg !216 L518: ; preds = %L516 - store i64 %404, i64* %65, align 8, !dbg !217, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %405, i64* %66, align 8, !dbg !217, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %411, i64* %65, align 8, !dbg !217, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %412, i64* %66, align 8, !dbg !217, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L533, label %L536, !dbg !219 L533: ; preds = %L518 @@ -623,9 +623,9 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - call void @llvm.julia.gc_preserve_end(token %401), !dbg !200 - call void @llvm.julia.gc_preserve_end(token %400), !dbg !205 - call void @llvm.julia.gc_preserve_end(token %399), !dbg !209 + call void @llvm.julia.gc_preserve_end(token %408), !dbg !200 + call void @llvm.julia.gc_preserve_end(token %407), !dbg !205 + call void @llvm.julia.gc_preserve_end(token %406), !dbg !209 %112 = addrspacecast [2 x i64]* %newstruct103 to [2 x i64] addrspace(11)*, !dbg !219 call swiftcc void @julia_throw_boundserror_1418({}*** nonnull swiftself %pgcstack, {} addrspace(10)* nonnull %"A::Hermitian.data102.lcssa", [2 x i64] addrspace(11)* nocapture readonly %112) #3, !dbg !219 unreachable, !dbg !219 @@ -645,9 +645,9 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - call void @llvm.julia.gc_preserve_end(token %401), !dbg !200 - call void @llvm.julia.gc_preserve_end(token %400), !dbg !205 - call void @llvm.julia.gc_preserve_end(token %399), !dbg !209 + call void @llvm.julia.gc_preserve_end(token %408), !dbg !200 + call void @llvm.julia.gc_preserve_end(token %407), !dbg !205 + call void @llvm.julia.gc_preserve_end(token %406), !dbg !209 call swiftcc void @jlsys_throw_uplo_247({}*** nonnull swiftself %pgcstack) #3, !dbg !222 unreachable, !dbg !222 @@ -661,13 +661,13 @@ br i1 %exactly_isa117, label %L618, label %fail118, !dbg !203 L559: ; preds = %L516 - %117 = icmp ule i64 %404, %.zext1089, !dbg !223 - %118 = xor i1 %117, %398, !dbg !224 + %117 = icmp ule i64 %411, %.zext1089, !dbg !223 + %118 = xor i1 %117, %405, !dbg !224 br i1 %118, label %L590, label %L566, !dbg !224 L566: ; preds = %L559 - store i64 %404, i64* %61, align 8, !dbg !225, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %405, i64* %62, align 8, !dbg !225, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %411, i64* %61, align 8, !dbg !225, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %412, i64* %62, align 8, !dbg !225, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L581, label %L584, !dbg !227 L581: ; preds = %L566 @@ -678,9 +678,9 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - call void @llvm.julia.gc_preserve_end(token %401), !dbg !200 - call void @llvm.julia.gc_preserve_end(token %400), !dbg !205 - call void @llvm.julia.gc_preserve_end(token %399), !dbg !209 + call void @llvm.julia.gc_preserve_end(token %408), !dbg !200 + call void @llvm.julia.gc_preserve_end(token %407), !dbg !205 + call void @llvm.julia.gc_preserve_end(token %406), !dbg !209 %119 = addrspacecast [2 x i64]* %newstruct165 to [2 x i64] addrspace(11)*, !dbg !227 call swiftcc void @julia_throw_boundserror_1418({}*** nonnull swiftself %pgcstack, {} addrspace(10)* nonnull %"A::Hermitian.data164.lcssa", [2 x i64] addrspace(11)* nocapture readonly %119) #3, !dbg !227 unreachable, !dbg !227 @@ -691,8 +691,8 @@ br i1 %iscached167.not, label %notfound168, label %found170, !dbg !209 L590: ; preds = %L559 - store i64 %405, i64* %63, align 8, !dbg !229, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %404, i64* %64, align 8, !dbg !229, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %412, i64* %63, align 8, !dbg !229, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %411, i64* %64, align 8, !dbg !229, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L605, label %L608, !dbg !231 L605: ; preds = %L590 @@ -703,9 +703,9 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - call void @llvm.julia.gc_preserve_end(token %401), !dbg !200 - call void @llvm.julia.gc_preserve_end(token %400), !dbg !205 - call void @llvm.julia.gc_preserve_end(token %399), !dbg !209 + call void @llvm.julia.gc_preserve_end(token %408), !dbg !200 + call void @llvm.julia.gc_preserve_end(token %407), !dbg !205 + call void @llvm.julia.gc_preserve_end(token %406), !dbg !209 %120 = addrspacecast [2 x i64]* %newstruct179 to [2 x i64] addrspace(11)*, !dbg !231 call swiftcc void @julia_throw_boundserror_1418({}*** nonnull swiftself %pgcstack, {} addrspace(10)* nonnull %"A::Hermitian.data178.lcssa", [2 x i64] addrspace(11)* nocapture readonly %120) #3, !dbg !231 unreachable, !dbg !231 @@ -716,7 +716,7 @@ br i1 %iscached181.not, label %notfound182, label %found184, !dbg !205 L618: ; preds = %L554, %ok188, %ok174 - %value_phi120 = phi {} addrspace(10)* [ %unsafe_load0.checked172, %ok174 ], [ %421, %ok188 ], [ %113, %L554 ] + %value_phi120 = phi {} addrspace(10)* [ %unsafe_load0.checked172, %ok174 ], [ %428, %ok188 ], [ %113, %L554 ] %121 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185269552 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi120), !dbg !192 store i64 %value_phi92, i64* %67, align 8, !dbg !233, !tbaa !154, !alias.scope !156, !noalias !157 %122 = add i64 %value_phi92, -1, !dbg !235 @@ -730,9 +730,9 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - call void @llvm.julia.gc_preserve_end(token %401), !dbg !200 - call void @llvm.julia.gc_preserve_end(token %400), !dbg !205 - call void @llvm.julia.gc_preserve_end(token %399), !dbg !209 + call void @llvm.julia.gc_preserve_end(token %408), !dbg !200 + call void @llvm.julia.gc_preserve_end(token %407), !dbg !205 + call void @llvm.julia.gc_preserve_end(token %406), !dbg !209 %123 = addrspacecast [1 x i64]* %newstruct121 to [1 x i64] addrspace(11)*, !dbg !239 call swiftcc void @julia_throw_boundserror_1406({}*** nonnull swiftself %pgcstack, { {} addrspace(10)*, [1 x [1 x [1 x i64]]], i64, i64 } addrspace(11)* nocapture nonnull readonly %"B::SubArray", [1 x i64] addrspace(11)* nocapture readonly %123) #3, !dbg !239 unreachable, !dbg !239 @@ -745,14 +745,14 @@ br i1 %inbounds128, label %idxend131, label %oob129, !dbg !243 L654.loopexit: ; preds = %pass133 - %.lcssa1115 = phi {} addrspace(10)* [ %413, %pass133 ], !dbg !192 - call void @llvm.julia.gc_preserve_end(token %401), !dbg !200 - call void @llvm.julia.gc_preserve_end(token %400), !dbg !205 - call void @llvm.julia.gc_preserve_end(token %399), !dbg !209 + %.lcssa1115 = phi {} addrspace(10)* [ %420, %pass133 ], !dbg !192 + call void @llvm.julia.gc_preserve_end(token %408), !dbg !200 + call void @llvm.julia.gc_preserve_end(token %407), !dbg !205 + call void @llvm.julia.gc_preserve_end(token %406), !dbg !209 br label %L654, !dbg !244 L654: ; preds = %L654.loopexit, %pass87 - %value_phi137 = phi {} addrspace(10)* [ %397, %pass87 ], [ %.lcssa1115, %L654.loopexit ] + %value_phi137 = phi {} addrspace(10)* [ %404, %pass87 ], [ %.lcssa1115, %L654.loopexit ] %126 = add i64 %value_phi29, -1, !dbg !244 %.length139 = load i64, i64 addrspace(11)* %.length_ptr, align 8, !dbg !244, !tbaa !89, !range !92, !alias.scope !93, !noalias !94 %inbounds140 = icmp ult i64 %126, %.length139, !dbg !244 @@ -780,7 +780,7 @@ br label %L691, !dbg !258 L691: ; preds = %L691.preheader, %merge_own280 - %value_phi268 = phi i64 [ %431, %merge_own280 ], [ 1, %L691.preheader ] + %value_phi268 = phi i64 [ %438, %merge_own280 ], [ 1, %L691.preheader ] %133 = add i64 %value_phi268, -1, !dbg !258 %.length271 = load i64, i64 addrspace(11)* %.length_ptr, align 8, !dbg !258, !tbaa !89, !range !92, !alias.scope !93, !noalias !94 %inbounds272 = icmp ult i64 %133, %.length271, !dbg !258 @@ -879,7 +879,7 @@ br label %L722, !dbg !282 L722: ; preds = %L722.preheader, %merge_own434 - %value_phi292 = phi i64 [ %471, %merge_own434 ], [ 1, %L722.preheader ] + %value_phi292 = phi i64 [ %478, %merge_own434 ], [ 1, %L722.preheader ] %182 = mul i64 %value_phi292, 5, !dbg !284 %183 = add i64 %182, -5, !dbg !284 %184 = add i64 %182, -4, !dbg !286 @@ -911,12 +911,12 @@ unreachable, !dbg !291 L761: ; preds = %pass297 - %.not995 = icmp eq i64 %433, %.zext1091, !dbg !293 + %.not995 = icmp eq i64 %440, %.zext1091, !dbg !293 br i1 %.not995, label %L763, label %L804, !dbg !294 L763: ; preds = %L761 - store i64 %434, i64* %143, align 8, !dbg !295, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %435, i64* %144, align 8, !dbg !295, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %441, i64* %143, align 8, !dbg !295, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %442, i64* %144, align 8, !dbg !295, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L778, label %L781, !dbg !297 L778: ; preds = %L763 @@ -959,13 +959,13 @@ br i1 %exactly_isa316, label %L864, label %fail317, !dbg !281 L804: ; preds = %L761 - %194 = icmp ule i64 %434, %.zext1091, !dbg !301 + %194 = icmp ule i64 %441, %.zext1091, !dbg !301 %195 = xor i1 %194, %138, !dbg !302 br i1 %195, label %L835, label %L811, !dbg !302 L811: ; preds = %L804 - store i64 %434, i64* %139, align 8, !dbg !303, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %435, i64* %140, align 8, !dbg !303, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %441, i64* %139, align 8, !dbg !303, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %442, i64* %140, align 8, !dbg !303, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L826, label %L829, !dbg !305 L826: ; preds = %L811 @@ -986,8 +986,8 @@ br i1 %iscached525.not, label %notfound526, label %found528, !dbg !267 L835: ; preds = %L804 - store i64 %435, i64* %141, align 8, !dbg !307, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %434, i64* %142, align 8, !dbg !307, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %442, i64* %141, align 8, !dbg !307, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %441, i64* %142, align 8, !dbg !307, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L850, label %L853, !dbg !309 L850: ; preds = %L835 @@ -1008,7 +1008,7 @@ br i1 %iscached539.not, label %notfound540, label %found542, !dbg !274 L864: ; preds = %L799, %ok532, %ok546 - %value_phi319 = phi {} addrspace(10)* [ %unsafe_load0.checked530, %ok532 ], [ %480, %ok546 ], [ %190, %L799 ] + %value_phi319 = phi {} addrspace(10)* [ %unsafe_load0.checked530, %ok532 ], [ %487, %ok546 ], [ %190, %L799 ] store i64 1, i64* %memcpy_refined_dst321, align 8, !dbg !311, !tbaa !154, !alias.scope !156, !noalias !157 br i1 %.not998, label %L877, label %L880, !dbg !313 @@ -1043,8 +1043,8 @@ br i1 %.not995, label %L923, label %L964, !dbg !294 L923: ; preds = %L921 - store i64 %434, i64* %157, align 8, !dbg !295, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %435, i64* %158, align 8, !dbg !295, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %441, i64* %157, align 8, !dbg !295, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %442, i64* %158, align 8, !dbg !295, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L938, label %L941, !dbg !297 L938: ; preds = %L923 @@ -1087,13 +1087,13 @@ br i1 %exactly_isa356, label %L1024, label %fail357, !dbg !281 L964: ; preds = %L921 - %205 = icmp ule i64 %434, %.zext1091, !dbg !301 + %205 = icmp ule i64 %441, %.zext1091, !dbg !301 %206 = xor i1 %205, %152, !dbg !302 br i1 %206, label %L995, label %L971, !dbg !302 L971: ; preds = %L964 - store i64 %434, i64* %153, align 8, !dbg !303, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %435, i64* %154, align 8, !dbg !303, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %441, i64* %153, align 8, !dbg !303, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %442, i64* %154, align 8, !dbg !303, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L986, label %L989, !dbg !305 L986: ; preds = %L971 @@ -1114,8 +1114,8 @@ br i1 %iscached489.not, label %notfound490, label %found492, !dbg !267 L995: ; preds = %L964 - store i64 %435, i64* %155, align 8, !dbg !307, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %434, i64* %156, align 8, !dbg !307, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %442, i64* %155, align 8, !dbg !307, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %441, i64* %156, align 8, !dbg !307, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L1010, label %L1013, !dbg !309 L1010: ; preds = %L995 @@ -1136,7 +1136,7 @@ br i1 %iscached503.not, label %notfound504, label %found506, !dbg !274 L1024: ; preds = %L959, %ok496, %ok510 - %value_phi359 = phi {} addrspace(10)* [ %unsafe_load0.checked494, %ok496 ], [ %477, %ok510 ], [ %201, %L959 ] + %value_phi359 = phi {} addrspace(10)* [ %unsafe_load0.checked494, %ok496 ], [ %484, %ok510 ], [ %201, %L959 ] store i64 1, i64* %memcpy_refined_dst361, align 8, !dbg !311, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L1037, label %L1040, !dbg !313 @@ -1157,8 +1157,8 @@ br i1 %inbounds368, label %idxend371, label %oob369, !dbg !314 L1064: ; preds = %L1064.preheader, %pass419 - %value_phi378 = phi i64 [ %467, %pass419 ], [ 1, %L1064.preheader ] - %value_phi380 = phi {} addrspace(10)* [ %466, %pass419 ], [ %450, %L1064.preheader ] + %value_phi378 = phi i64 [ %474, %pass419 ], [ 1, %L1064.preheader ] + %value_phi380 = phi {} addrspace(10)* [ %473, %pass419 ], [ %457, %L1064.preheader ] %210 = add i64 %183, %value_phi378, !dbg !316 store i64 %210, i64* %161, align 8, !dbg !318, !tbaa !154, !alias.scope !156, !noalias !157 %211 = add i64 %210, -26, !dbg !321 @@ -1172,9 +1172,9 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - call void @llvm.julia.gc_preserve_end(token %454), !dbg !325 - call void @llvm.julia.gc_preserve_end(token %453), !dbg !330 - call void @llvm.julia.gc_preserve_end(token %452), !dbg !334 + call void @llvm.julia.gc_preserve_end(token %461), !dbg !325 + call void @llvm.julia.gc_preserve_end(token %460), !dbg !330 + call void @llvm.julia.gc_preserve_end(token %459), !dbg !334 %213 = addrspacecast [1 x i64]* %newstruct381 to [1 x i64] addrspace(11)*, !dbg !324 call swiftcc void @julia_throw_boundserror_1426({}*** nonnull swiftself %pgcstack, { {} addrspace(10)*, i32 } addrspace(11)* nocapture nonnull readonly %"A::Hermitian", [1 x i64] addrspace(11)* nocapture readonly %213) #3, !dbg !324 unreachable, !dbg !324 @@ -1186,20 +1186,20 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - call void @llvm.julia.gc_preserve_end(token %454), !dbg !325 - call void @llvm.julia.gc_preserve_end(token %453), !dbg !330 - call void @llvm.julia.gc_preserve_end(token %452), !dbg !334 + call void @llvm.julia.gc_preserve_end(token %461), !dbg !325 + call void @llvm.julia.gc_preserve_end(token %460), !dbg !330 + call void @llvm.julia.gc_preserve_end(token %459), !dbg !334 %214 = addrspacecast [2 x i64]* %newstruct385 to [2 x i64] addrspace(11)*, !dbg !338 call swiftcc void @julia_throw_boundserror_1428({}*** nonnull swiftself %pgcstack, { {} addrspace(10)*, i32 } addrspace(11)* nocapture nonnull readonly %"A::Hermitian", [2 x i64] addrspace(11)* nocapture readonly %214) #3, !dbg !338 unreachable, !dbg !338 L1102: ; preds = %pass384 - %.not1009 = icmp eq i64 %457, %458, !dbg !340 + %.not1009 = icmp eq i64 %464, %465, !dbg !340 br i1 %.not1009, label %L1104, label %L1145, !dbg !341 L1104: ; preds = %L1102 - store i64 %457, i64* %168, align 8, !dbg !342, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %458, i64* %169, align 8, !dbg !342, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %464, i64* %168, align 8, !dbg !342, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %465, i64* %169, align 8, !dbg !342, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L1119, label %L1122, !dbg !344 L1119: ; preds = %L1104 @@ -1210,9 +1210,9 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - call void @llvm.julia.gc_preserve_end(token %454), !dbg !325 - call void @llvm.julia.gc_preserve_end(token %453), !dbg !330 - call void @llvm.julia.gc_preserve_end(token %452), !dbg !334 + call void @llvm.julia.gc_preserve_end(token %461), !dbg !325 + call void @llvm.julia.gc_preserve_end(token %460), !dbg !330 + call void @llvm.julia.gc_preserve_end(token %459), !dbg !334 %215 = addrspacecast [2 x i64]* %newstruct389 to [2 x i64] addrspace(11)*, !dbg !344 call swiftcc void @julia_throw_boundserror_1418({}*** nonnull swiftself %pgcstack, {} addrspace(10)* nonnull %"A::Hermitian.data388.lcssa", [2 x i64] addrspace(11)* nocapture readonly %215) #3, !dbg !344 unreachable, !dbg !344 @@ -1232,9 +1232,9 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - call void @llvm.julia.gc_preserve_end(token %454), !dbg !325 - call void @llvm.julia.gc_preserve_end(token %453), !dbg !330 - call void @llvm.julia.gc_preserve_end(token %452), !dbg !334 + call void @llvm.julia.gc_preserve_end(token %461), !dbg !325 + call void @llvm.julia.gc_preserve_end(token %460), !dbg !330 + call void @llvm.julia.gc_preserve_end(token %459), !dbg !334 call swiftcc void @jlsys_throw_uplo_247({}*** nonnull swiftself %pgcstack) #3, !dbg !347 unreachable, !dbg !347 @@ -1248,13 +1248,13 @@ br i1 %exactly_isa403, label %L1204, label %fail404, !dbg !328 L1145: ; preds = %L1102 - %220 = icmp ule i64 %457, %.zext1095, !dbg !348 - %221 = xor i1 %220, %451, !dbg !349 + %220 = icmp ule i64 %464, %.zext1095, !dbg !348 + %221 = xor i1 %220, %458, !dbg !349 br i1 %221, label %L1176, label %L1152, !dbg !349 L1152: ; preds = %L1145 - store i64 %457, i64* %164, align 8, !dbg !350, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %458, i64* %165, align 8, !dbg !350, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %464, i64* %164, align 8, !dbg !350, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %465, i64* %165, align 8, !dbg !350, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L1167, label %L1170, !dbg !352 L1167: ; preds = %L1152 @@ -1265,9 +1265,9 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - call void @llvm.julia.gc_preserve_end(token %454), !dbg !325 - call void @llvm.julia.gc_preserve_end(token %453), !dbg !330 - call void @llvm.julia.gc_preserve_end(token %452), !dbg !334 + call void @llvm.julia.gc_preserve_end(token %461), !dbg !325 + call void @llvm.julia.gc_preserve_end(token %460), !dbg !330 + call void @llvm.julia.gc_preserve_end(token %459), !dbg !334 %222 = addrspacecast [2 x i64]* %newstruct451 to [2 x i64] addrspace(11)*, !dbg !352 call swiftcc void @julia_throw_boundserror_1418({}*** nonnull swiftself %pgcstack, {} addrspace(10)* nonnull %"A::Hermitian.data450.lcssa", [2 x i64] addrspace(11)* nocapture readonly %222) #3, !dbg !352 unreachable, !dbg !352 @@ -1278,8 +1278,8 @@ br i1 %iscached453.not, label %notfound454, label %found456, !dbg !334 L1176: ; preds = %L1145 - store i64 %458, i64* %166, align 8, !dbg !354, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %457, i64* %167, align 8, !dbg !354, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %465, i64* %166, align 8, !dbg !354, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %464, i64* %167, align 8, !dbg !354, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L1191, label %L1194, !dbg !356 L1191: ; preds = %L1176 @@ -1290,9 +1290,9 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - call void @llvm.julia.gc_preserve_end(token %454), !dbg !325 - call void @llvm.julia.gc_preserve_end(token %453), !dbg !330 - call void @llvm.julia.gc_preserve_end(token %452), !dbg !334 + call void @llvm.julia.gc_preserve_end(token %461), !dbg !325 + call void @llvm.julia.gc_preserve_end(token %460), !dbg !330 + call void @llvm.julia.gc_preserve_end(token %459), !dbg !334 %223 = addrspacecast [2 x i64]* %newstruct465 to [2 x i64] addrspace(11)*, !dbg !356 call swiftcc void @julia_throw_boundserror_1418({}*** nonnull swiftself %pgcstack, {} addrspace(10)* nonnull %"A::Hermitian.data464.lcssa", [2 x i64] addrspace(11)* nocapture readonly %223) #3, !dbg !356 unreachable, !dbg !356 @@ -1303,7 +1303,7 @@ br i1 %iscached467.not, label %notfound468, label %found470, !dbg !330 L1204: ; preds = %L1140, %ok474, %ok460 - %value_phi406 = phi {} addrspace(10)* [ %unsafe_load0.checked458, %ok460 ], [ %474, %ok474 ], [ %216, %L1140 ] + %value_phi406 = phi {} addrspace(10)* [ %unsafe_load0.checked458, %ok460 ], [ %481, %ok474 ], [ %216, %L1140 ] %224 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185299024 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi406), !dbg !317 store i64 %value_phi378, i64* %170, align 8, !dbg !358, !tbaa !154, !alias.scope !156, !noalias !157 %225 = add i64 %value_phi378, -1, !dbg !360 @@ -1317,9 +1317,9 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - call void @llvm.julia.gc_preserve_end(token %454), !dbg !325 - call void @llvm.julia.gc_preserve_end(token %453), !dbg !330 - call void @llvm.julia.gc_preserve_end(token %452), !dbg !334 + call void @llvm.julia.gc_preserve_end(token %461), !dbg !325 + call void @llvm.julia.gc_preserve_end(token %460), !dbg !330 + call void @llvm.julia.gc_preserve_end(token %459), !dbg !334 %226 = addrspacecast [1 x i64]* %newstruct407 to [1 x i64] addrspace(11)*, !dbg !363 call swiftcc void @julia_throw_boundserror_1406({}*** nonnull swiftself %pgcstack, { {} addrspace(10)*, [1 x [1 x [1 x i64]]], i64, i64 } addrspace(11)* nocapture nonnull readonly %"B::SubArray", [1 x i64] addrspace(11)* nocapture readonly %226) #3, !dbg !363 unreachable, !dbg !363 @@ -1332,14 +1332,14 @@ br i1 %inbounds414, label %idxend417, label %oob415, !dbg !367 L1240.loopexit: ; preds = %pass419 - %.lcssa1233 = phi {} addrspace(10)* [ %466, %pass419 ], !dbg !317 - call void @llvm.julia.gc_preserve_end(token %454), !dbg !325 - call void @llvm.julia.gc_preserve_end(token %453), !dbg !330 - call void @llvm.julia.gc_preserve_end(token %452), !dbg !334 + %.lcssa1233 = phi {} addrspace(10)* [ %473, %pass419 ], !dbg !317 + call void @llvm.julia.gc_preserve_end(token %461), !dbg !325 + call void @llvm.julia.gc_preserve_end(token %460), !dbg !330 + call void @llvm.julia.gc_preserve_end(token %459), !dbg !334 br label %L1240, !dbg !368 L1240: ; preds = %L1240.loopexit, %pass373 - %value_phi423 = phi {} addrspace(10)* [ %450, %pass373 ], [ %.lcssa1233, %L1240.loopexit ] + %value_phi423 = phi {} addrspace(10)* [ %457, %pass373 ], [ %.lcssa1233, %L1240.loopexit ] %229 = add i64 %value_phi292, -1, !dbg !368 %.length425 = load i64, i64 addrspace(11)* %.length_ptr, align 8, !dbg !368, !tbaa !89, !range !92, !alias.scope !93, !noalias !94 %inbounds426 = icmp ult i64 %229, %.length425, !dbg !368 @@ -2092,68 +2092,104 @@ %349 = bitcast {} addrspace(10)* %"C::Array" to {} addrspace(10)* addrspace(10)* %350 = addrspacecast {} addrspace(10)* addrspace(10)* %349 to {} addrspace(10)* addrspace(11)* %351 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %350, i64 5 + %smin = call i64 @llvm.smin.i64(i64 %"B::SubArray.indices_ptr._ptr.indices_ptr.stop_ptr.unbox585", i64 0), !dbg !489 + %352 = sub i64 %"B::SubArray.indices_ptr._ptr.indices_ptr.stop_ptr.unbox585", %smin, !dbg !489 + %smax = call i64 @llvm.smax.i64(i64 %smin, i64 -1), !dbg !489 + %353 = add nsw i64 %smax, 1, !dbg !489 + %354 = mul i64 %352, %353, !dbg !489 + %exit.mainloop.at = call i64 @llvm.umin.i64(i64 %value_phi586, i64 %354), !dbg !489 + %355 = icmp ult i64 0, %exit.mainloop.at, !dbg !489 + br i1 %355, label %L1634.preheader1496, label %main.pseudo.exit, !dbg !489 + +L1634.preheader1496: ; preds = %L1634.preheader br label %L1634, !dbg !489 -L1634: ; preds = %L1634.preheader, %L1830 - %value_phi590 = phi i64 [ %372, %L1830 ], [ 1, %L1634.preheader ] - %352 = mul i64 %value_phi590, 5, !dbg !492 - %353 = add i64 %352, -5, !dbg !492 +L1634: ; preds = %L1634.preheader1496, %L1830 + %value_phi590 = phi i64 [ %376, %L1830 ], [ 1, %L1634.preheader1496 ] + %356 = mul i64 %value_phi590, 5, !dbg !492 + %357 = add i64 %356, -5, !dbg !492 store i64 %value_phi590, i64* %331, align 8, !dbg !494, !tbaa !154, !alias.scope !156, !noalias !157 - %354 = add i64 %value_phi590, -1, !dbg !495 - %.not1038 = icmp ult i64 %354, %"B::SubArray.indices_ptr._ptr.indices_ptr.stop_ptr.unbox585", !dbg !498 - br i1 %.not1038, label %L1655, label %L1652, !dbg !489 - -L1652: ; preds = %L1634 - %355 = addrspacecast [1 x i64]* %newstruct592 to [1 x i64] addrspace(11)*, !dbg !489 - call swiftcc void @julia_throw_boundserror_1406({}*** nonnull swiftself %pgcstack, { {} addrspace(10)*, [1 x [1 x [1 x i64]]], i64, i64 } addrspace(11)* nocapture nonnull readonly %"B::SubArray", [1 x i64] addrspace(11)* nocapture readonly %355) #3, !dbg !489 + %358 = add i64 %value_phi590, -1, !dbg !495 + %.not1038 = icmp ult i64 %358, %"B::SubArray.indices_ptr._ptr.indices_ptr.stop_ptr.unbox585", !dbg !498 + br i1 true, label %L1655, label %L1652.loopexit1497, !dbg !489 + +L1652.loopexit: ; preds = %L1634.postloop + br label %L1652, !dbg !489 + +L1652.loopexit1497: ; preds = %L1634 + br label %L1652, !dbg !489 + +L1652: ; preds = %L1652.loopexit1497, %L1652.loopexit + %359 = addrspacecast [1 x i64]* %newstruct592 to [1 x i64] addrspace(11)*, !dbg !489 + call swiftcc void @julia_throw_boundserror_1406({}*** nonnull swiftself %pgcstack, { {} addrspace(10)*, [1 x [1 x [1 x i64]]], i64, i64 } addrspace(11)* nocapture nonnull readonly %"B::SubArray", [1 x i64] addrspace(11)* nocapture readonly %359) #3, !dbg !489 unreachable, !dbg !489 L1655: ; preds = %L1634 - %356 = add i64 %"B::SubArray.offset1_ptr598.unbox", %value_phi590, !dbg !499 - %357 = add i64 %356, -1, !dbg !501 + %360 = add i64 %"B::SubArray.offset1_ptr598.unbox", %value_phi590, !dbg !499 + %361 = add i64 %360, -1, !dbg !501 %"B::SubArray.parent597.length" = load i64, i64 addrspace(11)* %"B::SubArray.parent597.length_ptr", align 8, !dbg !501, !tbaa !89, !range !92, !alias.scope !93, !noalias !94 - %inbounds599 = icmp ult i64 %357, %"B::SubArray.parent597.length", !dbg !501 - br i1 %inbounds599, label %idxend602, label %oob600, !dbg !501 + %inbounds599 = icmp ult i64 %361, %"B::SubArray.parent597.length", !dbg !501 + br i1 %inbounds599, label %idxend602, label %oob600.loopexit1498, !dbg !501 L1676: ; preds = %L1676.preheader, %merge_own658 - %value_phi609 = phi i64 [ %509, %merge_own658 ], [ 1, %L1676.preheader ] - %358 = add nsw i64 %value_phi609, -1, !dbg !502 + %value_phi609 = phi i64 [ %516, %merge_own658 ], [ 1, %L1676.preheader ] + %362 = add nsw i64 %value_phi609, -1, !dbg !502 %.length612 = load i64, i64 addrspace(11)* %.length_ptr, align 8, !dbg !502, !tbaa !89, !range !92, !alias.scope !93, !noalias !94 - %inbounds613 = icmp ult i64 %358, %.length612, !dbg !502 - br i1 %inbounds613, label %idxend616, label %oob614, !dbg !502 + %inbounds613 = icmp ult i64 %362, %.length612, !dbg !502 + br i1 %inbounds613, label %idxend616, label %oob614.loopexit1477, !dbg !502 + +L1688.loopexit: ; preds = %pass620.postloop + br label %L1688, !dbg !504 + +L1688.loopexit1480: ; preds = %pass620 + br label %L1688, !dbg !504 -L1688: ; preds = %pass620 - call void @llvm.julia.gc_preserve_end(token %492), !dbg !504 - call void @llvm.julia.gc_preserve_end(token %491), !dbg !510 - call void @llvm.julia.gc_preserve_end(token %490), !dbg !514 - %359 = addrspacecast [1 x i64]* %newstruct622 to [1 x i64] addrspace(11)*, !dbg !518 - call swiftcc void @julia_throw_boundserror_1426({}*** nonnull swiftself %pgcstack, { {} addrspace(10)*, i32 } addrspace(11)* nocapture nonnull readonly %"A::Hermitian", [1 x i64] addrspace(11)* nocapture readonly %359) #3, !dbg !518 +L1688: ; preds = %L1688.loopexit1480, %L1688.loopexit + call void @llvm.julia.gc_preserve_end(token %499), !dbg !504 + call void @llvm.julia.gc_preserve_end(token %498), !dbg !510 + call void @llvm.julia.gc_preserve_end(token %497), !dbg !514 + %363 = addrspacecast [1 x i64]* %newstruct622 to [1 x i64] addrspace(11)*, !dbg !518 + call swiftcc void @julia_throw_boundserror_1426({}*** nonnull swiftself %pgcstack, { {} addrspace(10)*, i32 } addrspace(11)* nocapture nonnull readonly %"A::Hermitian", [1 x i64] addrspace(11)* nocapture readonly %363) #3, !dbg !518 unreachable, !dbg !518 -L1711: ; preds = %pass625 - call void @llvm.julia.gc_preserve_end(token %492), !dbg !504 - call void @llvm.julia.gc_preserve_end(token %491), !dbg !510 - call void @llvm.julia.gc_preserve_end(token %490), !dbg !514 - %360 = addrspacecast [2 x i64]* %newstruct626 to [2 x i64] addrspace(11)*, !dbg !520 - call swiftcc void @julia_throw_boundserror_1428({}*** nonnull swiftself %pgcstack, { {} addrspace(10)*, i32 } addrspace(11)* nocapture nonnull readonly %"A::Hermitian", [2 x i64] addrspace(11)* nocapture readonly %360) #3, !dbg !520 +L1711.loopexit: ; preds = %pass625.postloop + br label %L1711, !dbg !504 + +L1711.loopexit1481: ; preds = %pass625 + br label %L1711, !dbg !504 + +L1711: ; preds = %L1711.loopexit1481, %L1711.loopexit + call void @llvm.julia.gc_preserve_end(token %499), !dbg !504 + call void @llvm.julia.gc_preserve_end(token %498), !dbg !510 + call void @llvm.julia.gc_preserve_end(token %497), !dbg !514 + %364 = addrspacecast [2 x i64]* %newstruct626 to [2 x i64] addrspace(11)*, !dbg !520 + call swiftcc void @julia_throw_boundserror_1428({}*** nonnull swiftself %pgcstack, { {} addrspace(10)*, i32 } addrspace(11)* nocapture nonnull readonly %"A::Hermitian", [2 x i64] addrspace(11)* nocapture readonly %364) #3, !dbg !520 unreachable, !dbg !520 L1714: ; preds = %pass625 - %.not1045 = icmp eq i64 %500, %501, !dbg !522 + %.not1045 = icmp eq i64 %507, %508, !dbg !522 br i1 %.not1045, label %L1716, label %L1757, !dbg !523 L1716: ; preds = %L1714 - store i64 %500, i64* %347, align 8, !dbg !524, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %501, i64* %348, align 8, !dbg !524, !tbaa !154, !alias.scope !156, !noalias !157 - br i1 false, label %L1731, label %L1734, !dbg !526 - -L1731: ; preds = %L1716 - %"A::Hermitian.data629.lcssa" = phi {} addrspace(10)* [ %"A::Hermitian.data629", %L1716 ], !dbg !527 - call void @llvm.julia.gc_preserve_end(token %492), !dbg !504 - call void @llvm.julia.gc_preserve_end(token %491), !dbg !510 - call void @llvm.julia.gc_preserve_end(token %490), !dbg !514 - %361 = addrspacecast [2 x i64]* %newstruct630 to [2 x i64] addrspace(11)*, !dbg !526 - call swiftcc void @julia_throw_boundserror_1418({}*** nonnull swiftself %pgcstack, {} addrspace(10)* nonnull %"A::Hermitian.data629.lcssa", [2 x i64] addrspace(11)* nocapture readonly %361) #3, !dbg !526 + store i64 %507, i64* %347, align 8, !dbg !524, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %508, i64* %348, align 8, !dbg !524, !tbaa !154, !alias.scope !156, !noalias !157 + br i1 false, label %L1731.loopexit1488, label %L1734, !dbg !526 + +L1731.loopexit: ; preds = %L1716.postloop + %"A::Hermitian.data629.lcssa.ph" = phi {} addrspace(10)* [ %"A::Hermitian.data629.postloop", %L1716.postloop ] + br label %L1731, !dbg !504 + +L1731.loopexit1488: ; preds = %L1716 + %"A::Hermitian.data629.lcssa.ph1489" = phi {} addrspace(10)* [ %"A::Hermitian.data629", %L1716 ] + br label %L1731, !dbg !504 + +L1731: ; preds = %L1731.loopexit1488, %L1731.loopexit + %"A::Hermitian.data629.lcssa" = phi {} addrspace(10)* [ %"A::Hermitian.data629.lcssa.ph", %L1731.loopexit ], [ %"A::Hermitian.data629.lcssa.ph1489", %L1731.loopexit1488 ], !dbg !527 + call void @llvm.julia.gc_preserve_end(token %499), !dbg !504 + call void @llvm.julia.gc_preserve_end(token %498), !dbg !510 + call void @llvm.julia.gc_preserve_end(token %497), !dbg !514 + %365 = addrspacecast [2 x i64]* %newstruct630 to [2 x i64] addrspace(11)*, !dbg !526 + call swiftcc void @julia_throw_boundserror_1418({}*** nonnull swiftself %pgcstack, {} addrspace(10)* nonnull %"A::Hermitian.data629.lcssa", [2 x i64] addrspace(11)* nocapture readonly %365) #3, !dbg !526 unreachable, !dbg !526 L1734: ; preds = %L1716 @@ -2162,41 +2198,55 @@ br i1 %iscached632.not, label %notfound633, label %found635, !dbg !504 L1745: ; preds = %ok639 - br i1 %.not1050, label %L1752, label %L1750, !dbg !528 + br i1 %.not1050, label %L1752, label %L1750.loopexit1491, !dbg !528 + +L1750.loopexit: ; preds = %L1745.postloop + br label %L1750, !dbg !504 -L1750: ; preds = %L1745 - call void @llvm.julia.gc_preserve_end(token %492), !dbg !504 - call void @llvm.julia.gc_preserve_end(token %491), !dbg !510 - call void @llvm.julia.gc_preserve_end(token %490), !dbg !514 +L1750.loopexit1491: ; preds = %L1745 + br label %L1750, !dbg !504 + +L1750: ; preds = %L1750.loopexit1491, %L1750.loopexit + call void @llvm.julia.gc_preserve_end(token %499), !dbg !504 + call void @llvm.julia.gc_preserve_end(token %498), !dbg !510 + call void @llvm.julia.gc_preserve_end(token %497), !dbg !514 call swiftcc void @jlsys_throw_uplo_247({}*** nonnull swiftself %pgcstack) #3, !dbg !529 unreachable, !dbg !529 L1752: ; preds = %L1745, %ok639 %value_phi642 = phi {} addrspace(10)* [ addrspacecast ({}* inttoptr (i64 140090401429264 to {}*) to {} addrspace(10)*), %ok639 ], [ addrspacecast ({}* inttoptr (i64 140090401139584 to {}*) to {} addrspace(10)*), %L1745 ] - %362 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090221967408 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked637, {} addrspace(10)* %value_phi642), !dbg !507 - %363 = call {} addrspace(10)* @julia.typeof({} addrspace(10)* nonnull %362), !dbg !507 - %364 = addrspacecast {} addrspace(10)* %363 to {} addrspace(11)*, !dbg !507 - %365 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* %364) #7, !dbg !507 - %exactly_isa644 = icmp eq {}* %365, inttoptr (i64 256 to {}*), !dbg !507 - br i1 %exactly_isa644, label %L1816, label %fail645, !dbg !507 + %366 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090221967408 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked637, {} addrspace(10)* %value_phi642), !dbg !507 + %367 = call {} addrspace(10)* @julia.typeof({} addrspace(10)* nonnull %366), !dbg !507 + %368 = addrspacecast {} addrspace(10)* %367 to {} addrspace(11)*, !dbg !507 + %369 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* %368) #7, !dbg !507 + %exactly_isa644 = icmp eq {}* %369, inttoptr (i64 256 to {}*), !dbg !507 + br i1 %exactly_isa644, label %L1816, label %fail645.loopexit1492, !dbg !507 L1757: ; preds = %L1714 - %366 = icmp ule i64 %500, %.zext1097, !dbg !530 - %367 = xor i1 %366, %489, !dbg !531 - br i1 %367, label %L1788, label %L1764, !dbg !531 + %370 = icmp ule i64 %507, %.zext1097, !dbg !530 + %371 = xor i1 %370, %496, !dbg !531 + br i1 %371, label %L1788, label %L1764, !dbg !531 L1764: ; preds = %L1757 - store i64 %500, i64* %343, align 8, !dbg !532, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %501, i64* %344, align 8, !dbg !532, !tbaa !154, !alias.scope !156, !noalias !157 - br i1 false, label %L1779, label %L1782, !dbg !534 - -L1779: ; preds = %L1764 - %"A::Hermitian.data676.lcssa" = phi {} addrspace(10)* [ %"A::Hermitian.data676", %L1764 ], !dbg !535 - call void @llvm.julia.gc_preserve_end(token %492), !dbg !504 - call void @llvm.julia.gc_preserve_end(token %491), !dbg !510 - call void @llvm.julia.gc_preserve_end(token %490), !dbg !514 - %368 = addrspacecast [2 x i64]* %newstruct677 to [2 x i64] addrspace(11)*, !dbg !534 - call swiftcc void @julia_throw_boundserror_1418({}*** nonnull swiftself %pgcstack, {} addrspace(10)* nonnull %"A::Hermitian.data676.lcssa", [2 x i64] addrspace(11)* nocapture readonly %368) #3, !dbg !534 + store i64 %507, i64* %343, align 8, !dbg !532, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %508, i64* %344, align 8, !dbg !532, !tbaa !154, !alias.scope !156, !noalias !157 + br i1 false, label %L1779.loopexit1482, label %L1782, !dbg !534 + +L1779.loopexit: ; preds = %L1764.postloop + %"A::Hermitian.data676.lcssa.ph" = phi {} addrspace(10)* [ %"A::Hermitian.data676.postloop", %L1764.postloop ] + br label %L1779, !dbg !504 + +L1779.loopexit1482: ; preds = %L1764 + %"A::Hermitian.data676.lcssa.ph1483" = phi {} addrspace(10)* [ %"A::Hermitian.data676", %L1764 ] + br label %L1779, !dbg !504 + +L1779: ; preds = %L1779.loopexit1482, %L1779.loopexit + %"A::Hermitian.data676.lcssa" = phi {} addrspace(10)* [ %"A::Hermitian.data676.lcssa.ph", %L1779.loopexit ], [ %"A::Hermitian.data676.lcssa.ph1483", %L1779.loopexit1482 ], !dbg !535 + call void @llvm.julia.gc_preserve_end(token %499), !dbg !504 + call void @llvm.julia.gc_preserve_end(token %498), !dbg !510 + call void @llvm.julia.gc_preserve_end(token %497), !dbg !514 + %372 = addrspacecast [2 x i64]* %newstruct677 to [2 x i64] addrspace(11)*, !dbg !534 + call swiftcc void @julia_throw_boundserror_1418({}*** nonnull swiftself %pgcstack, {} addrspace(10)* nonnull %"A::Hermitian.data676.lcssa", [2 x i64] addrspace(11)* nocapture readonly %372) #3, !dbg !534 unreachable, !dbg !534 L1782: ; preds = %L1764 @@ -2205,17 +2255,25 @@ br i1 %iscached679.not, label %notfound680, label %found682, !dbg !514 L1788: ; preds = %L1757 - store i64 %501, i64* %345, align 8, !dbg !536, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %500, i64* %346, align 8, !dbg !536, !tbaa !154, !alias.scope !156, !noalias !157 - br i1 false, label %L1803, label %L1806, !dbg !538 - -L1803: ; preds = %L1788 - %"A::Hermitian.data690.lcssa" = phi {} addrspace(10)* [ %"A::Hermitian.data690", %L1788 ], !dbg !539 - call void @llvm.julia.gc_preserve_end(token %492), !dbg !504 - call void @llvm.julia.gc_preserve_end(token %491), !dbg !510 - call void @llvm.julia.gc_preserve_end(token %490), !dbg !514 - %369 = addrspacecast [2 x i64]* %newstruct691 to [2 x i64] addrspace(11)*, !dbg !538 - call swiftcc void @julia_throw_boundserror_1418({}*** nonnull swiftself %pgcstack, {} addrspace(10)* nonnull %"A::Hermitian.data690.lcssa", [2 x i64] addrspace(11)* nocapture readonly %369) #3, !dbg !538 + store i64 %508, i64* %345, align 8, !dbg !536, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %507, i64* %346, align 8, !dbg !536, !tbaa !154, !alias.scope !156, !noalias !157 + br i1 false, label %L1803.loopexit1485, label %L1806, !dbg !538 + +L1803.loopexit: ; preds = %L1788.postloop + %"A::Hermitian.data690.lcssa.ph" = phi {} addrspace(10)* [ %"A::Hermitian.data690.postloop", %L1788.postloop ] + br label %L1803, !dbg !504 + +L1803.loopexit1485: ; preds = %L1788 + %"A::Hermitian.data690.lcssa.ph1486" = phi {} addrspace(10)* [ %"A::Hermitian.data690", %L1788 ] + br label %L1803, !dbg !504 + +L1803: ; preds = %L1803.loopexit1485, %L1803.loopexit + %"A::Hermitian.data690.lcssa" = phi {} addrspace(10)* [ %"A::Hermitian.data690.lcssa.ph", %L1803.loopexit ], [ %"A::Hermitian.data690.lcssa.ph1486", %L1803.loopexit1485 ], !dbg !539 + call void @llvm.julia.gc_preserve_end(token %499), !dbg !504 + call void @llvm.julia.gc_preserve_end(token %498), !dbg !510 + call void @llvm.julia.gc_preserve_end(token %497), !dbg !514 + %373 = addrspacecast [2 x i64]* %newstruct691 to [2 x i64] addrspace(11)*, !dbg !538 + call swiftcc void @julia_throw_boundserror_1418({}*** nonnull swiftself %pgcstack, {} addrspace(10)* nonnull %"A::Hermitian.data690.lcssa", [2 x i64] addrspace(11)* nocapture readonly %373) #3, !dbg !538 unreachable, !dbg !538 L1806: ; preds = %L1788 @@ -2224,23 +2282,36 @@ br i1 %iscached693.not, label %notfound694, label %found696, !dbg !510 L1816: ; preds = %L1752, %ok700, %ok686 - %value_phi647 = phi {} addrspace(10)* [ %unsafe_load0.checked684, %ok686 ], [ %512, %ok700 ], [ %362, %L1752 ] - %370 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi647, {} addrspace(10)* nonnull %"B::SubArray.parent597.ref"), !dbg !503 - %371 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090180137296 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %.ref621, {} addrspace(10)* nonnull %370), !dbg !503 + %value_phi647 = phi {} addrspace(10)* [ %unsafe_load0.checked684, %ok686 ], [ %519, %ok700 ], [ %366, %L1752 ] + %374 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi647, {} addrspace(10)* nonnull %"B::SubArray.parent597.ref"), !dbg !503 + %375 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090180137296 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %.ref621, {} addrspace(10)* nonnull %374), !dbg !503 %.length649 = load i64, i64 addrspace(11)* %.length_ptr, align 8, !dbg !540, !tbaa !89, !range !92, !alias.scope !93, !noalias !94 - %inbounds650 = icmp ult i64 %358, %.length649, !dbg !540 - br i1 %inbounds650, label %idxend653, label %oob651, !dbg !540 + %inbounds650 = icmp ult i64 %362, %.length649, !dbg !540 + br i1 %inbounds650, label %idxend653, label %oob651.loopexit1494, !dbg !540 L1830.loopexit: ; preds = %merge_own658 - call void @llvm.julia.gc_preserve_end(token %492), !dbg !504 - call void @llvm.julia.gc_preserve_end(token %491), !dbg !510 - call void @llvm.julia.gc_preserve_end(token %490), !dbg !514 + call void @llvm.julia.gc_preserve_end(token %499), !dbg !504 + call void @llvm.julia.gc_preserve_end(token %498), !dbg !510 + call void @llvm.julia.gc_preserve_end(token %497), !dbg !514 br label %L1830, !dbg !541 L1830: ; preds = %L1830.loopexit, %pass604 %.not1049.not = icmp eq i64 %value_phi590, %value_phi586, !dbg !541 - %372 = add i64 %value_phi590, 1, !dbg !36 - br i1 %.not1049.not, label %L1843.loopexit1105, label %L1634, !dbg !39 + %376 = add i64 %value_phi590, 1, !dbg !36 + %377 = icmp ult i64 %value_phi590, %exit.mainloop.at, !dbg !39 + %378 = xor i1 %377, true, !dbg !39 + br i1 %378, label %main.exit.selector, label %L1634, !dbg !39 + +main.exit.selector: ; preds = %L1830 + %.lcssa1476 = phi i64 [ %376, %L1830 ], !dbg !36 + %value_phi590.lcssa = phi i64 [ %value_phi590, %L1830 ] + %379 = icmp ult i64 %value_phi590.lcssa, %value_phi586, !dbg !39 + br i1 %379, label %main.pseudo.exit, label %L1843.loopexit1105, !dbg !39 + +main.pseudo.exit: ; preds = %main.exit.selector, %L1634.preheader + %value_phi590.copy = phi i64 [ 1, %L1634.preheader ], [ %.lcssa1476, %main.exit.selector ] + %indvar.end = phi i64 [ 0, %L1634.preheader ], [ %value_phi590.lcssa, %main.exit.selector ] + br label %postloop L1843.loopexit: ; preds = %merge_own br label %L1843, !dbg !542 @@ -2266,16 +2337,19 @@ call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 br label %L1843, !dbg !542 -L1843.loopexit1105: ; preds = %L1830 +L1843.loopexit1105.loopexit: ; preds = %L1830.postloop + br label %L1843.loopexit1105, !dbg !542 + +L1843.loopexit1105: ; preds = %L1843.loopexit1105.loopexit, %main.exit.selector br label %L1843, !dbg !542 L1843: ; preds = %L1843.loopexit1105, %L1843.loopexit1104, %L1843.loopexit1103, %L1843.loopexit1102, %L1843.loopexit, %L706, %L675, %L1618, %L89, %L120 ret {} addrspace(10)* %"C::Array", !dbg !542 L1844: ; preds = %L9 - %373 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090227918080 to {}*) to {} addrspace(10)*), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090301426864 to {}*) to {} addrspace(10)*)), !dbg !25 - %374 = addrspacecast {} addrspace(10)* %373 to {} addrspace(12)*, !dbg !25 - call void @ijl_throw({} addrspace(12)* %374), !dbg !25 + %380 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090227918080 to {}*) to {} addrspace(10)*), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090301426864 to {}*) to {} addrspace(10)*)), !dbg !25 + %381 = addrspacecast {} addrspace(10)* %380 to {} addrspace(12)*, !dbg !25 + call void @ijl_throw({} addrspace(12)* %381), !dbg !25 unreachable, !dbg !25 fail: ; preds = %L43 @@ -2290,14 +2364,14 @@ %value_phi18.lcssa = phi i64 [ %value_phi18, %L105 ] %errorbox = alloca i64, align 8, !dbg !111 store i64 %value_phi18.lcssa, i64* %errorbox, align 8, !dbg !111 - %375 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !111 - call void @ijl_bounds_error_ints({} addrspace(12)* %375, i64* nonnull %errorbox, i64 1), !dbg !111 + %382 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !111 + call void @ijl_bounds_error_ints({} addrspace(12)* %382, i64* nonnull %errorbox, i64 1), !dbg !111 unreachable, !dbg !111 idxend: ; preds = %L105 %.flags = load i16, i16 addrspace(11)* %.flags_ptr, align 2, !dbg !111, !tbaa !397, !alias.scope !93, !noalias !94 - %376 = and i16 %.flags, 3, !dbg !111 - %has_owner = icmp eq i16 %376, 3, !dbg !111 + %383 = and i16 %.flags, 3, !dbg !111 + %has_owner = icmp eq i16 %383, 3, !dbg !111 br i1 %has_owner, label %array_owned, label %merge_own, !dbg !111 array_owned: ; preds = %idxend @@ -2307,25 +2381,25 @@ merge_own: ; preds = %array_owned, %idxend %data_owner = phi {} addrspace(10)* [ %"C::Array", %idxend ], [ %external_owner, %array_owned ], !dbg !111 %.data = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %29, align 8, !dbg !111, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 - %377 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data, i64 %30, !dbg !111 - store atomic {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090314280160 to {}*) to {} addrspace(10)*), {} addrspace(10)* addrspace(13)* %377 release, align 8, !dbg !111, !tbaa !403, !alias.scope !44, !noalias !47 + %384 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data, i64 %30, !dbg !111 + store atomic {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090314280160 to {}*) to {} addrspace(10)*), {} addrspace(10)* addrspace(13)* %384 release, align 8, !dbg !111, !tbaa !403, !alias.scope !44, !noalias !47 call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* nonnull %data_owner, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090314280160 to {}*) to {} addrspace(10)*)), !dbg !111 %.not953.not = icmp eq i64 %value_phi18, %.unbox, !dbg !543 - %378 = add nuw nsw i64 %value_phi18, 1, !dbg !544 + %385 = add nuw nsw i64 %value_phi18, 1, !dbg !544 br i1 %.not953.not, label %L1843.loopexit, label %L105, !dbg !545 pass32: ; preds = %L136 %.lhs.trunc = trunc i64 %80 to i8, !dbg !546 - %379 = udiv i8 %.lhs.trunc, 5, !dbg !546 - %.zext = zext i8 %379 to i64, !dbg !546 + %386 = udiv i8 %.lhs.trunc, 5, !dbg !546 + %.zext = zext i8 %386 to i64, !dbg !546 %.neg = mul nsw i64 %.zext, -5, !dbg !553 - %380 = add nsw i64 %.neg, %80, !dbg !555 - %381 = add nsw i64 %380, 1, !dbg !556 - %382 = add nuw nsw i64 %.zext, 1, !dbg !557 - store i64 %381, i64* %33, align 8, !dbg !560, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %382, i64* %34, align 8, !dbg !560, !tbaa !154, !alias.scope !156, !noalias !157 - %383 = icmp ugt i64 %380, 4, !dbg !561 - br i1 %383, label %L172, label %L175, !dbg !162 + %387 = add nsw i64 %.neg, %80, !dbg !555 + %388 = add nsw i64 %387, 1, !dbg !556 + %389 = add nuw nsw i64 %.zext, 1, !dbg !557 + store i64 %388, i64* %33, align 8, !dbg !560, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %389, i64* %34, align 8, !dbg !560, !tbaa !154, !alias.scope !156, !noalias !157 + %390 = icmp ugt i64 %387, 4, !dbg !561 + br i1 %390, label %L172, label %L175, !dbg !162 notfound: ; preds = %L195 %Main.unsafe_load0.found = call {}* @ijl_get_binding_or_error({}* nonnull inttoptr (i64 140090240988912 to {}*), {}* nonnull inttoptr (i64 140088985944440 to {}*)), !dbg !142 @@ -2334,8 +2408,8 @@ found: ; preds = %notfound, %L195 %Main.unsafe_load0 = phi {}* [ %Main.unsafe_load0.cached, %L195 ], [ %Main.unsafe_load0.found, %notfound ], !dbg !142 - %384 = bitcast {}* %Main.unsafe_load0 to {} addrspace(10)**, !dbg !142 - %unsafe_load0.checked = load atomic {} addrspace(10)*, {} addrspace(10)** %384 unordered, align 8, !dbg !142, !tbaa !450, !alias.scope !44, !noalias !47 + %391 = bitcast {}* %Main.unsafe_load0 to {} addrspace(10)**, !dbg !142 + %unsafe_load0.checked = load atomic {} addrspace(10)*, {} addrspace(10)** %391 unordered, align 8, !dbg !142, !tbaa !450, !alias.scope !44, !noalias !47 %.not955 = icmp eq {} addrspace(10)* %unsafe_load0.checked, null, !dbg !142 br i1 %.not955, label %err, label %ok, !dbg !142 @@ -2360,8 +2434,8 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - %385 = addrspacecast {} addrspace(10)* %.lcssa1121 to {} addrspace(12)*, !dbg !145 - call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %385), !dbg !145 + %392 = addrspacecast {} addrspace(10)* %.lcssa1121 to {} addrspace(12)*, !dbg !145 + call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %392), !dbg !145 unreachable, !dbg !145 oob43: ; preds = %L294 @@ -2373,17 +2447,17 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - %386 = add i64 %"B::SubArray.offset1_ptr.unbox.lcssa", 1, !dbg !567 + %393 = add i64 %"B::SubArray.offset1_ptr.unbox.lcssa", 1, !dbg !567 %errorbox44 = alloca i64, align 8, !dbg !188 - store i64 %386, i64* %errorbox44, align 8, !dbg !188 - %387 = addrspacecast {} addrspace(10)* %"B::SubArray.parent.lcssa" to {} addrspace(12)*, !dbg !188 - call void @ijl_bounds_error_ints({} addrspace(12)* %387, i64* nonnull %errorbox44, i64 1), !dbg !188 + store i64 %393, i64* %errorbox44, align 8, !dbg !188 + %394 = addrspacecast {} addrspace(10)* %"B::SubArray.parent.lcssa" to {} addrspace(12)*, !dbg !188 + call void @ijl_bounds_error_ints({} addrspace(12)* %394, i64* nonnull %errorbox44, i64 1), !dbg !188 unreachable, !dbg !188 idxend45: ; preds = %L294 %"B::SubArray.parent.data958" = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %45, align 8, !dbg !188, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 - %388 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %"B::SubArray.parent.data958", i64 %"B::SubArray.offset1_ptr.unbox", !dbg !188 - %"B::SubArray.parent.ref" = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %388, align 8, !dbg !188, !tbaa !403, !alias.scope !44, !noalias !47 + %395 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %"B::SubArray.parent.data958", i64 %"B::SubArray.offset1_ptr.unbox", !dbg !188 + %"B::SubArray.parent.ref" = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %395, align 8, !dbg !188, !tbaa !403, !alias.scope !44, !noalias !47 %.not959 = icmp eq {} addrspace(10)* %"B::SubArray.parent.ref", null, !dbg !188 br i1 %.not959, label %fail46, label %pass51, !dbg !188 @@ -2398,10 +2472,10 @@ unreachable, !dbg !188 pass51: ; preds = %idxend45 - %389 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi38, {} addrspace(10)* nonnull %"B::SubArray.parent.ref"), !dbg !137 + %396 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi38, {} addrspace(10)* nonnull %"B::SubArray.parent.ref"), !dbg !137 store i64 %81, i64* %46, align 8, !dbg !153, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %381, i64* %47, align 8, !dbg !560, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %382, i64* %48, align 8, !dbg !560, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %388, i64* %47, align 8, !dbg !560, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %389, i64* %48, align 8, !dbg !560, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L332, label %L335, !dbg !162 notfound59: ; preds = %L355 @@ -2411,8 +2485,8 @@ found61: ; preds = %notfound59, %L355 %Main.unsafe_load062 = phi {}* [ %Main.unsafe_load0.cached57, %L355 ], [ %Main.unsafe_load0.found60, %notfound59 ], !dbg !142 - %390 = bitcast {}* %Main.unsafe_load062 to {} addrspace(10)**, !dbg !142 - %unsafe_load0.checked63 = load atomic {} addrspace(10)*, {} addrspace(10)** %390 unordered, align 8, !dbg !142, !tbaa !450, !alias.scope !44, !noalias !47 + %397 = bitcast {}* %Main.unsafe_load062 to {} addrspace(10)**, !dbg !142 + %unsafe_load0.checked63 = load atomic {} addrspace(10)*, {} addrspace(10)** %397 unordered, align 8, !dbg !142, !tbaa !450, !alias.scope !44, !noalias !47 %.not962 = icmp eq {} addrspace(10)* %unsafe_load0.checked63, null, !dbg !142 br i1 %.not962, label %err64, label %ok65, !dbg !142 @@ -2437,8 +2511,8 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - %391 = addrspacecast {} addrspace(10)* %.lcssa1127 to {} addrspace(12)*, !dbg !145 - call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %391), !dbg !145 + %398 = addrspacecast {} addrspace(10)* %.lcssa1127 to {} addrspace(12)*, !dbg !145 + call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %398), !dbg !145 unreachable, !dbg !145 oob83: ; preds = %L454 @@ -2450,17 +2524,17 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - %392 = add i64 %"B::SubArray.offset1_ptr.unbox.lcssa1178", 1, !dbg !567 + %399 = add i64 %"B::SubArray.offset1_ptr.unbox.lcssa1178", 1, !dbg !567 %errorbox84 = alloca i64, align 8, !dbg !188 - store i64 %392, i64* %errorbox84, align 8, !dbg !188 - %393 = addrspacecast {} addrspace(10)* %"B::SubArray.parent.lcssa1206" to {} addrspace(12)*, !dbg !188 - call void @ijl_bounds_error_ints({} addrspace(12)* %393, i64* nonnull %errorbox84, i64 1), !dbg !188 + store i64 %399, i64* %errorbox84, align 8, !dbg !188 + %400 = addrspacecast {} addrspace(10)* %"B::SubArray.parent.lcssa1206" to {} addrspace(12)*, !dbg !188 + call void @ijl_bounds_error_ints({} addrspace(12)* %400, i64* nonnull %errorbox84, i64 1), !dbg !188 unreachable, !dbg !188 idxend85: ; preds = %L454 %"B::SubArray.parent80.data965" = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %45, align 8, !dbg !188, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 - %394 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %"B::SubArray.parent80.data965", i64 %"B::SubArray.offset1_ptr.unbox", !dbg !188 - %"B::SubArray.parent80.ref" = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %394, align 8, !dbg !188, !tbaa !403, !alias.scope !44, !noalias !47 + %401 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %"B::SubArray.parent80.data965", i64 %"B::SubArray.offset1_ptr.unbox", !dbg !188 + %"B::SubArray.parent80.ref" = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %401, align 8, !dbg !188, !tbaa !403, !alias.scope !44, !noalias !47 %.not966 = icmp eq {} addrspace(10)* %"B::SubArray.parent80.ref", null, !dbg !188 br i1 %.not966, label %fail86, label %pass87, !dbg !188 @@ -2475,38 +2549,38 @@ unreachable, !dbg !188 pass87: ; preds = %idxend85 - %395 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi73, {} addrspace(10)* nonnull %"B::SubArray.parent80.ref"), !dbg !137 - %396 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090180137296 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %389, {} addrspace(10)* nonnull %395), !dbg !137 - %397 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090184494160 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %396), !dbg !137 + %402 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi73, {} addrspace(10)* nonnull %"B::SubArray.parent80.ref"), !dbg !137 + %403 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090180137296 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %396, {} addrspace(10)* nonnull %402), !dbg !137 + %404 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090184494160 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %403), !dbg !137 br i1 %57, label %L654, label %L478.preheader, !dbg !568 L478.preheader: ; preds = %pass87 %bitcast161 = load i32, i32 addrspace(11)* %"A::Hermitian.uplo_ptr160", align 8 - %398 = icmp eq i32 %bitcast161, 1426063360 + %405 = icmp eq i32 %bitcast161, 1426063360 %"A::Hermitian.data164" = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %"A::Hermitian.data_ptr163" unordered, align 8 %"A::Hermitian.data178" = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %"A::Hermitian.data_ptr177" unordered, align 8 %"A::Hermitian.data102" = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %"A::Hermitian.data_ptr101" unordered, align 8 %bitcast114 = load i32, i32 addrspace(11)* %"A::Hermitian.uplo_ptr113", align 8 %.not970 = icmp eq i32 %bitcast114, 1426063360 %.not976 = icmp eq i32 %bitcast114, 1275068416 - %399 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data164"), !dbg !209 - %400 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data178"), !dbg !205 - %401 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data102"), !dbg !200 + %406 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data164"), !dbg !209 + %407 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data178"), !dbg !205 + %408 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data102"), !dbg !200 br label %L478, !dbg !199 pass98: ; preds = %L478 - %402 = add nsw i64 %107, -1, !dbg !569 - %.lhs.trunc1088 = trunc i64 %402 to i8, !dbg !574 - %403 = udiv i8 %.lhs.trunc1088, 5, !dbg !574 - %.zext1089 = zext i8 %403 to i64, !dbg !574 + %409 = add nsw i64 %107, -1, !dbg !569 + %.lhs.trunc1088 = trunc i64 %409 to i8, !dbg !574 + %410 = udiv i8 %.lhs.trunc1088, 5, !dbg !574 + %.zext1089 = zext i8 %410 to i64, !dbg !574 %.neg967 = mul nsw i64 %.zext1089, -5, !dbg !577 - %404 = add nsw i64 %.neg967, %107, !dbg !579 - %405 = add nuw nsw i64 %.zext1089, 1, !dbg !580 - store i64 %404, i64* %59, align 8, !dbg !583, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %405, i64* %60, align 8, !dbg !583, !tbaa !154, !alias.scope !156, !noalias !157 - %406 = add nsw i64 %404, -6, !dbg !584 - %407 = icmp ult i64 %406, -5, !dbg !584 - br i1 %407, label %L513, label %L516, !dbg !213 + %411 = add nsw i64 %.neg967, %107, !dbg !579 + %412 = add nuw nsw i64 %.zext1089, 1, !dbg !580 + store i64 %411, i64* %59, align 8, !dbg !583, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %412, i64* %60, align 8, !dbg !583, !tbaa !154, !alias.scope !156, !noalias !157 + %413 = add nsw i64 %411, -6, !dbg !584 + %414 = icmp ult i64 %413, -5, !dbg !584 + br i1 %414, label %L513, label %L516, !dbg !213 notfound106: ; preds = %L536 %Main.unsafe_load0.found107 = call {}* @ijl_get_binding_or_error({}* nonnull inttoptr (i64 140090240988912 to {}*), {}* nonnull inttoptr (i64 140088985944440 to {}*)), !dbg !200 @@ -2515,8 +2589,8 @@ found108: ; preds = %notfound106, %L536 %Main.unsafe_load0109 = phi {}* [ %Main.unsafe_load0.cached104, %L536 ], [ %Main.unsafe_load0.found107, %notfound106 ], !dbg !200 - %408 = bitcast {}* %Main.unsafe_load0109 to {} addrspace(10)**, !dbg !200 - %unsafe_load0.checked110 = load atomic {} addrspace(10)*, {} addrspace(10)** %408 unordered, align 8, !dbg !200, !tbaa !450, !alias.scope !44, !noalias !47 + %415 = bitcast {}* %Main.unsafe_load0109 to {} addrspace(10)**, !dbg !200 + %unsafe_load0.checked110 = load atomic {} addrspace(10)*, {} addrspace(10)** %415 unordered, align 8, !dbg !200, !tbaa !450, !alias.scope !44, !noalias !47 %.not969 = icmp eq {} addrspace(10)* %unsafe_load0.checked110, null, !dbg !200 br i1 %.not969, label %err111, label %ok112, !dbg !200 @@ -2527,9 +2601,9 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - call void @llvm.julia.gc_preserve_end(token %401), !dbg !200 - call void @llvm.julia.gc_preserve_end(token %400), !dbg !205 - call void @llvm.julia.gc_preserve_end(token %399), !dbg !209 + call void @llvm.julia.gc_preserve_end(token %408), !dbg !200 + call void @llvm.julia.gc_preserve_end(token %407), !dbg !205 + call void @llvm.julia.gc_preserve_end(token %406), !dbg !209 call void @ijl_undefined_var_error({} addrspace(12)* addrspacecast ({}* inttoptr (i64 140088985944440 to {}*) to {} addrspace(12)*)), !dbg !200 unreachable, !dbg !200 @@ -2544,11 +2618,11 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - call void @llvm.julia.gc_preserve_end(token %401), !dbg !200 - call void @llvm.julia.gc_preserve_end(token %400), !dbg !205 - call void @llvm.julia.gc_preserve_end(token %399), !dbg !209 - %409 = addrspacecast {} addrspace(10)* %.lcssa to {} addrspace(12)*, !dbg !203 - call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %409), !dbg !203 + call void @llvm.julia.gc_preserve_end(token %408), !dbg !200 + call void @llvm.julia.gc_preserve_end(token %407), !dbg !205 + call void @llvm.julia.gc_preserve_end(token %406), !dbg !209 + %416 = addrspacecast {} addrspace(10)* %.lcssa to {} addrspace(12)*, !dbg !203 + call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %416), !dbg !203 unreachable, !dbg !203 oob129: ; preds = %L636 @@ -2560,19 +2634,19 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - call void @llvm.julia.gc_preserve_end(token %401), !dbg !200 - call void @llvm.julia.gc_preserve_end(token %400), !dbg !205 - call void @llvm.julia.gc_preserve_end(token %399), !dbg !209 + call void @llvm.julia.gc_preserve_end(token %408), !dbg !200 + call void @llvm.julia.gc_preserve_end(token %407), !dbg !205 + call void @llvm.julia.gc_preserve_end(token %406), !dbg !209 %errorbox130 = alloca i64, align 8, !dbg !243 store i64 %.lcssa1112, i64* %errorbox130, align 8, !dbg !243 - %410 = addrspacecast {} addrspace(10)* %"B::SubArray.parent.lcssa1219" to {} addrspace(12)*, !dbg !243 - call void @ijl_bounds_error_ints({} addrspace(12)* %410, i64* nonnull %errorbox130, i64 1), !dbg !243 + %417 = addrspacecast {} addrspace(10)* %"B::SubArray.parent.lcssa1219" to {} addrspace(12)*, !dbg !243 + call void @ijl_bounds_error_ints({} addrspace(12)* %417, i64* nonnull %errorbox130, i64 1), !dbg !243 unreachable, !dbg !243 idxend131: ; preds = %L636 %"B::SubArray.parent126.data972" = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %45, align 8, !dbg !243, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 - %411 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %"B::SubArray.parent126.data972", i64 %125, !dbg !243 - %"B::SubArray.parent126.ref" = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %411, align 8, !dbg !243, !tbaa !403, !alias.scope !44, !noalias !47 + %418 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %"B::SubArray.parent126.data972", i64 %125, !dbg !243 + %"B::SubArray.parent126.ref" = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %418, align 8, !dbg !243, !tbaa !403, !alias.scope !44, !noalias !47 %.not973 = icmp eq {} addrspace(10)* %"B::SubArray.parent126.ref", null, !dbg !243 br i1 %.not973, label %fail132, label %pass133, !dbg !243 @@ -2583,17 +2657,17 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - call void @llvm.julia.gc_preserve_end(token %401), !dbg !200 - call void @llvm.julia.gc_preserve_end(token %400), !dbg !205 - call void @llvm.julia.gc_preserve_end(token %399), !dbg !209 + call void @llvm.julia.gc_preserve_end(token %408), !dbg !200 + call void @llvm.julia.gc_preserve_end(token %407), !dbg !205 + call void @llvm.julia.gc_preserve_end(token %406), !dbg !209 call void @ijl_throw({} addrspace(12)* addrspacecast ({}* inttoptr (i64 140090244128416 to {}*) to {} addrspace(12)*)), !dbg !243 unreachable, !dbg !243 pass133: ; preds = %idxend131 - %412 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %121, {} addrspace(10)* nonnull %"B::SubArray.parent126.ref"), !dbg !192 - %413 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090180137296 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi94, {} addrspace(10)* nonnull %412), !dbg !192 + %419 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %121, {} addrspace(10)* nonnull %"B::SubArray.parent126.ref"), !dbg !192 + %420 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090180137296 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi94, {} addrspace(10)* nonnull %419), !dbg !192 %.not974.not = icmp eq i64 %value_phi92, %56, !dbg !589 - %414 = add i64 %value_phi92, 1, !dbg !590 + %421 = add i64 %value_phi92, 1, !dbg !590 br i1 %.not974.not, label %L654.loopexit, label %L478, !dbg !591 oob141: ; preds = %L654 @@ -2606,14 +2680,14 @@ call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 %errorbox142 = alloca i64, align 8, !dbg !244 store i64 %value_phi29.lcssa1165, i64* %errorbox142, align 8, !dbg !244 - %415 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !244 - call void @ijl_bounds_error_ints({} addrspace(12)* %415, i64* nonnull %errorbox142, i64 1), !dbg !244 + %422 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !244 + call void @ijl_bounds_error_ints({} addrspace(12)* %422, i64* nonnull %errorbox142, i64 1), !dbg !244 unreachable, !dbg !244 idxend143: ; preds = %L654 %.flags145 = load i16, i16 addrspace(11)* %.flags_ptr144, align 2, !dbg !244, !tbaa !397, !alias.scope !93, !noalias !94 - %416 = and i16 %.flags145, 3, !dbg !244 - %has_owner146 = icmp eq i16 %416, 3, !dbg !244 + %423 = and i16 %.flags145, 3, !dbg !244 + %has_owner146 = icmp eq i16 %423, 3, !dbg !244 br i1 %has_owner146, label %array_owned147, label %merge_own148, !dbg !244 array_owned147: ; preds = %idxend143 @@ -2623,11 +2697,11 @@ merge_own148: ; preds = %array_owned147, %idxend143 %data_owner150 = phi {} addrspace(10)* [ %"C::Array", %idxend143 ], [ %external_owner149, %array_owned147 ], !dbg !244 %.data152 = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %72, align 8, !dbg !244, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 - %417 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data152, i64 %126, !dbg !244 - store atomic {} addrspace(10)* %value_phi137, {} addrspace(10)* addrspace(13)* %417 release, align 8, !dbg !244, !tbaa !403, !alias.scope !44, !noalias !47 + %424 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data152, i64 %126, !dbg !244 + store atomic {} addrspace(10)* %value_phi137, {} addrspace(10)* addrspace(13)* %424 release, align 8, !dbg !244, !tbaa !403, !alias.scope !44, !noalias !47 call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* nonnull %data_owner150, {} addrspace(10)* nonnull %value_phi137), !dbg !244 %.not975.not = icmp eq i64 %value_phi29, %.unbox, !dbg !592 - %418 = add nuw nsw i64 %value_phi29, 1, !dbg !593 + %425 = add nuw nsw i64 %value_phi29, 1, !dbg !593 br i1 %.not975.not, label %L1843.loopexit1102, label %L136, !dbg !594 notfound168: ; preds = %L584 @@ -2637,8 +2711,8 @@ found170: ; preds = %notfound168, %L584 %Main.unsafe_load0171 = phi {}* [ %Main.unsafe_load0.cached166, %L584 ], [ %Main.unsafe_load0.found169, %notfound168 ], !dbg !209 - %419 = bitcast {}* %Main.unsafe_load0171 to {} addrspace(10)**, !dbg !209 - %unsafe_load0.checked172 = load atomic {} addrspace(10)*, {} addrspace(10)** %419 unordered, align 8, !dbg !209, !tbaa !450, !alias.scope !44, !noalias !47 + %426 = bitcast {}* %Main.unsafe_load0171 to {} addrspace(10)**, !dbg !209 + %unsafe_load0.checked172 = load atomic {} addrspace(10)*, {} addrspace(10)** %426 unordered, align 8, !dbg !209, !tbaa !450, !alias.scope !44, !noalias !47 %.not979 = icmp eq {} addrspace(10)* %unsafe_load0.checked172, null, !dbg !209 br i1 %.not979, label %err173, label %ok174, !dbg !209 @@ -2649,9 +2723,9 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - call void @llvm.julia.gc_preserve_end(token %401), !dbg !200 - call void @llvm.julia.gc_preserve_end(token %400), !dbg !205 - call void @llvm.julia.gc_preserve_end(token %399), !dbg !209 + call void @llvm.julia.gc_preserve_end(token %408), !dbg !200 + call void @llvm.julia.gc_preserve_end(token %407), !dbg !205 + call void @llvm.julia.gc_preserve_end(token %406), !dbg !209 call void @ijl_undefined_var_error({} addrspace(12)* addrspacecast ({}* inttoptr (i64 140088985944440 to {}*) to {} addrspace(12)*)), !dbg !209 unreachable, !dbg !209 @@ -2665,8 +2739,8 @@ found184: ; preds = %notfound182, %L608 %Main.unsafe_load0185 = phi {}* [ %Main.unsafe_load0.cached180, %L608 ], [ %Main.unsafe_load0.found183, %notfound182 ], !dbg !205 - %420 = bitcast {}* %Main.unsafe_load0185 to {} addrspace(10)**, !dbg !205 - %unsafe_load0.checked186 = load atomic {} addrspace(10)*, {} addrspace(10)** %420 unordered, align 8, !dbg !205, !tbaa !450, !alias.scope !44, !noalias !47 + %427 = bitcast {}* %Main.unsafe_load0185 to {} addrspace(10)**, !dbg !205 + %unsafe_load0.checked186 = load atomic {} addrspace(10)*, {} addrspace(10)** %427 unordered, align 8, !dbg !205, !tbaa !450, !alias.scope !44, !noalias !47 %.not980 = icmp eq {} addrspace(10)* %unsafe_load0.checked186, null, !dbg !205 br i1 %.not980, label %err187, label %ok188, !dbg !205 @@ -2677,14 +2751,14 @@ call void @llvm.julia.gc_preserve_end(token %75), !dbg !142 call void @llvm.julia.gc_preserve_end(token %74), !dbg !138 call void @llvm.julia.gc_preserve_end(token %73), !dbg !126 - call void @llvm.julia.gc_preserve_end(token %401), !dbg !200 - call void @llvm.julia.gc_preserve_end(token %400), !dbg !205 - call void @llvm.julia.gc_preserve_end(token %399), !dbg !209 + call void @llvm.julia.gc_preserve_end(token %408), !dbg !200 + call void @llvm.julia.gc_preserve_end(token %407), !dbg !205 + call void @llvm.julia.gc_preserve_end(token %406), !dbg !209 call void @ijl_undefined_var_error({} addrspace(12)* addrspacecast ({}* inttoptr (i64 140088985944440 to {}*) to {} addrspace(12)*)), !dbg !205 unreachable, !dbg !205 ok188: ; preds = %found184 - %421 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185299024 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked186), !dbg !208 + %428 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185299024 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked186), !dbg !208 br label %L618, !dbg !544 notfound204: ; preds = %L403 @@ -2694,8 +2768,8 @@ found206: ; preds = %notfound204, %L403 %Main.unsafe_load0207 = phi {}* [ %Main.unsafe_load0.cached202, %L403 ], [ %Main.unsafe_load0.found205, %notfound204 ], !dbg !126 - %422 = bitcast {}* %Main.unsafe_load0207 to {} addrspace(10)**, !dbg !126 - %unsafe_load0.checked208 = load atomic {} addrspace(10)*, {} addrspace(10)** %422 unordered, align 8, !dbg !126, !tbaa !450, !alias.scope !44, !noalias !47 + %429 = bitcast {}* %Main.unsafe_load0207 to {} addrspace(10)**, !dbg !126 + %unsafe_load0.checked208 = load atomic {} addrspace(10)*, {} addrspace(10)** %429 unordered, align 8, !dbg !126, !tbaa !450, !alias.scope !44, !noalias !47 %.not984 = icmp eq {} addrspace(10)* %unsafe_load0.checked208, null, !dbg !126 br i1 %.not984, label %err209, label %ok210, !dbg !126 @@ -2719,8 +2793,8 @@ found220: ; preds = %notfound218, %L427 %Main.unsafe_load0221 = phi {}* [ %Main.unsafe_load0.cached216, %L427 ], [ %Main.unsafe_load0.found219, %notfound218 ], !dbg !138 - %423 = bitcast {}* %Main.unsafe_load0221 to {} addrspace(10)**, !dbg !138 - %unsafe_load0.checked222 = load atomic {} addrspace(10)*, {} addrspace(10)** %423 unordered, align 8, !dbg !138, !tbaa !450, !alias.scope !44, !noalias !47 + %430 = bitcast {}* %Main.unsafe_load0221 to {} addrspace(10)**, !dbg !138 + %unsafe_load0.checked222 = load atomic {} addrspace(10)*, {} addrspace(10)** %430 unordered, align 8, !dbg !138, !tbaa !450, !alias.scope !44, !noalias !47 %.not985 = icmp eq {} addrspace(10)* %unsafe_load0.checked222, null, !dbg !138 br i1 %.not985, label %err223, label %ok224, !dbg !138 @@ -2735,7 +2809,7 @@ unreachable, !dbg !138 ok224: ; preds = %found220 - %424 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185299024 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked222), !dbg !141 + %431 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185299024 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked222), !dbg !141 br label %L438, !dbg !544 notfound240: ; preds = %L243 @@ -2745,8 +2819,8 @@ found242: ; preds = %notfound240, %L243 %Main.unsafe_load0243 = phi {}* [ %Main.unsafe_load0.cached238, %L243 ], [ %Main.unsafe_load0.found241, %notfound240 ], !dbg !126 - %425 = bitcast {}* %Main.unsafe_load0243 to {} addrspace(10)**, !dbg !126 - %unsafe_load0.checked244 = load atomic {} addrspace(10)*, {} addrspace(10)** %425 unordered, align 8, !dbg !126, !tbaa !450, !alias.scope !44, !noalias !47 + %432 = bitcast {}* %Main.unsafe_load0243 to {} addrspace(10)**, !dbg !126 + %unsafe_load0.checked244 = load atomic {} addrspace(10)*, {} addrspace(10)** %432 unordered, align 8, !dbg !126, !tbaa !450, !alias.scope !44, !noalias !47 %.not989 = icmp eq {} addrspace(10)* %unsafe_load0.checked244, null, !dbg !126 br i1 %.not989, label %err245, label %ok246, !dbg !126 @@ -2770,8 +2844,8 @@ found256: ; preds = %notfound254, %L267 %Main.unsafe_load0257 = phi {}* [ %Main.unsafe_load0.cached252, %L267 ], [ %Main.unsafe_load0.found255, %notfound254 ], !dbg !138 - %426 = bitcast {}* %Main.unsafe_load0257 to {} addrspace(10)**, !dbg !138 - %unsafe_load0.checked258 = load atomic {} addrspace(10)*, {} addrspace(10)** %426 unordered, align 8, !dbg !138, !tbaa !450, !alias.scope !44, !noalias !47 + %433 = bitcast {}* %Main.unsafe_load0257 to {} addrspace(10)**, !dbg !138 + %unsafe_load0.checked258 = load atomic {} addrspace(10)*, {} addrspace(10)** %433 unordered, align 8, !dbg !138, !tbaa !450, !alias.scope !44, !noalias !47 %.not990 = icmp eq {} addrspace(10)* %unsafe_load0.checked258, null, !dbg !138 br i1 %.not990, label %err259, label %ok260, !dbg !138 @@ -2786,21 +2860,21 @@ unreachable, !dbg !138 ok260: ; preds = %found256 - %427 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185299024 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked258), !dbg !141 + %434 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185299024 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked258), !dbg !141 br label %L278, !dbg !544 oob273: ; preds = %L691 %value_phi268.lcssa = phi i64 [ %value_phi268, %L691 ] %errorbox274 = alloca i64, align 8, !dbg !258 store i64 %value_phi268.lcssa, i64* %errorbox274, align 8, !dbg !258 - %428 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !258 - call void @ijl_bounds_error_ints({} addrspace(12)* %428, i64* nonnull %errorbox274, i64 1), !dbg !258 + %435 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !258 + call void @ijl_bounds_error_ints({} addrspace(12)* %435, i64* nonnull %errorbox274, i64 1), !dbg !258 unreachable, !dbg !258 idxend275: ; preds = %L691 %.flags277 = load i16, i16 addrspace(11)* %.flags_ptr276, align 2, !dbg !258, !tbaa !397, !alias.scope !93, !noalias !94 - %429 = and i16 %.flags277, 3, !dbg !258 - %has_owner278 = icmp eq i16 %429, 3, !dbg !258 + %436 = and i16 %.flags277, 3, !dbg !258 + %has_owner278 = icmp eq i16 %436, 3, !dbg !258 br i1 %has_owner278, label %array_owned279, label %merge_own280, !dbg !258 array_owned279: ; preds = %idxend275 @@ -2810,25 +2884,25 @@ merge_own280: ; preds = %array_owned279, %idxend275 %data_owner282 = phi {} addrspace(10)* [ %"C::Array", %idxend275 ], [ %external_owner281, %array_owned279 ], !dbg !258 %.data284 = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %132, align 8, !dbg !258, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 - %430 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data284, i64 %133, !dbg !258 - store atomic {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090314280160 to {}*) to {} addrspace(10)*), {} addrspace(10)* addrspace(13)* %430 release, align 8, !dbg !258, !tbaa !403, !alias.scope !44, !noalias !47 + %437 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data284, i64 %133, !dbg !258 + store atomic {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090314280160 to {}*) to {} addrspace(10)*), {} addrspace(10)* addrspace(13)* %437 release, align 8, !dbg !258, !tbaa !403, !alias.scope !44, !noalias !47 call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* nonnull %data_owner282, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090314280160 to {}*) to {} addrspace(10)*)), !dbg !258 %.not993.not = icmp eq i64 %value_phi268, %.unbox, !dbg !595 - %431 = add nuw nsw i64 %value_phi268, 1, !dbg !596 + %438 = add nuw nsw i64 %value_phi268, 1, !dbg !596 br i1 %.not993.not, label %L1843.loopexit1103, label %L691, !dbg !597 pass297: ; preds = %L722 %.lhs.trunc1090 = trunc i64 %183 to i8, !dbg !598 - %432 = udiv i8 %.lhs.trunc1090, 5, !dbg !598 - %.zext1091 = zext i8 %432 to i64, !dbg !598 + %439 = udiv i8 %.lhs.trunc1090, 5, !dbg !598 + %.zext1091 = zext i8 %439 to i64, !dbg !598 %.neg994 = mul nsw i64 %.zext1091, -5, !dbg !605 - %433 = add nsw i64 %.neg994, %183, !dbg !607 - %434 = add nsw i64 %433, 1, !dbg !608 - %435 = add nuw nsw i64 %.zext1091, 1, !dbg !609 - store i64 %434, i64* %136, align 8, !dbg !612, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %435, i64* %137, align 8, !dbg !612, !tbaa !154, !alias.scope !156, !noalias !157 - %436 = icmp ugt i64 %433, 4, !dbg !613 - br i1 %436, label %L758, label %L761, !dbg !291 + %440 = add nsw i64 %.neg994, %183, !dbg !607 + %441 = add nsw i64 %440, 1, !dbg !608 + %442 = add nuw nsw i64 %.zext1091, 1, !dbg !609 + store i64 %441, i64* %136, align 8, !dbg !612, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %442, i64* %137, align 8, !dbg !612, !tbaa !154, !alias.scope !156, !noalias !157 + %443 = icmp ugt i64 %440, 4, !dbg !613 + br i1 %443, label %L758, label %L761, !dbg !291 notfound305: ; preds = %L781 %Main.unsafe_load0.found306 = call {}* @ijl_get_binding_or_error({}* nonnull inttoptr (i64 140090240988912 to {}*), {}* nonnull inttoptr (i64 140088985944440 to {}*)), !dbg !278 @@ -2837,8 +2911,8 @@ found307: ; preds = %notfound305, %L781 %Main.unsafe_load0308 = phi {}* [ %Main.unsafe_load0.cached303, %L781 ], [ %Main.unsafe_load0.found306, %notfound305 ], !dbg !278 - %437 = bitcast {}* %Main.unsafe_load0308 to {} addrspace(10)**, !dbg !278 - %unsafe_load0.checked309 = load atomic {} addrspace(10)*, {} addrspace(10)** %437 unordered, align 8, !dbg !278, !tbaa !450, !alias.scope !44, !noalias !47 + %444 = bitcast {}* %Main.unsafe_load0308 to {} addrspace(10)**, !dbg !278 + %unsafe_load0.checked309 = load atomic {} addrspace(10)*, {} addrspace(10)** %444 unordered, align 8, !dbg !278, !tbaa !450, !alias.scope !44, !noalias !47 %.not996 = icmp eq {} addrspace(10)* %unsafe_load0.checked309, null, !dbg !278 br i1 %.not996, label %err310, label %ok311, !dbg !278 @@ -2863,8 +2937,8 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - %438 = addrspacecast {} addrspace(10)* %.lcssa1239 to {} addrspace(12)*, !dbg !281 - call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %438), !dbg !281 + %445 = addrspacecast {} addrspace(10)* %.lcssa1239 to {} addrspace(12)*, !dbg !281 + call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %445), !dbg !281 unreachable, !dbg !281 oob329: ; preds = %L880 @@ -2876,17 +2950,17 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - %439 = add i64 %"B::SubArray.offset1_ptr327.unbox.lcssa", 1, !dbg !619 + %446 = add i64 %"B::SubArray.offset1_ptr327.unbox.lcssa", 1, !dbg !619 %errorbox330 = alloca i64, align 8, !dbg !314 - store i64 %439, i64* %errorbox330, align 8, !dbg !314 - %440 = addrspacecast {} addrspace(10)* %"B::SubArray.parent326.lcssa" to {} addrspace(12)*, !dbg !314 - call void @ijl_bounds_error_ints({} addrspace(12)* %440, i64* nonnull %errorbox330, i64 1), !dbg !314 + store i64 %446, i64* %errorbox330, align 8, !dbg !314 + %447 = addrspacecast {} addrspace(10)* %"B::SubArray.parent326.lcssa" to {} addrspace(12)*, !dbg !314 + call void @ijl_bounds_error_ints({} addrspace(12)* %447, i64* nonnull %errorbox330, i64 1), !dbg !314 unreachable, !dbg !314 idxend331: ; preds = %L880 %"B::SubArray.parent326.data999" = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %148, align 8, !dbg !314, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 - %441 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %"B::SubArray.parent326.data999", i64 %"B::SubArray.offset1_ptr327.unbox", !dbg !314 - %"B::SubArray.parent326.ref" = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %441, align 8, !dbg !314, !tbaa !403, !alias.scope !44, !noalias !47 + %448 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %"B::SubArray.parent326.data999", i64 %"B::SubArray.offset1_ptr327.unbox", !dbg !314 + %"B::SubArray.parent326.ref" = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %448, align 8, !dbg !314, !tbaa !403, !alias.scope !44, !noalias !47 %.not1000 = icmp eq {} addrspace(10)* %"B::SubArray.parent326.ref", null, !dbg !314 br i1 %.not1000, label %fail332, label %pass337, !dbg !314 @@ -2901,10 +2975,10 @@ unreachable, !dbg !314 pass337: ; preds = %idxend331 - %442 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi319, {} addrspace(10)* nonnull %"B::SubArray.parent326.ref"), !dbg !273 + %449 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi319, {} addrspace(10)* nonnull %"B::SubArray.parent326.ref"), !dbg !273 store i64 %184, i64* %149, align 8, !dbg !287, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %434, i64* %150, align 8, !dbg !612, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %435, i64* %151, align 8, !dbg !612, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %441, i64* %150, align 8, !dbg !612, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %442, i64* %151, align 8, !dbg !612, !tbaa !154, !alias.scope !156, !noalias !157 br i1 false, label %L918, label %L921, !dbg !291 notfound345: ; preds = %L941 @@ -2914,8 +2988,8 @@ found347: ; preds = %notfound345, %L941 %Main.unsafe_load0348 = phi {}* [ %Main.unsafe_load0.cached343, %L941 ], [ %Main.unsafe_load0.found346, %notfound345 ], !dbg !278 - %443 = bitcast {}* %Main.unsafe_load0348 to {} addrspace(10)**, !dbg !278 - %unsafe_load0.checked349 = load atomic {} addrspace(10)*, {} addrspace(10)** %443 unordered, align 8, !dbg !278, !tbaa !450, !alias.scope !44, !noalias !47 + %450 = bitcast {}* %Main.unsafe_load0348 to {} addrspace(10)**, !dbg !278 + %unsafe_load0.checked349 = load atomic {} addrspace(10)*, {} addrspace(10)** %450 unordered, align 8, !dbg !278, !tbaa !450, !alias.scope !44, !noalias !47 %.not1003 = icmp eq {} addrspace(10)* %unsafe_load0.checked349, null, !dbg !278 br i1 %.not1003, label %err350, label %ok351, !dbg !278 @@ -2940,8 +3014,8 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - %444 = addrspacecast {} addrspace(10)* %.lcssa1245 to {} addrspace(12)*, !dbg !281 - call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %444), !dbg !281 + %451 = addrspacecast {} addrspace(10)* %.lcssa1245 to {} addrspace(12)*, !dbg !281 + call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %451), !dbg !281 unreachable, !dbg !281 oob369: ; preds = %L1040 @@ -2953,17 +3027,17 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - %445 = add i64 %"B::SubArray.offset1_ptr327.unbox.lcssa1296", 1, !dbg !619 + %452 = add i64 %"B::SubArray.offset1_ptr327.unbox.lcssa1296", 1, !dbg !619 %errorbox370 = alloca i64, align 8, !dbg !314 - store i64 %445, i64* %errorbox370, align 8, !dbg !314 - %446 = addrspacecast {} addrspace(10)* %"B::SubArray.parent326.lcssa1324" to {} addrspace(12)*, !dbg !314 - call void @ijl_bounds_error_ints({} addrspace(12)* %446, i64* nonnull %errorbox370, i64 1), !dbg !314 + store i64 %452, i64* %errorbox370, align 8, !dbg !314 + %453 = addrspacecast {} addrspace(10)* %"B::SubArray.parent326.lcssa1324" to {} addrspace(12)*, !dbg !314 + call void @ijl_bounds_error_ints({} addrspace(12)* %453, i64* nonnull %errorbox370, i64 1), !dbg !314 unreachable, !dbg !314 idxend371: ; preds = %L1040 %"B::SubArray.parent366.data1006" = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %148, align 8, !dbg !314, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 - %447 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %"B::SubArray.parent366.data1006", i64 %"B::SubArray.offset1_ptr327.unbox", !dbg !314 - %"B::SubArray.parent366.ref" = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %447, align 8, !dbg !314, !tbaa !403, !alias.scope !44, !noalias !47 + %454 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %"B::SubArray.parent366.data1006", i64 %"B::SubArray.offset1_ptr327.unbox", !dbg !314 + %"B::SubArray.parent366.ref" = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %454, align 8, !dbg !314, !tbaa !403, !alias.scope !44, !noalias !47 %.not1007 = icmp eq {} addrspace(10)* %"B::SubArray.parent366.ref", null, !dbg !314 br i1 %.not1007, label %fail372, label %pass373, !dbg !314 @@ -2978,38 +3052,38 @@ unreachable, !dbg !314 pass373: ; preds = %idxend371 - %448 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi359, {} addrspace(10)* nonnull %"B::SubArray.parent366.ref"), !dbg !273 - %449 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090180137296 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %442, {} addrspace(10)* nonnull %448), !dbg !273 - %450 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090184494160 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %449), !dbg !273 + %455 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi359, {} addrspace(10)* nonnull %"B::SubArray.parent366.ref"), !dbg !273 + %456 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090180137296 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %449, {} addrspace(10)* nonnull %455), !dbg !273 + %457 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090184494160 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %456), !dbg !273 br i1 %160, label %L1240, label %L1064.preheader, !dbg !620 L1064.preheader: ; preds = %pass373 %bitcast447 = load i32, i32 addrspace(11)* %"A::Hermitian.uplo_ptr446", align 8 - %451 = icmp eq i32 %bitcast447, 1426063360 + %458 = icmp eq i32 %bitcast447, 1426063360 %"A::Hermitian.data450" = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %"A::Hermitian.data_ptr449" unordered, align 8 %"A::Hermitian.data464" = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %"A::Hermitian.data_ptr463" unordered, align 8 %"A::Hermitian.data388" = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %"A::Hermitian.data_ptr387" unordered, align 8 %bitcast400 = load i32, i32 addrspace(11)* %"A::Hermitian.uplo_ptr399", align 8 %.not1011 = icmp eq i32 %bitcast400, 1426063360 %.not1017 = icmp eq i32 %bitcast400, 1275068416 - %452 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data450"), !dbg !334 - %453 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data464"), !dbg !330 - %454 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data388"), !dbg !325 + %459 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data450"), !dbg !334 + %460 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data464"), !dbg !330 + %461 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data388"), !dbg !325 br label %L1064, !dbg !324 pass384: ; preds = %L1064 - %455 = add nsw i64 %210, -1, !dbg !621 - %.lhs.trunc1094 = trunc i64 %455 to i8, !dbg !626 - %456 = udiv i8 %.lhs.trunc1094, 5, !dbg !626 - %.zext1095 = zext i8 %456 to i64, !dbg !626 + %462 = add nsw i64 %210, -1, !dbg !621 + %.lhs.trunc1094 = trunc i64 %462 to i8, !dbg !626 + %463 = udiv i8 %.lhs.trunc1094, 5, !dbg !626 + %.zext1095 = zext i8 %463 to i64, !dbg !626 %.neg1008 = mul nsw i64 %.zext1095, -5, !dbg !629 - %457 = add nsw i64 %.neg1008, %210, !dbg !631 - %458 = add nuw nsw i64 %.zext1095, 1, !dbg !632 - store i64 %457, i64* %162, align 8, !dbg !635, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %458, i64* %163, align 8, !dbg !635, !tbaa !154, !alias.scope !156, !noalias !157 - %459 = add nsw i64 %457, -6, !dbg !636 - %460 = icmp ult i64 %459, -5, !dbg !636 - br i1 %460, label %L1099, label %L1102, !dbg !338 + %464 = add nsw i64 %.neg1008, %210, !dbg !631 + %465 = add nuw nsw i64 %.zext1095, 1, !dbg !632 + store i64 %464, i64* %162, align 8, !dbg !635, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %465, i64* %163, align 8, !dbg !635, !tbaa !154, !alias.scope !156, !noalias !157 + %466 = add nsw i64 %464, -6, !dbg !636 + %467 = icmp ult i64 %466, -5, !dbg !636 + br i1 %467, label %L1099, label %L1102, !dbg !338 notfound392: ; preds = %L1122 %Main.unsafe_load0.found393 = call {}* @ijl_get_binding_or_error({}* nonnull inttoptr (i64 140090240988912 to {}*), {}* nonnull inttoptr (i64 140088985944440 to {}*)), !dbg !325 @@ -3018,8 +3092,8 @@ found394: ; preds = %notfound392, %L1122 %Main.unsafe_load0395 = phi {}* [ %Main.unsafe_load0.cached390, %L1122 ], [ %Main.unsafe_load0.found393, %notfound392 ], !dbg !325 - %461 = bitcast {}* %Main.unsafe_load0395 to {} addrspace(10)**, !dbg !325 - %unsafe_load0.checked396 = load atomic {} addrspace(10)*, {} addrspace(10)** %461 unordered, align 8, !dbg !325, !tbaa !450, !alias.scope !44, !noalias !47 + %468 = bitcast {}* %Main.unsafe_load0395 to {} addrspace(10)**, !dbg !325 + %unsafe_load0.checked396 = load atomic {} addrspace(10)*, {} addrspace(10)** %468 unordered, align 8, !dbg !325, !tbaa !450, !alias.scope !44, !noalias !47 %.not1010 = icmp eq {} addrspace(10)* %unsafe_load0.checked396, null, !dbg !325 br i1 %.not1010, label %err397, label %ok398, !dbg !325 @@ -3030,9 +3104,9 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - call void @llvm.julia.gc_preserve_end(token %454), !dbg !325 - call void @llvm.julia.gc_preserve_end(token %453), !dbg !330 - call void @llvm.julia.gc_preserve_end(token %452), !dbg !334 + call void @llvm.julia.gc_preserve_end(token %461), !dbg !325 + call void @llvm.julia.gc_preserve_end(token %460), !dbg !330 + call void @llvm.julia.gc_preserve_end(token %459), !dbg !334 call void @ijl_undefined_var_error({} addrspace(12)* addrspacecast ({}* inttoptr (i64 140088985944440 to {}*) to {} addrspace(12)*)), !dbg !325 unreachable, !dbg !325 @@ -3047,11 +3121,11 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - call void @llvm.julia.gc_preserve_end(token %454), !dbg !325 - call void @llvm.julia.gc_preserve_end(token %453), !dbg !330 - call void @llvm.julia.gc_preserve_end(token %452), !dbg !334 - %462 = addrspacecast {} addrspace(10)* %.lcssa1229 to {} addrspace(12)*, !dbg !328 - call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %462), !dbg !328 + call void @llvm.julia.gc_preserve_end(token %461), !dbg !325 + call void @llvm.julia.gc_preserve_end(token %460), !dbg !330 + call void @llvm.julia.gc_preserve_end(token %459), !dbg !334 + %469 = addrspacecast {} addrspace(10)* %.lcssa1229 to {} addrspace(12)*, !dbg !328 + call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %469), !dbg !328 unreachable, !dbg !328 oob415: ; preds = %L1222 @@ -3063,19 +3137,19 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - call void @llvm.julia.gc_preserve_end(token %454), !dbg !325 - call void @llvm.julia.gc_preserve_end(token %453), !dbg !330 - call void @llvm.julia.gc_preserve_end(token %452), !dbg !334 + call void @llvm.julia.gc_preserve_end(token %461), !dbg !325 + call void @llvm.julia.gc_preserve_end(token %460), !dbg !330 + call void @llvm.julia.gc_preserve_end(token %459), !dbg !334 %errorbox416 = alloca i64, align 8, !dbg !367 store i64 %.lcssa1230, i64* %errorbox416, align 8, !dbg !367 - %463 = addrspacecast {} addrspace(10)* %"B::SubArray.parent326.lcssa1337" to {} addrspace(12)*, !dbg !367 - call void @ijl_bounds_error_ints({} addrspace(12)* %463, i64* nonnull %errorbox416, i64 1), !dbg !367 + %470 = addrspacecast {} addrspace(10)* %"B::SubArray.parent326.lcssa1337" to {} addrspace(12)*, !dbg !367 + call void @ijl_bounds_error_ints({} addrspace(12)* %470, i64* nonnull %errorbox416, i64 1), !dbg !367 unreachable, !dbg !367 idxend417: ; preds = %L1222 %"B::SubArray.parent412.data1013" = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %148, align 8, !dbg !367, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 - %464 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %"B::SubArray.parent412.data1013", i64 %228, !dbg !367 - %"B::SubArray.parent412.ref" = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %464, align 8, !dbg !367, !tbaa !403, !alias.scope !44, !noalias !47 + %471 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %"B::SubArray.parent412.data1013", i64 %228, !dbg !367 + %"B::SubArray.parent412.ref" = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %471, align 8, !dbg !367, !tbaa !403, !alias.scope !44, !noalias !47 %.not1014 = icmp eq {} addrspace(10)* %"B::SubArray.parent412.ref", null, !dbg !367 br i1 %.not1014, label %fail418, label %pass419, !dbg !367 @@ -3086,17 +3160,17 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - call void @llvm.julia.gc_preserve_end(token %454), !dbg !325 - call void @llvm.julia.gc_preserve_end(token %453), !dbg !330 - call void @llvm.julia.gc_preserve_end(token %452), !dbg !334 + call void @llvm.julia.gc_preserve_end(token %461), !dbg !325 + call void @llvm.julia.gc_preserve_end(token %460), !dbg !330 + call void @llvm.julia.gc_preserve_end(token %459), !dbg !334 call void @ijl_throw({} addrspace(12)* addrspacecast ({}* inttoptr (i64 140090244128416 to {}*) to {} addrspace(12)*)), !dbg !367 unreachable, !dbg !367 pass419: ; preds = %idxend417 - %465 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %224, {} addrspace(10)* nonnull %"B::SubArray.parent412.ref"), !dbg !317 - %466 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090180137296 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi380, {} addrspace(10)* nonnull %465), !dbg !317 + %472 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %224, {} addrspace(10)* nonnull %"B::SubArray.parent412.ref"), !dbg !317 + %473 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090180137296 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi380, {} addrspace(10)* nonnull %472), !dbg !317 %.not1015.not = icmp eq i64 %value_phi378, %159, !dbg !641 - %467 = add i64 %value_phi378, 1, !dbg !642 + %474 = add i64 %value_phi378, 1, !dbg !642 br i1 %.not1015.not, label %L1240.loopexit, label %L1064, !dbg !643 oob427: ; preds = %L1240 @@ -3109,14 +3183,14 @@ call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 %errorbox428 = alloca i64, align 8, !dbg !368 store i64 %value_phi292.lcssa1283, i64* %errorbox428, align 8, !dbg !368 - %468 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !368 - call void @ijl_bounds_error_ints({} addrspace(12)* %468, i64* nonnull %errorbox428, i64 1), !dbg !368 + %475 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !368 + call void @ijl_bounds_error_ints({} addrspace(12)* %475, i64* nonnull %errorbox428, i64 1), !dbg !368 unreachable, !dbg !368 idxend429: ; preds = %L1240 %.flags431 = load i16, i16 addrspace(11)* %.flags_ptr430, align 2, !dbg !368, !tbaa !397, !alias.scope !93, !noalias !94 - %469 = and i16 %.flags431, 3, !dbg !368 - %has_owner432 = icmp eq i16 %469, 3, !dbg !368 + %476 = and i16 %.flags431, 3, !dbg !368 + %has_owner432 = icmp eq i16 %476, 3, !dbg !368 br i1 %has_owner432, label %array_owned433, label %merge_own434, !dbg !368 array_owned433: ; preds = %idxend429 @@ -3126,11 +3200,11 @@ merge_own434: ; preds = %array_owned433, %idxend429 %data_owner436 = phi {} addrspace(10)* [ %"C::Array", %idxend429 ], [ %external_owner435, %array_owned433 ], !dbg !368 %.data438 = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %175, align 8, !dbg !368, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 - %470 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data438, i64 %229, !dbg !368 - store atomic {} addrspace(10)* %value_phi423, {} addrspace(10)* addrspace(13)* %470 release, align 8, !dbg !368, !tbaa !403, !alias.scope !44, !noalias !47 + %477 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data438, i64 %229, !dbg !368 + store atomic {} addrspace(10)* %value_phi423, {} addrspace(10)* addrspace(13)* %477 release, align 8, !dbg !368, !tbaa !403, !alias.scope !44, !noalias !47 call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* nonnull %data_owner436, {} addrspace(10)* nonnull %value_phi423), !dbg !368 %.not1016.not = icmp eq i64 %value_phi292, %.unbox, !dbg !644 - %471 = add nuw nsw i64 %value_phi292, 1, !dbg !645 + %478 = add nuw nsw i64 %value_phi292, 1, !dbg !645 br i1 %.not1016.not, label %L1843.loopexit1104, label %L722, !dbg !646 notfound454: ; preds = %L1170 @@ -3140,8 +3214,8 @@ found456: ; preds = %notfound454, %L1170 %Main.unsafe_load0457 = phi {}* [ %Main.unsafe_load0.cached452, %L1170 ], [ %Main.unsafe_load0.found455, %notfound454 ], !dbg !334 - %472 = bitcast {}* %Main.unsafe_load0457 to {} addrspace(10)**, !dbg !334 - %unsafe_load0.checked458 = load atomic {} addrspace(10)*, {} addrspace(10)** %472 unordered, align 8, !dbg !334, !tbaa !450, !alias.scope !44, !noalias !47 + %479 = bitcast {}* %Main.unsafe_load0457 to {} addrspace(10)**, !dbg !334 + %unsafe_load0.checked458 = load atomic {} addrspace(10)*, {} addrspace(10)** %479 unordered, align 8, !dbg !334, !tbaa !450, !alias.scope !44, !noalias !47 %.not1020 = icmp eq {} addrspace(10)* %unsafe_load0.checked458, null, !dbg !334 br i1 %.not1020, label %err459, label %ok460, !dbg !334 @@ -3152,9 +3226,9 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - call void @llvm.julia.gc_preserve_end(token %454), !dbg !325 - call void @llvm.julia.gc_preserve_end(token %453), !dbg !330 - call void @llvm.julia.gc_preserve_end(token %452), !dbg !334 + call void @llvm.julia.gc_preserve_end(token %461), !dbg !325 + call void @llvm.julia.gc_preserve_end(token %460), !dbg !330 + call void @llvm.julia.gc_preserve_end(token %459), !dbg !334 call void @ijl_undefined_var_error({} addrspace(12)* addrspacecast ({}* inttoptr (i64 140088985944440 to {}*) to {} addrspace(12)*)), !dbg !334 unreachable, !dbg !334 @@ -3168,8 +3242,8 @@ found470: ; preds = %notfound468, %L1194 %Main.unsafe_load0471 = phi {}* [ %Main.unsafe_load0.cached466, %L1194 ], [ %Main.unsafe_load0.found469, %notfound468 ], !dbg !330 - %473 = bitcast {}* %Main.unsafe_load0471 to {} addrspace(10)**, !dbg !330 - %unsafe_load0.checked472 = load atomic {} addrspace(10)*, {} addrspace(10)** %473 unordered, align 8, !dbg !330, !tbaa !450, !alias.scope !44, !noalias !47 + %480 = bitcast {}* %Main.unsafe_load0471 to {} addrspace(10)**, !dbg !330 + %unsafe_load0.checked472 = load atomic {} addrspace(10)*, {} addrspace(10)** %480 unordered, align 8, !dbg !330, !tbaa !450, !alias.scope !44, !noalias !47 %.not1021 = icmp eq {} addrspace(10)* %unsafe_load0.checked472, null, !dbg !330 br i1 %.not1021, label %err473, label %ok474, !dbg !330 @@ -3180,14 +3254,14 @@ call void @llvm.julia.gc_preserve_end(token %178), !dbg !278 call void @llvm.julia.gc_preserve_end(token %177), !dbg !274 call void @llvm.julia.gc_preserve_end(token %176), !dbg !267 - call void @llvm.julia.gc_preserve_end(token %454), !dbg !325 - call void @llvm.julia.gc_preserve_end(token %453), !dbg !330 - call void @llvm.julia.gc_preserve_end(token %452), !dbg !334 + call void @llvm.julia.gc_preserve_end(token %461), !dbg !325 + call void @llvm.julia.gc_preserve_end(token %460), !dbg !330 + call void @llvm.julia.gc_preserve_end(token %459), !dbg !334 call void @ijl_undefined_var_error({} addrspace(12)* addrspacecast ({}* inttoptr (i64 140088985944440 to {}*) to {} addrspace(12)*)), !dbg !330 unreachable, !dbg !330 ok474: ; preds = %found470 - %474 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185299024 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked472), !dbg !333 + %481 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185299024 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked472), !dbg !333 br label %L1204, !dbg !596 notfound490: ; preds = %L989 @@ -3197,8 +3271,8 @@ found492: ; preds = %notfound490, %L989 %Main.unsafe_load0493 = phi {}* [ %Main.unsafe_load0.cached488, %L989 ], [ %Main.unsafe_load0.found491, %notfound490 ], !dbg !267 - %475 = bitcast {}* %Main.unsafe_load0493 to {} addrspace(10)**, !dbg !267 - %unsafe_load0.checked494 = load atomic {} addrspace(10)*, {} addrspace(10)** %475 unordered, align 8, !dbg !267, !tbaa !450, !alias.scope !44, !noalias !47 + %482 = bitcast {}* %Main.unsafe_load0493 to {} addrspace(10)**, !dbg !267 + %unsafe_load0.checked494 = load atomic {} addrspace(10)*, {} addrspace(10)** %482 unordered, align 8, !dbg !267, !tbaa !450, !alias.scope !44, !noalias !47 %.not1025 = icmp eq {} addrspace(10)* %unsafe_load0.checked494, null, !dbg !267 br i1 %.not1025, label %err495, label %ok496, !dbg !267 @@ -3222,8 +3296,8 @@ found506: ; preds = %notfound504, %L1013 %Main.unsafe_load0507 = phi {}* [ %Main.unsafe_load0.cached502, %L1013 ], [ %Main.unsafe_load0.found505, %notfound504 ], !dbg !274 - %476 = bitcast {}* %Main.unsafe_load0507 to {} addrspace(10)**, !dbg !274 - %unsafe_load0.checked508 = load atomic {} addrspace(10)*, {} addrspace(10)** %476 unordered, align 8, !dbg !274, !tbaa !450, !alias.scope !44, !noalias !47 + %483 = bitcast {}* %Main.unsafe_load0507 to {} addrspace(10)**, !dbg !274 + %unsafe_load0.checked508 = load atomic {} addrspace(10)*, {} addrspace(10)** %483 unordered, align 8, !dbg !274, !tbaa !450, !alias.scope !44, !noalias !47 %.not1026 = icmp eq {} addrspace(10)* %unsafe_load0.checked508, null, !dbg !274 br i1 %.not1026, label %err509, label %ok510, !dbg !274 @@ -3238,7 +3312,7 @@ unreachable, !dbg !274 ok510: ; preds = %found506 - %477 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185299024 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked508), !dbg !277 + %484 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185299024 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked508), !dbg !277 br label %L1024, !dbg !596 notfound526: ; preds = %L829 @@ -3248,8 +3322,8 @@ found528: ; preds = %notfound526, %L829 %Main.unsafe_load0529 = phi {}* [ %Main.unsafe_load0.cached524, %L829 ], [ %Main.unsafe_load0.found527, %notfound526 ], !dbg !267 - %478 = bitcast {}* %Main.unsafe_load0529 to {} addrspace(10)**, !dbg !267 - %unsafe_load0.checked530 = load atomic {} addrspace(10)*, {} addrspace(10)** %478 unordered, align 8, !dbg !267, !tbaa !450, !alias.scope !44, !noalias !47 + %485 = bitcast {}* %Main.unsafe_load0529 to {} addrspace(10)**, !dbg !267 + %unsafe_load0.checked530 = load atomic {} addrspace(10)*, {} addrspace(10)** %485 unordered, align 8, !dbg !267, !tbaa !450, !alias.scope !44, !noalias !47 %.not1030 = icmp eq {} addrspace(10)* %unsafe_load0.checked530, null, !dbg !267 br i1 %.not1030, label %err531, label %ok532, !dbg !267 @@ -3273,8 +3347,8 @@ found542: ; preds = %notfound540, %L853 %Main.unsafe_load0543 = phi {}* [ %Main.unsafe_load0.cached538, %L853 ], [ %Main.unsafe_load0.found541, %notfound540 ], !dbg !274 - %479 = bitcast {}* %Main.unsafe_load0543 to {} addrspace(10)**, !dbg !274 - %unsafe_load0.checked544 = load atomic {} addrspace(10)*, {} addrspace(10)** %479 unordered, align 8, !dbg !274, !tbaa !450, !alias.scope !44, !noalias !47 + %486 = bitcast {}* %Main.unsafe_load0543 to {} addrspace(10)**, !dbg !274 + %unsafe_load0.checked544 = load atomic {} addrspace(10)*, {} addrspace(10)** %486 unordered, align 8, !dbg !274, !tbaa !450, !alias.scope !44, !noalias !47 %.not1031 = icmp eq {} addrspace(10)* %unsafe_load0.checked544, null, !dbg !274 br i1 %.not1031, label %err545, label %ok546, !dbg !274 @@ -3289,7 +3363,7 @@ unreachable, !dbg !274 ok546: ; preds = %found542 - %480 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185299024 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked544), !dbg !277 + %487 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185299024 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked544), !dbg !277 br label %L864, !dbg !596 oob559: ; preds = %L1277 @@ -3302,14 +3376,14 @@ call void @llvm.julia.gc_preserve_end(token %270), !dbg !378 %errorbox560 = alloca i64, align 8, !dbg !471 store i64 %value_phi554.lcssa, i64* %errorbox560, align 8, !dbg !471 - %481 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !471 - call void @ijl_bounds_error_ints({} addrspace(12)* %481, i64* nonnull %errorbox560, i64 1), !dbg !471 + %488 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !471 + call void @ijl_bounds_error_ints({} addrspace(12)* %488, i64* nonnull %errorbox560, i64 1), !dbg !471 unreachable, !dbg !471 idxend561: ; preds = %L1277 %.data5631033 = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %232, align 8, !dbg !471, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 - %482 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data5631033, i64 %317, !dbg !471 - %.ref = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %482, align 8, !dbg !471, !tbaa !403, !alias.scope !44, !noalias !47 + %489 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data5631033, i64 %317, !dbg !471 + %.ref = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %489, align 8, !dbg !471, !tbaa !403, !alias.scope !44, !noalias !47 %.not1034 = icmp eq {} addrspace(10)* %.ref, null, !dbg !471 br i1 %.not1034, label %fail564, label %pass565, !dbg !471 @@ -3324,7 +3398,7 @@ unreachable, !dbg !471 pass565: ; preds = %idxend561 - %483 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %.ref, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090314280144 to {}*) to {} addrspace(10)*)), !dbg !472 + %490 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %.ref, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090314280144 to {}*) to {} addrspace(10)*)), !dbg !472 %.length568 = load i64, i64 addrspace(11)* %.length_ptr, align 8, !dbg !647, !tbaa !89, !range !92, !alias.scope !93, !noalias !94 %inbounds569 = icmp ult i64 %317, %.length568, !dbg !647 br i1 %inbounds569, label %idxend572, label %oob570, !dbg !647 @@ -3339,14 +3413,14 @@ call void @llvm.julia.gc_preserve_end(token %270), !dbg !378 %errorbox571 = alloca i64, align 8, !dbg !647 store i64 %value_phi554.lcssa1432, i64* %errorbox571, align 8, !dbg !647 - %484 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !647 - call void @ijl_bounds_error_ints({} addrspace(12)* %484, i64* nonnull %errorbox571, i64 1), !dbg !647 + %491 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !647 + call void @ijl_bounds_error_ints({} addrspace(12)* %491, i64* nonnull %errorbox571, i64 1), !dbg !647 unreachable, !dbg !647 idxend572: ; preds = %pass565 %.flags574 = load i16, i16 addrspace(11)* %.flags_ptr573, align 2, !dbg !647, !tbaa !397, !alias.scope !93, !noalias !94 - %485 = and i16 %.flags574, 3, !dbg !647 - %has_owner575 = icmp eq i16 %485, 3, !dbg !647 + %492 = and i16 %.flags574, 3, !dbg !647 + %has_owner575 = icmp eq i16 %492, 3, !dbg !647 br i1 %has_owner575, label %array_owned576, label %merge_own577, !dbg !647 array_owned576: ; preds = %idxend572 @@ -3356,28 +3430,44 @@ merge_own577: ; preds = %array_owned576, %idxend572 %data_owner579 = phi {} addrspace(10)* [ %"C::Array", %idxend572 ], [ %external_owner578, %array_owned576 ], !dbg !647 %.data581 = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %232, align 8, !dbg !647, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 - %486 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data581, i64 %317, !dbg !647 - store atomic {} addrspace(10)* %483, {} addrspace(10)* addrspace(13)* %486 release, align 8, !dbg !647, !tbaa !403, !alias.scope !44, !noalias !47 - call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* nonnull %data_owner579, {} addrspace(10)* nonnull %483), !dbg !647 + %493 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data581, i64 %317, !dbg !647 + store atomic {} addrspace(10)* %490, {} addrspace(10)* addrspace(13)* %493 release, align 8, !dbg !647, !tbaa !403, !alias.scope !44, !noalias !47 + call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* nonnull %data_owner579, {} addrspace(10)* nonnull %490), !dbg !647 br label %L1607, !dbg !472 -oob600: ; preds = %L1655 - %"B::SubArray.parent597.lcssa" = phi {} addrspace(10)* [ %"B::SubArray.parent597", %L1655 ], !dbg !648 - %.lcssa1360 = phi i64 [ %356, %L1655 ], !dbg !499 +oob600.loopexit: ; preds = %L1655.postloop + %"B::SubArray.parent597.lcssa.ph" = phi {} addrspace(10)* [ %"B::SubArray.parent597", %L1655.postloop ] + %.lcssa1360.ph = phi i64 [ %531, %L1655.postloop ] + br label %oob600, !dbg !501 + +oob600.loopexit1498: ; preds = %L1655 + %"B::SubArray.parent597.lcssa.ph1499" = phi {} addrspace(10)* [ %"B::SubArray.parent597", %L1655 ] + %.lcssa1360.ph1500 = phi i64 [ %360, %L1655 ] + br label %oob600, !dbg !501 + +oob600: ; preds = %oob600.loopexit1498, %oob600.loopexit + %"B::SubArray.parent597.lcssa" = phi {} addrspace(10)* [ %"B::SubArray.parent597.lcssa.ph", %oob600.loopexit ], [ %"B::SubArray.parent597.lcssa.ph1499", %oob600.loopexit1498 ], !dbg !648 + %.lcssa1360 = phi i64 [ %.lcssa1360.ph, %oob600.loopexit ], [ %.lcssa1360.ph1500, %oob600.loopexit1498 ], !dbg !499 %errorbox601 = alloca i64, align 8, !dbg !501 store i64 %.lcssa1360, i64* %errorbox601, align 8, !dbg !501 - %487 = addrspacecast {} addrspace(10)* %"B::SubArray.parent597.lcssa" to {} addrspace(12)*, !dbg !501 - call void @ijl_bounds_error_ints({} addrspace(12)* %487, i64* nonnull %errorbox601, i64 1), !dbg !501 + %494 = addrspacecast {} addrspace(10)* %"B::SubArray.parent597.lcssa" to {} addrspace(12)*, !dbg !501 + call void @ijl_bounds_error_ints({} addrspace(12)* %494, i64* nonnull %errorbox601, i64 1), !dbg !501 unreachable, !dbg !501 idxend602: ; preds = %L1655 %"B::SubArray.parent597.data1039" = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %335, align 8, !dbg !501, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 - %488 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %"B::SubArray.parent597.data1039", i64 %357, !dbg !501 - %"B::SubArray.parent597.ref" = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %488, align 8, !dbg !501, !tbaa !403, !alias.scope !44, !noalias !47 + %495 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %"B::SubArray.parent597.data1039", i64 %361, !dbg !501 + %"B::SubArray.parent597.ref" = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %495, align 8, !dbg !501, !tbaa !403, !alias.scope !44, !noalias !47 %.not1040 = icmp eq {} addrspace(10)* %"B::SubArray.parent597.ref", null, !dbg !501 - br i1 %.not1040, label %fail603, label %pass604, !dbg !501 + br i1 %.not1040, label %fail603.loopexit1501, label %pass604, !dbg !501 + +fail603.loopexit: ; preds = %idxend602.postloop + br label %fail603, !dbg !501 -fail603: ; preds = %idxend602 +fail603.loopexit1501: ; preds = %idxend602 + br label %fail603, !dbg !501 + +fail603: ; preds = %fail603.loopexit1501, %fail603.loopexit call void @ijl_throw({} addrspace(12)* addrspacecast ({}* inttoptr (i64 140090244128416 to {}*) to {} addrspace(12)*)), !dbg !501 unreachable, !dbg !501 @@ -3386,63 +3476,77 @@ L1676.preheader: ; preds = %pass604 %bitcast673 = load i32, i32 addrspace(11)* %"A::Hermitian.uplo_ptr672", align 8 - %489 = icmp eq i32 %bitcast673, 1426063360 + %496 = icmp eq i32 %bitcast673, 1426063360 %"A::Hermitian.data676" = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %"A::Hermitian.data_ptr675" unordered, align 8 %"A::Hermitian.data690" = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %"A::Hermitian.data_ptr689" unordered, align 8 %"A::Hermitian.data629" = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %"A::Hermitian.data_ptr628" unordered, align 8 %bitcast641 = load i32, i32 addrspace(11)* %"A::Hermitian.uplo_ptr640", align 8 %.not1047 = icmp eq i32 %bitcast641, 1426063360 %.not1050 = icmp eq i32 %bitcast641, 1275068416 - %490 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data676"), !dbg !514 - %491 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data690"), !dbg !510 - %492 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data629"), !dbg !504 + %497 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data676"), !dbg !514 + %498 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data690"), !dbg !510 + %499 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data629"), !dbg !504 br label %L1676, !dbg !502 -oob614: ; preds = %L1676 - %value_phi609.lcssa = phi i64 [ %value_phi609, %L1676 ] - call void @llvm.julia.gc_preserve_end(token %492), !dbg !504 - call void @llvm.julia.gc_preserve_end(token %491), !dbg !510 - call void @llvm.julia.gc_preserve_end(token %490), !dbg !514 +oob614.loopexit: ; preds = %L1676.postloop + %value_phi609.lcssa.ph = phi i64 [ %value_phi609.postloop, %L1676.postloop ] + br label %oob614, !dbg !504 + +oob614.loopexit1477: ; preds = %L1676 + %value_phi609.lcssa.ph1478 = phi i64 [ %value_phi609, %L1676 ] + br label %oob614, !dbg !504 + +oob614: ; preds = %oob614.loopexit1477, %oob614.loopexit + %value_phi609.lcssa = phi i64 [ %value_phi609.lcssa.ph, %oob614.loopexit ], [ %value_phi609.lcssa.ph1478, %oob614.loopexit1477 ] + call void @llvm.julia.gc_preserve_end(token %499), !dbg !504 + call void @llvm.julia.gc_preserve_end(token %498), !dbg !510 + call void @llvm.julia.gc_preserve_end(token %497), !dbg !514 %errorbox615 = alloca i64, align 8, !dbg !502 store i64 %value_phi609.lcssa, i64* %errorbox615, align 8, !dbg !502 - %493 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !502 - call void @ijl_bounds_error_ints({} addrspace(12)* %493, i64* nonnull %errorbox615, i64 1), !dbg !502 + %500 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !502 + call void @ijl_bounds_error_ints({} addrspace(12)* %500, i64* nonnull %errorbox615, i64 1), !dbg !502 unreachable, !dbg !502 idxend616: ; preds = %L1676 %.data6181042 = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %339, align 8, !dbg !502, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 - %494 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data6181042, i64 %358, !dbg !502 - %.ref621 = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %494, align 8, !dbg !502, !tbaa !403, !alias.scope !44, !noalias !47 + %501 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data6181042, i64 %362, !dbg !502 + %.ref621 = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %501, align 8, !dbg !502, !tbaa !403, !alias.scope !44, !noalias !47 %.not1043 = icmp eq {} addrspace(10)* %.ref621, null, !dbg !502 - br i1 %.not1043, label %fail619, label %pass620, !dbg !502 + br i1 %.not1043, label %fail619.loopexit1479, label %pass620, !dbg !502 + +fail619.loopexit: ; preds = %idxend616.postloop + br label %fail619, !dbg !504 + +fail619.loopexit1479: ; preds = %idxend616 + br label %fail619, !dbg !504 -fail619: ; preds = %idxend616 - call void @llvm.julia.gc_preserve_end(token %492), !dbg !504 - call void @llvm.julia.gc_preserve_end(token %491), !dbg !510 - call void @llvm.julia.gc_preserve_end(token %490), !dbg !514 +fail619: ; preds = %fail619.loopexit1479, %fail619.loopexit + call void @llvm.julia.gc_preserve_end(token %499), !dbg !504 + call void @llvm.julia.gc_preserve_end(token %498), !dbg !510 + call void @llvm.julia.gc_preserve_end(token %497), !dbg !514 call void @ijl_throw({} addrspace(12)* addrspacecast ({}* inttoptr (i64 140090244128416 to {}*) to {} addrspace(12)*)), !dbg !502 unreachable, !dbg !502 pass620: ; preds = %idxend616 - %495 = add i64 %353, %value_phi609, !dbg !650 - store i64 %495, i64* %340, align 8, !dbg !651, !tbaa !154, !alias.scope !156, !noalias !157 - %496 = add i64 %495, -26, !dbg !652 - %497 = icmp ult i64 %496, -25, !dbg !652 - br i1 %497, label %L1688, label %pass625, !dbg !518 + %502 = add i64 %357, %value_phi609, !dbg !650 + store i64 %502, i64* %340, align 8, !dbg !651, !tbaa !154, !alias.scope !156, !noalias !157 + %503 = add i64 %502, -26, !dbg !652 + %504 = icmp ult i64 %503, -25, !dbg !652 + br i1 %504, label %L1688.loopexit1480, label %pass625, !dbg !518 pass625: ; preds = %pass620 - %498 = add nsw i64 %495, -1, !dbg !655 - %.lhs.trunc1096 = trunc i64 %498 to i8, !dbg !660 - %499 = udiv i8 %.lhs.trunc1096, 5, !dbg !660 - %.zext1097 = zext i8 %499 to i64, !dbg !660 + %505 = add nsw i64 %502, -1, !dbg !655 + %.lhs.trunc1096 = trunc i64 %505 to i8, !dbg !660 + %506 = udiv i8 %.lhs.trunc1096, 5, !dbg !660 + %.zext1097 = zext i8 %506 to i64, !dbg !660 %.neg1044 = mul nsw i64 %.zext1097, -5, !dbg !663 - %500 = add nsw i64 %.neg1044, %495, !dbg !665 - %501 = add nuw nsw i64 %.zext1097, 1, !dbg !666 - store i64 %500, i64* %341, align 8, !dbg !669, !tbaa !154, !alias.scope !156, !noalias !157 - store i64 %501, i64* %342, align 8, !dbg !669, !tbaa !154, !alias.scope !156, !noalias !157 - %502 = add nsw i64 %500, -6, !dbg !670 - %503 = icmp ult i64 %502, -5, !dbg !670 - br i1 %503, label %L1711, label %L1714, !dbg !520 + %507 = add nsw i64 %.neg1044, %502, !dbg !665 + %508 = add nuw nsw i64 %.zext1097, 1, !dbg !666 + store i64 %507, i64* %341, align 8, !dbg !669, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %508, i64* %342, align 8, !dbg !669, !tbaa !154, !alias.scope !156, !noalias !157 + %509 = add nsw i64 %507, -6, !dbg !670 + %510 = icmp ult i64 %509, -5, !dbg !670 + br i1 %510, label %L1711.loopexit1481, label %L1714, !dbg !520 notfound633: ; preds = %L1734 %Main.unsafe_load0.found634 = call {}* @ijl_get_binding_or_error({}* nonnull inttoptr (i64 140090240988912 to {}*), {}* nonnull inttoptr (i64 140088985944440 to {}*)), !dbg !504 @@ -3451,45 +3555,67 @@ found635: ; preds = %notfound633, %L1734 %Main.unsafe_load0636 = phi {}* [ %Main.unsafe_load0.cached631, %L1734 ], [ %Main.unsafe_load0.found634, %notfound633 ], !dbg !504 - %504 = bitcast {}* %Main.unsafe_load0636 to {} addrspace(10)**, !dbg !504 - %unsafe_load0.checked637 = load atomic {} addrspace(10)*, {} addrspace(10)** %504 unordered, align 8, !dbg !504, !tbaa !450, !alias.scope !44, !noalias !47 + %511 = bitcast {}* %Main.unsafe_load0636 to {} addrspace(10)**, !dbg !504 + %unsafe_load0.checked637 = load atomic {} addrspace(10)*, {} addrspace(10)** %511 unordered, align 8, !dbg !504, !tbaa !450, !alias.scope !44, !noalias !47 %.not1046 = icmp eq {} addrspace(10)* %unsafe_load0.checked637, null, !dbg !504 - br i1 %.not1046, label %err638, label %ok639, !dbg !504 + br i1 %.not1046, label %err638.loopexit1490, label %ok639, !dbg !504 -err638: ; preds = %found635 - call void @llvm.julia.gc_preserve_end(token %492), !dbg !504 - call void @llvm.julia.gc_preserve_end(token %491), !dbg !510 - call void @llvm.julia.gc_preserve_end(token %490), !dbg !514 +err638.loopexit: ; preds = %found635.postloop + br label %err638, !dbg !504 + +err638.loopexit1490: ; preds = %found635 + br label %err638, !dbg !504 + +err638: ; preds = %err638.loopexit1490, %err638.loopexit + call void @llvm.julia.gc_preserve_end(token %499), !dbg !504 + call void @llvm.julia.gc_preserve_end(token %498), !dbg !510 + call void @llvm.julia.gc_preserve_end(token %497), !dbg !514 call void @ijl_undefined_var_error({} addrspace(12)* addrspacecast ({}* inttoptr (i64 140088985944440 to {}*) to {} addrspace(12)*)), !dbg !504 unreachable, !dbg !504 ok639: ; preds = %found635 br i1 %.not1047, label %L1752, label %L1745, !dbg !674 -fail645: ; preds = %L1752 - %.lcssa1346 = phi {} addrspace(10)* [ %362, %L1752 ], !dbg !507 - call void @llvm.julia.gc_preserve_end(token %492), !dbg !504 - call void @llvm.julia.gc_preserve_end(token %491), !dbg !510 - call void @llvm.julia.gc_preserve_end(token %490), !dbg !514 - %505 = addrspacecast {} addrspace(10)* %.lcssa1346 to {} addrspace(12)*, !dbg !507 - call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %505), !dbg !507 +fail645.loopexit: ; preds = %L1752.postloop + %.lcssa1346.ph = phi {} addrspace(10)* [ %551, %L1752.postloop ] + br label %fail645, !dbg !504 + +fail645.loopexit1492: ; preds = %L1752 + %.lcssa1346.ph1493 = phi {} addrspace(10)* [ %366, %L1752 ] + br label %fail645, !dbg !504 + +fail645: ; preds = %fail645.loopexit1492, %fail645.loopexit + %.lcssa1346 = phi {} addrspace(10)* [ %.lcssa1346.ph, %fail645.loopexit ], [ %.lcssa1346.ph1493, %fail645.loopexit1492 ], !dbg !507 + call void @llvm.julia.gc_preserve_end(token %499), !dbg !504 + call void @llvm.julia.gc_preserve_end(token %498), !dbg !510 + call void @llvm.julia.gc_preserve_end(token %497), !dbg !514 + %512 = addrspacecast {} addrspace(10)* %.lcssa1346 to {} addrspace(12)*, !dbg !507 + call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %512), !dbg !507 unreachable, !dbg !507 -oob651: ; preds = %L1816 - %value_phi609.lcssa1358 = phi i64 [ %value_phi609, %L1816 ] - call void @llvm.julia.gc_preserve_end(token %492), !dbg !504 - call void @llvm.julia.gc_preserve_end(token %491), !dbg !510 - call void @llvm.julia.gc_preserve_end(token %490), !dbg !514 +oob651.loopexit: ; preds = %L1816.postloop + %value_phi609.lcssa1358.ph = phi i64 [ %value_phi609.postloop, %L1816.postloop ] + br label %oob651, !dbg !504 + +oob651.loopexit1494: ; preds = %L1816 + %value_phi609.lcssa1358.ph1495 = phi i64 [ %value_phi609, %L1816 ] + br label %oob651, !dbg !504 + +oob651: ; preds = %oob651.loopexit1494, %oob651.loopexit + %value_phi609.lcssa1358 = phi i64 [ %value_phi609.lcssa1358.ph, %oob651.loopexit ], [ %value_phi609.lcssa1358.ph1495, %oob651.loopexit1494 ] + call void @llvm.julia.gc_preserve_end(token %499), !dbg !504 + call void @llvm.julia.gc_preserve_end(token %498), !dbg !510 + call void @llvm.julia.gc_preserve_end(token %497), !dbg !514 %errorbox652 = alloca i64, align 8, !dbg !540 store i64 %value_phi609.lcssa1358, i64* %errorbox652, align 8, !dbg !540 - %506 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !540 - call void @ijl_bounds_error_ints({} addrspace(12)* %506, i64* nonnull %errorbox652, i64 1), !dbg !540 + %513 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !540 + call void @ijl_bounds_error_ints({} addrspace(12)* %513, i64* nonnull %errorbox652, i64 1), !dbg !540 unreachable, !dbg !540 idxend653: ; preds = %L1816 %.flags655 = load i16, i16 addrspace(11)* %.flags_ptr654, align 2, !dbg !540, !tbaa !397, !alias.scope !93, !noalias !94 - %507 = and i16 %.flags655, 3, !dbg !540 - %has_owner656 = icmp eq i16 %507, 3, !dbg !540 + %514 = and i16 %.flags655, 3, !dbg !540 + %has_owner656 = icmp eq i16 %514, 3, !dbg !540 br i1 %has_owner656, label %array_owned657, label %merge_own658, !dbg !540 array_owned657: ; preds = %idxend653 @@ -3499,11 +3625,11 @@ merge_own658: ; preds = %array_owned657, %idxend653 %data_owner660 = phi {} addrspace(10)* [ %"C::Array", %idxend653 ], [ %external_owner659, %array_owned657 ], !dbg !540 %.data662 = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %339, align 8, !dbg !540, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 - %508 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data662, i64 %358, !dbg !540 - store atomic {} addrspace(10)* %371, {} addrspace(10)* addrspace(13)* %508 release, align 8, !dbg !540, !tbaa !403, !alias.scope !44, !noalias !47 - call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* nonnull %data_owner660, {} addrspace(10)* nonnull %371), !dbg !540 + %515 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data662, i64 %362, !dbg !540 + store atomic {} addrspace(10)* %375, {} addrspace(10)* addrspace(13)* %515 release, align 8, !dbg !540, !tbaa !403, !alias.scope !44, !noalias !47 + call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* nonnull %data_owner660, {} addrspace(10)* nonnull %375), !dbg !540 %.not1048.not = icmp eq i64 %value_phi609, %336, !dbg !675 - %509 = add nuw nsw i64 %value_phi609, 1, !dbg !676 + %516 = add nuw nsw i64 %value_phi609, 1, !dbg !676 br i1 %.not1048.not, label %L1830.loopexit, label %L1676, !dbg !677 notfound680: ; preds = %L1782 @@ -3513,15 +3639,21 @@ found682: ; preds = %notfound680, %L1782 %Main.unsafe_load0683 = phi {}* [ %Main.unsafe_load0.cached678, %L1782 ], [ %Main.unsafe_load0.found681, %notfound680 ], !dbg !514 - %510 = bitcast {}* %Main.unsafe_load0683 to {} addrspace(10)**, !dbg !514 - %unsafe_load0.checked684 = load atomic {} addrspace(10)*, {} addrspace(10)** %510 unordered, align 8, !dbg !514, !tbaa !450, !alias.scope !44, !noalias !47 + %517 = bitcast {}* %Main.unsafe_load0683 to {} addrspace(10)**, !dbg !514 + %unsafe_load0.checked684 = load atomic {} addrspace(10)*, {} addrspace(10)** %517 unordered, align 8, !dbg !514, !tbaa !450, !alias.scope !44, !noalias !47 %.not1053 = icmp eq {} addrspace(10)* %unsafe_load0.checked684, null, !dbg !514 - br i1 %.not1053, label %err685, label %ok686, !dbg !514 + br i1 %.not1053, label %err685.loopexit1484, label %ok686, !dbg !514 + +err685.loopexit: ; preds = %found682.postloop + br label %err685, !dbg !504 -err685: ; preds = %found682 - call void @llvm.julia.gc_preserve_end(token %492), !dbg !504 - call void @llvm.julia.gc_preserve_end(token %491), !dbg !510 - call void @llvm.julia.gc_preserve_end(token %490), !dbg !514 +err685.loopexit1484: ; preds = %found682 + br label %err685, !dbg !504 + +err685: ; preds = %err685.loopexit1484, %err685.loopexit + call void @llvm.julia.gc_preserve_end(token %499), !dbg !504 + call void @llvm.julia.gc_preserve_end(token %498), !dbg !510 + call void @llvm.julia.gc_preserve_end(token %497), !dbg !514 call void @ijl_undefined_var_error({} addrspace(12)* addrspacecast ({}* inttoptr (i64 140088985944440 to {}*) to {} addrspace(12)*)), !dbg !514 unreachable, !dbg !514 @@ -3535,20 +3667,26 @@ found696: ; preds = %notfound694, %L1806 %Main.unsafe_load0697 = phi {}* [ %Main.unsafe_load0.cached692, %L1806 ], [ %Main.unsafe_load0.found695, %notfound694 ], !dbg !510 - %511 = bitcast {}* %Main.unsafe_load0697 to {} addrspace(10)**, !dbg !510 - %unsafe_load0.checked698 = load atomic {} addrspace(10)*, {} addrspace(10)** %511 unordered, align 8, !dbg !510, !tbaa !450, !alias.scope !44, !noalias !47 + %518 = bitcast {}* %Main.unsafe_load0697 to {} addrspace(10)**, !dbg !510 + %unsafe_load0.checked698 = load atomic {} addrspace(10)*, {} addrspace(10)** %518 unordered, align 8, !dbg !510, !tbaa !450, !alias.scope !44, !noalias !47 %.not1054 = icmp eq {} addrspace(10)* %unsafe_load0.checked698, null, !dbg !510 - br i1 %.not1054, label %err699, label %ok700, !dbg !510 + br i1 %.not1054, label %err699.loopexit1487, label %ok700, !dbg !510 + +err699.loopexit: ; preds = %found696.postloop + br label %err699, !dbg !504 + +err699.loopexit1487: ; preds = %found696 + br label %err699, !dbg !504 -err699: ; preds = %found696 - call void @llvm.julia.gc_preserve_end(token %492), !dbg !504 - call void @llvm.julia.gc_preserve_end(token %491), !dbg !510 - call void @llvm.julia.gc_preserve_end(token %490), !dbg !514 +err699: ; preds = %err699.loopexit1487, %err699.loopexit + call void @llvm.julia.gc_preserve_end(token %499), !dbg !504 + call void @llvm.julia.gc_preserve_end(token %498), !dbg !510 + call void @llvm.julia.gc_preserve_end(token %497), !dbg !514 call void @ijl_undefined_var_error({} addrspace(12)* addrspacecast ({}* inttoptr (i64 140088985944440 to {}*) to {} addrspace(12)*)), !dbg !510 unreachable, !dbg !510 ok700: ; preds = %found696 - %512 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185299024 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked698), !dbg !513 + %519 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185299024 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked698), !dbg !513 br label %L1816, !dbg !406 oob709: ; preds = %oob709.split.us @@ -3560,8 +3698,8 @@ call void @llvm.julia.gc_preserve_end(token %270), !dbg !378 %errorbox710 = alloca i64, align 8, !dbg !395 store i64 %value_phi554.lcssa1459.us.us, i64* %errorbox710, align 8, !dbg !395 - %513 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !395 - call void @ijl_bounds_error_ints({} addrspace(12)* %513, i64* nonnull %errorbox710, i64 1), !dbg !395 + %520 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !395 + call void @ijl_bounds_error_ints({} addrspace(12)* %520, i64* nonnull %errorbox710, i64 1), !dbg !395 unreachable, !dbg !395 err737: ; preds = %err737.split.us @@ -3581,8 +3719,8 @@ call void @llvm.julia.gc_preserve_end(token %272), !dbg !389 call void @llvm.julia.gc_preserve_end(token %271), !dbg !385 call void @llvm.julia.gc_preserve_end(token %270), !dbg !378 - %514 = addrspacecast {} addrspace(10)* %.lcssa1396.us to {} addrspace(12)*, !dbg !392 - call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %514), !dbg !392 + %521 = addrspacecast {} addrspace(10)* %.lcssa1396.us to {} addrspace(12)*, !dbg !392 + call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %521), !dbg !392 unreachable, !dbg !392 oob756: ; preds = %oob756.split.us @@ -3592,11 +3730,11 @@ call void @llvm.julia.gc_preserve_end(token %272), !dbg !389 call void @llvm.julia.gc_preserve_end(token %271), !dbg !385 call void @llvm.julia.gc_preserve_end(token %270), !dbg !378 - %515 = add i64 %"B::SubArray.offset1_ptr754.unbox.lcssa.us", 1, !dbg !470 + %522 = add i64 %"B::SubArray.offset1_ptr754.unbox.lcssa.us", 1, !dbg !470 %errorbox757 = alloca i64, align 8, !dbg !463 - store i64 %515, i64* %errorbox757, align 8, !dbg !463 - %516 = addrspacecast {} addrspace(10)* %"B::SubArray.parent753.lcssa.us" to {} addrspace(12)*, !dbg !463 - call void @ijl_bounds_error_ints({} addrspace(12)* %516, i64* nonnull %errorbox757, i64 1), !dbg !463 + store i64 %522, i64* %errorbox757, align 8, !dbg !463 + %523 = addrspacecast {} addrspace(10)* %"B::SubArray.parent753.lcssa.us" to {} addrspace(12)*, !dbg !463 + call void @ijl_bounds_error_ints({} addrspace(12)* %523, i64* nonnull %errorbox757, i64 1), !dbg !463 unreachable, !dbg !463 fail759: ; preds = %fail759.split.us @@ -3626,8 +3764,8 @@ call void @llvm.julia.gc_preserve_end(token %272), !dbg !389 call void @llvm.julia.gc_preserve_end(token %271), !dbg !385 call void @llvm.julia.gc_preserve_end(token %270), !dbg !378 - %517 = addrspacecast {} addrspace(10)* %.lcssa1402.us to {} addrspace(12)*, !dbg !392 - call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %517), !dbg !392 + %524 = addrspacecast {} addrspace(10)* %.lcssa1402.us to {} addrspace(12)*, !dbg !392 + call void @ijl_type_error(i8* getelementptr inbounds ([11 x i8], [11 x i8]* @_j_str6, i64 0, i64 0), {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090245271424 to {}*) to {} addrspace(10)*), {} addrspace(12)* %524), !dbg !392 unreachable, !dbg !392 oob796: ; preds = %oob796.split.us @@ -3637,11 +3775,11 @@ call void @llvm.julia.gc_preserve_end(token %272), !dbg !389 call void @llvm.julia.gc_preserve_end(token %271), !dbg !385 call void @llvm.julia.gc_preserve_end(token %270), !dbg !378 - %518 = add i64 %"B::SubArray.offset1_ptr754.unbox.lcssa1414.us", 1, !dbg !470 + %525 = add i64 %"B::SubArray.offset1_ptr754.unbox.lcssa1414.us", 1, !dbg !470 %errorbox797 = alloca i64, align 8, !dbg !463 - store i64 %518, i64* %errorbox797, align 8, !dbg !463 - %519 = addrspacecast {} addrspace(10)* %"B::SubArray.parent753.lcssa1428.us" to {} addrspace(12)*, !dbg !463 - call void @ijl_bounds_error_ints({} addrspace(12)* %519, i64* nonnull %errorbox797, i64 1), !dbg !463 + store i64 %525, i64* %errorbox797, align 8, !dbg !463 + %526 = addrspacecast {} addrspace(10)* %"B::SubArray.parent753.lcssa1428.us" to {} addrspace(12)*, !dbg !463 + call void @ijl_bounds_error_ints({} addrspace(12)* %526, i64* nonnull %errorbox797, i64 1), !dbg !463 unreachable, !dbg !463 fail799: ; preds = %fail799.split.us @@ -3663,8 +3801,8 @@ call void @llvm.julia.gc_preserve_end(token %270), !dbg !378 %errorbox805 = alloca i64, align 8, !dbg !465 store i64 %value_phi554.lcssa1458.us, i64* %errorbox805, align 8, !dbg !465 - %520 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !465 - call void @ijl_bounds_error_ints({} addrspace(12)* %520, i64* nonnull %errorbox805, i64 1), !dbg !465 + %527 = addrspacecast {} addrspace(10)* %"C::Array" to {} addrspace(12)*, !dbg !465 + call void @ijl_bounds_error_ints({} addrspace(12)* %527, i64* nonnull %errorbox805, i64 1), !dbg !465 unreachable, !dbg !465 err833: ; preds = %err833.split.us @@ -3706,6 +3844,220 @@ call void @llvm.julia.gc_preserve_end(token %270), !dbg !378 call void @ijl_undefined_var_error({} addrspace(12)* addrspacecast ({}* inttoptr (i64 140088985944440 to {}*) to {} addrspace(12)*)), !dbg !385 unreachable, !dbg !385 + +postloop: ; preds = %main.pseudo.exit + br label %L1634.postloop + +L1634.postloop: ; preds = %postloop, %L1830.postloop + %value_phi590.postloop = phi i64 [ %560, %L1830.postloop ], [ %value_phi590.copy, %postloop ] + %528 = mul i64 %value_phi590.postloop, 5, !dbg !492 + %529 = add i64 %528, -5, !dbg !492 + store i64 %value_phi590.postloop, i64* %331, align 8, !dbg !494, !tbaa !154, !alias.scope !156, !noalias !157 + %530 = add i64 %value_phi590.postloop, -1, !dbg !495 + %.not1038.postloop = icmp ult i64 %530, %"B::SubArray.indices_ptr._ptr.indices_ptr.stop_ptr.unbox585", !dbg !498 + br i1 %.not1038.postloop, label %L1655.postloop, label %L1652.loopexit, !dbg !489 + +L1655.postloop: ; preds = %L1634.postloop + %531 = add i64 %"B::SubArray.offset1_ptr598.unbox", %value_phi590.postloop, !dbg !499 + %532 = add i64 %531, -1, !dbg !501 + %"B::SubArray.parent597.length.postloop" = load i64, i64 addrspace(11)* %"B::SubArray.parent597.length_ptr", align 8, !dbg !501, !tbaa !89, !range !92, !alias.scope !93, !noalias !94 + %inbounds599.postloop = icmp ult i64 %532, %"B::SubArray.parent597.length.postloop", !dbg !501 + br i1 %inbounds599.postloop, label %idxend602.postloop, label %oob600.loopexit, !dbg !501 + +idxend602.postloop: ; preds = %L1655.postloop + %"B::SubArray.parent597.data1039.postloop" = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %335, align 8, !dbg !501, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 + %533 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %"B::SubArray.parent597.data1039.postloop", i64 %532, !dbg !501 + %"B::SubArray.parent597.ref.postloop" = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %533, align 8, !dbg !501, !tbaa !403, !alias.scope !44, !noalias !47 + %.not1040.postloop = icmp eq {} addrspace(10)* %"B::SubArray.parent597.ref.postloop", null, !dbg !501 + br i1 %.not1040.postloop, label %fail603.loopexit, label %pass604.postloop, !dbg !501 + +pass604.postloop: ; preds = %idxend602.postloop + br i1 %337, label %L1830.postloop, label %L1676.preheader.postloop, !dbg !649 + +L1676.postloop: ; preds = %L1676.preheader.postloop, %merge_own658.postloop + %value_phi609.postloop = phi i64 [ %559, %merge_own658.postloop ], [ 1, %L1676.preheader.postloop ] + %534 = add nsw i64 %value_phi609.postloop, -1, !dbg !502 + %.length612.postloop = load i64, i64 addrspace(11)* %.length_ptr, align 8, !dbg !502, !tbaa !89, !range !92, !alias.scope !93, !noalias !94 + %inbounds613.postloop = icmp ult i64 %534, %.length612.postloop, !dbg !502 + br i1 %inbounds613.postloop, label %idxend616.postloop, label %oob614.loopexit, !dbg !502 + +idxend616.postloop: ; preds = %L1676.postloop + %.data6181042.postloop = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %339, align 8, !dbg !502, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 + %535 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data6181042.postloop, i64 %534, !dbg !502 + %.ref621.postloop = load {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %535, align 8, !dbg !502, !tbaa !403, !alias.scope !44, !noalias !47 + %.not1043.postloop = icmp eq {} addrspace(10)* %.ref621.postloop, null, !dbg !502 + br i1 %.not1043.postloop, label %fail619.loopexit, label %pass620.postloop, !dbg !502 + +pass620.postloop: ; preds = %idxend616.postloop + %536 = add i64 %529, %value_phi609.postloop, !dbg !650 + store i64 %536, i64* %340, align 8, !dbg !651, !tbaa !154, !alias.scope !156, !noalias !157 + %537 = add i64 %536, -26, !dbg !652 + %538 = icmp ult i64 %537, -25, !dbg !652 + br i1 %538, label %L1688.loopexit, label %pass625.postloop, !dbg !518 + +pass625.postloop: ; preds = %pass620.postloop + %539 = add nsw i64 %536, -1, !dbg !655 + %.lhs.trunc1096.postloop = trunc i64 %539 to i8, !dbg !660 + %540 = udiv i8 %.lhs.trunc1096.postloop, 5, !dbg !660 + %.zext1097.postloop = zext i8 %540 to i64, !dbg !660 + %.neg1044.postloop = mul nsw i64 %.zext1097.postloop, -5, !dbg !663 + %541 = add nsw i64 %.neg1044.postloop, %536, !dbg !665 + %542 = add nuw nsw i64 %.zext1097.postloop, 1, !dbg !666 + store i64 %541, i64* %341, align 8, !dbg !669, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %542, i64* %342, align 8, !dbg !669, !tbaa !154, !alias.scope !156, !noalias !157 + %543 = add nsw i64 %541, -6, !dbg !670 + %544 = icmp ult i64 %543, -5, !dbg !670 + br i1 %544, label %L1711.loopexit, label %L1714.postloop, !dbg !520 + +L1714.postloop: ; preds = %pass625.postloop + %.not1045.postloop = icmp eq i64 %541, %542, !dbg !522 + br i1 %.not1045.postloop, label %L1716.postloop, label %L1757.postloop, !dbg !523 + +L1757.postloop: ; preds = %L1714.postloop + %545 = icmp ule i64 %541, %.zext1097.postloop, !dbg !530 + %546 = xor i1 %545, %561, !dbg !531 + br i1 %546, label %L1788.postloop, label %L1764.postloop, !dbg !531 + +L1764.postloop: ; preds = %L1757.postloop + store i64 %541, i64* %343, align 8, !dbg !532, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %542, i64* %344, align 8, !dbg !532, !tbaa !154, !alias.scope !156, !noalias !157 + br i1 false, label %L1779.loopexit, label %L1782.postloop, !dbg !534 + +L1782.postloop: ; preds = %L1764.postloop + %Main.unsafe_load0.cached678.postloop = load atomic {}*, {}** @19 unordered, align 8, !dbg !514 + %iscached679.not.postloop = icmp eq {}* %Main.unsafe_load0.cached678.postloop, null, !dbg !514 + br i1 %iscached679.not.postloop, label %notfound680.postloop, label %found682.postloop, !dbg !514 + +notfound680.postloop: ; preds = %L1782.postloop + %Main.unsafe_load0.found681.postloop = call {}* @ijl_get_binding_or_error({}* nonnull inttoptr (i64 140090240988912 to {}*), {}* nonnull inttoptr (i64 140088985944440 to {}*)), !dbg !514 + store atomic {}* %Main.unsafe_load0.found681.postloop, {}** @19 release, align 8, !dbg !514 + br label %found682.postloop, !dbg !514 + +found682.postloop: ; preds = %notfound680.postloop, %L1782.postloop + %Main.unsafe_load0683.postloop = phi {}* [ %Main.unsafe_load0.cached678.postloop, %L1782.postloop ], [ %Main.unsafe_load0.found681.postloop, %notfound680.postloop ], !dbg !514 + %547 = bitcast {}* %Main.unsafe_load0683.postloop to {} addrspace(10)**, !dbg !514 + %unsafe_load0.checked684.postloop = load atomic {} addrspace(10)*, {} addrspace(10)** %547 unordered, align 8, !dbg !514, !tbaa !450, !alias.scope !44, !noalias !47 + %.not1053.postloop = icmp eq {} addrspace(10)* %unsafe_load0.checked684.postloop, null, !dbg !514 + br i1 %.not1053.postloop, label %err685.loopexit, label %ok686.postloop, !dbg !514 + +ok686.postloop: ; preds = %found682.postloop + br label %L1816.postloop, !dbg !406 + +L1788.postloop: ; preds = %L1757.postloop + store i64 %542, i64* %345, align 8, !dbg !536, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %541, i64* %346, align 8, !dbg !536, !tbaa !154, !alias.scope !156, !noalias !157 + br i1 false, label %L1803.loopexit, label %L1806.postloop, !dbg !538 + +L1806.postloop: ; preds = %L1788.postloop + %Main.unsafe_load0.cached692.postloop = load atomic {}*, {}** @20 unordered, align 8, !dbg !510 + %iscached693.not.postloop = icmp eq {}* %Main.unsafe_load0.cached692.postloop, null, !dbg !510 + br i1 %iscached693.not.postloop, label %notfound694.postloop, label %found696.postloop, !dbg !510 + +notfound694.postloop: ; preds = %L1806.postloop + %Main.unsafe_load0.found695.postloop = call {}* @ijl_get_binding_or_error({}* nonnull inttoptr (i64 140090240988912 to {}*), {}* nonnull inttoptr (i64 140088985944440 to {}*)), !dbg !510 + store atomic {}* %Main.unsafe_load0.found695.postloop, {}** @20 release, align 8, !dbg !510 + br label %found696.postloop, !dbg !510 + +found696.postloop: ; preds = %notfound694.postloop, %L1806.postloop + %Main.unsafe_load0697.postloop = phi {}* [ %Main.unsafe_load0.cached692.postloop, %L1806.postloop ], [ %Main.unsafe_load0.found695.postloop, %notfound694.postloop ], !dbg !510 + %548 = bitcast {}* %Main.unsafe_load0697.postloop to {} addrspace(10)**, !dbg !510 + %unsafe_load0.checked698.postloop = load atomic {} addrspace(10)*, {} addrspace(10)** %548 unordered, align 8, !dbg !510, !tbaa !450, !alias.scope !44, !noalias !47 + %.not1054.postloop = icmp eq {} addrspace(10)* %unsafe_load0.checked698.postloop, null, !dbg !510 + br i1 %.not1054.postloop, label %err699.loopexit, label %ok700.postloop, !dbg !510 + +ok700.postloop: ; preds = %found696.postloop + %549 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090185299024 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked698.postloop), !dbg !513 + br label %L1816.postloop, !dbg !406 + +L1716.postloop: ; preds = %L1714.postloop + store i64 %541, i64* %347, align 8, !dbg !524, !tbaa !154, !alias.scope !156, !noalias !157 + store i64 %542, i64* %348, align 8, !dbg !524, !tbaa !154, !alias.scope !156, !noalias !157 + br i1 false, label %L1731.loopexit, label %L1734.postloop, !dbg !526 + +L1734.postloop: ; preds = %L1716.postloop + %Main.unsafe_load0.cached631.postloop = load atomic {}*, {}** @18 unordered, align 8, !dbg !504 + %iscached632.not.postloop = icmp eq {}* %Main.unsafe_load0.cached631.postloop, null, !dbg !504 + br i1 %iscached632.not.postloop, label %notfound633.postloop, label %found635.postloop, !dbg !504 + +notfound633.postloop: ; preds = %L1734.postloop + %Main.unsafe_load0.found634.postloop = call {}* @ijl_get_binding_or_error({}* nonnull inttoptr (i64 140090240988912 to {}*), {}* nonnull inttoptr (i64 140088985944440 to {}*)), !dbg !504 + store atomic {}* %Main.unsafe_load0.found634.postloop, {}** @18 release, align 8, !dbg !504 + br label %found635.postloop, !dbg !504 + +found635.postloop: ; preds = %notfound633.postloop, %L1734.postloop + %Main.unsafe_load0636.postloop = phi {}* [ %Main.unsafe_load0.cached631.postloop, %L1734.postloop ], [ %Main.unsafe_load0.found634.postloop, %notfound633.postloop ], !dbg !504 + %550 = bitcast {}* %Main.unsafe_load0636.postloop to {} addrspace(10)**, !dbg !504 + %unsafe_load0.checked637.postloop = load atomic {} addrspace(10)*, {} addrspace(10)** %550 unordered, align 8, !dbg !504, !tbaa !450, !alias.scope !44, !noalias !47 + %.not1046.postloop = icmp eq {} addrspace(10)* %unsafe_load0.checked637.postloop, null, !dbg !504 + br i1 %.not1046.postloop, label %err638.loopexit, label %ok639.postloop, !dbg !504 + +ok639.postloop: ; preds = %found635.postloop + br i1 %.not1047.postloop, label %L1752.postloop, label %L1745.postloop, !dbg !674 + +L1745.postloop: ; preds = %ok639.postloop + br i1 %.not1050.postloop, label %L1752.postloop, label %L1750.loopexit, !dbg !528 + +L1752.postloop: ; preds = %L1745.postloop, %ok639.postloop + %value_phi642.postloop = phi {} addrspace(10)* [ addrspacecast ({}* inttoptr (i64 140090401429264 to {}*) to {} addrspace(10)*), %ok639.postloop ], [ addrspacecast ({}* inttoptr (i64 140090401139584 to {}*) to {} addrspace(10)*), %L1745.postloop ] + %551 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090221967408 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %unsafe_load0.checked637.postloop, {} addrspace(10)* %value_phi642.postloop), !dbg !507 + %552 = call {} addrspace(10)* @julia.typeof({} addrspace(10)* nonnull %551), !dbg !507 + %553 = addrspacecast {} addrspace(10)* %552 to {} addrspace(11)*, !dbg !507 + %554 = call nonnull {}* @julia.pointer_from_objref({} addrspace(11)* %553) #7, !dbg !507 + %exactly_isa644.postloop = icmp eq {}* %554, inttoptr (i64 256 to {}*), !dbg !507 + br i1 %exactly_isa644.postloop, label %L1816.postloop, label %fail645.loopexit, !dbg !507 + +L1816.postloop: ; preds = %L1752.postloop, %ok700.postloop, %ok686.postloop + %value_phi647.postloop = phi {} addrspace(10)* [ %unsafe_load0.checked684.postloop, %ok686.postloop ], [ %549, %ok700.postloop ], [ %551, %L1752.postloop ] + %555 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090174962176 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %value_phi647.postloop, {} addrspace(10)* nonnull %"B::SubArray.parent597.ref.postloop"), !dbg !503 + %556 = call nonnull {} addrspace(10)* ({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)*, {} addrspace(10)*, ...) @julia.call({} addrspace(10)* ({} addrspace(10)*, {} addrspace(10)**, i32)* nonnull @ijl_apply_generic, {} addrspace(10)* addrspacecast ({}* inttoptr (i64 140090180137296 to {}*) to {} addrspace(10)*), {} addrspace(10)* nonnull %.ref621.postloop, {} addrspace(10)* nonnull %555), !dbg !503 + %.length649.postloop = load i64, i64 addrspace(11)* %.length_ptr, align 8, !dbg !540, !tbaa !89, !range !92, !alias.scope !93, !noalias !94 + %inbounds650.postloop = icmp ult i64 %534, %.length649.postloop, !dbg !540 + br i1 %inbounds650.postloop, label %idxend653.postloop, label %oob651.loopexit, !dbg !540 + +idxend653.postloop: ; preds = %L1816.postloop + %.flags655.postloop = load i16, i16 addrspace(11)* %.flags_ptr654, align 2, !dbg !540, !tbaa !397, !alias.scope !93, !noalias !94 + %557 = and i16 %.flags655.postloop, 3, !dbg !540 + %has_owner656.postloop = icmp eq i16 %557, 3, !dbg !540 + br i1 %has_owner656.postloop, label %array_owned657.postloop, label %merge_own658.postloop, !dbg !540 + +array_owned657.postloop: ; preds = %idxend653.postloop + %external_owner659.postloop = load {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %351, align 8, !dbg !540, !tbaa !13, !invariant.load !8, !alias.scope !82, !noalias !83, !nonnull !8, !dereferenceable !399, !align !400 + br label %merge_own658.postloop, !dbg !540 + +merge_own658.postloop: ; preds = %array_owned657.postloop, %idxend653.postloop + %data_owner660.postloop = phi {} addrspace(10)* [ %"C::Array", %idxend653.postloop ], [ %external_owner659.postloop, %array_owned657.postloop ], !dbg !540 + %.data662.postloop = load {} addrspace(10)* addrspace(13)*, {} addrspace(10)* addrspace(13)* addrspace(11)* %339, align 8, !dbg !540, !tbaa !401, !alias.scope !93, !noalias !94, !nonnull !8 + %558 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)* addrspace(13)* %.data662.postloop, i64 %534, !dbg !540 + store atomic {} addrspace(10)* %556, {} addrspace(10)* addrspace(13)* %558 release, align 8, !dbg !540, !tbaa !403, !alias.scope !44, !noalias !47 + call void ({} addrspace(10)*, ...) @julia.write_barrier({} addrspace(10)* nonnull %data_owner660.postloop, {} addrspace(10)* nonnull %556), !dbg !540 + %.not1048.not.postloop = icmp eq i64 %value_phi609.postloop, %336, !dbg !675 + %559 = add nuw nsw i64 %value_phi609.postloop, 1, !dbg !676 + br i1 %.not1048.not.postloop, label %L1830.loopexit.postloop, label %L1676.postloop, !dbg !677 + +L1830.postloop: ; preds = %L1830.loopexit.postloop, %pass604.postloop + %.not1049.not.postloop = icmp eq i64 %value_phi590.postloop, %value_phi586, !dbg !541 + %560 = add i64 %value_phi590.postloop, 1, !dbg !36 + br i1 %.not1049.not.postloop, label %L1843.loopexit1105.loopexit, label %L1634.postloop, !dbg !39, !llvm.loop !678, !irce.loop.clone !8 + +L1676.preheader.postloop: ; preds = %pass604.postloop + %bitcast673.postloop = load i32, i32 addrspace(11)* %"A::Hermitian.uplo_ptr672", align 8 + %561 = icmp eq i32 %bitcast673.postloop, 1426063360 + %"A::Hermitian.data676.postloop" = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %"A::Hermitian.data_ptr675" unordered, align 8 + %"A::Hermitian.data690.postloop" = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %"A::Hermitian.data_ptr689" unordered, align 8 + %"A::Hermitian.data629.postloop" = load atomic {} addrspace(10)*, {} addrspace(10)* addrspace(11)* %"A::Hermitian.data_ptr628" unordered, align 8 + %bitcast641.postloop = load i32, i32 addrspace(11)* %"A::Hermitian.uplo_ptr640", align 8 + %.not1047.postloop = icmp eq i32 %bitcast641.postloop, 1426063360 + %.not1050.postloop = icmp eq i32 %bitcast641.postloop, 1275068416 + %562 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data676.postloop"), !dbg !514 + %563 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data690.postloop"), !dbg !510 + %564 = call token (...) @llvm.julia.gc_preserve_begin({} addrspace(10)* nonnull %"A::Hermitian.data629.postloop"), !dbg !504 + br label %L1676.postloop, !dbg !502 + +L1830.loopexit.postloop: ; preds = %merge_own658.postloop + call void @llvm.julia.gc_preserve_end(token %564), !dbg !504 + call void @llvm.julia.gc_preserve_end(token %563), !dbg !510 + call void @llvm.julia.gc_preserve_end(token %562), !dbg !514 + br label %L1830.postloop, !dbg !541 } ; Function Attrs: noinline optnone @@ -3715,20 +4067,20 @@ %0 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)** %"args::Any[]", i32 0 %1 = load {} addrspace(10)*, {} addrspace(10)** %0, align 8, !tbaa !13, !invariant.load !8, !alias.scope !82, !noalias !83, !nonnull !8, !dereferenceable !399, !align !400 %2 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)** %"args::Any[]", i32 1 - %3 = load {} addrspace(10)*, {} addrspace(10)** %2, align 8, !tbaa !13, !invariant.load !8, !alias.scope !82, !noalias !83, !nonnull !8, !dereferenceable !678, !align !678 + %3 = load {} addrspace(10)*, {} addrspace(10)** %2, align 8, !tbaa !13, !invariant.load !8, !alias.scope !82, !noalias !83, !nonnull !8, !dereferenceable !683, !align !683 %4 = bitcast {} addrspace(10)* %3 to i32 addrspace(10)* %5 = addrspacecast i32 addrspace(10)* %4 to i32 addrspace(11)* %6 = load i32, i32 addrspace(11)* %5, align 4 %7 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)** %"args::Any[]", i32 2 - %8 = load {} addrspace(10)*, {} addrspace(10)** %7, align 8, !tbaa !13, !invariant.load !8, !alias.scope !82, !noalias !83, !nonnull !8, !dereferenceable !400, !align !679 + %8 = load {} addrspace(10)*, {} addrspace(10)** %7, align 8, !tbaa !13, !invariant.load !8, !alias.scope !82, !noalias !83, !nonnull !8, !dereferenceable !400, !align !684 %9 = bitcast {} addrspace(10)* %8 to { {} addrspace(10)*, i32 } addrspace(10)* %10 = addrspacecast { {} addrspace(10)*, i32 } addrspace(10)* %9 to { {} addrspace(10)*, i32 } addrspace(11)* %11 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)** %"args::Any[]", i32 3 - %12 = load {} addrspace(10)*, {} addrspace(10)** %11, align 8, !tbaa !13, !invariant.load !8, !alias.scope !82, !noalias !83, !nonnull !8, !dereferenceable !680, !align !679 + %12 = load {} addrspace(10)*, {} addrspace(10)** %11, align 8, !tbaa !13, !invariant.load !8, !alias.scope !82, !noalias !83, !nonnull !8, !dereferenceable !685, !align !684 %13 = bitcast {} addrspace(10)* %12 to { {} addrspace(10)*, [1 x [1 x [1 x i64]]], i64, i64 } addrspace(10)* %14 = addrspacecast { {} addrspace(10)*, [1 x [1 x [1 x i64]]], i64, i64 } addrspace(10)* %13 to { {} addrspace(10)*, [1 x [1 x [1 x i64]]], i64, i64 } addrspace(11)* %15 = getelementptr inbounds {} addrspace(10)*, {} addrspace(10)** %"args::Any[]", i32 4 - %16 = load {} addrspace(10)*, {} addrspace(10)** %15, align 8, !tbaa !13, !invariant.load !8, !alias.scope !82, !noalias !83, !nonnull !8, !dereferenceable !681, !align !682 + %16 = load {} addrspace(10)*, {} addrspace(10)** %15, align 8, !tbaa !13, !invariant.load !8, !alias.scope !82, !noalias !83, !nonnull !8, !dereferenceable !686, !align !687 %17 = bitcast {} addrspace(10)* %16 to [2 x i8] addrspace(10)* %18 = addrspacecast [2 x i8] addrspace(10)* %17 to [2 x i8] addrspace(11)* %19 = call swiftcc nonnull {} addrspace(10)* @"julia__generic_matvecmul!_1420"({}*** nonnull swiftself %pgcstack, {} addrspace(10)* %1, i32 zeroext %6, { {} addrspace(10)*, i32 } addrspace(11)* nocapture readonly %10, { {} addrspace(10)*, [1 x [1 x [1 x i64]]], i64, i64 } addrspace(11)* nocapture readonly %14, [2 x i8] addrspace(11)* nocapture readonly %18) @@ -3799,6 +4151,12 @@ ; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn declare i64 @llvm.smax.i64(i64, i64) #9 +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare i64 @llvm.smin.i64(i64, i64) #9 + +; Function Attrs: nocallback nofree nosync nounwind readnone speculatable willreturn +declare i64 @llvm.umin.i64(i64, i64) #9 + attributes #0 = { "frame-pointer"="all" "probe-stack"="inline-asm" } attributes #1 = { noinline optnone "frame-pointer"="all" "probe-stack"="inline-asm" } attributes #2 = { inaccessiblemem_or_argmemonly } @@ -4491,8 +4849,13 @@ !675 = !DILocation(line: 521, scope: !17, inlinedAt: !676) !676 = !DILocation(line: 901, scope: !37, inlinedAt: !677) !677 = !DILocation(line: 752, scope: !5) -!678 = !{i64 4} -!679 = !{i64 8} -!680 = !{i64 32} -!681 = !{i64 2} -!682 = !{i64 1} +!678 = distinct !{!678, !679, !680, !681, !682} +!679 = !{!"llvm.loop.unroll.disable"} +!680 = !{!"llvm.loop.vectorize.enable", i1 false} +!681 = !{!"llvm.loop.licm_versioning.disable"} +!682 = !{!"llvm.loop.distribute.enable", i1 false} +!683 = !{i64 4} +!684 = !{i64 8} +!685 = !{i64 32} +!686 = !{i64 2} +!687 = !{i64 1}