Closed tcovert closed 4 months ago
Now hits a type analysis error:
Current scope:
; Function Attrs: mustprogress willreturn
define private fastcc "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}" { { {} addrspace(10)*, i64 }, {} addrspace(10)*, {} addrspace(10)* } @preprocess_augmented_julia__unsafe_getindex_4961({} addrspace(10)* nocapture noundef nonnull readonly align 16 dereferenceable(40) "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}" "enzymejl_parmtype"="128488493393952" "enzymejl_parmtype_ref"="2" %0, {} addrspace(10)* nocapture noundef nonnull readonly align 16 dereferenceable(40) "enzyme_inactive" "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}" "enzymejl_parmtype"="128488493232400" "enzymejl_parmtype_ref"="2" %1) unnamed_addr #7 !dbg !1843 {
top:
%2 = call {}*** @julia.get_pgcstack() #31
%newstruct2 = alloca [1 x [1 x i64]], align 8
%ptls_field41 = getelementptr inbounds {}**, {}*** %2, i64 2
%3 = bitcast {}*** %ptls_field41 to i64***
%ptls_load4243 = load i64**, i64*** %3, align 8, !tbaa !33, !alias.scope !1844, !noalias !1847
%4 = getelementptr inbounds i64*, i64** %ptls_load4243, i64 2
%safepoint = load i64*, i64** %4, align 8, !tbaa !42, !alias.scope !1849, !noalias !1852
fence syncscope("singlethread") seq_cst
call void @julia.safepoint(i64* %safepoint) #31, !dbg !1854
fence syncscope("singlethread") seq_cst
%5 = addrspacecast {} addrspace(10)* %1 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !1855
%arraylen_ptr = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %5, i64 0, i32 1, !dbg !1855
%arraylen = load i64, i64 addrspace(11)* %arraylen_ptr, align 8, !dbg !1855, !tbaa !97, !range !59, !alias.scope !1859, !noalias !1862
%6 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]]* %newstruct2, i64 0, i64 0, i64 0, !dbg !1864
store i64 %arraylen, i64* %6, align 8, !dbg !1864, !tbaa !434, !alias.scope !436, !noalias !1868
%7 = call noalias {} addrspace(10)* @ijl_alloc_array_1d({} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 128488493393952 to {}*) to {} addrspace(10)*), i64 %arraylen) #32, !dbg !1875
%8 = shl i64 %arraylen, 3, !dbg !1875
%9 = bitcast {} addrspace(10)* %7 to i8 addrspace(13)* addrspace(10)*, !dbg !1875
%10 = load i8 addrspace(13)*, i8 addrspace(13)* addrspace(10)* %9, align 8, !dbg !1875, !alias.scope !1880
call void @llvm.memset.p13i8.i64(i8 addrspace(13)* align 8 %10, i8 noundef 0, i64 %8, i1 noundef false) #31, !dbg !1875
%11 = call noalias nonnull {} addrspace(10)* @ijl_alloc_array_1d({} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 128488493393952 to {}*) to {} addrspace(10)*), i64 %arraylen) #32, !dbg !1875
%12 = addrspacecast {} addrspace(10)* %11 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !1881
%arraylen_ptr3 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %12, i64 0, i32 1, !dbg !1881
%arraylen4 = load i64, i64 addrspace(11)* %arraylen_ptr3, align 8, !dbg !1881, !tbaa !97, !range !59, !alias.scope !1884, !noalias !1887
%.not = icmp eq i64 %arraylen4, %arraylen, !dbg !1889
br i1 %.not, label %L19, label %L86, !dbg !1883
L19: ; preds = %top
%.not44 = icmp eq i64 %arraylen, 0, !dbg !1892
br i1 %.not44, label %L85, label %L47, !dbg !1898
L47: ; preds = %L19
%13 = addrspacecast {} addrspace(10)* %1 to i64 addrspace(13)* addrspace(11)*, !dbg !1902
%arrayptr46 = load i64 addrspace(13)*, i64 addrspace(13)* addrspace(11)* %13, align 16, !dbg !1902, !alias.scope !1903, !noalias !1904, !nonnull !32
%14 = addrspacecast {} addrspace(10)* %0 to double addrspace(13)* addrspace(11)*
%arrayptr2547 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %14, align 16, !tbaa !112, !alias.scope !1905, !noalias !1910, !nonnull !32
%15 = addrspacecast {} addrspace(10)* %11 to double addrspace(13)* addrspace(11)*
%arrayptr2848 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %15, align 8, !tbaa !112, !alias.scope !1912, !noalias !1887, !nonnull !32
%value_phi1957 = load i64, i64 addrspace(13)* %arrayptr46, align 8, !dbg !1913, !tbaa !134, !alias.scope !1914, !noalias !1917
%16 = add i64 %value_phi1957, -1, !dbg !1919
%17 = getelementptr inbounds double, double addrspace(13)* %arrayptr2547, i64 %16, !dbg !1919
%arrayref2658 = load double, double addrspace(13)* %17, align 8, !dbg !1919, !tbaa !134, !alias.scope !1922, !noalias !1925
store double %arrayref2658, double addrspace(13)* %arrayptr2848, align 8, !dbg !1927, !tbaa !134, !alias.scope !1928, !noalias !1931
%exitcond.not59 = icmp eq i64 %arraylen, 1, !dbg !1933
br i1 %exitcond.not59, label %L85, label %L78.preheader, !dbg !1935
L78.preheader: ; preds = %L47
br label %L78, !dbg !1935
L78: ; preds = %L78.preheader, %L78
%iv1 = phi i64 [ 0, %L78.preheader ], [ %iv.next2, %L78 ]
%iv.next2 = add nuw nsw i64 %iv1, 1, !dbg !1937
%18 = add nuw nsw i64 %iv1, 2, !dbg !1939
%19 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr46, i64 %iv.next2, !dbg !1941
%value_phi19 = load i64, i64 addrspace(13)* %19, align 8, !dbg !1913, !tbaa !134, !alias.scope !1914, !noalias !1917
%20 = add i64 %value_phi19, -1, !dbg !1919
%21 = getelementptr inbounds double, double addrspace(13)* %arrayptr2547, i64 %20, !dbg !1919
%arrayref26 = load double, double addrspace(13)* %21, align 8, !dbg !1919, !tbaa !134, !alias.scope !1922, !noalias !1925
%22 = getelementptr inbounds double, double addrspace(13)* %arrayptr2848, i64 %iv.next2, !dbg !1927
store double %arrayref26, double addrspace(13)* %22, align 8, !dbg !1927, !tbaa !134, !alias.scope !1928, !noalias !1931
%exitcond.not = icmp eq i64 %18, %arraylen, !dbg !1933
br i1 %exitcond.not, label %L85.loopexit, label %L78, !dbg !1935
L85.loopexit: ; preds = %L78
br label %L85, !dbg !1942
L85: ; preds = %L85.loopexit, %L47, %L19
%23 = insertvalue { {} addrspace(10)*, i64 } undef, {} addrspace(10)* %7, 0, !dbg !1942
%.unpack7 = insertvalue { {} addrspace(10)*, i64 } %23, i64 %arraylen, 1, !dbg !1942
%24 = insertvalue { { {} addrspace(10)*, i64 }, {} addrspace(10)*, {} addrspace(10)* } undef, { {} addrspace(10)*, i64 } %.unpack7, 0, !dbg !1942
%25 = insertvalue { { {} addrspace(10)*, i64 }, {} addrspace(10)*, {} addrspace(10)* } %24, {} addrspace(10)* %11, 1, !dbg !1942
%26 = insertvalue { { {} addrspace(10)*, i64 }, {} addrspace(10)*, {} addrspace(10)* } %25, {} addrspace(10)* %7, 2, !dbg !1942
ret { { {} addrspace(10)*, i64 }, {} addrspace(10)*, {} addrspace(10)* } %26, !dbg !1942
L86: ; preds = %top
%27 = addrspacecast [1 x [1 x i64]]* %newstruct2 to [1 x [1 x i64]] addrspace(11)*, !dbg !1883
call fastcc void @julia_throw_checksize_error_4964({} addrspace(10)* noalias nocapture noundef nonnull readonly align 16 dereferenceable(40) %11, [1 x [1 x i64]] addrspace(11)* nocapture nofree noundef nonnull readonly align 8 dereferenceable(8) %27) #33, !dbg !1883
unreachable, !dbg !1883
}
Type analysis state:
<analysis>
i64 0: {[-1]:Anything}, intvals: {0,}
i64 1: {[-1]:Integer}, intvals: {1,}
i64 2: {[-1]:Integer}, intvals: {2,}
{}* inttoptr (i64 128488493393952 to {}*): {[-1]:Anything}, intvals: {}
{} addrspace(10)* addrspacecast ({}* inttoptr (i64 128488493393952 to {}*) to {} addrspace(10)*): {[-1]:Anything}, intvals: {}
i64 3: {[-1]:Integer}, intvals: {3,}
i64 -1: {[-1]:Anything}, intvals: {-1,}
{ {} addrspace(10)*, i64 } undef: {[-1]:Anything}, intvals: {}
{ { {} addrspace(10)*, i64 }, {} addrspace(10)*, {} addrspace(10)* } undef: {[-1]:Anything}, intvals: {}
%safepoint = load i64*, i64** %4, align 8, !tbaa !42, !alias.scope !44, !noalias !47: {}, intvals: {}
%5 = addrspacecast {} addrspace(10)* %1 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !50: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%arraylen = load i64, i64 addrspace(11)* %arraylen_ptr, align 8, !dbg !50, !tbaa !59, !range !62, !alias.scope !63, !noalias !68: {[-1]:Integer}, intvals: {}
{} addrspace(10)* %0: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
{} addrspace(10)* %1: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%2 = call {}*** @julia.get_pgcstack() #31: {}, intvals: {}
%arrayptr2848 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %15, align 8, !tbaa !143, !alias.scope !152, !noalias !109, !nonnull !32: {[-1]:Pointer, [-1,-1]:Float@double}, intvals: {}
%value_phi1957 = load i64, i64 addrspace(13)* %arrayptr46, align 8, !dbg !153, !tbaa !154, !alias.scope !157, !noalias !160: {[-1]:Integer}, intvals: {}
%11 = call noalias nonnull {} addrspace(10)* @ijl_alloc_array_1d({} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 128488493393952 to {}*) to {} addrspace(10)*), i64 %arraylen) #32, !dbg !93: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%12 = addrspacecast {} addrspace(10)* %11 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !103: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%arraylen4 = load i64, i64 addrspace(11)* %arraylen_ptr3, align 8, !dbg !103, !tbaa !59, !range !62, !alias.scope !106, !noalias !109: {[-1]:Integer}, intvals: {}
%.not = icmp eq i64 %arraylen4, %arraylen, !dbg !111: {[-1]:Integer}, intvals: {}
%iv.next2 = add nuw nsw i64 %iv1, 1, !dbg !182: {[-1]:Integer}, intvals: {1,}
%15 = addrspacecast {} addrspace(10)* %11 to double addrspace(13)* addrspace(11)*: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%4 = getelementptr inbounds i64*, i64** %ptls_load4243, i64 2: {[-1]:Pointer}, intvals: {}
%ptls_field41 = getelementptr inbounds {}**, {}*** %2, i64 2: {}, intvals: {}
%.not44 = icmp eq i64 %arraylen, 0, !dbg !118: {[-1]:Integer}, intvals: {}
%8 = shl i64 %arraylen, 3, !dbg !93: {[-1]:Integer}, intvals: {}
%9 = bitcast {} addrspace(10)* %7 to i8 addrspace(13)* addrspace(10)*, !dbg !93: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%10 = load i8 addrspace(13)*, i8 addrspace(13)* addrspace(10)* %9, align 8, !dbg !93, !alias.scope !102: {[-1]:Pointer, [-1,-1]:Float@double}, intvals: {}
%arraylen_ptr3 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %12, i64 0, i32 1, !dbg !103: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {}
%13 = addrspacecast {} addrspace(10)* %1 to i64 addrspace(13)* addrspace(11)*, !dbg !138: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%arrayptr46 = load i64 addrspace(13)*, i64 addrspace(13)* addrspace(11)* %13, align 16, !dbg !138, !alias.scope !141, !noalias !142, !nonnull !32: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {}
%14 = addrspacecast {} addrspace(10)* %0 to double addrspace(13)* addrspace(11)*: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%arrayptr2547 = load double addrspace(13)*, double addrspace(13)* addrspace(11)* %14, align 16, !tbaa !143, !alias.scope !145, !noalias !150, !nonnull !32: {[-1]:Pointer, [-1,-1]:Float@double}, intvals: {}
%18 = add nuw nsw i64 %iv1, 2, !dbg !185: {[-1]:Integer}, intvals: {2,}
%19 = getelementptr inbounds i64, i64 addrspace(13)* %arrayptr46, i64 %iv.next2, !dbg !187: {[-1]:Pointer, [-1,-1]:Integer}, intvals: {}
%value_phi19 = load i64, i64 addrspace(13)* %19, align 8, !dbg !153, !tbaa !154, !alias.scope !157, !noalias !160: {[-1]:Integer}, intvals: {}
%20 = add i64 %value_phi19, -1, !dbg !162: {[-1]:Integer}, intvals: {}
%21 = getelementptr inbounds double, double addrspace(13)* %arrayptr2547, i64 %20, !dbg !162: {[-1]:Pointer, [-1,-1]:Float@double}, intvals: {}
%arrayref26 = load double, double addrspace(13)* %21, align 8, !dbg !162, !tbaa !154, !alias.scope !166, !noalias !169: {[-1]:Float@double}, intvals: {}
%22 = getelementptr inbounds double, double addrspace(13)* %arrayptr2848, i64 %iv.next2, !dbg !171: {[-1]:Pointer, [-1,-1]:Float@double}, intvals: {}
%iv1 = phi i64 [ 0, %L78.preheader ], [ %iv.next2, %L78 ]: {[-1]:Integer}, intvals: {0,}
%arraylen_ptr = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %5, i64 0, i32 1, !dbg !50: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {}
%exitcond.not = icmp eq i64 %18, %arraylen, !dbg !178: {[-1]:Integer}, intvals: {}
%23 = insertvalue { {} addrspace(10)*, i64 } undef, {} addrspace(10)* %7, 0, !dbg !188: {[0,0]:Pointer, [0,0,-1]:Float@double, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer, [0,16]:Integer, [0,17]:Integer, [0,18]:Integer, [0,19]:Integer, [0,20]:Integer, [0,21]:Integer, [0,22]:Integer, [0,23]:Integer, [0,24]:Integer, [0,25]:Integer, [0,26]:Integer, [0,27]:Integer, [0,28]:Integer, [0,29]:Integer, [0,30]:Integer, [0,31]:Integer, [0,32]:Integer, [0,33]:Integer, [0,34]:Integer, [0,35]:Integer, [0,36]:Integer, [0,37]:Integer, [0,38]:Integer, [0,39]:Integer, [1,0]:Pointer, [1,0,-1]:Float@double, [1,8]:Integer, [1,9]:Integer, [1,10]:Integer, [1,11]:Integer, [1,12]:Integer, [1,13]:Integer, [1,14]:Integer, [1,15]:Integer, [1,16]:Integer, [1,17]:Integer, [1,18]:Integer, [1,19]:Integer, [1,20]:Integer, [1,21]:Integer, [1,22]:Integer, [1,23]:Integer, [1,24]:Integer, [1,25]:Integer, [1,26]:Integer, [1,27]:Integer, [1,28]:Integer, [1,29]:Integer, [1,30]:Integer, [1,31]:Integer, [1,32]:Integer, [1,33]:Integer, [1,34]:Integer, [1,35]:Integer, [1,36]:Integer, [1,37]:Integer, [1,38]:Integer, [1,39]:Integer, [2,0]:Pointer, [2,0,-1]:Float@double, [2,8]:Integer, [2,9]:Integer, [2,10]:Integer, [2,11]:Integer, [2,12]:Integer, [2,13]:Integer, [2,14]:Integer, [2,15]:Integer, [2,16]:Integer, [2,17]:Integer, [2,18]:Integer, [2,19]:Integer, [2,20]:Integer, [2,21]:Integer, [2,22]:Integer, [2,23]:Integer, [2,24]:Integer, [2,25]:Integer, [2,26]:Integer, [2,27]:Integer, [2,28]:Integer, [2,29]:Integer, [2,30]:Integer, [2,31]:Integer, [2,32]:Integer, [2,33]:Integer, [2,34]:Integer, [2,35]:Integer, [2,36]:Integer, [2,37]:Integer, [2,38]:Integer, [2,39]:Integer, [3,0]:Pointer, [3,0,-1]:Float@double, [3,8]:Integer, [3,9]:Integer, [3,10]:Integer, [3,11]:Integer, [3,12]:Integer, [3,13]:Integer, [3,14]:Integer, [3,15]:Integer, [3,16]:Integer, [3,17]:Integer, [3,18]:Integer, [3,19]:Integer, [3,20]:Integer, [3,21]:Integer, [3,22]:Integer, [3,23]:Integer, [3,24]:Integer, [3,25]:Integer, [3,26]:Integer, [3,27]:Integer, [3,28]:Integer, [3,29]:Integer, [3,30]:Integer, [3,31]:Integer, [3,32]:Integer, [3,33]:Integer, [3,34]:Integer, [3,35]:Integer, [3,36]:Integer, [3,37]:Integer, [3,38]:Integer, [3,39]:Integer, [4,0]:Pointer, [4,0,-1]:Float@double, [4,8]:Integer, [4,9]:Integer, [4,10]:Integer, [4,11]:Integer, [4,12]:Integer, [4,13]:Integer, [4,14]:Integer, [4,15]:Integer, [4,16]:Integer, [4,17]:Integer, [4,18]:Integer, [4,19]:Integer, [4,20]:Integer, [4,21]:Integer, [4,22]:Integer, [4,23]:Integer, [4,24]:Integer, [4,25]:Integer, [4,26]:Integer, [4,27]:Integer, [4,28]:Integer, [4,29]:Integer, [4,30]:Integer, [4,31]:Integer, [4,32]:Integer, [4,33]:Integer, [4,34]:Integer, [4,35]:Integer, [4,36]:Integer, [4,37]:Integer, [4,38]:Integer, [4,39]:Integer, [5,0]:Pointer, [5,0,-1]:Float@double, [5,8]:Integer, [5,9]:Integer, [5,10]:Integer, [5,11]:Integer, [5,12]:Integer, [5,13]:Integer, [5,14]:Integer, [5,15]:Integer, [5,16]:Integer, [5,17]:Integer, [5,18]:Integer, [5,19]:Integer, [5,20]:Integer, [5,21]:Integer, [5,22]:Integer, [5,23]:Integer, [5,24]:Integer, [5,25]:Integer, [5,26]:Integer, [5,27]:Integer, [5,28]:Integer, [5,29]:Integer, [5,30]:Integer, [5,31]:Integer, [5,32]:Integer, [5,33]:Integer, [5,34]:Integer, [5,35]:Integer, [5,36]:Integer, [5,37]:Integer, [5,38]:Integer, [5,39]:Integer, [6,0]:Pointer, [6,0,-1]:Float@double, [6,8]:Integer, [6,9]:Integer, [6,10]:Integer, [6,11]:Integer, [6,12]:Integer, [6,13]:Integer, [6,14]:Integer, [6,15]:Integer, [6,16]:Integer, [6,17]:Integer, [6,18]:Integer, [6,19]:Integer, [6,20]:Integer, [6,21]:Integer, [6,22]:Integer, [6,23]:Integer, [6,24]:Integer, [6,25]:Integer, [6,26]:Integer, [6,27]:Integer, [6,28]:Integer, [6,29]:Integer, [6,30]:Integer, [6,31]:Integer, [6,32]:Integer, [6,33]:Integer, [6,34]:Integer, [6,35]:Integer, [6,36]:Integer, [6,37]:Integer, [6,38]:Integer, [6,39]:Integer, [7,0]:Pointer, [7,0,-1]:Float@double, [7,8]:Integer, [7,9]:Integer, [7,10]:Integer, [7,11]:Integer, [7,12]:Integer, [7,13]:Integer, [7,14]:Integer, [7,15]:Integer, [7,16]:Integer, [7,17]:Integer, [7,18]:Integer, [7,19]:Integer, [7,20]:Integer, [7,21]:Integer, [7,22]:Integer, [7,23]:Integer, [7,24]:Integer, [7,25]:Integer, [7,26]:Integer, [7,27]:Integer, [7,28]:Integer, [7,29]:Integer, [7,30]:Integer, [7,31]:Integer, [7,32]:Integer, [7,33]:Integer, [7,34]:Integer, [7,35]:Integer, [7,36]:Integer, [7,37]:Integer, [7,38]:Integer, [7,39]:Integer, [8]:Anything, [9]:Anything, [10]:Anything, [11]:Anything, [12]:Anything, [13]:Anything, [14]:Anything, [15]:Anything}, intvals: {}
%.unpack7 = insertvalue { {} addrspace(10)*, i64 } %23, i64 %arraylen, 1, !dbg !188: {[0,0]:Pointer, [0,0,-1]:Float@double, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer, [0,16]:Integer, [0,17]:Integer, [0,18]:Integer, [0,19]:Integer, [0,20]:Integer, [0,21]:Integer, [0,22]:Integer, [0,23]:Integer, [0,24]:Integer, [0,25]:Integer, [0,26]:Integer, [0,27]:Integer, [0,28]:Integer, [0,29]:Integer, [0,30]:Integer, [0,31]:Integer, [0,32]:Integer, [0,33]:Integer, [0,34]:Integer, [0,35]:Integer, [0,36]:Integer, [0,37]:Integer, [0,38]:Integer, [0,39]:Integer, [1,0]:Pointer, [1,0,-1]:Float@double, [1,8]:Integer, [1,9]:Integer, [1,10]:Integer, [1,11]:Integer, [1,12]:Integer, [1,13]:Integer, [1,14]:Integer, [1,15]:Integer, [1,16]:Integer, [1,17]:Integer, [1,18]:Integer, [1,19]:Integer, [1,20]:Integer, [1,21]:Integer, [1,22]:Integer, [1,23]:Integer, [1,24]:Integer, [1,25]:Integer, [1,26]:Integer, [1,27]:Integer, [1,28]:Integer, [1,29]:Integer, [1,30]:Integer, [1,31]:Integer, [1,32]:Integer, [1,33]:Integer, [1,34]:Integer, [1,35]:Integer, [1,36]:Integer, [1,37]:Integer, [1,38]:Integer, [1,39]:Integer, [2,0]:Pointer, [2,0,-1]:Float@double, [2,8]:Integer, [2,9]:Integer, [2,10]:Integer, [2,11]:Integer, [2,12]:Integer, [2,13]:Integer, [2,14]:Integer, [2,15]:Integer, [2,16]:Integer, [2,17]:Integer, [2,18]:Integer, [2,19]:Integer, [2,20]:Integer, [2,21]:Integer, [2,22]:Integer, [2,23]:Integer, [2,24]:Integer, [2,25]:Integer, [2,26]:Integer, [2,27]:Integer, [2,28]:Integer, [2,29]:Integer, [2,30]:Integer, [2,31]:Integer, [2,32]:Integer, [2,33]:Integer, [2,34]:Integer, [2,35]:Integer, [2,36]:Integer, [2,37]:Integer, [2,38]:Integer, [2,39]:Integer, [3,0]:Pointer, [3,0,-1]:Float@double, [3,8]:Integer, [3,9]:Integer, [3,10]:Integer, [3,11]:Integer, [3,12]:Integer, [3,13]:Integer, [3,14]:Integer, [3,15]:Integer, [3,16]:Integer, [3,17]:Integer, [3,18]:Integer, [3,19]:Integer, [3,20]:Integer, [3,21]:Integer, [3,22]:Integer, [3,23]:Integer, [3,24]:Integer, [3,25]:Integer, [3,26]:Integer, [3,27]:Integer, [3,28]:Integer, [3,29]:Integer, [3,30]:Integer, [3,31]:Integer, [3,32]:Integer, [3,33]:Integer, [3,34]:Integer, [3,35]:Integer, [3,36]:Integer, [3,37]:Integer, [3,38]:Integer, [3,39]:Integer, [4,0]:Pointer, [4,0,-1]:Float@double, [4,8]:Integer, [4,9]:Integer, [4,10]:Integer, [4,11]:Integer, [4,12]:Integer, [4,13]:Integer, [4,14]:Integer, [4,15]:Integer, [4,16]:Integer, [4,17]:Integer, [4,18]:Integer, [4,19]:Integer, [4,20]:Integer, [4,21]:Integer, [4,22]:Integer, [4,23]:Integer, [4,24]:Integer, [4,25]:Integer, [4,26]:Integer, [4,27]:Integer, [4,28]:Integer, [4,29]:Integer, [4,30]:Integer, [4,31]:Integer, [4,32]:Integer, [4,33]:Integer, [4,34]:Integer, [4,35]:Integer, [4,36]:Integer, [4,37]:Integer, [4,38]:Integer, [4,39]:Integer, [5,0]:Pointer, [5,0,-1]:Float@double, [5,8]:Integer, [5,9]:Integer, [5,10]:Integer, [5,11]:Integer, [5,12]:Integer, [5,13]:Integer, [5,14]:Integer, [5,15]:Integer, [5,16]:Integer, [5,17]:Integer, [5,18]:Integer, [5,19]:Integer, [5,20]:Integer, [5,21]:Integer, [5,22]:Integer, [5,23]:Integer, [5,24]:Integer, [5,25]:Integer, [5,26]:Integer, [5,27]:Integer, [5,28]:Integer, [5,29]:Integer, [5,30]:Integer, [5,31]:Integer, [5,32]:Integer, [5,33]:Integer, [5,34]:Integer, [5,35]:Integer, [5,36]:Integer, [5,37]:Integer, [5,38]:Integer, [5,39]:Integer, [6,0]:Pointer, [6,0,-1]:Float@double, [6,8]:Integer, [6,9]:Integer, [6,10]:Integer, [6,11]:Integer, [6,12]:Integer, [6,13]:Integer, [6,14]:Integer, [6,15]:Integer, [6,16]:Integer, [6,17]:Integer, [6,18]:Integer, [6,19]:Integer, [6,20]:Integer, [6,21]:Integer, [6,22]:Integer, [6,23]:Integer, [6,24]:Integer, [6,25]:Integer, [6,26]:Integer, [6,27]:Integer, [6,28]:Integer, [6,29]:Integer, [6,30]:Integer, [6,31]:Integer, [6,32]:Integer, [6,33]:Integer, [6,34]:Integer, [6,35]:Integer, [6,36]:Integer, [6,37]:Integer, [6,38]:Integer, [6,39]:Integer, [7,0]:Pointer, [7,0,-1]:Float@double, [7,8]:Integer, [7,9]:Integer, [7,10]:Integer, [7,11]:Integer, [7,12]:Integer, [7,13]:Integer, [7,14]:Integer, [7,15]:Integer, [7,16]:Integer, [7,17]:Integer, [7,18]:Integer, [7,19]:Integer, [7,20]:Integer, [7,21]:Integer, [7,22]:Integer, [7,23]:Integer, [7,24]:Integer, [7,25]:Integer, [7,26]:Integer, [7,27]:Integer, [7,28]:Integer, [7,29]:Integer, [7,30]:Integer, [7,31]:Integer, [7,32]:Integer, [7,33]:Integer, [7,34]:Integer, [7,35]:Integer, [7,36]:Integer, [7,37]:Integer, [7,38]:Integer, [7,39]:Integer, [8]:Integer, [9]:Integer, [10]:Integer, [11]:Integer, [12]:Integer, [13]:Integer, [14]:Integer, [15]:Integer}, intvals: {}
%24 = insertvalue { { {} addrspace(10)*, i64 }, {} addrspace(10)*, {} addrspace(10)* } undef, { {} addrspace(10)*, i64 } %.unpack7, 0, !dbg !188: {[0,0]:Pointer, [0,0,-1]:Float@double, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer, [0,16]:Integer, [0,17]:Integer, [0,18]:Integer, [0,19]:Integer, [0,20]:Integer, [0,21]:Integer, [0,22]:Integer, [0,23]:Integer, [0,24]:Integer, [0,25]:Integer, [0,26]:Integer, [0,27]:Integer, [0,28]:Integer, [0,29]:Integer, [0,30]:Integer, [0,31]:Integer, [0,32]:Integer, [0,33]:Integer, [0,34]:Integer, [0,35]:Integer, [0,36]:Integer, [0,37]:Integer, [0,38]:Integer, [0,39]:Integer, [1,0]:Pointer, [1,0,-1]:Float@double, [1,8]:Integer, [1,9]:Integer, [1,10]:Integer, [1,11]:Integer, [1,12]:Integer, [1,13]:Integer, [1,14]:Integer, [1,15]:Integer, [1,16]:Integer, [1,17]:Integer, [1,18]:Integer, [1,19]:Integer, [1,20]:Integer, [1,21]:Integer, [1,22]:Integer, [1,23]:Integer, [1,24]:Integer, [1,25]:Integer, [1,26]:Integer, [1,27]:Integer, [1,28]:Integer, [1,29]:Integer, [1,30]:Integer, [1,31]:Integer, [1,32]:Integer, [1,33]:Integer, [1,34]:Integer, [1,35]:Integer, [1,36]:Integer, [1,37]:Integer, [1,38]:Integer, [1,39]:Integer, [2,0]:Pointer, [2,0,-1]:Float@double, [2,8]:Integer, [2,9]:Integer, [2,10]:Integer, [2,11]:Integer, [2,12]:Integer, [2,13]:Integer, [2,14]:Integer, [2,15]:Integer, [2,16]:Integer, [2,17]:Integer, [2,18]:Integer, [2,19]:Integer, [2,20]:Integer, [2,21]:Integer, [2,22]:Integer, [2,23]:Integer, [2,24]:Integer, [2,25]:Integer, [2,26]:Integer, [2,27]:Integer, [2,28]:Integer, [2,29]:Integer, [2,30]:Integer, [2,31]:Integer, [2,32]:Integer, [2,33]:Integer, [2,34]:Integer, [2,35]:Integer, [2,36]:Integer, [2,37]:Integer, [2,38]:Integer, [2,39]:Integer, [3,0]:Pointer, [3,0,-1]:Float@double, [3,8]:Integer, [3,9]:Integer, [3,10]:Integer, [3,11]:Integer, [3,12]:Integer, [3,13]:Integer, [3,14]:Integer, [3,15]:Integer, [3,16]:Integer, [3,17]:Integer, [3,18]:Integer, [3,19]:Integer, [3,20]:Integer, [3,21]:Integer, [3,22]:Integer, [3,23]:Integer, [3,24]:Integer, [3,25]:Integer, [3,26]:Integer, [3,27]:Integer, [3,28]:Integer, [3,29]:Integer, [3,30]:Integer, [3,31]:Integer, [3,32]:Integer, [3,33]:Integer, [3,34]:Integer, [3,35]:Integer, [3,36]:Integer, [3,37]:Integer, [3,38]:Integer, [3,39]:Integer, [4,0]:Pointer, [4,0,-1]:Float@double, [4,8]:Integer, [4,9]:Integer, [4,10]:Integer, [4,11]:Integer, [4,12]:Integer, [4,13]:Integer, [4,14]:Integer, [4,15]:Integer, [4,16]:Integer, [4,17]:Integer, [4,18]:Integer, [4,19]:Integer, [4,20]:Integer, [4,21]:Integer, [4,22]:Integer, [4,23]:Integer, [4,24]:Integer, [4,25]:Integer, [4,26]:Integer, [4,27]:Integer, [4,28]:Integer, [4,29]:Integer, [4,30]:Integer, [4,31]:Integer, [4,32]:Integer, [4,33]:Integer, [4,34]:Integer, [4,35]:Integer, [4,36]:Integer, [4,37]:Integer, [4,38]:Integer, [4,39]:Integer, [5,0]:Pointer, [5,0,-1]:Float@double, [5,8]:Integer, [5,9]:Integer, [5,10]:Integer, [5,11]:Integer, [5,12]:Integer, [5,13]:Integer, [5,14]:Integer, [5,15]:Integer, [5,16]:Integer, [5,17]:Integer, [5,18]:Integer, [5,19]:Integer, [5,20]:Integer, [5,21]:Integer, [5,22]:Integer, [5,23]:Integer, [5,24]:Integer, [5,25]:Integer, [5,26]:Integer, [5,27]:Integer, [5,28]:Integer, [5,29]:Integer, [5,30]:Integer, [5,31]:Integer, [5,32]:Integer, [5,33]:Integer, [5,34]:Integer, [5,35]:Integer, [5,36]:Integer, [5,37]:Integer, [5,38]:Integer, [5,39]:Integer, [6,0]:Pointer, [6,0,-1]:Float@double, [6,8]:Integer, [6,9]:Integer, [6,10]:Integer, [6,11]:Integer, [6,12]:Integer, [6,13]:Integer, [6,14]:Integer, [6,15]:Integer, [6,16]:Integer, [6,17]:Integer, [6,18]:Integer, [6,19]:Integer, [6,20]:Integer, [6,21]:Integer, [6,22]:Integer, [6,23]:Integer, [6,24]:Integer, [6,25]:Integer, [6,26]:Integer, [6,27]:Integer, [6,28]:Integer, [6,29]:Integer, [6,30]:Integer, [6,31]:Integer, [6,32]:Integer, [6,33]:Integer, [6,34]:Integer, [6,35]:Integer, [6,36]:Integer, [6,37]:Integer, [6,38]:Integer, [6,39]:Integer, [7,0]:Pointer, [7,0,-1]:Float@double, [7,8]:Integer, [7,9]:Integer, [7,10]:Integer, [7,11]:Integer, [7,12]:Integer, [7,13]:Integer, [7,14]:Integer, [7,15]:Integer, [7,16]:Integer, [7,17]:Integer, [7,18]:Integer, [7,19]:Integer, [7,20]:Integer, [7,21]:Integer, [7,22]:Integer, [7,23]:Integer, [7,24]:Integer, [7,25]:Integer, [7,26]:Integer, [7,27]:Integer, [7,28]:Integer, [7,29]:Integer, [7,30]:Integer, [7,31]:Integer, [7,32]:Integer, [7,33]:Integer, [7,34]:Integer, [7,35]:Integer, [7,36]:Integer, [7,37]:Integer, [7,38]:Integer, [7,39]:Integer, [8]:Integer, [9]:Integer, [10]:Integer, [11]:Integer, [12]:Integer, [13]:Integer, [14]:Integer, [15]:Integer, [16]:Anything, [17]:Anything, [18]:Anything, [19]:Anything, [20]:Anything, [21]:Anything, [22]:Anything, [23]:Anything, [24]:Anything, [25]:Anything, [26]:Anything, [27]:Anything, [28]:Anything, [29]:Anything, [30]:Anything, [31]:Anything}, intvals: {}
%ptls_load4243 = load i64**, i64*** %3, align 8, !tbaa !33, !alias.scope !37, !noalias !40: {}, intvals: {}
%6 = getelementptr inbounds [1 x [1 x i64]], [1 x [1 x i64]]* %newstruct2, i64 0, i64 0, i64 0, !dbg !74: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {}
%7 = call noalias {} addrspace(10)* @ijl_alloc_array_1d({} addrspace(10)* noundef addrspacecast ({}* inttoptr (i64 128488493393952 to {}*) to {} addrspace(10)*), i64 %arraylen) #32, !dbg !93: {[-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%newstruct2 = alloca [1 x [1 x i64]], align 8: {[-1]:Pointer}, intvals: {}
%3 = bitcast {}*** %ptls_field41 to i64***: {[-1]:Pointer}, intvals: {}
%16 = add i64 %value_phi1957, -1, !dbg !162: {[-1]:Integer}, intvals: {}
%17 = getelementptr inbounds double, double addrspace(13)* %arrayptr2547, i64 %16, !dbg !162: {[-1]:Pointer, [-1,-1]:Float@double}, intvals: {}
%arrayref2658 = load double, double addrspace(13)* %17, align 8, !dbg !162, !tbaa !154, !alias.scope !166, !noalias !169: {[-1]:Float@double}, intvals: {}
%exitcond.not59 = icmp eq i64 %arraylen, 1, !dbg !178: {[-1]:Integer}, intvals: {}
%25 = insertvalue { { {} addrspace(10)*, i64 }, {} addrspace(10)*, {} addrspace(10)* } %24, {} addrspace(10)* %11, 1, !dbg !188: {[0]:Pointer, [0,0]:Pointer, [0,0,-1]:Float@double, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer, [0,16]:Integer, [0,17]:Integer, [0,18]:Integer, [0,19]:Integer, [0,20]:Integer, [0,21]:Integer, [0,22]:Integer, [0,23]:Integer, [0,24]:Integer, [0,25]:Integer, [0,26]:Integer, [0,27]:Integer, [0,28]:Integer, [0,29]:Integer, [0,30]:Integer, [0,31]:Integer, [0,32]:Integer, [0,33]:Integer, [0,34]:Integer, [0,35]:Integer, [0,36]:Integer, [0,37]:Integer, [0,38]:Integer, [0,39]:Integer, [1]:Pointer, [1,0]:Pointer, [1,0,-1]:Float@double, [1,8]:Integer, [1,9]:Integer, [1,10]:Integer, [1,11]:Integer, [1,12]:Integer, [1,13]:Integer, [1,14]:Integer, [1,15]:Integer, [1,16]:Integer, [1,17]:Integer, [1,18]:Integer, [1,19]:Integer, [1,20]:Integer, [1,21]:Integer, [1,22]:Integer, [1,23]:Integer, [1,24]:Integer, [1,25]:Integer, [1,26]:Integer, [1,27]:Integer, [1,28]:Integer, [1,29]:Integer, [1,30]:Integer, [1,31]:Integer, [1,32]:Integer, [1,33]:Integer, [1,34]:Integer, [1,35]:Integer, [1,36]:Integer, [1,37]:Integer, [1,38]:Integer, [1,39]:Integer, [2]:Pointer, [2,0]:Pointer, [2,0,-1]:Float@double, [2,8]:Integer, [2,9]:Integer, [2,10]:Integer, [2,11]:Integer, [2,12]:Integer, [2,13]:Integer, [2,14]:Integer, [2,15]:Integer, [2,16]:Integer, [2,17]:Integer, [2,18]:Integer, [2,19]:Integer, [2,20]:Integer, [2,21]:Integer, [2,22]:Integer, [2,23]:Integer, [2,24]:Integer, [2,25]:Integer, [2,26]:Integer, [2,27]:Integer, [2,28]:Integer, [2,29]:Integer, [2,30]:Integer, [2,31]:Integer, [2,32]:Integer, [2,33]:Integer, [2,34]:Integer, [2,35]:Integer, [2,36]:Integer, [2,37]:Integer, [2,38]:Integer, [2,39]:Integer, [3]:Pointer, [3,0]:Pointer, [3,0,-1]:Float@double, [3,8]:Integer, [3,9]:Integer, [3,10]:Integer, [3,11]:Integer, [3,12]:Integer, [3,13]:Integer, [3,14]:Integer, [3,15]:Integer, [3,16]:Integer, [3,17]:Integer, [3,18]:Integer, [3,19]:Integer, [3,20]:Integer, [3,21]:Integer, [3,22]:Integer, [3,23]:Integer, [3,24]:Integer, [3,25]:Integer, [3,26]:Integer, [3,27]:Integer, [3,28]:Integer, [3,29]:Integer, [3,30]:Integer, [3,31]:Integer, [3,32]:Integer, [3,33]:Integer, [3,34]:Integer, [3,35]:Integer, [3,36]:Integer, [3,37]:Integer, [3,38]:Integer, [3,39]:Integer, [4]:Pointer, [4,0]:Pointer, [4,0,-1]:Float@double, [4,8]:Integer, [4,9]:Integer, [4,10]:Integer, [4,11]:Integer, [4,12]:Integer, [4,13]:Integer, [4,14]:Integer, [4,15]:Integer, [4,16]:Integer, [4,17]:Integer, [4,18]:Integer, [4,19]:Integer, [4,20]:Integer, [4,21]:Integer, [4,22]:Integer, [4,23]:Integer, [4,24]:Integer, [4,25]:Integer, [4,26]:Integer, [4,27]:Integer, [4,28]:Integer, [4,29]:Integer, [4,30]:Integer, [4,31]:Integer, [4,32]:Integer, [4,33]:Integer, [4,34]:Integer, [4,35]:Integer, [4,36]:Integer, [4,37]:Integer, [4,38]:Integer, [4,39]:Integer, [5]:Pointer, [5,0]:Pointer, [5,0,-1]:Float@double, [5,8]:Integer, [5,9]:Integer, [5,10]:Integer, [5,11]:Integer, [5,12]:Integer, [5,13]:Integer, [5,14]:Integer, [5,15]:Integer, [5,16]:Integer, [5,17]:Integer, [5,18]:Integer, [5,19]:Integer, [5,20]:Integer, [5,21]:Integer, [5,22]:Integer, [5,23]:Integer, [5,24]:Integer, [5,25]:Integer, [5,26]:Integer, [5,27]:Integer, [5,28]:Integer, [5,29]:Integer, [5,30]:Integer, [5,31]:Integer, [5,32]:Integer, [5,33]:Integer, [5,34]:Integer, [5,35]:Integer, [5,36]:Integer, [5,37]:Integer, [5,38]:Integer, [5,39]:Integer, [6]:Pointer, [6,0]:Pointer, [6,0,-1]:Float@double, [6,8]:Integer, [6,9]:Integer, [6,10]:Integer, [6,11]:Integer, [6,12]:Integer, [6,13]:Integer, [6,14]:Integer, [6,15]:Integer, [6,16]:Integer, [6,17]:Integer, [6,18]:Integer, [6,19]:Integer, [6,20]:Integer, [6,21]:Integer, [6,22]:Integer, [6,23]:Integer, [6,24]:Integer, [6,25]:Integer, [6,26]:Integer, [6,27]:Integer, [6,28]:Integer, [6,29]:Integer, [6,30]:Integer, [6,31]:Integer, [6,32]:Integer, [6,33]:Integer, [6,34]:Integer, [6,35]:Integer, [6,36]:Integer, [6,37]:Integer, [6,38]:Integer, [6,39]:Integer, [7]:Pointer, [7,0]:Pointer, [7,0,-1]:Float@double, [7,8]:Integer, [7,9]:Integer, [7,10]:Integer, [7,11]:Integer, [7,12]:Integer, [7,13]:Integer, [7,14]:Integer, [7,15]:Integer, [7,16]:Integer, [7,17]:Integer, [7,18]:Integer, [7,19]:Integer, [7,20]:Integer, [7,21]:Integer, [7,22]:Integer, [7,23]:Integer, [7,24]:Integer, [7,25]:Integer, [7,26]:Integer, [7,27]:Integer, [7,28]:Integer, [7,29]:Integer, [7,30]:Integer, [7,31]:Integer, [7,32]:Integer, [7,33]:Integer, [7,34]:Integer, [7,35]:Integer, [7,36]:Integer, [7,37]:Integer, [7,38]:Integer, [7,39]:Integer, [8]:Integer, [9]:Integer, [10]:Integer, [11]:Integer, [12]:Integer, [13]:Integer, [14]:Integer, [15]:Integer, [16]:Pointer, [16,0]:Pointer, [16,0,-1]:Float@double, [16,8]:Integer, [16,9]:Integer, [16,10]:Integer, [16,11]:Integer, [16,12]:Integer, [16,13]:Integer, [16,14]:Integer, [16,15]:Integer, [16,16]:Integer, [16,17]:Integer, [16,18]:Integer, [16,19]:Integer, [16,20]:Integer, [16,21]:Integer, [16,22]:Integer, [16,23]:Integer, [16,24]:Integer, [16,25]:Integer, [16,26]:Integer, [16,27]:Integer, [16,28]:Integer, [16,29]:Integer, [16,30]:Integer, [16,31]:Integer, [16,32]:Integer, [16,33]:Integer, [16,34]:Integer, [16,35]:Integer, [16,36]:Integer, [16,37]:Integer, [16,38]:Integer, [16,39]:Integer, [24]:Anything, [25]:Anything, [26]:Anything, [27]:Anything, [28]:Anything, [29]:Anything, [30]:Anything, [31]:Anything}, intvals: {}
%26 = insertvalue { { {} addrspace(10)*, i64 }, {} addrspace(10)*, {} addrspace(10)* } %25, {} addrspace(10)* %7, 2, !dbg !188: {[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}, intvals: {}
%27 = addrspacecast [1 x [1 x i64]]* %newstruct2 to [1 x [1 x i64]] addrspace(11)*, !dbg !105: {[-1]:Pointer, [-1,0]:Integer, [-1,1]:Integer, [-1,2]:Integer, [-1,3]:Integer, [-1,4]:Integer, [-1,5]:Integer, [-1,6]:Integer, [-1,7]:Integer}, intvals: {}
</analysis>
Illegal updateAnalysis prev:
{[0,0]:Pointer, [0,0,-1]:Float@double, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer, [0,16]:Integer, [0,17]:Integer, [0,18]:Integer, [0,19]:Integer, [0,20]:Integer, [0,21]:Integer, [0,22]:Integer, [0,23]:Integer, [0,24]:Integer, [0,25]:Integer, [0,26]:Integer, [0,27]:Integer, [0,28]:Integer, [0,29]:Integer, [0,30]:Integer, [0,31]:Integer, [0,32]:Integer, [0,33]:Integer, [0,34]:Integer, [0,35]:Integer, [0,36]:Integer, [0,37]:Integer, [0,38]:Integer, [0,39]:Integer, [1,0]:Pointer, [1,0,-1]:Float@double, [1,8]:Integer, [1,9]:Integer, [1,10]:Integer, [1,11]:Integer, [1,12]:Integer, [1,13]:Integer, [1,14]:Integer, [1,15]:Integer, [1,16]:Integer, [1,17]:Integer, [1,18]:Integer, [1,19]:Integer, [1,20]:Integer, [1,21]:Integer, [1,22]:Integer, [1,23]:Integer, [1,24]:Integer, [1,25]:Integer, [1,26]:Integer, [1,27]:Integer, [1,28]:Integer, [1,29]:Integer, [1,30]:Integer, [1,31]:Integer, [1,32]:Integer, [1,33]:Integer, [1,34]:Integer, [1,35]:Integer, [1,36]:Integer, [1,37]:Integer, [1,38]:Integer, [1,39]:Integer, [2,0]:Pointer, [2,0,-1]:Float@double, [2,8]:Integer, [2,9]:Integer, [2,10]:Integer, [2,11]:Integer, [2,12]:Integer, [2,13]:Integer, [2,14]:Integer, [2,15]:Integer, [2,16]:Integer, [2,17]:Integer, [2,18]:Integer, [2,19]:Integer, [2,20]:Integer, [2,21]:Integer, [2,22]:Integer, [2,23]:Integer, [2,24]:Integer, [2,25]:Integer, [2,26]:Integer, [2,27]:Integer, [2,28]:Integer, [2,29]:Integer, [2,30]:Integer, [2,31]:Integer, [2,32]:Integer, [2,33]:Integer, [2,34]:Integer, [2,35]:Integer, [2,36]:Integer, [2,37]:Integer, [2,38]:Integer, [2,39]:Integer, [3,0]:Pointer, [3,0,-1]:Float@double, [3,8]:Integer, [3,9]:Integer, [3,10]:Integer, [3,11]:Integer, [3,12]:Integer, [3,13]:Integer, [3,14]:Integer, [3,15]:Integer, [3,16]:Integer, [3,17]:Integer, [3,18]:Integer, [3,19]:Integer, [3,20]:Integer, [3,21]:Integer, [3,22]:Integer, [3,23]:Integer, [3,24]:Integer, [3,25]:Integer, [3,26]:Integer, [3,27]:Integer, [3,28]:Integer, [3,29]:Integer, [3,30]:Integer, [3,31]:Integer, [3,32]:Integer, [3,33]:Integer, [3,34]:Integer, [3,35]:Integer, [3,36]:Integer, [3,37]:Integer, [3,38]:Integer, [3,39]:Integer, [4,0]:Pointer, [4,0,-1]:Float@double, [4,8]:Integer, [4,9]:Integer, [4,10]:Integer, [4,11]:Integer, [4,12]:Integer, [4,13]:Integer, [4,14]:Integer, [4,15]:Integer, [4,16]:Integer, [4,17]:Integer, [4,18]:Integer, [4,19]:Integer, [4,20]:Integer, [4,21]:Integer, [4,22]:Integer, [4,23]:Integer, [4,24]:Integer, [4,25]:Integer, [4,26]:Integer, [4,27]:Integer, [4,28]:Integer, [4,29]:Integer, [4,30]:Integer, [4,31]:Integer, [4,32]:Integer, [4,33]:Integer, [4,34]:Integer, [4,35]:Integer, [4,36]:Integer, [4,37]:Integer, [4,38]:Integer, [4,39]:Integer, [5,0]:Pointer, [5,0,-1]:Float@double, [5,8]:Integer, [5,9]:Integer, [5,10]:Integer, [5,11]:Integer, [5,12]:Integer, [5,13]:Integer, [5,14]:Integer, [5,15]:Integer, [5,16]:Integer, [5,17]:Integer, [5,18]:Integer, [5,19]:Integer, [5,20]:Integer, [5,21]:Integer, [5,22]:Integer, [5,23]:Integer, [5,24]:Integer, [5,25]:Integer, [5,26]:Integer, [5,27]:Integer, [5,28]:Integer, [5,29]:Integer, [5,30]:Integer, [5,31]:Integer, [5,32]:Integer, [5,33]:Integer, [5,34]:Integer, [5,35]:Integer, [5,36]:Integer, [5,37]:Integer, [5,38]:Integer, [5,39]:Integer, [6,0]:Pointer, [6,0,-1]:Float@double, [6,8]:Integer, [6,9]:Integer, [6,10]:Integer, [6,11]:Integer, [6,12]:Integer, [6,13]:Integer, [6,14]:Integer, [6,15]:Integer, [6,16]:Integer, [6,17]:Integer, [6,18]:Integer, [6,19]:Integer, [6,20]:Integer, [6,21]:Integer, [6,22]:Integer, [6,23]:Integer, [6,24]:Integer, [6,25]:Integer, [6,26]:Integer, [6,27]:Integer, [6,28]:Integer, [6,29]:Integer, [6,30]:Integer, [6,31]:Integer, [6,32]:Integer, [6,33]:Integer, [6,34]:Integer, [6,35]:Integer, [6,36]:Integer, [6,37]:Integer, [6,38]:Integer, [6,39]:Integer, [7,0]:Pointer, [7,0,-1]:Float@double, [7,8]:Integer, [7,9]:Integer, [7,10]:Integer, [7,11]:Integer, [7,12]:Integer, [7,13]:Integer, [7,14]:Integer, [7,15]:Integer, [7,16]:Integer, [7,17]:Integer, [7,18]:Integer, [7,19]:Integer, [7,20]:Integer, [7,21]:Integer, [7,22]:Integer, [7,23]:Integer, [7,24]:Integer, [7,25]:Integer, [7,26]:Integer, [7,27]:Integer, [7,28]:Integer, [7,29]:Integer, [7,30]:Integer, [7,31]:Integer, [7,32]:Integer, [7,33]:Integer, [7,34]:Integer, [7,35]:Integer, [7,36]:Integer, [7,37]:Integer, [7,38]:Integer, [7,39]:Integer, [8]:Integer, [9]:Integer, [10]:Integer, [11]:Integer, [12]:Integer, [13]:Integer, [14]:Integer, [15]:Integer, [16]:Pointer, [16,0]:Pointer, [16,0,-1]:Float@double, [16,8]:Integer, [16,9]:Integer, [16,10]:Integer, [16,11]:Integer, [16,12]:Integer, [16,13]:Integer, [16,14]:Integer, [16,15]:Integer, [16,16]:Integer, [16,17]:Integer, [16,18]:Integer, [16,19]:Integer, [16,20]:Integer, [16,21]:Integer, [16,22]:Integer, [16,23]:Integer, [16,24]:Integer, [16,25]:Integer, [16,26]:Integer, [16,27]:Integer, [16,28]:Integer, [16,29]:Integer, [16,30]:Integer, [16,31]:Integer, [16,32]:Integer, [16,33]:Integer, [16,34]:Integer, [16,35]:Integer, [16,36]:Integer, [16,37]:Integer, [16,38]:Integer, [16,39]:Integer, [24]:Anything, [25]:Anything, [26]:Anything, [27]:Anything, [28]:Anything, [29]:Anything, [30]:Anything, [31]:Anything} new:
{[0]:Pointer, [0,0]:Pointer, [0,0,-1]:Float@double, [0,8]:Integer, [0,9]:Integer, [0,10]:Integer, [0,11]:Integer, [0,12]:Integer, [0,13]:Integer, [0,14]:Integer, [0,15]:Integer, [0,16]:Integer, [0,17]:Integer, [0,18]:Integer, [0,19]:Integer, [0,20]:Integer, [0,21]:Integer, [0,22]:Integer, [0,23]:Integer, [0,24]:Integer, [0,25]:Integer, [0,26]:Integer, [0,27]:Integer, [0,28]:Integer, [0,29]:Integer, [0,30]:Integer, [0,31]:Integer, [0,32]:Integer, [0,33]:Integer, [0,34]:Integer, [0,35]:Integer, [0,36]:Integer, [0,37]:Integer, [0,38]:Integer, [0,39]:Integer, [1]:Pointer, [1,0]:Pointer, [1,0,-1]:Float@double, [1,8]:Integer, [1,9]:Integer, [1,10]:Integer, [1,11]:Integer, [1,12]:Integer, [1,13]:Integer, [1,14]:Integer, [1,15]:Integer, [1,16]:Integer, [1,17]:Integer, [1,18]:Integer, [1,19]:Integer, [1,20]:Integer, [1,21]:Integer, [1,22]:Integer, [1,23]:Integer, [1,24]:Integer, [1,25]:Integer, [1,26]:Integer, [1,27]:Integer, [1,28]:Integer, [1,29]:Integer, [1,30]:Integer, [1,31]:Integer, [1,32]:Integer, [1,33]:Integer, [1,34]:Integer, [1,35]:Integer, [1,36]:Integer, [1,37]:Integer, [1,38]:Integer, [1,39]:Integer, [2]:Pointer, [2,0]:Pointer, [2,0,-1]:Float@double, [2,8]:Integer, [2,9]:Integer, [2,10]:Integer, [2,11]:Integer, [2,12]:Integer, [2,13]:Integer, [2,14]:Integer, [2,15]:Integer, [2,16]:Integer, [2,17]:Integer, [2,18]:Integer, [2,19]:Integer, [2,20]:Integer, [2,21]:Integer, [2,22]:Integer, [2,23]:Integer, [2,24]:Integer, [2,25]:Integer, [2,26]:Integer, [2,27]:Integer, [2,28]:Integer, [2,29]:Integer, [2,30]:Integer, [2,31]:Integer, [2,32]:Integer, [2,33]:Integer, [2,34]:Integer, [2,35]:Integer, [2,36]:Integer, [2,37]:Integer, [2,38]:Integer, [2,39]:Integer, [3]:Pointer, [3,0]:Pointer, [3,0,-1]:Float@double, [3,8]:Integer, [3,9]:Integer, [3,10]:Integer, [3,11]:Integer, [3,12]:Integer, [3,13]:Integer, [3,14]:Integer, [3,15]:Integer, [3,16]:Integer, [3,17]:Integer, [3,18]:Integer, [3,19]:Integer, [3,20]:Integer, [3,21]:Integer, [3,22]:Integer, [3,23]:Integer, [3,24]:Integer, [3,25]:Integer, [3,26]:Integer, [3,27]:Integer, [3,28]:Integer, [3,29]:Integer, [3,30]:Integer, [3,31]:Integer, [3,32]:Integer, [3,33]:Integer, [3,34]:Integer, [3,35]:Integer, [3,36]:Integer, [3,37]:Integer, [3,38]:Integer, [3,39]:Integer, [4]:Pointer, [4,0]:Pointer, [4,0,-1]:Float@double, [4,8]:Integer, [4,9]:Integer, [4,10]:Integer, [4,11]:Integer, [4,12]:Integer, [4,13]:Integer, [4,14]:Integer, [4,15]:Integer, [4,16]:Integer, [4,17]:Integer, [4,18]:Integer, [4,19]:Integer, [4,20]:Integer, [4,21]:Integer, [4,22]:Integer, [4,23]:Integer, [4,24]:Integer, [4,25]:Integer, [4,26]:Integer, [4,27]:Integer, [4,28]:Integer, [4,29]:Integer, [4,30]:Integer, [4,31]:Integer, [4,32]:Integer, [4,33]:Integer, [4,34]:Integer, [4,35]:Integer, [4,36]:Integer, [4,37]:Integer, [4,38]:Integer, [4,39]:Integer, [5]:Pointer, [5,0]:Pointer, [5,0,-1]:Float@double, [5,8]:Integer, [5,9]:Integer, [5,10]:Integer, [5,11]:Integer, [5,12]:Integer, [5,13]:Integer, [5,14]:Integer, [5,15]:Integer, [5,16]:Integer, [5,17]:Integer, [5,18]:Integer, [5,19]:Integer, [5,20]:Integer, [5,21]:Integer, [5,22]:Integer, [5,23]:Integer, [5,24]:Integer, [5,25]:Integer, [5,26]:Integer, [5,27]:Integer, [5,28]:Integer, [5,29]:Integer, [5,30]:Integer, [5,31]:Integer, [5,32]:Integer, [5,33]:Integer, [5,34]:Integer, [5,35]:Integer, [5,36]:Integer, [5,37]:Integer, [5,38]:Integer, [5,39]:Integer, [6]:Pointer, [6,0]:Pointer, [6,0,-1]:Float@double, [6,8]:Integer, [6,9]:Integer, [6,10]:Integer, [6,11]:Integer, [6,12]:Integer, [6,13]:Integer, [6,14]:Integer, [6,15]:Integer, [6,16]:Integer, [6,17]:Integer, [6,18]:Integer, [6,19]:Integer, [6,20]:Integer, [6,21]:Integer, [6,22]:Integer, [6,23]:Integer, [6,24]:Integer, [6,25]:Integer, [6,26]:Integer, [6,27]:Integer, [6,28]:Integer, [6,29]:Integer, [6,30]:Integer, [6,31]:Integer, [6,32]:Integer, [6,33]:Integer, [6,34]:Integer, [6,35]:Integer, [6,36]:Integer, [6,37]:Integer, [6,38]:Integer, [6,39]:Integer, [7]:Pointer, [7,0]:Pointer, [7,0,-1]:Float@double, [7,8]:Integer, [7,9]:Integer, [7,10]:Integer, [7,11]:Integer, [7,12]:Integer, [7,13]:Integer, [7,14]:Integer, [7,15]:Integer, [7,16]:Integer, [7,17]:Integer, [7,18]:Integer, [7,19]:Integer, [7,20]:Integer, [7,21]:Integer, [7,22]:Integer, [7,23]:Integer, [7,24]:Integer, [7,25]:Integer, [7,26]:Integer, [7,27]:Integer, [7,28]:Integer, [7,29]:Integer, [7,30]:Integer, [7,31]:Integer, [7,32]:Integer, [7,33]:Integer, [7,34]:Integer, [7,35]:Integer, [7,36]:Integer, [7,37]:Integer, [7,38]:Integer, [7,39]:Integer, [8]:Pointer, [8,0]:Pointer, [8,0,-1]:Float@double, [8,8]:Integer, [8,9]:Integer, [8,10]:Integer, [8,11]:Integer, [8,12]:Integer, [8,13]:Integer, [8,14]:Integer, [8,15]:Integer, [8,16]:Integer, [8,17]:Integer, [8,18]:Integer, [8,19]:Integer, [8,20]:Integer, [8,21]:Integer, [8,22]:Integer, [8,23]:Integer, [8,24]:Integer, [8,25]:Integer, [8,26]:Integer, [8,27]:Integer, [8,28]:Integer, [8,29]:Integer, [8,30]:Integer, [8,31]:Integer, [8,32]:Integer, [8,33]:Integer, [8,34]:Integer, [8,35]:Integer, [8,36]:Integer, [8,37]:Integer, [8,38]:Integer, [8,39]:Integer, [9]:Pointer, [9,0]:Pointer, [9,0,-1]:Float@double, [9,8]:Integer, [9,9]:Integer, [9,10]:Integer, [9,11]:Integer, [9,12]:Integer, [9,13]:Integer, [9,14]:Integer, [9,15]:Integer, [9,16]:Integer, [9,17]:Integer, [9,18]:Integer, [9,19]:Integer, [9,20]:Integer, [9,21]:Integer, [9,22]:Integer, [9,23]:Integer, [9,24]:Integer, [9,25]:Integer, [9,26]:Integer, [9,27]:Integer, [9,28]:Integer, [9,29]:Integer, [9,30]:Integer, [9,31]:Integer, [9,32]:Integer, [9,33]:Integer, [9,34]:Integer, [9,35]:Integer, [9,36]:Integer, [9,37]:Integer, [9,38]:Integer, [9,39]:Integer, [10]:Pointer, [10,0]:Pointer, [10,0,-1]:Float@double, [10,8]:Integer, [10,9]:Integer, [10,10]:Integer, [10,11]:Integer, [10,12]:Integer, [10,13]:Integer, [10,14]:Integer, [10,15]:Integer, [10,16]:Integer, [10,17]:Integer, [10,18]:Integer, [10,19]:Integer, [10,20]:Integer, [10,21]:Integer, [10,22]:Integer, [10,23]:Integer, [10,24]:Integer, [10,25]:Integer, [10,26]:Integer, [10,27]:Integer, [10,28]:Integer, [10,29]:Integer, [10,30]:Integer, [10,31]:Integer, [10,32]:Integer, [10,33]:Integer, [10,34]:Integer, [10,35]:Integer, [10,36]:Integer, [10,37]:Integer, [10,38]:Integer, [10,39]:Integer, [11]:Pointer, [11,0]:Pointer, [11,0,-1]:Float@double, [11,8]:Integer, [11,9]:Integer, [11,10]:Integer, [11,11]:Integer, [11,12]:Integer, [11,13]:Integer, [11,14]:Integer, [11,15]:Integer, [11,16]:Integer, [11,17]:Integer, [11,18]:Integer, [11,19]:Integer, [11,20]:Integer, [11,21]:Integer, [11,22]:Integer, [11,23]:Integer, [11,24]:Integer, [11,25]:Integer, [11,26]:Integer, [11,27]:Integer, [11,28]:Integer, [11,29]:Integer, [11,30]:Integer, [11,31]:Integer, [11,32]:Integer, [11,33]:Integer, [11,34]:Integer, [11,35]:Integer, [11,36]:Integer, [11,37]:Integer, [11,38]:Integer, [11,39]:Integer, [12]:Pointer, [12,0]:Pointer, [12,0,-1]:Float@double, [12,8]:Integer, [12,9]:Integer, [12,10]:Integer, [12,11]:Integer, [12,12]:Integer, [12,13]:Integer, [12,14]:Integer, [12,15]:Integer, [12,16]:Integer, [12,17]:Integer, [12,18]:Integer, [12,19]:Integer, [12,20]:Integer, [12,21]:Integer, [12,22]:Integer, [12,23]:Integer, [12,24]:Integer, [12,25]:Integer, [12,26]:Integer, [12,27]:Integer, [12,28]:Integer, [12,29]:Integer, [12,30]:Integer, [12,31]:Integer, [12,32]:Integer, [12,33]:Integer, [12,34]:Integer, [12,35]:Integer, [12,36]:Integer, [12,37]:Integer, [12,38]:Integer, [12,39]:Integer, [13]:Pointer, [13,0]:Pointer, [13,0,-1]:Float@double, [13,8]:Integer, [13,9]:Integer, [13,10]:Integer, [13,11]:Integer, [13,12]:Integer, [13,13]:Integer, [13,14]:Integer, [13,15]:Integer, [13,16]:Integer, [13,17]:Integer, [13,18]:Integer, [13,19]:Integer, [13,20]:Integer, [13,21]:Integer, [13,22]:Integer, [13,23]:Integer, [13,24]:Integer, [13,25]:Integer, [13,26]:Integer, [13,27]:Integer, [13,28]:Integer, [13,29]:Integer, [13,30]:Integer, [13,31]:Integer, [13,32]:Integer, [13,33]:Integer, [13,34]:Integer, [13,35]:Integer, [13,36]:Integer, [13,37]:Integer, [13,38]:Integer, [13,39]:Integer, [14]:Pointer, [14,0]:Pointer, [14,0,-1]:Float@double, [14,8]:Integer, [14,9]:Integer, [14,10]:Integer, [14,11]:Integer, [14,12]:Integer, [14,13]:Integer, [14,14]:Integer, [14,15]:Integer, [14,16]:Integer, [14,17]:Integer, [14,18]:Integer, [14,19]:Integer, [14,20]:Integer, [14,21]:Integer, [14,22]:Integer, [14,23]:Integer, [14,24]:Integer, [14,25]:Integer, [14,26]:Integer, [14,27]:Integer, [14,28]:Integer, [14,29]:Integer, [14,30]:Integer, [14,31]:Integer, [14,32]:Integer, [14,33]:Integer, [14,34]:Integer, [14,35]:Integer, [14,36]:Integer, [14,37]:Integer, [14,38]:Integer, [14,39]:Integer, [15]:Pointer, [15,0]:Pointer, [15,0,-1]:Float@double, [15,8]:Integer, [15,9]:Integer, [15,10]:Integer, [15,11]:Integer, [15,12]:Integer, [15,13]:Integer, [15,14]:Integer, [15,15]:Integer, [15,16]:Integer, [15,17]:Integer, [15,18]:Integer, [15,19]:Integer, [15,20]:Integer, [15,21]:Integer, [15,22]:Integer, [15,23]:Integer, [15,24]:Integer, [15,25]:Integer, [15,26]:Integer, [15,27]:Integer, [15,28]:Integer, [15,29]:Integer, [15,30]:Integer, [15,31]:Integer, [15,32]:Integer, [15,33]:Integer, [15,34]:Integer, [15,35]:Integer, [15,36]:Integer, [15,37]:Integer, [15,38]:Integer, [15,39]:Integer, [16]:Pointer, [16,0]:Pointer, [16,0,-1]:Float@double, [16,8]:Integer, [16,9]:Integer, [16,10]:Integer, [16,11]:Integer, [16,12]:Integer, [16,13]:Integer, [16,14]:Integer, [16,15]:Integer, [16,16]:Integer, [16,17]:Integer, [16,18]:Integer, [16,19]:Integer, [16,20]:Integer, [16,21]:Integer, [16,22]:Integer, [16,23]:Integer, [16,24]:Integer, [16,25]:Integer, [16,26]:Integer, [16,27]:Integer, [16,28]:Integer, [16,29]:Integer, [16,30]:Integer, [16,31]:Integer, [16,32]:Integer, [16,33]:Integer, [16,34]:Integer, [16,35]:Integer, [16,36]:Integer, [16,37]:Integer, [16,38]:Integer, [16,39]:Integer, [17]:Pointer, [17,0]:Pointer, [17,0,-1]:Float@double, [17,8]:Integer, [17,9]:Integer, [17,10]:Integer, [17,11]:Integer, [17,12]:Integer, [17,13]:Integer, [17,14]:Integer, [17,15]:Integer, [17,16]:Integer, [17,17]:Integer, [17,18]:Integer, [17,19]:Integer, [17,20]:Integer, [17,21]:Integer, [17,22]:Integer, [17,23]:Integer, [17,24]:Integer, [17,25]:Integer, [17,26]:Integer, [17,27]:Integer, [17,28]:Integer, [17,29]:Integer, [17,30]:Integer, [17,31]:Integer, [17,32]:Integer, [17,33]:Integer, [17,34]:Integer, [17,35]:Integer, [17,36]:Integer, [17,37]:Integer, [17,38]:Integer, [17,39]:Integer, [18]:Pointer, [18,0]:Pointer, [18,0,-1]:Float@double, [18,8]:Integer, [18,9]:Integer, [18,10]:Integer, [18,11]:Integer, [18,12]:Integer, [18,13]:Integer, [18,14]:Integer, [18,15]:Integer, [18,16]:Integer, [18,17]:Integer, [18,18]:Integer, [18,19]:Integer, [18,20]:Integer, [18,21]:Integer, [18,22]:Integer, [18,23]:Integer, [18,24]:Integer, [18,25]:Integer, [18,26]:Integer, [18,27]:Integer, [18,28]:Integer, [18,29]:Integer, [18,30]:Integer, [18,31]:Integer, [18,32]:Integer, [18,33]:Integer, [18,34]:Integer, [18,35]:Integer, [18,36]:Integer, [18,37]:Integer, [18,38]:Integer, [18,39]:Integer, [19]:Pointer, [19,0]:Pointer, [19,0,-1]:Float@double, [19,8]:Integer, [19,9]:Integer, [19,10]:Integer, [19,11]:Integer, [19,12]:Integer, [19,13]:Integer, [19,14]:Integer, [19,15]:Integer, [19,16]:Integer, [19,17]:Integer, [19,18]:Integer, [19,19]:Integer, [19,20]:Integer, [19,21]:Integer, [19,22]:Integer, [19,23]:Integer, [19,24]:Integer, [19,25]:Integer, [19,26]:Integer, [19,27]:Integer, [19,28]:Integer, [19,29]:Integer, [19,30]:Integer, [19,31]:Integer, [19,32]:Integer, [19,33]:Integer, [19,34]:Integer, [19,35]:Integer, [19,36]:Integer, [19,37]:Integer, [19,38]:Integer, [19,39]:Integer, [20]:Pointer, [20,0]:Pointer, [20,0,-1]:Float@double, [20,8]:Integer, [20,9]:Integer, [20,10]:Integer, [20,11]:Integer, [20,12]:Integer, [20,13]:Integer, [20,14]:Integer, [20,15]:Integer, [20,16]:Integer, [20,17]:Integer, [20,18]:Integer, [20,19]:Integer, [20,20]:Integer, [20,21]:Integer, [20,22]:Integer, [20,23]:Integer, [20,24]:Integer, [20,25]:Integer, [20,26]:Integer, [20,27]:Integer, [20,28]:Integer, [20,29]:Integer, [20,30]:Integer, [20,31]:Integer, [20,32]:Integer, [20,33]:Integer, [20,34]:Integer, [20,35]:Integer, [20,36]:Integer, [20,37]:Integer, [20,38]:Integer, [20,39]:Integer, [21]:Pointer, [21,0]:Pointer, [21,0,-1]:Float@double, [21,8]:Integer, [21,9]:Integer, [21,10]:Integer, [21,11]:Integer, [21,12]:Integer, [21,13]:Integer, [21,14]:Integer, [21,15]:Integer, [21,16]:Integer, [21,17]:Integer, [21,18]:Integer, [21,19]:Integer, [21,20]:Integer, [21,21]:Integer, [21,22]:Integer, [21,23]:Integer, [21,24]:Integer, [21,25]:Integer, [21,26]:Integer, [21,27]:Integer, [21,28]:Integer, [21,29]:Integer, [21,30]:Integer, [21,31]:Integer, [21,32]:Integer, [21,33]:Integer, [21,34]:Integer, [21,35]:Integer, [21,36]:Integer, [21,37]:Integer, [21,38]:Integer, [21,39]:Integer, [22]:Pointer, [22,0]:Pointer, [22,0,-1]:Float@double, [22,8]:Integer, [22,9]:Integer, [22,10]:Integer, [22,11]:Integer, [22,12]:Integer, [22,13]:Integer, [22,14]:Integer, [22,15]:Integer, [22,16]:Integer, [22,17]:Integer, [22,18]:Integer, [22,19]:Integer, [22,20]:Integer, [22,21]:Integer, [22,22]:Integer, [22,23]:Integer, [22,24]:Integer, [22,25]:Integer, [22,26]:Integer, [22,27]:Integer, [22,28]:Integer, [22,29]:Integer, [22,30]:Integer, [22,31]:Integer, [22,32]:Integer, [22,33]:Integer, [22,34]:Integer, [22,35]:Integer, [22,36]:Integer, [22,37]:Integer, [22,38]:Integer, [22,39]:Integer, [23]:Pointer, [23,0]:Pointer, [23,0,-1]:Float@double, [23,8]:Integer, [23,9]:Integer, [23,10]:Integer, [23,11]:Integer, [23,12]:Integer, [23,13]:Integer, [23,14]:Integer, [23,15]:Integer, [23,16]:Integer, [23,17]:Integer, [23,18]:Integer, [23,19]:Integer, [23,20]:Integer, [23,21]:Integer, [23,22]:Integer, [23,23]:Integer, [23,24]:Integer, [23,25]:Integer, [23,26]:Integer, [23,27]:Integer, [23,28]:Integer, [23,29]:Integer, [23,30]:Integer, [23,31]:Integer, [23,32]:Integer, [23,33]:Integer, [23,34]:Integer, [23,35]:Integer, [23,36]:Integer, [23,37]:Integer, [23,38]:Integer, [23,39]:Integer}
val: %25 = insertvalue { { {} addrspace(10)*, i64 }, {} addrspace(10)*, {} addrspace(10)* } %24, {} addrspace(10)* %11, 1, !dbg !188 origin= %26 = insertvalue { { {} addrspace(10)*, i64 }, {} addrspace(10)*, {} addrspace(10)* } %25, {} addrspace(10)* %7, 2, !dbg !188
MethodInstance for Base._unsafe_getindex(::IndexLinear, ::Vector{Float64}, ::Vector{Int64})
Caused by:
Stacktrace:
[1] _unsafe_getindex
@ ./multidimensional.jl:904
This now succeeds for me on main, closing
For the record I still get an error on the Hv_theta!()
call. I'm running Julia 1.9.4, and the most recently tagged Enzyme release in case that matters. Maybe I need Julia 1.10?
Here's the top of the error log I'm getting:
julia> Hv_theta!(hv, v, y, X, theta, gs)
ERROR: Enzyme compilation failed due to illegal type analysis.
Current scope:
; Function Attrs: mustprogress willreturn
define private fastcc "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}" { { {} addrspace(10)*, i64, i64 }, {} addrspace(10)*, {} addrspace(10)* } @preprocess_augmented_julia__unsafe_getindex_3634({} addrspace(10)* nocapture noundef nonnull readonly align 16 dereferenceable(40) "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}" "enzymejl_parmtype"="4766898112" "enzymejl_parmtype_ref"="2" %0, {} addrspace(10)* nocapture noundef nonnull readonly align 16 dereferenceable(40) "enzyme_inactive" "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}" "enzymejl_parmtype"="4764759872" "enzymejl_parmtype_ref"="2" %1) unnamed_addr #7 !dbg !1800 {
top:
it continues and ends with this:
val: %70 = insertvalue { { {} addrspace(10)*, i64, i64 }, {} addrspace(10)*, {} addrspace(10)* } %69, {} addrspace(10)* %13, 1, !dbg !162 origin= %71 = insertvalue { { {} addrspace(10)*, i64, i64 }, {} addrspace(10)*, {} addrspace(10)* } %70, {} addrspace(10)* %9, 2, !dbg !162
MethodInstance for Base._unsafe_getindex(::IndexLinear, ::Vector{Float64}, ::Vector{Int64})
Caused by:
Stacktrace:
[1] _unsafe_getindex
@ ./multidimensional.jl:876
Stacktrace:
[1] julia_error(cstr::Cstring, val::Ptr{LLVM.API.LLVMOpaqueValue}, errtype::Enzyme.API.ErrorType, data::Ptr{Nothing}, data2::Ptr{LLVM.API.LLVMOpaqueValue}, B::Ptr{LLVM.API.LLVMOpaqueBuilder})
@ Enzyme.Compiler ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:1993
[2] EnzymeCreateForwardDiff(logic::Enzyme.Logic, todiff::LLVM.Function, retType::Enzyme.API.CDIFFE_TYPE, constant_args::Vector{Enzyme.API.CDIFFE_TYPE}, TA::Enzyme.TypeAnalysis, returnValue::Bool, mode::Enzyme.API.CDerivativeMode, width::Int64, additionalArg::Ptr{Nothing}, typeInfo::Enzyme.FnTypeInfo, uncacheable_args::Vector{Bool})
@ Enzyme.API ~/.julia/packages/Enzyme/qd8AI/src/api.jl:170
[3] enzyme!(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}, mod::LLVM.Module, primalf::LLVM.Function, TT::Type, mode::Enzyme.API.CDerivativeMode, width::Int64, parallel::Bool, actualRetType::Type, wrap::Bool, modifiedBetween::Tuple{Bool, Bool, Bool}, returnPrimal::Bool, expectedTapeType::Type, loweredArgs::Set{Int64}, boxedArgs::Set{Int64})
@ Enzyme.Compiler ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:3722
[4] codegen(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, toplevel::Bool, strip::Bool, validate::Bool, only_entry::Bool, parent_job::Nothing)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:5851
[5] codegen
@ ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:5129 [inlined]
[6] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}, postopt::Bool)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:6658
[7] _thunk
@ ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:6658 [inlined]
[8] cached_compilation
@ ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:6696 [inlined]
[9] (::Enzyme.Compiler.var"#28593#28594"{DataType, DataType, Enzyme.API.CDerivativeMode, Tuple{Bool, Bool, Bool}, Int64, Bool, Bool, UInt64, DataType})(ctx::LLVM.Context)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:6765
[10] JuliaContext(f::Enzyme.Compiler.var"#28593#28594"{DataType, DataType, Enzyme.API.CDerivativeMode, Tuple{Bool, Bool, Bool}, Int64, Bool, Bool, UInt64, DataType}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ GPUCompiler ~/.julia/packages/GPUCompiler/nWT2N/src/driver.jl:52
[11] JuliaContext(f::Function)
@ GPUCompiler ~/.julia/packages/GPUCompiler/nWT2N/src/driver.jl:42
[12] #s2008#28592
@ ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:6716 [inlined]
[13] var"#s2008#28592"(FA::Any, A::Any, TT::Any, Mode::Any, ModifiedBetween::Any, width::Any, ReturnPrimal::Any, ShadowInit::Any, World::Any, ABI::Any, ::Any, #unused#::Type, #unused#::Type, #unused#::Type, tt::Any, #unused#::Type, #unused#::Type, #unused#::Type, #unused#::Type, #unused#::Type, #unused#::Any)
@ Enzyme.Compiler ./none:0
[14] (::Core.GeneratedFunctionStub)(::Any, ::Vararg{Any})
@ Core ./boot.jl:602
[15] autodiff
@ ~/.julia/packages/Enzyme/qd8AI/src/Enzyme.jl:415 [inlined]
[16] autodiff
@ ~/.julia/packages/Enzyme/qd8AI/src/Enzyme.jl:321 [inlined]
[17] Hv_theta!(hv::Vector{Float64}, v::Vector{Float64}, y::Vector{Float64}, X::Matrix{Float64}, theta::Vector{Float64}, gs::Vector{Vector{Int64}})
@ Main ./REPL[4]:7
[18] top-level scope
@ REPL[17]:1
No, we just haven't released Enzyme.jl main yet (where the fix should exist).
Hopefully will shortly but there's something weird going on with yggdrassil package registration today.
On Fri, Jun 28, 2024 at 4:44 PM Thomas R. Covert @.***> wrote:
For the record I still get an error on the Hv_theta!() call. I'm running Julia 1.9.4, and the most recently tagged Enzyme release in case that matters. Maybe I need Julia 1.10?
Here's the top of the error log I'm getting:
julia> Hv_theta!(hv, v, y, X, theta, gs) ERROR: Enzyme compilation failed due to illegal type analysis. Current scope: ; Function Attrs: mustprogress willreturn define private fastcc "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, @., [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}" { { {} addrspace(10), i64, i64 }, {} addrspace(10), {} addrspace(10) } @preprocess_augmented_julia__unsafe_getindex_3634({} addrspace(10) nocapture noundef nonnull readonly align 16 dereferenceable(40) "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, @., [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}" "enzymejl_parmtype"="4766898112" "enzymejl_parmtype_ref"="2" %0, {} addrspace(10)* nocapture noundef nonnull readonly align 16 dereferenceable(40) "enzyme_inactive" "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}" "enzymejl_parmtype"="4764759872" "enzymejl_parmtype_ref"="2" %1) unnamed_addr #7 !dbg !1800 { top:
it continues and ends with this:
val: %70 = insertvalue { { {} addrspace(10), i64, i64 }, {} addrspace(10), {} addrspace(10) } %69, {} addrspace(10) %13, 1, !dbg !162 origin= %71 = insertvalue { { {} addrspace(10), i64, i64 }, {} addrspace(10), {} addrspace(10) } %70, {} addrspace(10) %9, 2, !dbg !162 MethodInstance for Base._unsafe_getindex(::IndexLinear, ::Vector{Float64}, ::Vector{Int64})
Caused by: Stacktrace: [1] _unsafe_getindex @ ./multidimensional.jl:876
Stacktrace: [1] julia_error(cstr::Cstring, val::Ptr{LLVM.API.LLVMOpaqueValue}, errtype::Enzyme.API.ErrorType, data::Ptr{Nothing}, data2::Ptr{LLVM.API.LLVMOpaqueValue}, B::Ptr{LLVM.API.LLVMOpaqueBuilder}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:1993 [2] EnzymeCreateForwardDiff(logic::Enzyme.Logic, todiff::LLVM.Function, retType::Enzyme.API.CDIFFE_TYPE, constant_args::Vector{Enzyme.API.CDIFFE_TYPE}, TA::Enzyme.TypeAnalysis, returnValue::Bool, mode::Enzyme.API.CDerivativeMode, width::Int64, additionalArg::Ptr{Nothing}, typeInfo::Enzyme.FnTypeInfo, uncacheable_args::Vector{Bool}) @ Enzyme.API ~/.julia/packages/Enzyme/qd8AI/src/api.jl:170 [3] enzyme!(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}, mod::LLVM.Module, primalf::LLVM.Function, TT::Type, mode::Enzyme.API.CDerivativeMode, width::Int64, parallel::Bool, actualRetType::Type, wrap::Bool, modifiedBetween::Tuple{Bool, Bool, Bool}, returnPrimal::Bool, expectedTapeType::Type, loweredArgs::Set{Int64}, boxedArgs::Set{Int64}) @ Enzyme.Compiler ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:3722 [4] codegen(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, toplevel::Bool, strip::Bool, validate::Bool, only_entry::Bool, parent_job::Nothing) @ Enzyme.Compiler ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:5851 [5] codegen @ ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:5129 [inlined] [6] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}, postopt::Bool) @ Enzyme.Compiler ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:6658 [7] _thunk @ ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:6658 [inlined] [8] cached_compilation @ ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:6696 [inlined] [9] (::Enzyme.Compiler.var"#28593#28594"{DataType, DataType, Enzyme.API.CDerivativeMode, Tuple{Bool, Bool, Bool}, Int64, Bool, Bool, UInt64, DataType})(ctx::LLVM.Context) @ Enzyme.Compiler ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:6765 [10] JuliaContext(f::Enzyme.Compiler.var"#28593#28594"{DataType, DataType, Enzyme.API.CDerivativeMode, Tuple{Bool, Bool, Bool}, Int64, Bool, Bool, UInt64, DataType}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}) @ GPUCompiler ~/.julia/packages/GPUCompiler/nWT2N/src/driver.jl:52 [11] JuliaContext(f::Function) @ GPUCompiler ~/.julia/packages/GPUCompiler/nWT2N/src/driver.jl:42 [12] #s2008#28592 @ ~/.julia/packages/Enzyme/qd8AI/src/compiler.jl:6716 [inlined] [13] var"#s2008#28592"(FA::Any, A::Any, TT::Any, Mode::Any, ModifiedBetween::Any, width::Any, ReturnPrimal::Any, ShadowInit::Any, World::Any, ABI::Any, ::Any, #unused#::Type, #unused#::Type, #unused#::Type, tt::Any, #unused#::Type, #unused#::Type, #unused#::Type, #unused#::Type, #unused#::Type, #unused#::Any) @ Enzyme.Compiler ./none:0 [14] (::Core.GeneratedFunctionStub)(::Any, ::Vararg{Any}) @ Core ./boot.jl:602 [15] autodiff @ ~/.julia/packages/Enzyme/qd8AI/src/Enzyme.jl:415 [inlined] [16] autodiff @ ~/.julia/packages/Enzyme/qd8AI/src/Enzyme.jl:321 [inlined] [17] Hv_theta!(hv::Vector{Float64}, v::Vector{Float64}, y::Vector{Float64}, X::Matrix{Float64}, theta::Vector{Float64}, gs::Vector{Vector{Int64}}) @ Main ./REPL[4]:7 [18] top-level scope @ REPL[17]:1
— Reply to this email directly, view it on GitHub https://github.com/EnzymeAD/Enzyme.jl/issues/1385#issuecomment-2197102044, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJTUXHAADWZWSSPBG7GMETZJVZE5AVCNFSM6AAAAABGC5XG2WVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCOJXGEYDEMBUGQ . You are receiving this because you modified the open/close state.Message ID: @.***>
even after the package update, this is still crashing for me:
the first 40 or so lines of the error log:
julia> Hv_theta!(hv, v, y, X, theta, gs)
ERROR: Enzyme compilation failed due to illegal type analysis.
Current scope:
; Function Attrs: mustprogress willreturn
define private fastcc "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}" { { {} addrspace(10)*, i64, i64 }, {} addrspace(10)*, {} addrspace(10)* } @preprocess_augmented_julia__unsafe_getindex_3485({} addrspace(10)* nocapture noundef nonnull readonly align 16 dereferenceable(40) "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Float@double, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}" "enzymejl_parmtype"="4767946688" "enzymejl_parmtype_ref"="2" %0, {} addrspace(10)* nocapture noundef nonnull readonly align 16 dereferenceable(40) "enzyme_inactive" "enzyme_type"="{[-1]:Pointer, [-1,0]:Pointer, [-1,0,-1]:Integer, [-1,8]:Integer, [-1,9]:Integer, [-1,10]:Integer, [-1,11]:Integer, [-1,12]:Integer, [-1,13]:Integer, [-1,14]:Integer, [-1,15]:Integer, [-1,16]:Integer, [-1,17]:Integer, [-1,18]:Integer, [-1,19]:Integer, [-1,20]:Integer, [-1,21]:Integer, [-1,22]:Integer, [-1,23]:Integer, [-1,24]:Integer, [-1,25]:Integer, [-1,26]:Integer, [-1,27]:Integer, [-1,28]:Integer, [-1,29]:Integer, [-1,30]:Integer, [-1,31]:Integer, [-1,32]:Integer, [-1,33]:Integer, [-1,34]:Integer, [-1,35]:Integer, [-1,36]:Integer, [-1,37]:Integer, [-1,38]:Integer, [-1,39]:Integer}" "enzymejl_parmtype"="4765808448" "enzymejl_parmtype_ref"="2" %1) unnamed_addr #7 !dbg !1799 {
top:
%2 = call {}*** @julia.get_pgcstack() #35
%3 = alloca [1 x [1 x i64]], align 8
%4 = bitcast {} addrspace(10)* %1 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)*, !dbg !1800
%5 = addrspacecast { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(10)* %4 to { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)*, !dbg !1800
%6 = getelementptr inbounds { i8 addrspace(13)*, i64, i16, i16, i32 }, { i8 addrspace(13)*, i64, i16, i16, i32 } addrspace(11)* %5, i64 0, i32 1, !dbg !1800
%7 = load i64, i64 addrspace(11)* %6, align 8, !dbg !1800, !tbaa !71, !range !
the bottom 40 or so lines:
MethodInstance for Base._unsafe_getindex(::IndexLinear, ::Vector{Float64}, ::Vector{Int64})
Caused by:
Stacktrace:
[1] _unsafe_getindex
@ ./multidimensional.jl:876
Stacktrace:
[1] julia_error(cstr::Cstring, val::Ptr{LLVM.API.LLVMOpaqueValue}, errtype::Enzyme.API.ErrorType, data::Ptr{Nothing}, data2::Ptr{LLVM.API.LLVMOpaqueValue}, B::Ptr{LLVM.API.LLVMOpaqueBuilder})
@ Enzyme.Compiler ~/.julia/packages/Enzyme/baiSZ/src/compiler.jl:1993
[2] EnzymeCreateForwardDiff(logic::Enzyme.Logic, todiff::LLVM.Function, retType::Enzyme.API.CDIFFE_TYPE, constant_args::Vector{Enzyme.API.CDIFFE_TYPE}, TA::Enzyme.TypeAnalysis, returnValue::Bool, mode::Enzyme.API.CDerivativeMode, width::Int64, additionalArg::Ptr{Nothing}, typeInfo::Enzyme.FnTypeInfo, uncacheable_args::Vector{Bool})
@ Enzyme.API ~/.julia/packages/Enzyme/baiSZ/src/api.jl:170
[3] enzyme!(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}, mod::LLVM.Module, primalf::LLVM.Function, TT::Type, mode::Enzyme.API.CDerivativeMode, width::Int64, parallel::Bool, actualRetType::Type, wrap::Bool, modifiedBetween::Tuple{Bool, Bool, Bool}, returnPrimal::Bool, expectedTapeType::Type, loweredArgs::Set{Int64}, boxedArgs::Set{Int64})
@ Enzyme.Compiler ~/.julia/packages/Enzyme/baiSZ/src/compiler.jl:3722
[4] codegen(output::Symbol, job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}; libraries::Bool, deferred_codegen::Bool, optimize::Bool, toplevel::Bool, strip::Bool, validate::Bool, only_entry::Bool, parent_job::Nothing)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/baiSZ/src/compiler.jl:5851
[5] codegen
@ ~/.julia/packages/Enzyme/baiSZ/src/compiler.jl:5129 [inlined]
[6] _thunk(job::GPUCompiler.CompilerJob{Enzyme.Compiler.EnzymeTarget, Enzyme.Compiler.EnzymeCompilerParams}, postopt::Bool)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/baiSZ/src/compiler.jl:6658
[7] _thunk
@ ~/.julia/packages/Enzyme/baiSZ/src/compiler.jl:6658 [inlined]
[8] cached_compilation
@ ~/.julia/packages/Enzyme/baiSZ/src/compiler.jl:6696 [inlined]
[9] (::Enzyme.Compiler.var"#28593#28594"{DataType, DataType, Enzyme.API.CDerivativeMode, Tuple{Bool, Bool, Bool}, Int64, Bool, Bool, UInt64, DataType})(ctx::LLVM.Context)
@ Enzyme.Compiler ~/.julia/packages/Enzyme/baiSZ/src/compiler.jl:6765
[10] JuliaContext(f::Enzyme.Compiler.var"#28593#28594"{DataType, DataType, Enzyme.API.CDerivativeMode, Tuple{Bool, Bool, Bool}, Int64, Bool, Bool, UInt64, DataType}; kwargs::Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}})
@ GPUCompiler ~/.julia/packages/GPUCompiler/05oYT/src/driver.jl:52
[11] JuliaContext(f::Function)
@ GPUCompiler ~/.julia/packages/GPUCompiler/05oYT/src/driver.jl:42
[12] #s2008#28592
@ ~/.julia/packages/Enzyme/baiSZ/src/compiler.jl:6716 [inlined]
[13] var"#s2008#28592"(FA::Any, A::Any, TT::Any, Mode::Any, ModifiedBetween::Any, width::Any, ReturnPrimal::Any, ShadowInit::Any, World::Any, ABI::Any, ::Any, #unused#::Type, #unused#::Type, #unused#::Type, tt::Any, #unused#::Type, #unused#::Type, #unused#::Type, #unused#::Type, #unused#::Type, #unused#::Any)
@ Enzyme.Compiler ./none:0
[14] (::Core.GeneratedFunctionStub)(::Any, ::Vararg{Any})
@ Core ./boot.jl:602
[15] autodiff
@ ~/.julia/packages/Enzyme/baiSZ/src/Enzyme.jl:415 [inlined]
[16] autodiff
@ ~/.julia/packages/Enzyme/baiSZ/src/Enzyme.jl:321 [inlined]
[17] Hv_theta!(hv::Vector{Float64}, v::Vector{Float64}, y::Vector{Float64}, X::Matrix{Float64}, theta::Vector{Float64}, gs::Vector{Vector{Int64}})
@ Main ~/tmp/felogit_enzyme_mwe.jl:33
[18] top-level scope
@ REPL[2]:1
I'm on Julia 1.9.4. here's my package status:
(@v1.9) pkg> status
Status `~/.julia/environments/v1.9/Project.toml`
[79adfba0] AdaptiveRegularization v0.1.0
[69666777] Arrow v2.7.2
[6e4b80f9] BenchmarkTools v1.5.0
[1e616198] COSMO v0.8.9
[324d7699] CategoricalArrays v0.10.8
[61c947e1] Clarabel v0.9.0
[a93c6f00] DataFrames v1.6.1
[1313f7d8] DataFramesMeta v0.15.2
[31c24e10] Distributions v0.25.109
[7da242da] Enzyme v0.12.21
[442a2c76] FastGaussQuadrature v1.0.2
⌅ [6a86dc24] FiniteDiff v2.22.0
[f6369f11] ForwardDiff v0.10.36
[b6b21f68] Ipopt v1.6.3
⌃ [10dff2fc] JSOSolvers v0.11.2
[4076af6c] JuMP v1.22.2
[2ab3a3ac] LogExpFunctions v0.3.28
[f1d291b0] MLUtils v0.4.4
[30dfa513] ManualNLPModels v0.1.6
[b8f27783] MathOptInterface v1.31.0
⌅ [a4795742] NLPModels v0.20.0
[0b1bfda6] OneHotArrays v0.2.5
[0ce4ce61] ParametricOptInterface v0.7.0
[01435c0c] Percival v0.7.2
[14b8a8f1] PkgTemplates v0.7.51
[37e2e3b7] ReverseDiff v1.15.3
[295af30f] Revise v3.5.15
[f2b01f46] Roots v2.1.5
⌅ [47a9eef4] SparseDiffTools v2.18.0
[03a91e81] SplitApplyCombine v1.2.3
[2913bbd2] StatsBase v0.34.3
[3eaba693] StatsModels v0.7.3
[ab02a1b2] TableOperations v1.2.0
[bd369af6] Tables v1.11.1
[e88e6eb3] Zygote v0.6.70
Info Packages marked with ⌃ and ⌅ have new versions available. Those with ⌃ may be upgradable, but those with ⌅ are restricted by compatibility constraints from upgrading. To see why use `status --outdated`
is this the signal I need to just upgrade to 1.10?
Hi Enzyme Team,
I cannot get this MWE, which I've structured as similar to the documentation for F-o-R as possible, to work. Any suggestions for how I might fix it? For reference, this is my attempts to continue the work I started asking about in #1239...
In my definition of
f!()
I've commented out the line I'd actually like to run in favor or something simpler that delivers the same crash. However, that is the line I'd eventually like to run (I'm trying to do get gradients and hessian-vector products of a multinomial logit log-likelihood in which the number of alternatives varies from choice to choice).Thanks in advance for any suggestions you might have.
My post-crash error log looks like this:
Here is my Julia/package environment status: