Closed JohannesNaegele closed 4 months ago
┌ Error: Exception while generating log record in module Main at /Users/johannes/mwe.jl:26
│ exception =
│ Enzyme execution failed.
│ Enzyme compilation failed.
│ Current scope:
│ ; Function Attrs: mustprogress willreturn
│ define "enzyme_inactive" "enzyme_type"="{[-1]:Integer}" i64 @preprocess_julia_foo_2466({} addrspace(10) noundef nonnull align 8 dereferenceable(64) "enzyme_type"="{[-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, [-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]:Pointer, [-1,16,0]:Pointer, [-1,16,0,-1]:Integer, [-1,16,8]:Integer, [-1,16,9]:Integer, [-1,16,10]:Integer, [-1,16,11]:Integer, [-1,16,12]:Integer, [-1,16,13]:Integer, [-1,16,14]:Integer, [-1,16,15]:Integer, [-1,16,16]:Integer, [-1,16,17]:Integer, [-1,16,18]:Integer, [-1,16,19]:Integer, [-1,16,20]:Integer, [-1,16,21]:Integer, [-1,16,22]:Integer, [-1,16,23]:Integer, [-1,16,24]:Integer, [-1,16,25]:Integer, [-1,16,26]:Integer, [-1,16,27]:Integer, [-1,16,28]:Integer, [-1,16,29]:Integer, [-1,16,30]:Integer, [-1,16,31]:Integer, [-1,16,32]:Integer, [-1,16,33]:Integer, [-1,16,34]:Integer, [-1,16,35]:Integer, [-1,16,36]:Integer, [-1,16,37]:Integer, [-1,16,38]:Integer, [-1,16,39]:Integer, [-1,24]:Pointer, [-1,24,0]:Pointer, [-1,24,0,-1]:Integer, [-1,24,8]:Integer, [-1,24,9]:Integer, [-1,24,10]:Integer, [-1,24,11]:Integer, [-1,24,12]:Integer, [-1,24,13]:Integer, [-1,24,14]:Integer, [-1,24,15]:Integer, [-1,24,16]:Integer, [-1,24,17]:Integer, [-1,24,18]:Integer, [-1,24,19]:Integer, [-1,24,20]:Integer, [-1,24,21]:Integer, [-1,24,22]:Integer, [-1,24,23]:Integer, [-1,24,24]:Integer, [-1,24,25]:Integer, [-1,24,26]:Integer, [-1,24,27]:Integer, [-1,24,28]:Integer, [-1,24,29]:Integer, [-1,24,30]:Integer, [-1,24,31]:Integer, [-1,24,32]:Integer, [-1,24,33]:Integer, [-1,24,34]:Integer, [-1,24,35]:Integer, [-1,24,36]:Integer, [-1,24,37]:Integer, [-1,24,38]:Integer, [-1,24,39]:Integer, [-1,32]:Pointer, [-1,32,0]:Pointer, [-1,32,0,-1]:Integer, [-1,32,8]:Integer, [-1,32,9]:Integer, [-1,32,10]:Integer, [-1,32,11]:Integer, [-1,32,12]:Integer, [-1,32,13]:Integer, [-1,32,14]:Integer, [-1,32,15]:Integer, [-1,32,16]:Integer, [-1,32,17]:Integer, [-1,32,18]:Integer, [-1,32,19]:Integer, [-1,32,20]:Integer, [-1,32,21]:Integer, [-1,32,22]:Integer, [-1,32,23]:Integer, [-1,32,24]:Integer, [-1,32,25]:Integer, [-1,32,26]:Integer, [-1,32,27]:Integer, [-1,32,28]:Integer, [-1,32,29]:Integer, [-1,32,30]:Integer, [-1,32,31]:Integer, [-1,32,32]:Integer, [-1,32,33]:Integer, [-1,32,34]:Integer, [-1,32,35]:Integer, [-1,32,36]:Integer, [-1,32,37]:Integer, [-1,32,38]:Integer, [-1,32,39]:Integer, [-1,40]:Pointer, [-1,40,0]:Pointer, [-1,40,0,0]:Pointer, [-1,40,0,0,-1]:Integer, [-1,40,0,8]:Integer, [-1,40,0,9]:Integer, [-1,40,0,10]:Integer, [-1,40,0,11]:Integer, [-1,40,0,12]:Integer, [-1,40,0,13]:Integer, [-1,40,0,14]:Integer, [-1,40,0,15]:Integer, [-1,40,0,16]:Integer, [-1,40,0,17]:Integer, [-1,40,0,18]:Integer, [-1,40,0,19]:Integer, [-1,40,0,20]:Integer, [-1,40,0,21]:Integer, [-1,40,0,22]:Integer, [-1,40,0,23]:Integer, [-1,40,0,24]:Integer, [-1,40,0,25]:Integer, [-1,40,0,26]:Integer, [-1,40,0,27]:Integer, [-1,40,0,28]:Integer, [-1,40,0,29]:Integer, [-1,40,0,30]:Integer, [-1,40,0,31]:Integer, [-1,40,0,32]:Integer, [-1,40,0,33]:Integer, [-1,40,0,34]:Integer, [-1,40,0,35]:Integer, [-1,40,0,36]:Integer, [-1,40,0,37]:Integer, [-1,40,0,38]:Integer, [-1,40,0,39]:Integer, [-1,40,8]:Pointer, [-1,40,8,0]:Pointer, [-1,40,8,0,-1]:Integer, [-1,40,8,8]:Integer, [-1,40,8,9]:Integer, [-1,40,8,10]:Integer, [-1,40,8,11]:Integer, [-1,40,8,12]:Integer, [-1,40,8,13]:Integer, [-1,40,8,14]:Integer, [-1,40,8,15]:Integer, [-1,40,8,16]:Integer, [-1,40,8,17]:Integer, [-1,40,8,18]:Integer, [-1,40,8,19]:Integer, [-1,40,8,20]:Integer, [-1,40,8,21]:Integer, [-1,40,8,22]:Integer, [-1,40,8,23]:Integer, [-1,40,8,24]:Integer, [-1,40,8,25]:Integer, [-1,40,8,26]:Integer, [-1,40,8,27]:Integer, [-1,40,8,28]:Integer, [-1,40,8,29]:Integer, [-1,40,8,30]:Integer, [-1,40,8,31]:Integer, [-1,40,8,32]:Integer, [-1,40,8,33]:Integer, [-1,40,8,34]:Integer, [-1,40,8,35]:Integer, [-1,40,8,36]:Integer, [-1,40,8,37]:Integer, [-1,40,8,38]:Integer, [-1,40,8,39]:Integer, [-1,40,16]:Pointer, [-1,40,16,0]:Pointer, [-1,40,16,0,-1]:Integer, [-1,40,16,8]:Integer, [-1,40,16,9]:Integer, [-1,40,16,10]:Integer, [-1,40,16,11]:Integer, [-1,40,16,12]:Integer, [-1,40,16,13]:Integer, [-1,40,16,14]:Integer, [-1,40,16,15]:Integer, [-1,40,16,16]:Integer, [-1,40,16,17]:Integer, [-1,40,16,18]:Integer, [-1,40,16,19]:Integer, [-1,40,16,20]:Integer, [-1,40,16,21]:Integer, [-1,40,16,22]:Integer, [-1,40,16,23]:Integer, [-1,40,16,24]:Integer, [-1,40,16,25]:Integer, [-1,40,16,26]:Integer, [-1,40,16,27]:Integer, [-1,40,16,28]:Integer, [-1,40,16,29]:Integer, [-1,40,16,30]:Integer, [-1,40,16,31]:Integer, [-1,40,16,32]:Integer, [-1,40,16,33]:Integer, [-1,40,16,34]:Integer, [-1,40,16,35]:Integer, [-1,40,16,36]:Integer, [-1,40,16,37]:Integer, [-1,40,16,38]:Integer, [-1,40,16,39]:Integer, [-1,40,24]:Integer, [-1,40,25]:Integer, [-1,40,26]:Integer, [-1,40,27]:Integer, [-1,40,28]:Integer, [-1,40,29]:Integer, [-1,40,30]:Integer, [-1,40,31]:Integer, [-1,40,32]:Integer, [-1,40,33]:Integer, [-1,40,34]:Integer, [-1,40,35]:Integer, [-1,40,36]:Integer, [-1,40,37]:Integer, [-1,40,38]:Integer, [-1,40,39]:Integer, [-1,40,40]:Integer, [-1,48]:Pointer, [-1,48,0]:Pointer, [-1,48,0,0]:Pointer, [-1,48,0,0,-1]:Integer, [-1,48,0,8]:Integer, [-1,48,0,9]:Integer, [-1,48,0,10]:Integer, [-1,48,0,11]:Integer, [-1,48,0,12]:Integer, [-1,48,0,13]:Integer, [-1,48,0,14]:Integer, [-1,48,0,15]:Integer, [-1,48,0,16]:Integer, [-1,48,0,17]:Integer, [-1,48,0,18]:Integer, [-1,48,0,19]:Integer, [-1,48,0,20]:Integer, [-1,48,0,21]:Integer, [-1,48,0,22]:Integer, [-1,48,0,23]:Integer, [-1,48,0,24]:Integer, [-1,48,0,25]:Integer, [-1,48,0,26]:Integer, [-1,48,0,27]:Integer, [-1,48,0,28]:Integer, [-1,48,0,29]:Integer, [-1,48,0,30]:Integer, [-1,48,0,31]:Integer, [-1,48,0,32]:Integer, [-1,48,0,33]:Integer, [-1,48,0,34]:Integer, [-1,48,0,35]:Integer, [-1,48,0,36]:Integer, [-1,48,0,37]:Integer, [-1,48,0,38]:Integer, [-1,48,0,39]:Integer, [-1,48,8]:Pointer, [-1,48,8,0]:Pointer, [-1,48,8,0,0]:Pointer, [-1,48,8,8]:Integer, [-1,48,8,9]:Integer, [-1,48,8,10]:Integer, [-1,48,8,11]:Integer, [-1,48,8,12]:Integer, [-1,48,8,13]:Integer, [-1,48,8,14]:Integer, [-1,48,8,15]:Integer, [-1,48,8,16]:Integer, [-1,48,8,17]:Integer, [-1,48,8,18]:Integer, [-1,48,8,19]:Integer, [-1,48,8,20]:Integer, [-1,48,8,21]:Integer, [-1,48,8,22]:Integer, [-1,48,8,23]:Integer, [-1,48,8,24]:Integer, [-1,48,8,25]:Integer, [-1,48,8,26]:Integer, [-1,48,8,27]:Integer, [-1,48,8,28]:Integer, [-1,48,8,29]:Integer, [-1,48,8,30]:Integer, [-1,48,8,31]:Integer, [-1,48,8,32]:Integer, [-1,48,8,33]:Integer, [-1,48,8,34]:Integer, [-1,48,8,35]:Integer, [-1,48,8,36]:Integer, [-1,48,8,37]:Integer, [-1,48,8,38]:Integer, [-1,48,8,39]:Integer, [-1,48,16]:Pointer, [-1,48,16,0]:Pointer, [-1,48,16,0,-1]:Integer, [-1,48,16,8]:Integer, [-1,48,16,9]:Integer, [-1,48,16,10]:Integer, [-1,48,16,11]:Integer, [-1,48,16,12]:Integer, [-1,48,16,13]:Integer, [-1,48,16,14]:Integer, [-1,48,16,15]:Integer, [-1,48,16,16]:Integer, [-1,48,16,17]:Integer, [-1,48,16,18]:Integer, [-1,48,16,19]:Integer, [-1,48,16,20]:Integer, [-1,48,16,21]:Integer, [-1,48,16,22]:Integer, [-1,48,16,23]:Integer, [-1,48,16,24]:Integer, [-1,48,16,25]:Integer, [-1,48,16,26]:Integer, [-1,48,16,27]:Integer, [-1,48,16,28]:Integer, [-1,48,16,29]:Integer, [-1,48,16,30]:Integer, [-1,48,16,31]:Integer, [-1,48,16,32]:Integer, [-1,48,16,33]:Integer, [-1,48,16,34]:Integer, [-1,48,16,35]:Integer, [-1,48,16,36]:Integer, [-1,48,16,37]:Integer, [-1,48,16,38]:Integer, [-1,48,16,39]:Integer, [-1,48,24]:Integer, [-1,48,25]:Integer, [-1,48,26]:Integer, [-1,48,27]:Integer, [-1,48,28]:Integer, [-1,48,29]:Integer, [-1,48,30]:Integer, [-1,48,31]:Integer, [-1,48,32]:Integer, [-1,48,33]:Integer, [-1,48,34]:Integer, [-1,48,35]:Integer, [-1,48,36]:Integer, [-1,48,37]:Integer, [-1,48,38]:Integer, [-1,48,39]:Integer, [-1,48,40]:Integer, [-1,56]:Pointer, [-1,56,-1]:Pointer}" "enzymejl_parmtype"="4474993040" "enzymejl_parmtype_ref"="2" %0, {} addrspace(10) noundef nonnull align 8 dereferenceable(64) "enzyme_type"="{[-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, [-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]:Pointer, [-1,16,0]:Pointer, [-1,16,0,-1]:Integer, [-1,16,8]:Integer, [-1,16,9]:Integer, [-1,16,10]:Integer, [-1,16,11]:Integer, [-1,16,12]:Integer, [-1,16,13]:Integer, [-1,16,14]:Integer, [-1,16,15]:Integer, [-1,16,16]:Integer, [-1,16,17]:Integer, [-1,16,18]:Integer, [-1,16,19]:Integer, [-1,16,20]:Integer, [-1,16,21]:Integer, [-1,16,22]:Integer, [-1,16,23]:Integer, [-1,16,24]:Integer, [-1,16,25]:Integer, [-1,16,26]:Integer, [-1,16,27]:Integer, [-1,16,28]:Integer, [-1,16,29]:Integer, [-1,16,30]:Integer, [-1,16,31]:Integer, [-1,16,32]:Integer, [-1,16,33]:Integer, [-1,16,34]:Integer, [-1,16,35]:Integer, [-1,16,36]:Integer, [-1,16,37]:Integer, [-1,16,38]:Integer, [-1,16,39]:Integer, [-1,24]:Pointer, [-1,24,0]:Pointer, [-1,24,0,-1]:Integer, [-1,24,8]:Integer, [-1,24,9]:Integer, [-1,24,10]:Integer, [-1,24,11]:Integer, [-1,24,12]:Integer, [-1,24,13]:Integer, [-1,24,14]:Integer, [-1,24,15]:Integer, [-1,24,16]:Integer, [-1,24,17]:Integer, [-1,24,18]:Integer, [-1,24,19]:Integer, [-1,24,20]:Integer, [-1,24,21]:Integer, [-1,24,22]:Integer, [-1,24,23]:Integer, [-1,24,24]:Integer, [-1,24,25]:Integer, [-1,24,26]:Integer, [-1,24,27]:Integer, [-1,24,28]:Integer, [-1,24,29]:Integer, [-1,24,30]:Integer, [-1,24,31]:Integer, [-1,24,32]:Integer, [-1,24,33]:Integer, [-1,24,34]:Integer, [-1,24,35]:Integer, [-1,24,36]:Integer, [-1,24,37]:Integer, [-1,24,38]:Integer, [-1,24,39]:Integer, [-1,32]:Pointer, [-1,32,0]:Pointer, [-1,32,0,-1]:Integer, [-1,32,8]:Integer, [-1,32,9]:Integer, [-1,32,10]:Integer, [-1,32,11]:Integer, [-1,32,12]:Integer, [-1,32,13]:Integer, [-1,32,14]:Integer, [-1,32,15]:Integer, [-1,32,16]:Integer, [-1,32,17]:Integer, [-1,32,18]:Integer, [-1,32,19]:Integer, [-1,32,20]:Integer, [-1,32,21]:Integer, [-1,32,22]:Integer, [-1,32,23]:Integer, [-1,32,24]:Integer, [-1,32,25]:Integer, [-1,32,26]:Integer, [-1,32,27]:Integer, [-1,32,28]:Integer, [-1,32,29]:Integer, [-1,32,30]:Integer, [-1,32,31]:Integer, [-1,32,32]:Integer, [-1,32,33]:Integer, [-1,32,34]:Integer, [-1,32,35]:Integer, [-1,32,36]:Integer, [-1,32,37]:Integer, [-1,32,38]:Integer, [-1,32,39]:Integer, [-1,40]:Pointer, [-1,40,0]:Pointer, [-1,40,0,0]:Pointer, [-1,40,0,0,-1]:Integer, [-1,40,0,8]:Integer, [-1,40,0,9]:Integer, [-1,40,0,10]:Integer, [-1,40,0,11]:Integer, [-1,40,0,12]:Integer, [-1,40,0,13]:Integer, [-1,40,0,14]:Integer, [-1,40,0,15]:Integer, [-1,40,0,16]:Integer, [-1,40,0,17]:Integer, [-1,40,0,18]:Integer, [-1,40,0,19]:Integer, [-1,40,0,20]:Integer, [-1,40,0,21]:Integer, [-1,40,0,22]:Integer, [-1,40,0,23]:Integer, [-1,40,0,24]:Integer, [-1,40,0,25]:Integer, [-1,40,0,26]:Integer, [-1,40,0,27]:Integer, [-1,40,0,28]:Integer, [-1,40,0,29]:Integer, [-1,40,0,30]:Integer, [-1,40,0,31]:Integer, [-1,40,0,32]:Integer, [-1,40,0,33]:Integer, [-1,40,0,34]:Integer, [-1,40,0,35]:Integer, [-1,40,0,36]:Integer, [-1,40,0,37]:Integer, [-1,40,0,38]:Integer, [-1,40,0,39]:Integer, [-1,40,8]:Pointer, [-1,40,8,0]:Pointer, [-1,40,8,0,-1]:Integer, [-1,40,8,8]:Integer, [-1,40,8,9]:Integer, [-1,40,8,10]:Integer, [-1,40,8,11]:Integer, [-1,40,8,12]:Integer, [-1,40,8,13]:Integer, [-1,40,8,14]:Integer, [-1,40,8,15]:Integer, [-1,40,8,16]:Integer, [-1,40,8,17]:Integer, [-1,40,8,18]:Integer, [-1,40,8,19]:Integer, [-1,40,8,20]:Integer, [-1,40,8,21]:Integer, [-1,40,8,22]:Integer, [-1,40,8,23]:Integer, [-1,40,8,24]:Integer, [-1,40,8,25]:Integer, [-1,40,8,26]:Integer, [-1,40,8,27]:Integer, [-1,40,8,28]:Integer, [-1,40,8,29]:Integer, [-1,40,8,30]:Integer, [-1,40,8,31]:Integer, [-1,40,8,32]:Integer, [-1,40,8,33]:Integer, [-1,40,8,34]:Integer, [-1,40,8,35]:Integer, [-1,40,8,36]:Integer, [-1,40,8,37]:Integer, [-1,40,8,38]:Integer, [-1,40,8,39]:Integer, [-1,40,16]:Pointer, [-1,40,16,0]:Pointer, [-1,40,16,0,-1]:Integer, [-1,40,16,8]:Integer, [-1,40,16,9]:Integer, [-1,40,16,10]:Integer, [-1,40,16,11]:Integer, [-1,40,16,12]:Integer, [-1,40,16,13]:Integer, [-1,40,16,14]:Integer, [-1,40,16,15]:Integer, [-1,40,16,16]:Integer, [-1,40,16,17]:Integer, [-1,40,16,18]:Integer, [-1,40,16,19]:Integer, [-1,40,16,20]:Integer, [-1,40,16,21]:Integer, [-1,40,16,22]:Integer, [-1,40,16,23]:Integer, [-1,40,16,24]:Integer, [-1,40,16,25]:Integer, [-1,40,16,26]:Integer, [-1,40,16,27]:Integer, [-1,40,16,28]:Integer, [-1,40,16,29]:Integer, [-1,40,16,30]:Integer, [-1,40,16,31]:Integer, [-1,40,16,32]:Integer, [-1,40,16,33]:Integer, [-1,40,16,34]:Integer, [-1,40,16,35]:Integer, [-1,40,16,36]:Integer, [-1,40,16,37]:Integer, [-1,40,16,38]:Integer, [-1,40,16,39]:Integer, [-1,40,24]:Integer, [-1,40,25]:Integer, [-1,40,26]:Integer, [-1,40,27]:Integer, [-1,40,28]:Integer, [-1,40,29]:Integer, [-1,40,30]:Integer, [-1,40,31]:Integer, [-1,40,32]:Integer, [-1,40,33]:Integer, [-1,40,34]:Integer, [-1,40,35]:Integer, [-1,40,36]:Integer, [-1,40,37]:Integer, [-1,40,38]:Integer, [-1,40,39]:Integer, [-1,40,40]:Integer, [-1,48]:Pointer, [-1,48,0]:Pointer, [-1,48,0,0]:Pointer, [-1,48,0,0,-1]:Integer, [-1,48,0,8]:Integer, [-1,48,0,9]:Integer, [-1,48,0,10]:Integer, [-1,48,0,11]:Integer, [-1,48,0,12]:Integer, [-1,48,0,13]:Integer, [-1,48,0,14]:Integer, [-1,48,0,15]:Integer, [-1,48,0,16]:Integer, [-1,48,0,17]:Integer, [-1,48,0,18]:Integer, [-1,48,0,19]:Integer, [-1,48,0,20]:Integer, [-1,48,0,21]:Integer, [-1,48,0,22]:Integer, [-1,48,0,23]:Integer, [-1,48,0,24]:Integer, [-1,48,0,25]:Integer, [-1,48,0,26]:Integer, [-1,48,0,27]:Integer, [-1,48,0,28]:Integer, [-1,48,0,29]:Integer, [-1,48,0,30]:Integer, [-1,48,0,31]:Integer, [-1,48,0,32]:Integer, [-1,48,0,33]:Integer, [-1,48,0,34]:Integer, [-1,48,0,35]:Integer, [-1,48,0,36]:Integer, [-1,48,0,37]:Integer, [-1,48,0,38]:Integer, [-1,48,0,39]:Integer, [-1,48,8]:Pointer, [-1,48,8,0]:Pointer, [-1,48,8,0,0]:Pointer, [-1,48,8,8]:Integer, [-1,48,8,9]:Integer, [-1,48,8,10]:Integer, [-1,48,8,11]:Integer, [-1,48,8,12]:Integer, [-1,48,8,13]:Integer, [-1,48,8,14]:Integer, [-1,48,8,15]:Integer, [-1,48,8,16]:Integer, [-1,48,8,17]:Integer, [-1,48,8,18]:Integer, [-1,48,8,19]:Integer, [-1,48,8,20]:Integer, [-1,48,8,21]:Integer, [-1,48,8,22]:Integer, [-1,48,8,23]:Integer, [-1,48,8,24]:Integer, [-1,48,8,25]:Integer, [-1,48,8,26]:Integer, [-1,48,8,27]:Integer, [-1,48,8,28]:Integer, [-1,48,8,29]:Integer, [-1,48,8,30]:Integer, [-1,48,8,31]:Integer, [-1,48,8,32]:Integer, [-1,48,8,33]:Integer, [-1,48,8,34]:Integer, [-1,48,8,35]:Integer, [-1,48,8,36]:Integer, [-1,48,8,37]:Integer, [-1,48,8,38]:Integer, [-1,48,8,39]:Integer, [-1,48,16]:Pointer, [-1,48,16,0]:Pointer, [-1,48,16,0,-1]:Integer, [-1,48,16,8]:Integer, [-1,48,16,9]:Integer, [-1,48,16,10]:Integer, [-1,48,16,11]:Integer, [-1,48,16,12]:Integer, [-1,48,16,13]:Integer, [-1,48,16,14]:Integer, [-1,48,16,15]:Integer, [-1,48,16,16]:Integer, [-1,48,16,17]:Integer, [-1,48,16,18]:Integer, [-1,48,16,19]:Integer, [-1,48,16,20]:Integer, [-1,48,16,21]:Integer, [-1,48,16,22]:Integer, [-1,48,16,23]:Integer, [-1,48,16,24]:Integer, [-1,48,16,25]:Integer, [-1,48,16,26]:Integer, [-1,48,16,27]:Integer, [-1,48,16,28]:Integer, [-1,48,16,29]:Integer, [-1,48,16,30]:Integer, [-1,48,16,31]:Integer, [-1,48,16,32]:Integer, [-1,48,16,33]:Integer, [-1,48,16,34]:Integer, [-1,48,16,35]:Integer, [-1,48,16,36]:Integer, [-1,48,16,37]:Integer, [-1,48,16,38]:Integer, [-1,48,16,39]:Integer, [-1,48,24]:Integer, [-1,48,25]:Integer, [-1,48,26]:Integer, [-1,48,27]:Integer, [-1,48,28]:Integer, [-1,48,29]:Integer, [-1,48,30]:Integer, [-1,48,31]:Integer, [-1,48,32]:Integer, [-1,48,33]:Integer, [-1,48,34]:Integer, [-1,48,35]:Integer, [-1,48,36]:Integer, [-1,48,37]:Integer, [-1,48,38]:Integer, [-1,48,39]:Integer, [-1,48,40]:Integer, [-1,56]:Pointer, [-1,56,-1]:Pointer}" "enzymejl_parmtype"="4474993040" "enzymejl_parmtype_ref"="2" %1) local_unnamed_addr #60 !dbg !1784 {
│ top:
│ %newstruct18 = alloca [2 x [1 x i64]], align 8
│ %2 = alloca { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, align 8
│ %3 = alloca [3 x {} addrspace(10)], align 8
│ %4 = alloca { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, align 8
│ %5 = alloca [3 x {} addrspace(10)], align 8
│ %6 = alloca { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, align 8
│ %newstruct136 = alloca [1 x [2 x i64]], align 8
│ %7 = alloca { {} addrspace(10), [1 x [2 x i64]], i64, i64 }, align 8
│ %newstruct150 = alloca [2 x [1 x i64]], align 8
│ %8 = call {}* @julia.get_pgcstack() #64
│ %current_task1258 = getelementptr inbounds {}*, {} %8, i64 -14
│ %current_task1 = bitcast {} %current_task1258 to {}
│ %ptls_field259 = getelementptr inbounds {}, {} %8, i64 2
│ %9 = bitcast {} %ptls_field259 to i64
│ %ptls_load260261 = load i64, i64** %9, align 8, !tbaa !49
│ %10 = getelementptr inbounds i64, i64 %ptls_load260261, i64 2
│ %safepoint = load i64*, i64 %10, align 8, !tbaa !53
│ fence syncscope("singlethread") seq_cst
│ call void @julia.safepoint(i64 %safepoint) #64, !dbg !1785
│ fence syncscope("singlethread") seq_cst
│ %11 = addrspacecast {} addrspace(10) %0 to {} addrspace(11), !dbg !1786
│ %12 = addrspacecast {} addrspace(10) %0 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11), !dbg !1786
│ %.elt = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %12, i64 0, i32 0, !dbg !1786
│ %.unpack = load i64, i64 addrspace(11) %.elt, align 8, !dbg !1786, !tbaa !88, !alias.scope !69, !noalias !90
│ %.elt262 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %12, i64 0, i32 1, !dbg !1786
│ %.unpack263 = load i64, i64 addrspace(11) %.elt262, align 8, !dbg !1786, !tbaa !88, !alias.scope !69, !noalias !90
│ %.elt264 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %12, i64 0, i32 2, !dbg !1786
│ %.unpack265 = load {} addrspace(10), {} addrspace(10) addrspace(11) %.elt264, align 8, !dbg !1786, !tbaa !88, !alias.scope !69, !noalias !90
│ %.elt266 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %12, i64 0, i32 3, !dbg !1786
│ %.unpack267 = load {} addrspace(10), {} addrspace(10) addrspace(11) %.elt266, align 8, !dbg !1786, !tbaa !88, !alias.scope !69, !noalias !90
│ %.elt268 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %12, i64 0, i32 4, !dbg !1786
│ %.unpack269 = load {} addrspace(10), {} addrspace(10) addrspace(11) %.elt268, align 8, !dbg !1786, !tbaa !88, !alias.scope !69, !noalias !90
│ %13 = call i64 @llvm.smax.i64(i64 %.unpack, i64 noundef 0) #64, !dbg !1792
│ %14 = call i64 @llvm.smax.i64(i64 %.unpack263, i64 noundef 0) #64, !dbg !1792
│ %15 = addrspacecast {} addrspace(10) %1 to {} addrspace(11), !dbg !1786
│ %16 = addrspacecast {} addrspace(10) %1 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11), !dbg !1786
│ %.elt270 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %16, i64 0, i32 0, !dbg !1786
│ %.unpack271 = load i64, i64 addrspace(11) %.elt270, align 8, !dbg !1786, !tbaa !88, !alias.scope !69, !noalias !90
│ %.elt272 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %16, i64 0, i32 1, !dbg !1786
│ %.unpack273 = load i64, i64 addrspace(11) %.elt272, align 8, !dbg !1786, !tbaa !88, !alias.scope !69, !noalias !90
│ %17 = call i64 @llvm.smax.i64(i64 %.unpack271, i64 noundef 0) #64, !dbg !1792
│ %18 = call i64 @llvm.smax.i64(i64 %.unpack273, i64 noundef 0) #64, !dbg !1792
│ %19 = icmp eq i64 %17, %13, !dbg !1798
│ %20 = icmp eq i64 %13, 1, !dbg !1800
│ %value_phi = or i1 %20, %19, !dbg !1800
│ br i1 %value_phi, label %L39, label %L27, !dbg !1801
│
│ L27: ; preds = %top
│ %.not396 = icmp eq i64 %17, 1, !dbg !1800
│ br i1 %.not396, label %L39, label %L35, !dbg !1801
│
│ L35: ; preds = %L27
│ %21 = call noalias nonnull "enzyme_inactive" "enzyme_type"="{[-1]:Pointer, [-1,-1]:Integer}" {} addrspace(10) @ijl_box_int64(i64 signext %13) #65, !dbg !1801
│ %22 = call noalias nonnull "enzyme_inactive" "enzyme_type"="{[-1]:Pointer, [-1,-1]:Integer}" {} addrspace(10) @ijl_box_int64(i64 signext %17) #65, !dbg !1801
│ %23 = call nonnull "enzyme_type"="{[-1]:Pointer}" {} addrspace(10) ({} addrspace(10) ({} addrspace(10), {} addrspace(10), i32, {} addrspace(10)), {} addrspace(10), {} addrspace(10), ...) @julia.call2({} addrspace(10) ({} addrspace(10), {} addrspace(10), i32, {} addrspace(10)) noundef nonnull @ijl_invoke, {} addrspace(10) noundef addrspacecast ({} inttoptr (i64 5201690160 to {}) to {} addrspace(10)), {} addrspace(10) noundef addrspacecast ({} inttoptr (i64 5153875472 to {}) to {} addrspace(10)), {} addrspace(10) addrspacecast ({} inttoptr (i64 5278343696 to {}) to {} addrspace(10)), {} addrspace(10) nonnull %21, {} addrspace(10) addrspacecast ({} inttoptr (i64 5278343664 to {}) to {} addrspace(10)), {} addrspace(10) nonnull %22) #66, !dbg !1801
│ %box179 = call noalias nonnull dereferenceable(8) "enzyme_inactive" "enzyme_type"="{[-1]:Pointer, [-1,-1]:Pointer}" {} addrspace(10)* @julia.gc_alloc_obj({}* nonnull %current_task1, i64 noundef 8, {} addrspace(10) noundef addrspacecast ({} inttoptr (i64 5202092656 to {}) to {} addrspace(10))) #67, !dbg !1801
│ %24 = bitcast {} addrspace(10) %box179 to [1 x {} addrspace(10)] addrspace(10), !dbg !1801
│ %25 = getelementptr [1 x {} addrspace(10)], [1 x {} addrspace(10)] addrspace(10) %24, i64 0, i64 0, !dbg !1801
│ store {} addrspace(10) %23, {} addrspace(10) addrspace(10) %25, align 8, !dbg !1801, !tbaa !65, !alias.scope !69, !noalias !1804
│ %26 = addrspacecast {} addrspace(10) %box179 to {} addrspace(12), !dbg !1801
│ call void @ijl_throw({} addrspace(12) %26) #68, !dbg !1801
│ unreachable, !dbg !1801
│
│ L39: ; preds = %L27, %top
│ %.sroa.0234.0 = phi i64 [ %17, %top ], [ %13, %L27 ]
│ %27 = icmp eq i64 %18, %14, !dbg !1807
│ %28 = icmp eq i64 %14, 1, !dbg !1809
│ %value_phi12 = or i1 %28, %27, !dbg !1809
│ br i1 %value_phi12, label %L64, label %L52, !dbg !1810
│
│ L52: ; preds = %L39
│ %.not395 = icmp eq i64 %18, 1, !dbg !1809
│ br i1 %.not395, label %L64, label %L60, !dbg !1810
│
│ L60: ; preds = %L52
│ %29 = call noalias nonnull "enzyme_inactive" "enzyme_type"="{[-1]:Pointer, [-1,-1]:Integer}" {} addrspace(10) @ijl_box_int64(i64 signext %14) #65, !dbg !1810
│ %30 = call noalias nonnull "enzyme_inactive" "enzyme_type"="{[-1]:Pointer, [-1,-1]:Integer}" {} addrspace(10) @ijl_box_int64(i64 signext %18) #65, !dbg !1810
│ %31 = call nonnull "enzyme_type"="{[-1]:Pointer}" {} addrspace(10) ({} addrspace(10) ({} addrspace(10), {} addrspace(10), i32, {} addrspace(10)), {} addrspace(10), {} addrspace(10), ...) @julia.call2({} addrspace(10) ({} addrspace(10), {} addrspace(10)*, i32, {} addrspace(10)) noundef nonnull @ijl_invoke, {} addrspace(10) noundef addrspacecast ({} inttoptr (i64 5201690160 to {}) to {} addrspace(10)), {} addrspace(10) noundef addrspacecast ({} inttoptr (i64 5153875472 to {}) to {} addrspace(10)), {} addrspace(10) addrspacecast ({} inttoptr (i64 5278343696 to {}) to {} addrspace(10)), {} addrspace(10) nonnull %29, {} addrspace(10) addrspacecast ({} inttoptr (i64 5278343664 to {}) to {} addrspace(10)), {} addrspace(10) nonnull %30) #66, !dbg !1810
│ %box = call noalias nonnull dereferenceable(8) "enzyme_inactive" "enzyme_type"="{[-1]:Pointer, [-1,-1]:Pointer}" {} addrspace(10) @julia.gc_alloc_obj({} nonnull %current_task1, i64 noundef 8, {} addrspace(10) noundef addrspacecast ({} inttoptr (i64 5202092656 to {}) to {} addrspace(10))) #67, !dbg !1810
│ %32 = bitcast {} addrspace(10) %box to [1 x {} addrspace(10)] addrspace(10), !dbg !1810
│ %33 = getelementptr [1 x {} addrspace(10)], [1 x {} addrspace(10)] addrspace(10) %32, i64 0, i64 0, !dbg !1810
│ store {} addrspace(10) %31, {} addrspace(10) addrspace(10) %33, align 8, !dbg !1810, !tbaa !65, !alias.scope !69, !noalias !1804
│ %34 = addrspacecast {} addrspace(10) %box to {} addrspace(12), !dbg !1810
│ call void @ijl_throw({} addrspace(12) %34) #68, !dbg !1810
│ unreachable, !dbg !1810
│
│ L64: ; preds = %L52, %L39
│ %.sroa.0230.0 = phi i64 [ %18, %L39 ], [ %14, %L52 ]
│ %memcpy_refined_dst = getelementptr inbounds [2 x [1 x i64]], [2 x [1 x i64]] %newstruct18, i64 0, i64 0, i64 0, !dbg !1802
│ store i64 %.sroa.0234.0, i64 %memcpy_refined_dst, align 8, !dbg !1802, !tbaa !278, !alias.scope !280, !noalias !1812
│ %memcpy_refined_dst20 = getelementptr inbounds [2 x [1 x i64]], [2 x [1 x i64]] %newstruct18, i64 0, i64 1, i64 0, !dbg !1802
│ store i64 %.sroa.0230.0, i64 %memcpy_refined_dst20, align 8, !dbg !1802, !tbaa !278, !alias.scope !280, !noalias !1812
│ %.fca.0.gep221 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %4, i64 0, i32 0, !dbg !1813
│ store i64 %.unpack, i64 %.fca.0.gep221, align 8, !dbg !1813, !noalias !1817
│ %.fca.1.gep223 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %4, i64 0, i32 1, !dbg !1813
│ store i64 %.unpack263, i64 %.fca.1.gep223, align 8, !dbg !1813, !noalias !1817
│ %.fca.2.gep225 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %4, i64 0, i32 2, !dbg !1813
│ store {} addrspace(10) %.unpack265, {} addrspace(10) %.fca.2.gep225, align 8, !dbg !1813, !noalias !1817
│ %.fca.3.gep227 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %4, i64 0, i32 3, !dbg !1813
│ store {} addrspace(10) %.unpack267, {} addrspace(10) %.fca.3.gep227, align 8, !dbg !1813, !noalias !1817
│ %.fca.4.gep229 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %4, i64 0, i32 4, !dbg !1813
│ store {} addrspace(10) %.unpack269, {} addrspace(10) %.fca.4.gep229, align 8, !dbg !1813, !noalias !1817
│ %35 = addrspacecast { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %4 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11), !dbg !1813
│ call fastcc void @julia__sparsesimilar_2601({ i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } noalias nocapture nofree noundef nonnull writeonly sret({ i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }) align 8 dereferenceable(40) %2, [3 x {} addrspace(10)] noalias nocapture nofree noundef nonnull writeonly align 8 dereferenceable(24) "enzymejl_returnRoots" %3, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) nocapture nofree noundef nonnull readonly align 8 dereferenceable(40) %35) #64, !dbg !1813
│ %36 = addrspacecast {} addrspace(10) %0 to i8 addrspace(11), !dbg !1818
│ %37 = getelementptr inbounds i8, i8 addrspace(11) %36, i64 40, !dbg !1818
│ %.elt280 = bitcast i8 addrspace(11) %37 to {} addrspace(10) addrspace(11), !dbg !1818
│ %.unpack281 = load {} addrspace(10), {} addrspace(10) addrspace(11) %.elt280, align 8, !dbg !1818, !tbaa !88, !alias.scope !69, !noalias !90
│ %.elt282 = getelementptr inbounds i8, i8 addrspace(11) %36, i64 48, !dbg !1818
│ %38 = bitcast i8 addrspace(11) %.elt282 to {} addrspace(10) addrspace(11), !dbg !1818
│ %.unpack283 = load {} addrspace(10), {} addrspace(10) addrspace(11) %38, align 8, !dbg !1818, !tbaa !88, !alias.scope !69, !noalias !90
│ %getfield_addr = getelementptr inbounds i8, i8 addrspace(11) %36, i64 56, !dbg !1818
│ %39 = bitcast i8 addrspace(11) %getfield_addr to {} addrspace(10) addrspace(11), !dbg !1818
│ %getfield25 = load atomic {} addrspace(10), {} addrspace(10) addrspace(11) %39 unordered, align 8, !dbg !1818, !tbaa !88, !alias.scope !69, !noalias !90, !nonnull !48
│ %typeof = call "enzyme_type"="{[-1]:Pointer}" {} addrspace(10) @julia.typeof({} addrspace(10) nonnull %getfield25) #69, !dbg !1814
│ %40 = call i32 @ijl_subtype({} addrspace(10) nonnull %typeof, {} addrspace(10) noundef addrspacecast ({} inttoptr (i64 4522025360 to {}) to {} addrspace(10))) #64, !dbg !1814
│ %.not = icmp eq i32 %40, 0, !dbg !1814
│ br i1 %.not, label %L139, label %L105, !dbg !1814
│
│ L105: ; preds = %L64
│ %41 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %2, i64 0, i32 0, !dbg !1819
│ %42 = addrspacecast {} addrspace(10) %.unpack281 to i8 addrspace(11), !dbg !1822
│ %getfield_addr26 = getelementptr inbounds i8, i8 addrspace(11) %42, i64 8, !dbg !1822
│ %43 = bitcast i8 addrspace(11) %getfield_addr26 to {} addrspace(10) addrspace(11), !dbg !1822
│ %getfield27 = load atomic {} addrspace(10), {} addrspace(10) addrspace(11) %43 unordered, align 8, !dbg !1822, !tbaa !88, !alias.scope !69, !noalias !90, !nonnull !48, !dereferenceable !237, !align !238
│ %44 = addrspacecast {} addrspace(10) %getfield27 to { i8 addrspace(13), i64, i16, i16, i32 } addrspace(11), !dbg !1825
│ %arraylen_ptr = getelementptr inbounds { i8 addrspace(13), i64, i16, i16, i32 }, { i8 addrspace(13), i64, i16, i16, i32 } addrspace(11) %44, i64 0, i32 1, !dbg !1825
│ %arraylen = load i64, i64 addrspace(11) %arraylen_ptr, align 8, !dbg !1825, !tbaa !170, !range !173, !alias.scope !174, !noalias !175
│ %45 = getelementptr inbounds i8, i8 addrspace(11) %42, i64 24, !dbg !1822
│ %46 = bitcast i8 addrspace(11) %45 to i64 addrspace(11), !dbg !1822
│ %47 = load i64, i64 addrspace(11) %46, align 8, !dbg !1822, !tbaa !88, !alias.scope !69, !noalias !90
│ %48 = sub i64 %arraylen, %47, !dbg !1826
│ %unbox = load i64, i64 %41, align 8, !dbg !1827, !tbaa !278, !alias.scope !280, !noalias !281
│ %.not284 = icmp eq i64 %unbox, %48, !dbg !1827
│ br i1 %.not284, label %L122, label %L134, !dbg !1830
│
│ L122: ; preds = %L105
│ %49 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %2, i64 0, i32 1, !dbg !1819
│ %50 = addrspacecast {} addrspace(10) %.unpack283 to i8 addrspace(11), !dbg !1822
│ %getfield_addr28 = getelementptr inbounds i8, i8 addrspace(11) %50, i64 8, !dbg !1822
│ %51 = bitcast i8 addrspace(11) %getfield_addr28 to {} addrspace(10) addrspace(11), !dbg !1822
│ %getfield29 = load atomic {} addrspace(10), {} addrspace(10) addrspace(11) %51 unordered, align 8, !dbg !1822, !tbaa !88, !alias.scope !69, !noalias !90, !nonnull !48, !dereferenceable !237, !align !238
│ %52 = addrspacecast {} addrspace(10) %getfield29 to { i8 addrspace(13), i64, i16, i16, i32 } addrspace(11), !dbg !1825
│ %arraylen_ptr30 = getelementptr inbounds { i8 addrspace(13), i64, i16, i16, i32 }, { i8 addrspace(13), i64, i16, i16, i32 } addrspace(11) %52, i64 0, i32 1, !dbg !1825
│ %arraylen31 = load i64, i64 addrspace(11) %arraylen_ptr30, align 8, !dbg !1825, !tbaa !170, !range !173, !alias.scope !174, !noalias !175
│ %53 = getelementptr inbounds i8, i8 addrspace(11) %50, i64 24, !dbg !1822
│ %54 = bitcast i8 addrspace(11) %53 to i64 addrspace(11), !dbg !1822
│ %55 = load i64, i64 addrspace(11) %54, align 8, !dbg !1822, !tbaa !88, !alias.scope !69, !noalias !90
│ %56 = sub i64 %arraylen31, %55, !dbg !1826
│ %unbox154 = load i64, i64 %49, align 8, !dbg !1831, !tbaa !278, !alias.scope !280, !noalias !281
│ %.not397 = icmp eq i64 %unbox154, %56, !dbg !1831
│ br i1 %.not397, label %L132, label %L134, !dbg !1820
│
│ L132: ; preds = %L122
│ %newstruct34 = call noalias nonnull dereferenceable(64) "enzyme_type"="{[-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, [-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]:Pointer, [-1,16,0]:Pointer, [-1,16,0,-1]:Integer, [-1,16,8]:Integer, [-1,16,9]:Integer, [-1,16,10]:Integer, [-1,16,11]:Integer, [-1,16,12]:Integer, [-1,16,13]:Integer, [-1,16,14]:Integer, [-1,16,15]:Integer, [-1,16,16]:Integer, [-1,16,17]:Integer, [-1,16,18]:Integer, [-1,16,19]:Integer, [-1,16,20]:Integer, [-1,16,21]:Integer, [-1,16,22]:Integer, [-1,16,23]:Integer, [-1,16,24]:Integer, [-1,16,25]:Integer, [-1,16,26]:Integer, [-1,16,27]:Integer, [-1,16,28]:Integer, [-1,16,29]:Integer, [-1,16,30]:Integer, [-1,16,31]:Integer, [-1,16,32]:Integer, [-1,16,33]:Integer, [-1,16,34]:Integer, [-1,16,35]:Integer, [-1,16,36]:Integer, [-1,16,37]:Integer, [-1,16,38]:Integer, [-1,16,39]:Integer, [-1,24]:Pointer, [-1,24,0]:Pointer, [-1,24,0,-1]:Integer, [-1,24,8]:Integer, [-1,24,9]:Integer, [-1,24,10]:Integer, [-1,24,11]:Integer, [-1,24,12]:Integer, [-1,24,13]:Integer, [-1,24,14]:Integer, [-1,24,15]:Integer, [-1,24,16]:Integer, [-1,24,17]:Integer, [-1,24,18]:Integer, [-1,24,19]:Integer, [-1,24,20]:Integer, [-1,24,21]:Integer, [-1,24,22]:Integer, [-1,24,23]:Integer, [-1,24,24]:Integer, [-1,24,25]:Integer, [-1,24,26]:Integer, [-1,24,27]:Integer, [-1,24,28]:Integer, [-1,24,29]:Integer, [-1,24,30]:Integer, [-1,24,31]:Integer, [-1,24,32]:Integer, [-1,24,33]:Integer, [-1,24,34]:Integer, [-1,24,35]:Integer, [-1,24,36]:Integer, [-1,24,37]:Integer, [-1,24,38]:Integer, [-1,24,39]:Integer, [-1,32]:Pointer, [-1,32,0]:Pointer, [-1,32,0,-1]:Integer, [-1,32,8]:Integer, [-1,32,9]:Integer, [-1,32,10]:Integer, [-1,32,11]:Integer, [-1,32,12]:Integer, [-1,32,13]:Integer, [-1,32,14]:Integer, [-1,32,15]:Integer, [-1,32,16]:Integer, [-1,32,17]:Integer, [-1,32,18]:Integer, [-1,32,19]:Integer, [-1,32,20]:Integer, [-1,32,21]:Integer, [-1,32,22]:Integer, [-1,32,23]:Integer, [-1,32,24]:Integer, [-1,32,25]:Integer, [-1,32,26]:Integer, [-1,32,27]:Integer, [-1,32,28]:Integer, [-1,32,29]:Integer, [-1,32,30]:Integer, [-1,32,31]:Integer, [-1,32,32]:Integer, [-1,32,33]:Integer, [-1,32,34]:Integer, [-1,32,35]:Integer, [-1,32,36]:Integer, [-1,32,37]:Integer, [-1,32,38]:Integer, [-1,32,39]:Integer, [-1,40]:Pointer, [-1,40,0]:Pointer, [-1,40,0,0]:Pointer, [-1,40,0,0,-1]:Integer, [-1,40,0,8]:Integer, [-1,40,0,9]:Integer, [-1,40,0,10]:Integer, [-1,40,0,11]:Integer, [-1,40,0,12]:Integer, [-1,40,0,13]:Integer, [-1,40,0,14]:Integer, [-1,40,0,15]:Integer, [-1,40,0,16]:Integer, [-1,40,0,17]:Integer, [-1,40,0,18]:Integer, [-1,40,0,19]:Integer, [-1,40,0,20]:Integer, [-1,40,0,21]:Integer, [-1,40,0,22]:Integer, [-1,40,0,23]:Integer, [-1,40,0,24]:Integer, [-1,40,0,25]:Integer, [-1,40,0,26]:Integer, [-1,40,0,27]:Integer, [-1,40,0,28]:Integer, [-1,40,0,29]:Integer, [-1,40,0,30]:Integer, [-1,40,0,31]:Integer, [-1,40,0,32]:Integer, [-1,40,0,33]:Integer, [-1,40,0,34]:Integer, [-1,40,0,35]:Integer, [-1,40,0,36]:Integer, [-1,40,0,37]:Integer, [-1,40,0,38]:Integer, [-1,40,0,39]:Integer, [-1,40,8]:Pointer, [-1,40,8,0]:Pointer, [-1,40,8,0,-1]:Integer, [-1,40,8,8]:Integer, [-1,40,8,9]:Integer, [-1,40,8,10]:Integer, [-1,40,8,11]:Integer, [-1,40,8,12]:Integer, [-1,40,8,13]:Integer, [-1,40,8,14]:Integer, [-1,40,8,15]:Integer, [-1,40,8,16]:Integer, [-1,40,8,17]:Integer, [-1,40,8,18]:Integer, [-1,40,8,19]:Integer, [-1,40,8,20]:Integer, [-1,40,8,21]:Integer, [-1,40,8,22]:Integer, [-1,40,8,23]:Integer, [-1,40,8,24]:Integer, [-1,40,8,25]:Integer, [-1,40,8,26]:Integer, [-1,40,8,27]:Integer, [-1,40,8,28]:Integer, [-1,40,8,29]:Integer, [-1,40,8,30]:Integer, [-1,40,8,31]:Integer, [-1,40,8,32]:Integer, [-1,40,8,33]:Integer, [-1,40,8,34]:Integer, [-1,40,8,35]:Integer, [-1,40,8,36]:Integer, [-1,40,8,37]:Integer, [-1,40,8,38]:Integer, [-1,40,8,39]:Integer, [-1,40,16]:Pointer, [-1,40,16,0]:Pointer, [-1,40,16,0,-1]:Integer, [-1,40,16,8]:Integer, [-1,40,16,9]:Integer, [-1,40,16,10]:Integer, [-1,40,16,11]:Integer, [-1,40,16,12]:Integer, [-1,40,16,13]:Integer, [-1,40,16,14]:Integer, [-1,40,16,15]:Integer, [-1,40,16,16]:Integer, [-1,40,16,17]:Integer, [-1,40,16,18]:Integer, [-1,40,16,19]:Integer, [-1,40,16,20]:Integer, [-1,40,16,21]:Integer, [-1,40,16,22]:Integer, [-1,40,16,23]:Integer, [-1,40,16,24]:Integer, [-1,40,16,25]:Integer, [-1,40,16,26]:Integer, [-1,40,16,27]:Integer, [-1,40,16,28]:Integer, [-1,40,16,29]:Integer, [-1,40,16,30]:Integer, [-1,40,16,31]:Integer, [-1,40,16,32]:Integer, [-1,40,16,33]:Integer, [-1,40,16,34]:Integer, [-1,40,16,35]:Integer, [-1,40,16,36]:Integer, [-1,40,16,37]:Integer, [-1,40,16,38]:Integer, [-1,40,16,39]:Integer, [-1,40,24]:Integer, [-1,40,25]:Integer, [-1,40,26]:Integer, [-1,40,27]:Integer, [-1,40,28]:Integer, [-1,40,29]:Integer, [-1,40,30]:Integer, [-1,40,31]:Integer, [-1,40,32]:Integer, [-1,40,33]:Integer, [-1,40,34]:Integer, [-1,40,35]:Integer, [-1,40,36]:Integer, [-1,40,37]:Integer, [-1,40,38]:Integer, [-1,40,39]:Integer, [-1,40,40]:Integer, [-1,48]:Pointer, [-1,48,0]:Pointer, [-1,48,0,0]:Pointer, [-1,48,0,0,-1]:Integer, [-1,48,0,8]:Integer, [-1,48,0,9]:Integer, [-1,48,0,10]:Integer, [-1,48,0,11]:Integer, [-1,48,0,12]:Integer, [-1,48,0,13]:Integer, [-1,48,0,14]:Integer, [-1,48,0,15]:Integer, [-1,48,0,16]:Integer, [-1,48,0,17]:Integer, [-1,48,0,18]:Integer, [-1,48,0,19]:Integer, [-1,48,0,20]:Integer, [-1,48,0,21]:Integer, [-1,48,0,22]:Integer, [-1,48,0,23]:Integer, [-1,48,0,24]:Integer, [-1,48,0,25]:Integer, [-1,48,0,26]:Integer, [-1,48,0,27]:Integer, [-1,48,0,28]:Integer, [-1,48,0,29]:Integer, [-1,48,0,30]:Integer, [-1,48,0,31]:Integer, [-1,48,0,32]:Integer, [-1,48,0,33]:Integer, [-1,48,0,34]:Integer, [-1,48,0,35]:Integer, [-1,48,0,36]:Integer, [-1,48,0,37]:Integer, [-1,48,0,38]:Integer, [-1,48,0,39]:Integer, [-1,48,8]:Pointer, [-1,48,8,0]:Pointer, [-1,48,8,0,0]:Pointer, [-1,48,8,8]:Integer, [-1,48,8,9]:Integer, [-1,48,8,10]:Integer, [-1,48,8,11]:Integer, [-1,48,8,12]:Integer, [-1,48,8,13]:Integer, [-1,48,8,14]:Integer, [-1,48,8,15]:Integer, [-1,48,8,16]:Integer, [-1,48,8,17]:Integer, [-1,48,8,18]:Integer, [-1,48,8,19]:Integer, [-1,48,8,20]:Integer, [-1,48,8,21]:Integer, [-1,48,8,22]:Integer, [-1,48,8,23]:Integer, [-1,48,8,24]:Integer, [-1,48,8,25]:Integer, [-1,48,8,26]:Integer, [-1,48,8,27]:Integer, [-1,48,8,28]:Integer, [-1,48,8,29]:Integer, [-1,48,8,30]:Integer, [-1,48,8,31]:Integer, [-1,48,8,32]:Integer, [-1,48,8,33]:Integer, [-1,48,8,34]:Integer, [-1,48,8,35]:Integer, [-1,48,8,36]:Integer, [-1,48,8,37]:Integer, [-1,48,8,38]:Integer, [-1,48,8,39]:Integer, [-1,48,16]:Pointer, [-1,48,16,0]:Pointer, [-1,48,16,0,-1]:Integer, [-1,48,16,8]:Integer, [-1,48,16,9]:Integer, [-1,48,16,10]:Integer, [-1,48,16,11]:Integer, [-1,48,16,12]:Integer, [-1,48,16,13]:Integer, [-1,48,16,14]:Integer, [-1,48,16,15]:Integer, [-1,48,16,16]:Integer, [-1,48,16,17]:Integer, [-1,48,16,18]:Integer, [-1,48,16,19]:Integer, [-1,48,16,20]:Integer, [-1,48,16,21]:Integer, [-1,48,16,22]:Integer, [-1,48,16,23]:Integer, [-1,48,16,24]:Integer, [-1,48,16,25]:Integer, [-1,48,16,26]:Integer, [-1,48,16,27]:Integer, [-1,48,16,28]:Integer, [-1,48,16,29]:Integer, [-1,48,16,30]:Integer, [-1,48,16,31]:Integer, [-1,48,16,32]:Integer, [-1,48,16,33]:Integer, [-1,48,16,34]:Integer, [-1,48,16,35]:Integer, [-1,48,16,36]:Integer, [-1,48,16,37]:Integer, [-1,48,16,38]:Integer, [-1,48,16,39]:Integer, [-1,48,24]:Integer, [-1,48,25]:Integer, [-1,48,26]:Integer, [-1,48,27]:Integer, [-1,48,28]:Integer, [-1,48,29]:Integer, [-1,48,30]:Integer, [-1,48,31]:Integer, [-1,48,32]:Integer, [-1,48,33]:Integer, [-1,48,34]:Integer, [-1,48,35]:Integer, [-1,48,36]:Integer, [-1,48,37]:Integer, [-1,48,38]:Integer, [-1,48,39]:Integer, [-1,48,40]:Integer, [-1,56]:Pointer, [-1,56,-1]:Pointer}" {} addrspace(10) @julia.gc_alloc_obj({}* nonnull %current_task1, i64 noundef 64, {} addrspace(10) noundef addrspacecast ({} inttoptr (i64 4474993040 to {}) to {} addrspace(10))) #67, !dbg !1834
│ %57 = addrspacecast {} addrspace(10) %newstruct34 to {} addrspace(10) addrspace(11), !dbg !1834
│ %58 = getelementptr inbounds {} addrspace(10), {} addrspace(10) addrspace(11) %57, i64 7, !dbg !1834
│ store {} addrspace(10) null, {} addrspace(10) addrspace(11) %58, align 8, !dbg !1834, !tbaa !88, !alias.scope !69, !noalias !1804
│ %unbox35.fca.2.gep = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %2, i64 0, i32 2, !dbg !1834
│ %unbox35.fca.2.load = load {} addrspace(10), {} addrspace(10) %unbox35.fca.2.gep, align 8, !dbg !1834, !tbaa !278, !alias.scope !280, !noalias !281
│ %unbox35.fca.3.gep = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %2, i64 0, i32 3, !dbg !1834
│ %unbox35.fca.3.load = load {} addrspace(10), {} addrspace(10) %unbox35.fca.3.gep, align 8, !dbg !1834, !tbaa !278, !alias.scope !280, !noalias !281
│ %unbox35.fca.4.gep = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %2, i64 0, i32 4, !dbg !1834
│ %unbox35.fca.4.load = load {} addrspace(10), {} addrspace(10) %unbox35.fca.4.gep, align 8, !dbg !1834, !tbaa !278, !alias.scope !280, !noalias !281
│ %59 = addrspacecast {} addrspace(10) %newstruct34 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11), !dbg !1834
│ %.repack = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %59, i64 0, i32 0, !dbg !1834
│ store i64 %48, i64 addrspace(11) %.repack, align 8, !dbg !1834, !tbaa !88, !alias.scope !69, !noalias !1804
│ %.repack285 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %59, i64 0, i32 1, !dbg !1834
│ store i64 %56, i64 addrspace(11) %.repack285, align 8, !dbg !1834, !tbaa !88, !alias.scope !69, !noalias !1804
│ %.repack287 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %59, i64 0, i32 2, !dbg !1834
│ store {} addrspace(10) %unbox35.fca.2.load, {} addrspace(10) addrspace(11) %.repack287, align 8, !dbg !1834, !tbaa !88, !alias.scope !69, !noalias !1804
│ %.repack289 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %59, i64 0, i32 3, !dbg !1834
│ store {} addrspace(10) %unbox35.fca.3.load, {} addrspace(10) addrspace(11) %.repack289, align 8, !dbg !1834, !tbaa !88, !alias.scope !69, !noalias !1804
│ %.repack291 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %59, i64 0, i32 4, !dbg !1834
│ store {} addrspace(10) %unbox35.fca.4.load, {} addrspace(10) addrspace(11) %.repack291, align 8, !dbg !1834, !tbaa !88, !alias.scope !69, !noalias !1804
│ %60 = addrspacecast {} addrspace(10) %newstruct34 to i8 addrspace(11), !dbg !1834
│ %61 = getelementptr inbounds i8, i8 addrspace(11) %60, i64 40, !dbg !1834
│ %.repack293 = bitcast i8 addrspace(11) %61 to {} addrspace(10) addrspace(11), !dbg !1834
│ store {} addrspace(10) %.unpack281, {} addrspace(10) addrspace(11) %.repack293, align 8, !dbg !1834, !tbaa !88, !alias.scope !69, !noalias !1804
│ %.repack295 = getelementptr inbounds i8, i8 addrspace(11) %60, i64 48, !dbg !1834
│ %62 = bitcast i8 addrspace(11) %.repack295 to {} addrspace(10) addrspace(11), !dbg !1834
│ store {} addrspace(10) %.unpack283, {} addrspace(10) addrspace(11) %62, align 8, !dbg !1834, !tbaa !88, !alias.scope !69, !noalias !1804
│ %63 = getelementptr inbounds i8, i8 addrspace(11) %60, i64 56, !dbg !1834
│ %64 = bitcast i8 addrspace(11) %63 to {} addrspace(10) addrspace(11), !dbg !1834
│ store atomic {} addrspace(10) %getfield25, {} addrspace(10) addrspace(11) %64 release, align 8, !dbg !1834, !tbaa !88, !alias.scope !69, !noalias !1804
│ %65 = bitcast {} addrspace(10) %newstruct34 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(10), !dbg !1835
│ br label %L175, !dbg !1835
│
│ L134: ; preds = %L122, %L105
│ call fastcc void @julia_error_2478() #68, !dbg !1820
│ unreachable, !dbg !1820
│
│ L139: ; preds = %L64
│ %66 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %2, i64 0, i32 0, !dbg !1842
│ %67 = addrspacecast {} addrspace(10) %.unpack281 to i8 addrspace(11), !dbg !1844
│ %getfield_addr156 = getelementptr inbounds i8, i8 addrspace(11) %67, i64 8, !dbg !1844
│ %68 = bitcast i8 addrspace(11) %getfield_addr156 to {} addrspace(10) addrspace(11), !dbg !1844
│ %getfield157 = load atomic {} addrspace(10), {} addrspace(10) addrspace(11) %68 unordered, align 8, !dbg !1844, !tbaa !88, !alias.scope !69, !noalias !90, !nonnull !48, !dereferenceable !237, !align !238
│ %69 = addrspacecast {} addrspace(10) %getfield157 to { i8 addrspace(13), i64, i16, i16, i32 } addrspace(11), !dbg !1847
│ %arraylen_ptr158 = getelementptr inbounds { i8 addrspace(13), i64, i16, i16, i32 }, { i8 addrspace(13), i64, i16, i16, i32 } addrspace(11) %69, i64 0, i32 1, !dbg !1847
│ %arraylen159 = load i64, i64 addrspace(11) %arraylen_ptr158, align 8, !dbg !1847, !tbaa !170, !range !173, !alias.scope !174, !noalias !175
│ %70 = getelementptr inbounds i8, i8 addrspace(11) %67, i64 24, !dbg !1844
│ %71 = bitcast i8 addrspace(11) %70 to i64 addrspace(11), !dbg !1844
│ %72 = load i64, i64 addrspace(11) %71, align 8, !dbg !1844, !tbaa !88, !alias.scope !69, !noalias !90
│ %73 = sub i64 %arraylen159, %72, !dbg !1848
│ %unbox164 = load i64, i64 %66, align 8, !dbg !1849, !tbaa !278, !alias.scope !280, !noalias !281
│ %.not381 = icmp eq i64 %unbox164, %73, !dbg !1849
│ br i1 %.not381, label %L155, label %L167, !dbg !1852
│
│ L155: ; preds = %L139
│ %74 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %2, i64 0, i32 1, !dbg !1842
│ %75 = addrspacecast {} addrspace(10) %.unpack283 to i8 addrspace(11), !dbg !1844
│ %getfield_addr160 = getelementptr inbounds i8, i8 addrspace(11) %75, i64 8, !dbg !1844
│ %76 = bitcast i8 addrspace(11) %getfield_addr160 to {} addrspace(10) addrspace(11), !dbg !1844
│ %getfield161 = load atomic {} addrspace(10), {} addrspace(10) addrspace(11) %76 unordered, align 8, !dbg !1844, !tbaa !88, !alias.scope !69, !noalias !90, !nonnull !48, !dereferenceable !237, !align !238
│ %77 = addrspacecast {} addrspace(10) %getfield161 to { i8 addrspace(13), i64, i16, i16, i32 } addrspace(11), !dbg !1847
│ %arraylen_ptr162 = getelementptr inbounds { i8 addrspace(13), i64, i16, i16, i32 }, { i8 addrspace(13), i64, i16, i16, i32 } addrspace(11) %77, i64 0, i32 1, !dbg !1847
│ %arraylen163 = load i64, i64 addrspace(11) %arraylen_ptr162, align 8, !dbg !1847, !tbaa !170, !range !173, !alias.scope !174, !noalias !175
│ %78 = getelementptr inbounds i8, i8 addrspace(11) %75, i64 24, !dbg !1844
│ %79 = bitcast i8 addrspace(11) %78 to i64 addrspace(11), !dbg !1844
│ %80 = load i64, i64 addrspace(11) %79, align 8, !dbg !1844, !tbaa !88, !alias.scope !69, !noalias !90
│ %81 = sub i64 %arraylen163, %80, !dbg !1848
│ %unbox170 = load i64, i64 %74, align 8, !dbg !1853, !tbaa !278, !alias.scope !280, !noalias !281
│ %.not398 = icmp eq i64 %unbox170, %81, !dbg !1853
│ br i1 %.not398, label %L165, label %L167, !dbg !1843
│
│ L165: ; preds = %L155
│ %newstruct167 = call noalias nonnull dereferenceable(64) "enzyme_type"="{[-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, [-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]:Pointer, [-1,16,0]:Pointer, [-1,16,0,-1]:Integer, [-1,16,8]:Integer, [-1,16,9]:Integer, [-1,16,10]:Integer, [-1,16,11]:Integer, [-1,16,12]:Integer, [-1,16,13]:Integer, [-1,16,14]:Integer, [-1,16,15]:Integer, [-1,16,16]:Integer, [-1,16,17]:Integer, [-1,16,18]:Integer, [-1,16,19]:Integer, [-1,16,20]:Integer, [-1,16,21]:Integer, [-1,16,22]:Integer, [-1,16,23]:Integer, [-1,16,24]:Integer, [-1,16,25]:Integer, [-1,16,26]:Integer, [-1,16,27]:Integer, [-1,16,28]:Integer, [-1,16,29]:Integer, [-1,16,30]:Integer, [-1,16,31]:Integer, [-1,16,32]:Integer, [-1,16,33]:Integer, [-1,16,34]:Integer, [-1,16,35]:Integer, [-1,16,36]:Integer, [-1,16,37]:Integer, [-1,16,38]:Integer, [-1,16,39]:Integer, [-1,24]:Pointer, [-1,24,0]:Pointer, [-1,24,0,-1]:Integer, [-1,24,8]:Integer, [-1,24,9]:Integer, [-1,24,10]:Integer, [-1,24,11]:Integer, [-1,24,12]:Integer, [-1,24,13]:Integer, [-1,24,14]:Integer, [-1,24,15]:Integer, [-1,24,16]:Integer, [-1,24,17]:Integer, [-1,24,18]:Integer, [-1,24,19]:Integer, [-1,24,20]:Integer, [-1,24,21]:Integer, [-1,24,22]:Integer, [-1,24,23]:Integer, [-1,24,24]:Integer, [-1,24,25]:Integer, [-1,24,26]:Integer, [-1,24,27]:Integer, [-1,24,28]:Integer, [-1,24,29]:Integer, [-1,24,30]:Integer, [-1,24,31]:Integer, [-1,24,32]:Integer, [-1,24,33]:Integer, [-1,24,34]:Integer, [-1,24,35]:Integer, [-1,24,36]:Integer, [-1,24,37]:Integer, [-1,24,38]:Integer, [-1,24,39]:Integer, [-1,32]:Pointer, [-1,32,0]:Pointer, [-1,32,0,-1]:Integer, [-1,32,8]:Integer, [-1,32,9]:Integer, [-1,32,10]:Integer, [-1,32,11]:Integer, [-1,32,12]:Integer, [-1,32,13]:Integer, [-1,32,14]:Integer, [-1,32,15]:Integer, [-1,32,16]:Integer, [-1,32,17]:Integer, [-1,32,18]:Integer, [-1,32,19]:Integer, [-1,32,20]:Integer, [-1,32,21]:Integer, [-1,32,22]:Integer, [-1,32,23]:Integer, [-1,32,24]:Integer, [-1,32,25]:Integer, [-1,32,26]:Integer, [-1,32,27]:Integer, [-1,32,28]:Integer, [-1,32,29]:Integer, [-1,32,30]:Integer, [-1,32,31]:Integer, [-1,32,32]:Integer, [-1,32,33]:Integer, [-1,32,34]:Integer, [-1,32,35]:Integer, [-1,32,36]:Integer, [-1,32,37]:Integer, [-1,32,38]:Integer, [-1,32,39]:Integer, [-1,40]:Pointer, [-1,40,0]:Pointer, [-1,40,0,0]:Pointer, [-1,40,0,0,-1]:Integer, [-1,40,0,8]:Integer, [-1,40,0,9]:Integer, [-1,40,0,10]:Integer, [-1,40,0,11]:Integer, [-1,40,0,12]:Integer, [-1,40,0,13]:Integer, [-1,40,0,14]:Integer, [-1,40,0,15]:Integer, [-1,40,0,16]:Integer, [-1,40,0,17]:Integer, [-1,40,0,18]:Integer, [-1,40,0,19]:Integer, [-1,40,0,20]:Integer, [-1,40,0,21]:Integer, [-1,40,0,22]:Integer, [-1,40,0,23]:Integer, [-1,40,0,24]:Integer, [-1,40,0,25]:Integer, [-1,40,0,26]:Integer, [-1,40,0,27]:Integer, [-1,40,0,28]:Integer, [-1,40,0,29]:Integer, [-1,40,0,30]:Integer, [-1,40,0,31]:Integer, [-1,40,0,32]:Integer, [-1,40,0,33]:Integer, [-1,40,0,34]:Integer, [-1,40,0,35]:Integer, [-1,40,0,36]:Integer, [-1,40,0,37]:Integer, [-1,40,0,38]:Integer, [-1,40,0,39]:Integer, [-1,40,8]:Pointer, [-1,40,8,0]:Pointer, [-1,40,8,0,-1]:Integer, [-1,40,8,8]:Integer, [-1,40,8,9]:Integer, [-1,40,8,10]:Integer, [-1,40,8,11]:Integer, [-1,40,8,12]:Integer, [-1,40,8,13]:Integer, [-1,40,8,14]:Integer, [-1,40,8,15]:Integer, [-1,40,8,16]:Integer, [-1,40,8,17]:Integer, [-1,40,8,18]:Integer, [-1,40,8,19]:Integer, [-1,40,8,20]:Integer, [-1,40,8,21]:Integer, [-1,40,8,22]:Integer, [-1,40,8,23]:Integer, [-1,40,8,24]:Integer, [-1,40,8,25]:Integer, [-1,40,8,26]:Integer, [-1,40,8,27]:Integer, [-1,40,8,28]:Integer, [-1,40,8,29]:Integer, [-1,40,8,30]:Integer, [-1,40,8,31]:Integer, [-1,40,8,32]:Integer, [-1,40,8,33]:Integer, [-1,40,8,34]:Integer, [-1,40,8,35]:Integer, [-1,40,8,36]:Integer, [-1,40,8,37]:Integer, [-1,40,8,38]:Integer, [-1,40,8,39]:Integer, [-1,40,16]:Pointer, [-1,40,16,0]:Pointer, [-1,40,16,0,-1]:Integer, [-1,40,16,8]:Integer, [-1,40,16,9]:Integer, [-1,40,16,10]:Integer, [-1,40,16,11]:Integer, [-1,40,16,12]:Integer, [-1,40,16,13]:Integer, [-1,40,16,14]:Integer, [-1,40,16,15]:Integer, [-1,40,16,16]:Integer, [-1,40,16,17]:Integer, [-1,40,16,18]:Integer, [-1,40,16,19]:Integer, [-1,40,16,20]:Integer, [-1,40,16,21]:Integer, [-1,40,16,22]:Integer, [-1,40,16,23]:Integer, [-1,40,16,24]:Integer, [-1,40,16,25]:Integer, [-1,40,16,26]:Integer, [-1,40,16,27]:Integer, [-1,40,16,28]:Integer, [-1,40,16,29]:Integer, [-1,40,16,30]:Integer, [-1,40,16,31]:Integer, [-1,40,16,32]:Integer, [-1,40,16,33]:Integer, [-1,40,16,34]:Integer, [-1,40,16,35]:Integer, [-1,40,16,36]:Integer, [-1,40,16,37]:Integer, [-1,40,16,38]:Integer, [-1,40,16,39]:Integer, [-1,40,24]:Integer, [-1,40,25]:Integer, [-1,40,26]:Integer, [-1,40,27]:Integer, [-1,40,28]:Integer, [-1,40,29]:Integer, [-1,40,30]:Integer, [-1,40,31]:Integer, [-1,40,32]:Integer, [-1,40,33]:Integer, [-1,40,34]:Integer, [-1,40,35]:Integer, [-1,40,36]:Integer, [-1,40,37]:Integer, [-1,40,38]:Integer, [-1,40,39]:Integer, [-1,40,40]:Integer, [-1,48]:Pointer, [-1,48,0]:Pointer, [-1,48,0,0]:Pointer, [-1,48,0,0,-1]:Integer, [-1,48,0,8]:Integer, [-1,48,0,9]:Integer, [-1,48,0,10]:Integer, [-1,48,0,11]:Integer, [-1,48,0,12]:Integer, [-1,48,0,13]:Integer, [-1,48,0,14]:Integer, [-1,48,0,15]:Integer, [-1,48,0,16]:Integer, [-1,48,0,17]:Integer, [-1,48,0,18]:Integer, [-1,48,0,19]:Integer, [-1,48,0,20]:Integer, [-1,48,0,21]:Integer, [-1,48,0,22]:Integer, [-1,48,0,23]:Integer, [-1,48,0,24]:Integer, [-1,48,0,25]:Integer, [-1,48,0,26]:Integer, [-1,48,0,27]:Integer, [-1,48,0,28]:Integer, [-1,48,0,29]:Integer, [-1,48,0,30]:Integer, [-1,48,0,31]:Integer, [-1,48,0,32]:Integer, [-1,48,0,33]:Integer, [-1,48,0,34]:Integer, [-1,48,0,35]:Integer, [-1,48,0,36]:Integer, [-1,48,0,37]:Integer, [-1,48,0,38]:Integer, [-1,48,0,39]:Integer, [-1,48,8]:Pointer, [-1,48,8,0]:Pointer, [-1,48,8,0,0]:Pointer, [-1,48,8,8]:Integer, [-1,48,8,9]:Integer, [-1,48,8,10]:Integer, [-1,48,8,11]:Integer, [-1,48,8,12]:Integer, [-1,48,8,13]:Integer, [-1,48,8,14]:Integer, [-1,48,8,15]:Integer, [-1,48,8,16]:Integer, [-1,48,8,17]:Integer, [-1,48,8,18]:Integer, [-1,48,8,19]:Integer, [-1,48,8,20]:Integer, [-1,48,8,21]:Integer, [-1,48,8,22]:Integer, [-1,48,8,23]:Integer, [-1,48,8,24]:Integer, [-1,48,8,25]:Integer, [-1,48,8,26]:Integer, [-1,48,8,27]:Integer, [-1,48,8,28]:Integer, [-1,48,8,29]:Integer, [-1,48,8,30]:Integer, [-1,48,8,31]:Integer, [-1,48,8,32]:Integer, [-1,48,8,33]:Integer, [-1,48,8,34]:Integer, [-1,48,8,35]:Integer, [-1,48,8,36]:Integer, [-1,48,8,37]:Integer, [-1,48,8,38]:Integer, [-1,48,8,39]:Integer, [-1,48,16]:Pointer, [-1,48,16,0]:Pointer, [-1,48,16,0,-1]:Integer, [-1,48,16,8]:Integer, [-1,48,16,9]:Integer, [-1,48,16,10]:Integer, [-1,48,16,11]:Integer, [-1,48,16,12]:Integer, [-1,48,16,13]:Integer, [-1,48,16,14]:Integer, [-1,48,16,15]:Integer, [-1,48,16,16]:Integer, [-1,48,16,17]:Integer, [-1,48,16,18]:Integer, [-1,48,16,19]:Integer, [-1,48,16,20]:Integer, [-1,48,16,21]:Integer, [-1,48,16,22]:Integer, [-1,48,16,23]:Integer, [-1,48,16,24]:Integer, [-1,48,16,25]:Integer, [-1,48,16,26]:Integer, [-1,48,16,27]:Integer, [-1,48,16,28]:Integer, [-1,48,16,29]:Integer, [-1,48,16,30]:Integer, [-1,48,16,31]:Integer, [-1,48,16,32]:Integer, [-1,48,16,33]:Integer, [-1,48,16,34]:Integer, [-1,48,16,35]:Integer, [-1,48,16,36]:Integer, [-1,48,16,37]:Integer, [-1,48,16,38]:Integer, [-1,48,16,39]:Integer, [-1,48,24]:Integer, [-1,48,25]:Integer, [-1,48,26]:Integer, [-1,48,27]:Integer, [-1,48,28]:Integer, [-1,48,29]:Integer, [-1,48,30]:Integer, [-1,48,31]:Integer, [-1,48,32]:Integer, [-1,48,33]:Integer, [-1,48,34]:Integer, [-1,48,35]:Integer, [-1,48,36]:Integer, [-1,48,37]:Integer, [-1,48,38]:Integer, [-1,48,39]:Integer, [-1,48,40]:Integer, [-1,56]:Pointer, [-1,56,-1]:Pointer}" {} addrspace(10) @julia.gc_alloc_obj({} nonnull %current_task1, i64 noundef 64, {} addrspace(10) noundef addrspacecast ({} inttoptr (i64 4474993040 to {}) to {} addrspace(10))) #67, !dbg !1856
│ %82 = addrspacecast {} addrspace(10) %newstruct167 to {} addrspace(10) addrspace(11), !dbg !1856
│ %83 = getelementptr inbounds {} addrspace(10), {} addrspace(10) addrspace(11) %82, i64 7, !dbg !1856
│ store {} addrspace(10) null, {} addrspace(10) addrspace(11) %83, align 8, !dbg !1856, !tbaa !88, !alias.scope !69, !noalias !1804
│ %unbox168.fca.2.gep = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %2, i64 0, i32 2, !dbg !1856
│ %unbox168.fca.2.load = load {} addrspace(10)*, {} addrspace(10) %unbox168.fca.2.gep, align 8, !dbg !1856, !tbaa !278, !alias.scope !280, !noalias !281
│ %unbox168.fca.3.gep = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %2, i64 0, i32 3, !dbg !1856
│ %unbox168.fca.3.load = load {} addrspace(10), {} addrspace(10) %unbox168.fca.3.gep, align 8, !dbg !1856, !tbaa !278, !alias.scope !280, !noalias !281
│ %unbox168.fca.4.gep = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %2, i64 0, i32 4, !dbg !1856
│ %unbox168.fca.4.load = load {} addrspace(10), {} addrspace(10)* %unbox168.fca.4.gep, align 8, !dbg !1856, !tbaa !278, !alias.scope !280, !noalias !281
│ %84 = addrspacecast {} addrspace(10) %newstruct167 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11), !dbg !1856
│ %.repack382 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %84, i64 0, i32 0, !dbg !1856
│ store i64 %73, i64 addrspace(11) %.repack382, align 8, !dbg !1856, !tbaa !88, !alias.scope !69, !noalias !1804
│ %.repack383 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %84, i64 0, i32 1, !dbg !1856
│ store i64 %81, i64 addrspace(11) %.repack383, align 8, !dbg !1856, !tbaa !88, !alias.scope !69, !noalias !1804
│ %.repack385 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %84, i64 0, i32 2, !dbg !1856
│ store {} addrspace(10) %unbox168.fca.2.load, {} addrspace(10) addrspace(11) %.repack385, align 8, !dbg !1856, !tbaa !88, !alias.scope !69, !noalias !1804
│ %.repack387 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %84, i64 0, i32 3, !dbg !1856
│ store {} addrspace(10) %unbox168.fca.3.load, {} addrspace(10) addrspace(11) %.repack387, align 8, !dbg !1856, !tbaa !88, !alias.scope !69, !noalias !1804
│ %.repack389 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %84, i64 0, i32 4, !dbg !1856
│ store {} addrspace(10) %unbox168.fca.4.load, {} addrspace(10) addrspace(11) %.repack389, align 8, !dbg !1856, !tbaa !88, !alias.scope !69, !noalias !1804
│ %85 = addrspacecast {} addrspace(10) %newstruct167 to i8 addrspace(11), !dbg !1856
│ %86 = getelementptr inbounds i8, i8 addrspace(11) %85, i64 40, !dbg !1856
│ %.repack391 = bitcast i8 addrspace(11) %86 to {} addrspace(10) addrspace(11), !dbg !1856
│ store {} addrspace(10) %.unpack281, {} addrspace(10) addrspace(11) %.repack391, align 8, !dbg !1856, !tbaa !88, !alias.scope !69, !noalias !1804
│ %.repack393 = getelementptr inbounds i8, i8 addrspace(11) %85, i64 48, !dbg !1856
│ %87 = bitcast i8 addrspace(11) %.repack393 to {} addrspace(10) addrspace(11), !dbg !1856
│ store {} addrspace(10) %.unpack283, {} addrspace(10) addrspace(11) %87, align 8, !dbg !1856, !tbaa !88, !alias.scope !69, !noalias !1804
│ %88 = getelementptr inbounds i8, i8 addrspace(11) %85, i64 56, !dbg !1856
│ %89 = bitcast i8 addrspace(11) %88 to {} addrspace(10) addrspace(11), !dbg !1856
│ store atomic {} addrspace(10) %getfield25, {} addrspace(10) addrspace(11) %89 release, align 8, !dbg !1856, !tbaa !88, !alias.scope !69, !noalias !1804
│ %90 = bitcast {} addrspace(10) %newstruct167 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(10), !dbg !1835
│ br label %L175, !dbg !1835
│
│ L167: ; preds = %L155, %L139
│ call fastcc void @julia_error_2478() #68, !dbg !1843
│ unreachable, !dbg !1843
│
│ L175: ; preds = %L165, %L132
│ %nodecayed..pre-phi250 = phi { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(10) [ %90, %L165 ], [ %65, %L132 ], !dbg !1857
│ %unbox164.pn = phi i64 [ %73, %L165 ], [ %48, %L132 ]
│ %unbox168.fca.1.load.pn = phi i64 [ %81, %L165 ], [ %56, %L132 ]
│ %value_phi36 = phi {} addrspace(10) [ %newstruct167, %L165 ], [ %newstruct34, %L132 ]
│ %91 = addrspacecast { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(10) %nodecayed..pre-phi250 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11), !dbg !1857
│ %.pre-phi = addrspacecast {} addrspace(10) %value_phi36 to {} addrspace(11), !dbg !1857
│ %92 = call i64 @llvm.smax.i64(i64 %unbox164.pn, i64 noundef 0) #64, !dbg !1862
│ %93 = call i64 @llvm.smax.i64(i64 %unbox168.fca.1.load.pn, i64 noundef 0) #64, !dbg !1862
│ %.not297 = icmp ne i64 %92, %.sroa.0234.0, !dbg !1868
│ %94 = icmp ne i64 %93, %.sroa.0230.0
│ %spec.select = select i1 %.not297, i1 true, i1 %94, !dbg !1872
│ br i1 %spec.select, label %L492, label %L196, !dbg !1860
│
│ L196: ; preds = %L175
│ %.not298 = icmp eq {} addrspace(11) %.pre-phi, %11, !dbg !1873
│ %95 = bitcast {} addrspace(10) %0 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(10), !dbg !1873
│ br i1 %.not298, label %L210, label %L199, !dbg !1873
│
│ L199: ; preds = %L196
│ %96 = call i64 @ijl_object_id({} addrspace(10) nofree nonnull %value_phi36) #64, !dbg !1878
│ %97 = call i64 @ijl_object_id({} addrspace(10) noundef nonnull align 8 dereferenceable(64) %0) #64, !dbg !1878
│ %.not380 = icmp eq i64 %96, %97, !dbg !1883
│ %98 = bitcast {} addrspace(10) %0 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(10), !dbg !1882
│ br i1 %.not380, label %L205, label %L210, !dbg !1882
│
│ L205: ; preds = %L199
│ %99 = call fastcc nonnull {} addrspace(10) @julia_unaliascopy_2482({} addrspace(10) noundef nonnull align 8 dereferenceable(64) %0) #64, !dbg !1882
│ %.pre252 = addrspacecast {} addrspace(10) %99 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11), !dbg !1886
│ %100 = bitcast {} addrspace(10) %99 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(10), !dbg !1891
│ br label %L210, !dbg !1891
│
│ L210: ; preds = %L205, %L199, %L196
│ %nodecayed..pre-phi253 = phi { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(10) [ %100, %L205 ], [ %95, %L196 ], [ %98, %L199 ], !dbg !1886
│ %101 = addrspacecast { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(10) %nodecayed..pre-phi253 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11), !dbg !1886
│ %.elt299 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %101, i64 0, i32 0, !dbg !1886
│ %.unpack300 = load i64, i64 addrspace(11) %.elt299, align 8, !dbg !1886, !tbaa !88, !alias.scope !69, !noalias !90
│ %.elt301 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %101, i64 0, i32 1, !dbg !1886
│ %.unpack302 = load i64, i64 addrspace(11) %.elt301, align 8, !dbg !1886, !tbaa !88, !alias.scope !69, !noalias !90
│ %102 = call i64 @llvm.smax.i64(i64 %.unpack300, i64 noundef 0) #64, !dbg !1894
│ %103 = call i64 @llvm.smax.i64(i64 %.unpack302, i64 noundef 0) #64, !dbg !1894
│ %104 = icmp eq i64 %103, 1, !dbg !1900
│ %105 = icmp eq i64 %102, 1, !dbg !1905
│ %.not309 = icmp eq {} addrspace(11) %.pre-phi, %15, !dbg !1908
│ %106 = bitcast {} addrspace(10) %1 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(10), !dbg !1908
│ br i1 %.not309, label %L239, label %L228, !dbg !1908
│
│ L228: ; preds = %L210
│ %107 = call i64 @ijl_object_id({} addrspace(10) nofree nonnull %value_phi36) #64, !dbg !1911
│ %108 = call i64 @ijl_object_id({} addrspace(10) noundef nonnull align 8 dereferenceable(64) %1) #64, !dbg !1911
│ %.not379 = icmp eq i64 %107, %108, !dbg !1916
│ %109 = bitcast {} addrspace(10) %1 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(10), !dbg !1915
│ br i1 %.not379, label %L234, label %L239, !dbg !1915
│
│ L234: ; preds = %L228
│ %110 = call fastcc nonnull {} addrspace(10) @julia_unaliascopy_2482({} addrspace(10) noundef nonnull align 8 dereferenceable(64) %1) #64, !dbg !1915
│ %.pre256 = addrspacecast {} addrspace(10) %110 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11), !dbg !1919
│ %111 = bitcast {} addrspace(10) %110 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(10), !dbg !1891
│ br label %L239, !dbg !1891
│
│ L239: ; preds = %L234, %L228, %L210
│ %nodecayed..pre-phi257 = phi { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(10) [ %111, %L234 ], [ %106, %L210 ], [ %109, %L228 ], !dbg !1919
│ %112 = addrspacecast { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(10) %nodecayed..pre-phi257 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11), !dbg !1919
│ %.elt310 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %112, i64 0, i32 0, !dbg !1919
│ %.unpack311 = load i64, i64 addrspace(11) %.elt310, align 8, !dbg !1919, !tbaa !88, !alias.scope !69, !noalias !90
│ %.elt312 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %112, i64 0, i32 1, !dbg !1919
│ %.unpack313 = load i64, i64 addrspace(11) %.elt312, align 8, !dbg !1919, !tbaa !88, !alias.scope !69, !noalias !90
│ %113 = call i64 @llvm.smax.i64(i64 %.unpack311, i64 noundef 0) #64, !dbg !1924
│ %114 = call i64 @llvm.smax.i64(i64 %.unpack313, i64 noundef 0) #64, !dbg !1924
│ %115 = icmp eq i64 %114, 1, !dbg !1930
│ %116 = icmp eq i64 %113, 1, !dbg !1935
│ %117 = icmp eq i64 %.sroa.0230.0, 0, !dbg !1938
│ br i1 %117, label %L507, label %L271.preheader, !dbg !1942
│
│ L271.preheader: ; preds = %L239
│ %118 = icmp eq i64 %.sroa.0234.0, 0
│ %.elt325 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %101, i64 0, i32 2
│ %.elt327 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %101, i64 0, i32 3
│ %.elt329 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %101, i64 0, i32 4
│ %.elt337 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %112, i64 0, i32 2
│ %.elt339 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %112, i64 0, i32 3
│ %.elt341 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %112, i64 0, i32 4
│ %.elt345 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %91, i64 0, i32 0
│ %.elt347 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %91, i64 0, i32 1
│ %.elt349 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %91, i64 0, i32 2
│ %.elt351 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %91, i64 0, i32 3
│ %.elt353 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %91, i64 0, i32 4
│ %.fca.0.gep215 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %6, i64 0, i32 0
│ %.fca.1.gep = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %6, i64 0, i32 1
│ %.fca.2.gep217 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %6, i64 0, i32 2
│ %.fca.3.gep219 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %6, i64 0, i32 3
│ %.fca.4.gep = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %6, i64 0, i32 4
│ %119 = addrspacecast { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } %6 to { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11)
│ br label %L271, !dbg !1943
│
│ L271: ; preds = %L470, %L271.preheader
│ %iv = phi i64 [ %iv.next, %L470 ], [ 0, %L271.preheader ]
│ %iv.next = add nuw nsw i64 %iv, 1, !dbg !1943
│ br i1 %118, label %L470, label %L280.lr.ph, !dbg !1943
│
│ L280.lr.ph: ; preds = %L271
│ %120 = select i1 %104, i64 1, i64 %iv.next
│ %121 = add nsw i64 %120, -1
│ %122 = select i1 %115, i64 1, i64 %iv.next
│ %123 = add nsw i64 %122, -1
│ br label %L280, !dbg !1944
│
│ L280: ; preds = %L462, %L280.lr.ph
│ %iv1 = phi i64 [ %iv.next2, %L462 ], [ 0, %L280.lr.ph ]
│ %iv.next2 = add nuw nsw i64 %iv1, 1, !dbg !1945
│ %124 = select i1 %105, i64 1, i64 %iv.next2, !dbg !1948
│ %.unpack326 = load {} addrspace(10), {} addrspace(10) addrspace(11) %.elt325, align 8, !dbg !1957, !tbaa !88, !alias.scope !69, !noalias !90
│ %.unpack328 = load {} addrspace(10), {} addrspace(10) addrspace(11) %.elt327, align 8, !dbg !1957, !tbaa !88, !alias.scope !69, !noalias !90
│ %.unpack330 = load {} addrspace(10), {} addrspace(10) addrspace(11) %.elt329, align 8, !dbg !1957, !tbaa !88, !alias.scope !69, !noalias !90
│ %125 = addrspacecast {} addrspace(10) %.unpack326 to i64 addrspace(13) addrspace(11), !dbg !1959
│ %arrayptr331 = load i64 addrspace(13), i64 addrspace(13) addrspace(11) %125, align 8, !dbg !1959, !tbaa !184, !alias.scope !1963, !noalias !175, !nonnull !48
│ %126 = getelementptr inbounds i64, i64 addrspace(13) %arrayptr331, i64 %121, !dbg !1959
│ %arrayref = load i64, i64 addrspace(13) %126, align 8, !dbg !1959, !tbaa !187, !alias.scope !69, !noalias !90
│ %127 = getelementptr inbounds i64, i64 addrspace(13) %arrayptr331, i64 %120, !dbg !1964
│ %arrayref68 = load i64, i64 addrspace(13) %127, align 8, !dbg !1964, !tbaa !187, !alias.scope !69, !noalias !90
│ %128 = add i64 %arrayref68, -1, !dbg !1966
│ %.not332 = icmp slt i64 %128, %arrayref, !dbg !1967
│ br i1 %.not332, label %L385, label %L345, !dbg !1969
│
│ L345: ; preds = %L280
│ %129 = sub i64 %arrayref68, %arrayref, !dbg !1970
│ %130 = icmp eq i64 %129, 0, !dbg !1973
│ br i1 %130, label %L367, label %L353.lr.ph, !dbg !1975
│
│ L353.lr.ph: ; preds = %L345
│ %131 = addrspacecast {} addrspace(10) %.unpack328 to i64 addrspace(13) addrspace(11)
│ %arrayptr98360 = load i64 addrspace(13), i64 addrspace(13) addrspace(11) %131, align 8, !tbaa !184, !alias.scope !1963, !noalias !175, !nonnull !48
│ br label %L353, !dbg !1975
│
│ L353: ; preds = %L353, %L353.lr.ph
│ %iv3 = phi i64 [ %iv.next4, %L353 ], [ 0, %L353.lr.ph ]
│ %value_phi96401 = phi i64 [ %arrayref, %L353.lr.ph ], [ %value_phi101, %L353 ]
│ %value_phi95400 = phi i64 [ %129, %L353.lr.ph ], [ %value_phi100, %L353 ]
│ %iv.next4 = add nuw nsw i64 %iv3, 1, !dbg !1976
│ %132 = lshr i64 %value_phi95400, 1, !dbg !1976
│ %133 = add i64 %132, %value_phi96401, !dbg !1978
│ %134 = add i64 %133, -1, !dbg !1980
│ %135 = getelementptr inbounds i64, i64 addrspace(13) %arrayptr98360, i64 %134, !dbg !1980
│ %arrayref99 = load i64, i64 addrspace(13) %135, align 8, !dbg !1980, !tbaa !187, !alias.scope !69, !noalias !90
│ %.not361 = icmp slt i64 %arrayref99, %124, !dbg !1982
│ %136 = add i64 %133, 1, !dbg !1981
│ %.neg362 = xor i64 %132, -1, !dbg !1981
│ %137 = add i64 %value_phi95400, %.neg362, !dbg !1981
│ %value_phi100 = select i1 %.not361, i64 %137, i64 %132, !dbg !1981
│ %value_phi101 = select i1 %.not361, i64 %136, i64 %value_phi96401, !dbg !1981
│ %138 = icmp eq i64 %value_phi100, 0, !dbg !1973
│ br i1 %138, label %L367.loopexit, label %L353, !dbg !1975
│
│ L367.loopexit: ; preds = %L353
│ br label %L367, !dbg !1985
│
│ L367: ; preds = %L367.loopexit, %L345
│ %value_phi96.lcssa = phi i64 [ %arrayref, %L345 ], [ %value_phi101, %L367.loopexit ]
│ %.not363 = icmp slt i64 %128, %value_phi96.lcssa, !dbg !1985
│ br i1 %.not363, label %L385, label %L370, !dbg !1987
│
│ L370: ; preds = %L367
│ %139 = add i64 %value_phi96.lcssa, -1, !dbg !1988
│ %140 = addrspacecast {} addrspace(10) %.unpack328 to i64 addrspace(13) addrspace(11), !dbg !1988
│ %arrayptr103364 = load i64 addrspace(13), i64 addrspace(13) addrspace(11) %140, align 8, !dbg !1988, !tbaa !184, !alias.scope !1963, !noalias !175, !nonnull !48
│ %141 = getelementptr inbounds i64, i64 addrspace(13) %arrayptr103364, i64 %139, !dbg !1988
│ %arrayref104 = load i64, i64 addrspace(13) %141, align 8, !dbg !1988, !tbaa !187, !alias.scope !69, !noalias !90
│ %142 = icmp eq i64 %arrayref104, %124, !dbg !1989
│ br i1 %142, label %L376, label %L385, !dbg !1987
│
│ L376: ; preds = %L370
│ %143 = addrspacecast {} addrspace(10) %.unpack330 to i64 addrspace(13) addrspace(11), !dbg !1988
│ %arrayptr106365 = load i64 addrspace(13), i64 addrspace(13) addrspace(11) %143, align 8, !dbg !1988, !tbaa !184, !alias.scope !1963, !noalias !175, !nonnull !48
│ %144 = getelementptr inbounds i64, i64 addrspace(13) %arrayptr106365, i64 %139, !dbg !1988
│ %arrayref107 = load i64, i64 addrspace(13) %144, align 8, !dbg !1988, !tbaa !187, !alias.scope !69, !noalias !90
│ br label %L385, !dbg !1835
│
│ L385: ; preds = %L376, %L370, %L367, %L280
│ %value_phi69 = phi i64 [ %arrayref107, %L376 ], [ 0, %L280 ], [ 0, %L370 ], [ 0, %L367 ]
│ %145 = select i1 %116, i64 1, i64 %iv.next2, !dbg !1991
│ %.unpack338 = load {} addrspace(10), {} addrspace(10) addrspace(11) %.elt337, align 8, !dbg !1996, !tbaa !88, !alias.scope !69, !noalias !90
│ %.unpack340 = load {} addrspace(10), {} addrspace(10) addrspace(11) %.elt339, align 8, !dbg !1996, !tbaa !88, !alias.scope !69, !noalias !90
│ %.unpack342 = load {} addrspace(10), {} addrspace(10) addrspace(11) %.elt341, align 8, !dbg !1996, !tbaa !88, !alias.scope !69, !noalias !90
│ %146 = addrspacecast {} addrspace(10) %.unpack338 to i64 addrspace(13) addrspace(11), !dbg !1998
│ %arrayptr76343 = load i64 addrspace(13), i64 addrspace(13) addrspace(11) %146, align 8, !dbg !1998, !tbaa !184, !alias.scope !1963, !noalias !175, !nonnull !48
│ %147 = getelementptr inbounds i64, i64 addrspace(13) %arrayptr76343, i64 %123, !dbg !1998
│ %arrayref77 = load i64, i64 addrspace(13) %147, align 8, !dbg !1998, !tbaa !187, !alias.scope !69, !noalias !90
│ %148 = getelementptr inbounds i64, i64 addrspace(13) %arrayptr76343, i64 %122, !dbg !2002
│ %arrayref80 = load i64, i64 addrspace(13) %148, align 8, !dbg !2002, !tbaa !187, !alias.scope !69, !noalias !90
│ %149 = add i64 %arrayref80, -1, !dbg !2004
│ %.not344 = icmp slt i64 %149, %arrayref77, !dbg !2005
│ br i1 %.not344, label %L462, label %L420, !dbg !2007
│
│ L420: ; preds = %L385
│ %150 = sub i64 %arrayref80, %arrayref77, !dbg !2008
│ %151 = icmp eq i64 %150, 0, !dbg !2011
│ br i1 %151, label %L442, label %L428.lr.ph, !dbg !2013
│
│ L428.lr.ph: ; preds = %L420
│ %152 = addrspacecast {} addrspace(10) %.unpack340 to i64 addrspace(13) addrspace(11)
│ %arrayptr85355 = load i64 addrspace(13), i64 addrspace(13) addrspace(11) %152, align 8, !tbaa !184, !alias.scope !1963, !noalias !175, !nonnull !48
│ br label %L428, !dbg !2013
│
│ L428: ; preds = %L428, %L428.lr.ph
│ %iv5 = phi i64 [ %iv.next6, %L428 ], [ 0, %L428.lr.ph ]
│ %value_phi83403 = phi i64 [ %arrayref77, %L428.lr.ph ], [ %value_phi88, %L428 ]
│ %value_phi82402 = phi i64 [ %150, %L428.lr.ph ], [ %value_phi87, %L428 ]
│ %iv.next6 = add nuw nsw i64 %iv5, 1, !dbg !2014
│ %153 = lshr i64 %value_phi82402, 1, !dbg !2014
│ %154 = add i64 %153, %value_phi83403, !dbg !2016
│ %155 = add i64 %154, -1, !dbg !2018
│ %156 = getelementptr inbounds i64, i64 addrspace(13) %arrayptr85355, i64 %155, !dbg !2018
│ %arrayref86 = load i64, i64 addrspace(13) %156, align 8, !dbg !2018, !tbaa !187, !alias.scope !69, !noalias !90
│ %.not356 = icmp slt i64 %arrayref86, %145, !dbg !2020
│ %157 = add i64 %154, 1, !dbg !2019
│ %.neg = xor i64 %153, -1, !dbg !2019
│ %158 = add i64 %value_phi82402, %.neg, !dbg !2019
│ %value_phi87 = select i1 %.not356, i64 %158, i64 %153, !dbg !2019
│ %value_phi88 = select i1 %.not356, i64 %157, i64 %value_phi83403, !dbg !2019
│ %159 = icmp eq i64 %value_phi87, 0, !dbg !2011
│ br i1 %159, label %L442.loopexit, label %L428, !dbg !2013
│
│ L442.loopexit: ; preds = %L428
│ br label %L442, !dbg !2023
│
│ L442: ; preds = %L442.loopexit, %L420
│ %value_phi83.lcssa = phi i64 [ %arrayref77, %L420 ], [ %value_phi88, %L442.loopexit ]
│ %.not357 = icmp slt i64 %149, %value_phi83.lcssa, !dbg !2023
│ br i1 %.not357, label %L462, label %L445, !dbg !2025
│
│ L445: ; preds = %L442
│ %160 = add i64 %value_phi83.lcssa, -1, !dbg !2026
│ %161 = addrspacecast {} addrspace(10) %.unpack340 to i64 addrspace(13) addrspace(11), !dbg !2026
│ %arrayptr90358 = load i64 addrspace(13), i64 addrspace(13) addrspace(11) %161, align 8, !dbg !2026, !tbaa !184, !alias.scope !1963, !noalias !175, !nonnull !48
│ %162 = getelementptr inbounds i64, i64 addrspace(13) %arrayptr90358, i64 %160, !dbg !2026
│ %arrayref91 = load i64, i64 addrspace(13) %162, align 8, !dbg !2026, !tbaa !187, !alias.scope !69, !noalias !90
│ %163 = icmp eq i64 %arrayref91, %145, !dbg !2027
│ br i1 %163, label %L451, label %L462, !dbg !2025
│
│ L451: ; preds = %L445
│ %164 = addrspacecast {} addrspace(10) %.unpack342 to i64 addrspace(13) addrspace(11), !dbg !2026
│ %arrayptr93359 = load i64 addrspace(13), i64 addrspace(13) addrspace(11) %164, align 8, !dbg !2026, !tbaa !184, !alias.scope !1963, !noalias !175, !nonnull !48
│ %165 = getelementptr inbounds i64, i64 addrspace(13) %arrayptr93359, i64 %160, !dbg !2026
│ %arrayref94 = load i64, i64 addrspace(13) %165, align 8, !dbg !2026, !tbaa !187, !alias.scope !69, !noalias !90
│ br label %L462, !dbg !1835
│
│ L462: ; preds = %L451, %L445, %L442, %L385
│ %value_phi81 = phi i64 [ %arrayref94, %L451 ], [ 0, %L385 ], [ 0, %L445 ], [ 0, %L442 ]
│ %166 = mul i64 %value_phi81, %value_phi69, !dbg !2029
│ %.unpack346 = load i64, i64 addrspace(11) %.elt345, align 8, !dbg !2032, !tbaa !88, !alias.scope !69, !noalias !90
│ %.unpack348 = load i64, i64 addrspace(11) %.elt347, align 8, !dbg !2032, !tbaa !88, !alias.scope !69, !noalias !90
│ %.unpack350 = load {} addrspace(10), {} addrspace(10) addrspace(11) %.elt349, align 8, !dbg !2032, !tbaa !88, !alias.scope !69, !noalias !90
│ %.unpack352 = load {} addrspace(10), {} addrspace(10) addrspace(11) %.elt351, align 8, !dbg !2032, !tbaa !88, !alias.scope !69, !noalias !90
│ %.unpack354 = load {} addrspace(10), {} addrspace(10) addrspace(11) %.elt353, align 8, !dbg !2032, !tbaa !88, !alias.scope !69, !noalias !90
│ store i64 %.unpack346, i64 %.fca.0.gep215, align 8, !dbg !2036, !noalias !1817
│ store i64 %.unpack348, i64 %.fca.1.gep, align 8, !dbg !2036, !noalias !1817
│ store {} addrspace(10)* %.unpack350, {} addrspace(10) %.fca.2.gep217, align 8, !dbg !2036, !noalias !1817
│ store {} addrspace(10)* %.unpack352, {} addrspace(10)* %.fca.3.gep219, align 8, !dbg !2036, !noalias !1817
│ store {} addrspace(10) %.unpack354, {} addrspace(10) %.fca.4.gep, align 8, !dbg !2036, !noalias !1817
│ call fastcc void @juliasetindex_scalar2591([3 x {} addrspace(10)] noalias nocapture nofree noundef nonnull writeonly align 8 dereferenceable(24) "enzymejl_returnRoots" %5, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) nocapture nofree noundef nonnull readonly align 8 dereferenceable(40) %119, i64 signext %166, i64 signext %iv.next2, i64 signext %iv.next) #64, !dbg !2036
│ %exitcond.not = icmp eq i64 %iv.next2, %.sroa.0234.0, !dbg !2037
│ br i1 %exitcond.not, label %L470.loopexit, label %L280, !dbg !1944, !llvm.loop !2038
│
│ L470.loopexit: ; preds = %L462
│ br label %L470, !dbg !2039
│
│ L470: ; preds = %L470.loopexit, %L271
│ %167 = add nuw i64 %iv.next, 1, !dbg !2039
│ %168 = icmp ult i64 %iv.next, 9223372036854775807, !dbg !2042
│ %169 = icmp sle i64 %167, %.sroa.0230.0, !dbg !2042
│ %170 = icmp ne i64 %iv.next, %.sroa.0230.0, !dbg !2045
│ %not. = and i1 %168, %169, !dbg !2045
│ %narrow = and i1 %170, %not., !dbg !2045
│ br i1 %narrow, label %L271, label %L507.loopexit, !dbg !1892
│
│ L492: ; preds = %L175
│ %171 = getelementptr inbounds [2 x [1 x i64]], [2 x [1 x i64]] %newstruct150, i64 0, i64 0, i64 0, !dbg !1864
│ store i64 %92, i64 %171, align 8, !dbg !1864, !tbaa !278, !alias.scope !280, !noalias !1812
│ %172 = getelementptr inbounds [2 x [1 x i64]], [2 x [1 x i64]] %newstruct150, i64 0, i64 1, i64 0, !dbg !1864
│ store i64 %93, i64 %172, align 8, !dbg !1864, !tbaa !278, !alias.scope !280, !noalias !1812
│ %173 = addrspacecast [2 x [1 x i64]] %newstruct150 to [2 x [1 x i64]] addrspace(11), !dbg !1860
│ %174 = addrspacecast [2 x [1 x i64]] %newstruct18 to [2 x [1 x i64]] addrspace(11), !dbg !1860
│ call fastcc void @julia_throwdm_2480([2 x [1 x i64]] addrspace(11) nocapture nofree noundef nonnull readonly align 8 dereferenceable(16) %173, [2 x [1 x i64]] addrspace(11) nocapture nofree noundef nonnull readonly align 8 dereferenceable(16) %174) #68, !dbg !1860
│ unreachable, !dbg !1860
│
│ L507.loopexit: ; preds = %L470
│ br label %L507, !dbg !2046
│
│ L507: ; preds = %L507.loopexit, %L239
│ %.elt368 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %91, i64 0, i32 1, !dbg !2046
│ %.unpack369 = load i64, i64 addrspace(11) %.elt368, align 8, !dbg !2046, !tbaa !88, !alias.scope !69, !noalias !90
│ %.elt370 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %91, i64 0, i32 2, !dbg !2046
│ %.unpack371 = load {} addrspace(10), {} addrspace(10) addrspace(11) %.elt370, align 8, !dbg !2046, !tbaa !88, !alias.scope !69, !noalias !90
│ %.elt374 = getelementptr inbounds { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) }, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) %91, i64 0, i32 4, !dbg !2046
│ %.unpack375 = load {} addrspace(10), {} addrspace(10) addrspace(11) %.elt374, align 8, !dbg !2046, !tbaa !88, !alias.scope !69, !noalias !90
│ %175 = addrspacecast {} addrspace(10) %.unpack371 to { i8 addrspace(13), i64, i16, i16, i32 } addrspace(11), !dbg !2049
│ %arraylen_ptr117 = getelementptr inbounds { i8 addrspace(13), i64, i16, i16, i32 }, { i8 addrspace(13), i64, i16, i16, i32 } addrspace(11) %175, i64 0, i32 1, !dbg !2049
│ %arraylen118 = load i64, i64 addrspace(11) %arraylen_ptr117, align 8, !dbg !2049, !tbaa !170, !range !173, !alias.scope !174, !noalias !175
│ %inbounds = icmp ult i64 %.unpack369, %arraylen118, !dbg !2049
│ br i1 %inbounds, label %idxend, label %oob, !dbg !2049
│
│ L570: ; preds = %idxend129
│ %176 = addrspacecast [1 x [2 x i64]] %newstruct136 to [1 x [2 x i64]] addrspace(11), !dbg !2061
│ call fastcc void @julia_throw_boundserror_2571({} addrspace(10) nofree noundef nonnull align 16 dereferenceable(40) %.unpack375, [1 x [2 x i64]] addrspace(11) nocapture nofree noundef nonnull readonly align 8 dereferenceable(16) %176) #68, !dbg !2061
│ unreachable, !dbg !2061
│
│ L573: ; preds = %idxend129
│ %.fca.0.gep = getelementptr inbounds { {} addrspace(10), [1 x [2 x i64]], i64, i64 }, { {} addrspace(10), [1 x [2 x i64]], i64, i64 } %7, i64 0, i32 0, !dbg !2065
│ store {} addrspace(10)* %.unpack375, {} addrspace(10)* %.fca.0.gep, align 8, !dbg !2065, !noalias !1817
│ %.fca.1.0.0.gep = getelementptr inbounds { {} addrspace(10), [1 x [2 x i64]], i64, i64 }, { {} addrspace(10), [1 x [2 x i64]], i64, i64 } %7, i64 0, i32 1, i64 0, i64 0, !dbg !2065
│ store i64 1, i64 %.fca.1.0.0.gep, align 8, !dbg !2065, !noalias !1817
│ %.fca.1.0.1.gep = getelementptr inbounds { {} addrspace(10), [1 x [2 x i64]], i64, i64 }, { {} addrspace(10), [1 x [2 x i64]], i64, i64 } %7, i64 0, i32 1, i64 0, i64 1, !dbg !2065
│ store i64 %184, i64 %.fca.1.0.1.gep, align 8, !dbg !2065, !noalias !1817
│ %.fca.2.gep = getelementptr inbounds { {} addrspace(10), [1 x [2 x i64]], i64, i64 }, { {} addrspace(10), [1 x [2 x i64]], i64, i64 } %7, i64 0, i32 2, !dbg !2065
│ store i64 0, i64 %.fca.2.gep, align 8, !dbg !2065, !noalias !1817
│ %177 = addrspacecast { {} addrspace(10), [1 x [2 x i64]], i64, i64 } %7 to { {} addrspace(10), [1 x [2 x i64]], i64, i64 } addrspace(11)*, !dbg !2065
│ %178 = call fastcc i64 @juliamapreduce_2573({ {} addrspace(10), [1 x [2 x i64]], i64, i64 } addrspace(11) nocapture nofree noundef nonnull readonly align 8 dereferenceable(40) %177) #64, !dbg !2065
│ br label %L599, !dbg !1891
│
│ L599: ; preds = %idxend, %L573
│ %value_phi122 = phi i64 [ %178, %L573 ], [ 0, %idxend ]
│ ret i64 %value_phi122, !dbg !2048
│
│ oob: ; preds = %L507
│ %179 = add i64 %.unpack369, 1, !dbg !2066
│ %errorbox = alloca i64, align 8, !dbg !2049
│ store i64 %179, i64 %errorbox, align 8, !dbg !2049, !noalias !1817
│ %180 = addrspacecast {} addrspace(10) %.unpack371 to {} addrspace(12), !dbg !2049
│ call void @ijl_bounds_error_ints({} addrspace(12) %180, i64 noundef nonnull align 8 %errorbox, i64 noundef 1) #68, !dbg !2049
│ unreachable, !dbg !2049
│
│ idxend: ; preds = %L507
│ %181 = addrspacecast {} addrspace(10) %.unpack371 to i64 addrspace(13) addrspace(11), !dbg !2049
│ %arrayptr120376 = load i64 addrspace(13), i64 addrspace(13) addrspace(11) %181, align 8, !dbg !2049, !tbaa !184, !alias.scope !1963, !noalias !175, !nonnull !48
│ %182 = getelementptr inbounds i64, i64 addrspace(13) %arrayptr120376, i64 %.unpack369, !dbg !2049
│ %arrayref121 = load i64, i64 addrspace(13) %182, align 8, !dbg !2049, !tbaa !187, !alias.scope !69, !noalias !90
│ %183 = add i64 %arrayref121, -1, !dbg !2067
│ %.not377 = icmp eq i64 %183, 0, !dbg !2068
│ br i1 %.not377, label %L599, label %idxend129, !dbg !2069
│
│ idxend129: ; preds = %idxend
│ %184 = call i64 @llvm.smax.i64(i64 %183, i64 noundef 0) #64, !dbg !2070
│ %newstruct134.sroa.0.0..sroa_idx = getelementptr inbounds [1 x [2 x i64]], [1 x [2 x i64]] %newstruct136, i64 0, i64 0, i64 0, !dbg !2073
│ store i64 1, i64 %newstruct134.sroa.0.0..sroa_idx, align 8, !dbg !2073, !tbaa !278, !alias.scope !280, !noalias !1812
│ %newstruct134.sroa.3.0..sroa_idx213 = getelementptr inbounds [1 x [2 x i64]], [1 x [2 x i64]] %newstruct136, i64 0, i64 0, i64 1, !dbg !2073
│ store i64 %184, i64 %newstruct134.sroa.3.0..sroa_idx213, align 8, !dbg !2073, !tbaa !278, !alias.scope !280, !noalias !1812
│ %185 = addrspacecast {} addrspace(10) %.unpack375 to { i8 addrspace(13), i64, i16, i16, i32 } addrspace(11), !dbg !2074
│ %arraylen_ptr137 = getelementptr inbounds { i8 addrspace(13), i64, i16, i16, i32 }, { i8 addrspace(13), i64, i16, i16, i32 } addrspace(11) %185, i64 0, i32 1, !dbg !2074
│ %arraylen138 = load i64, i64 addrspace(11) %arraylen_ptr137, align 8, !dbg !2074, !tbaa !170, !range !173, !alias.scope !174, !noalias !175
│ %186 = icmp sgt i64 %183, 0, !dbg !2079
│ %187 = add nsw i64 %184, -1, !dbg !2083
│ %188 = icmp uge i64 %187, %arraylen138, !dbg !2085
│ %189 = and i1 %186, %188, !dbg !2061
│ br i1 %189, label %L570, label %L573, !dbg !2061
│ }
│
│ No create nofree of empty function (ijl_array_grow_at) ijl_array_grow_at)
│ at context: call fastcc void @julia__setindex_scalar2591([3 x {} addrspace(10)] noalias nocapture nofree noundef nonnull writeonly align 8 dereferenceable(24) "enzymejl_returnRoots" %5, { i64, i64, {} addrspace(10), {} addrspace(10), {} addrspace(10) } addrspace(11) nocapture nofree noundef nonnull readonly align 8 dereferenceable(40) %119, i64 signext %166, i64 signext %iv.next2, i64 signext %iv.next) #64, !dbg !436 (julia__setindex_scalar__2591)
│
│ Stacktrace:
│ [1] setindex!
│ @ ~/.julia/juliaup/julia-1.10.3+0.aarch64.apple.darwin14/share/julia/stdlib/v1.10/SparseArrays/src/sparsematrix.jl:3121
│ [2] setindex!
│ @ ~/.julia/packages/NamedArrays/BRaai/src/index.jl:27
│ [3] _setindex!
│ @ ./abstractarray.jl:1426
│ [4] setindex!
│ @ ./abstractarray.jl:1396
│ [5] macro expansion
│ @ ./broadcast.jl:1004
│ [6] macro expansion
│ @ ./simdloop.jl:77
│ [7] copyto!
│ @ ./broadcast.jl:1003
│ [8] copyto!
│ @ ./broadcast.jl:956
│ [9] copy
│ @ ./broadcast.jl:928
│ [10] materialize
│ @ ./broadcast.jl:903
│ [11] foo
│ @ ~/mwe.jl:5
│
│
│ Stacktrace:
│ [1] throwerr(cstr::Cstring)
│ @ Enzyme.Compiler ~/.julia/packages/Enzyme/UZsMX/src/compiler.jl:1332
│ [2] setindex!
│ @ ~/.julia/juliaup/julia-1.10.3+0.aarch64.apple.darwin14/share/julia/stdlib/v1.10/SparseArrays/src/sparsematrix.jl:3121 [inlined]
│ [3] setindex!
│ @ ~/.julia/packages/NamedArrays/BRaai/src/index.jl:27 [inlined]
│ [4] _setindex!
│ @ ./abstractarray.jl:1426 [inlined]
│ [5] setindex!
│ @ ./abstractarray.jl:1396 [inlined]
│ [6] macro expansion
│ @ ./broadcast.jl:1004 [inlined]
│ [7] macro expansion
│ @ ./simdloop.jl:77 [inlined]
│ [8] copyto!
│ @ ./broadcast.jl:1003 [inlined]
│ [9] copyto!
│ @ ./broadcast.jl:956 [inlined]
│ [10] copy
│ @ ./broadcast.jl:928 [inlined]
│ [11] materialize
│ @ ./broadcast.jl:903 [inlined]
│ [12] foo
│ @ ~/mwe.jl:5 [inlined]
│ [13] diffejulia_foo_2466wrap
│ @ ~/mwe.jl:0
│ [14] macro expansion
│ @ ~/.julia/packages/Enzyme/UZsMX/src/compiler.jl:5855 [inlined]
│ [15] enzyme_call
│ @ ~/.julia/packages/Enzyme/UZsMX/src/compiler.jl:5521 [inlined]
│ [16] CombinedAdjointThunk
│ @ ~/.julia/packages/Enzyme/UZsMX/src/compiler.jl:5400 [inlined]
│ [17] autodiff
│ @ ~/.julia/packages/Enzyme/UZsMX/src/Enzyme.jl:291 [inlined]
│ [18] autodiff
│ @ ~/.julia/packages/Enzyme/UZsMX/src/Enzyme.jl:315 [inlined]
│ [19] autodiff
│ @ ~/.julia/packages/Enzyme/UZsMX/src/Enzyme.jl:300 [inlined]
│ [20] test_gradient()
│ @ Main ~/mwe.jl:18
│ [21] macro expansion
│ @ logging.jl:372 [inlined]
│ [22] top-level scope
│ @ ~/mwe.jl:26
│ [23] eval
│ @ ./boot.jl:385 [inlined]
│ [24] include_string(mapexpr::typeof(REPL.softscope), mod::Module, code::String, filename::String)
│ @ Base ./loading.jl:2076
│ [25] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
│ @ Base ./essentials.jl:892
│ [26] invokelatest(::Any, ::Any, ::Vararg{Any})
│ @ Base ./essentials.jl:889
│ [27] inlineeval(m::Module, code::String, code_line::Int64, code_column::Int64, file::String; softscope::Bool)
│ @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:271
│ [28] (::VSCodeServer.var"#69#74"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
│ @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:181
│ [29] withpath(f::VSCodeServer.var"#69#74"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams}, path::String)
│ @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/repl.jl:276
│ [30] (::VSCodeServer.var"#68#73"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
│ @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:179
│ [31] hideprompt(f::VSCodeServer.var"#68#73"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})
│ @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/repl.jl:38
│ [32] (::VSCodeServer.var"#67#72"{Bool, Bool, Bool, Module, String, Int64, Int64, String, VSCodeServer.ReplRunCodeRequestParams})()
│ @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:150
│ [33] with_logstate(f::Function, logstate::Any)
│ @ Base.CoreLogging ./logging.jl:515
│ [34] with_logger
│ @ ./logging.jl:627 [inlined]
│ [35] (::VSCodeServer.var"#66#71"{VSCodeServer.ReplRunCodeRequestParams})()
│ @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:263
│ [36] #invokelatest#2
│ @ ./essentials.jl:892 [inlined]
│ [37] invokelatest(::Any)
│ @ Base ./essentials.jl:889
│ [38] (::VSCodeServer.var"#64#65")()
│ @ VSCodeServer ~/.vscode/extensions/julialang.language-julia-1.79.2/scripts/packages/VSCodeServer/src/eval.jl:34
└ @ Main ~/mwe.jl:26
Can you post the error log and version
On Sat, May 25, 2024 at 6:24 PM JohannesNaegele @.***> wrote:
Hi, this example fails only if I use named arrays. With sparse arrays alone it works:
using Enzyme using SparseArrays using NamedArrays
foo(x, y) = sum(x .* y)
named(x) = NamedArray(x, ([1, 2], ["a"]), ("Rows", "Cols"))
function test_gradient() x = named(sparse( [1.0, 2.0], [1, 1], [1, 2] )) y = deepcopy(x) dx = Enzyme.make_zero(x) dy = Enzyme.make_zero(y) Enzyme.autodiff(Reverse, foo, Duplicated(x, dx), Duplicated(y, dy)) return dx, dy end
test_gradient()
— Reply to this email directly, view it on GitHub https://github.com/EnzymeAD/Enzyme.jl/issues/1471, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJTUXABRQISJTCZ7SUSLETZEEFR7AVCNFSM6AAAAABIJHHVUWVHI2DSMVQWIX3LMV43ASLTON2WKOZSGMYTOMRXGYYDQNQ . You are receiving this because you are subscribed to this thread.Message ID: @.***>
It didn't fit into the initial comment, that's why I added the error seperately...
I upgraded Enzyme.jl
now (I was 0.12.6) but this doesn't change the behavior. I will change the error log above to the new version.
(@v1.10) pkg> status Enzyme
Status `~/.julia/environments/v1.10/Project.toml`
[7da242da] Enzyme v0.12.8
julia> versioninfo()
Julia Version 1.10.3
Commit 0b4590a5507 (2024-04-30 10:59 UTC)
Build Info:
Official https://julialang.org/ release
Platform Info:
OS: macOS (arm64-apple-darwin22.4.0)
CPU: 8 × Apple M2
WORD_SIZE: 64
LIBM: libopenlibm
LLVM: libLLVM-15.0.7 (ORCJIT, apple-m1)
Threads: 12 default, 0 interactive, 4 GC (on 4 virtual cores)
Environment:
JULIA_EDITOR = code
JULIA_NUM_THREADS = 12
Yeah sorry we had a race condition where I was responding asking about a log at the same time that you were uploading the log xD
On Sat, May 25, 2024 at 7:30 PM JohannesNaegele @.***> wrote:
It didn't fit into the initial comment, that's why I added the error seperately... I upgraded Enzyme.jl now (I was 0.12.6) but this doesn't change the behavior. I will change the error log above to the new version.
@.***) pkg> status Enzyme Status
~/.julia/environments/v1.10/Project.toml
[7da242da] Enzyme v0.12.8julia> versioninfo() Julia Version 1.10.3 Commit 0b4590a5507 (2024-04-30 10:59 UTC) Build Info: Official https://julialang.org/ release Platform Info: OS: macOS (arm64-apple-darwin22.4.0) CPU: 8 × Apple M2 WORD_SIZE: 64 LIBM: libopenlibm LLVM: libLLVM-15.0.7 (ORCJIT, apple-m1) Threads: 12 default, 0 interactive, 4 GC (on 4 virtual cores) Environment: JULIA_EDITOR = code JULIA_NUM_THREADS = 12
— Reply to this email directly, view it on GitHub https://github.com/EnzymeAD/Enzyme.jl/issues/1471#issuecomment-2131674115, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJTUXCBFFNF2CRSIHNJPJLZEENH5AVCNFSM6AAAAABIJHHVUWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMZRGY3TIMJRGU . You are receiving this because you commented.Message ID: <EnzymeAD/Enzyme. @.***>
xd
@JohannesNaegele https://github.com/EnzymeAD/Enzyme.jl/pull/1473 should fix the error from the log
@JohannesNaegele #1473 should fix the error from the log
Yes it does!
Hi, this example fails only if I use named arrays. With sparse arrays alone it works: