<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/55375>55375</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            LoopVectorize crash with opaque pointers
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            new issue
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          aeubanks
      </td>
    </tr>
</table>

<pre>
    Not actually 100% sure if opaque pointers is at fault, but 

```
$ cat /tmp/d.ll
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-linux-gnu"

%"class.gtl::intrusive_link" = type { ptr, ptr }
%"class.gtl::intrusive_list" = type { %"class.gtl::intrusive_link" }

define void @f() #0 {
  br label %1

1:                                                ; preds = %1, %0
  %2 = phi ptr [ %4, %1 ], [ null, %0 ]
  %3 = getelementptr inbounds %"class.gtl::intrusive_link", ptr %2, i64 0, i32 1
  store ptr %2, ptr %3, align 8
  store ptr null, ptr %2, align 8
  %4 = getelementptr inbounds %"class.gtl::intrusive_list", ptr %2, i64 1
  %5 = icmp eq ptr %4, null
  br i1 %5, label %6, label %1

6:                                                ; preds = %1
  ret void
}

attributes #0 = { "target-cpu"="haswell" }
$ ./build/rel/bin/opt -passes=loop-vectorize -S /tmp/d.ll
opt: ../../llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:10154: llvm::Value *llvm::VPTransformState::get(llvm::VPValue *, unsigned int): Assertion `(isa<VPWidenIntOrFpInductionRecipe>(Def->getDef()) || isa<VPScalarIVStepsRecipe>(Def->getDef())) && "unexpected recipe found to be invariant"' failed.
```

@fhahn 
</pre>
<img width="1px" height="1px" alt="" src="http://email.email.llvm.org/o/eJytVdtu4zYQ_Rr5hZAgUZZkP-ghjRsgQNEu6iL7uKAk2maXpri8OEm_voeU5di7AZqiFQRySM6c4VzZjcNr--voCOudZ1K-kiLPE1oR6w0nYkdGzb55TvQolOPGEmEJc2THvHQJvSeddyTJN0l-dx7r_PxPS7okPfgT-uCOGuOQSTkdOWb23JGBOSbZ6xhwyg0YKU-PSXnHU02bHERJ4xCWxe0yUPUyDqmYid0qCBV0lapVIOpZBmdbbEPBjX5nhJZ81v2yqr-AUQrlX9K98hfu2ZwKO71k1mZ7J4GKH44x3ooT_wKxrziPYO5VA7X5iWhngqMwYbn5II51P-B8VPdFRxwHvhOKk9MoBpIs810SPLAGWJkH1ImJkM4QyToug5biWj64nPzLLylhteGDPXsViHAA5nxWB3qyTh_E5JkqGrg8MxbY2EQa-8ojZc4Acf8NpIwgCCOX_MiVC1BCdaNXQfmHHHaJDa4UaCQSySNRUlLMuqwbUQ7XfGe6DDSTYq_I6kfm-erXgt8xB6v_kxUxVd6zorhSUUUVoj9qwr_NnNHb8YpvWSCKyB5OLglR36xu0qP-f9LjrN-gHkOmnjXcZjJzKFW0G27P2RuEY13QqZTTXsd6LZE59MDsMw_Ov64INKMMPajzQg6YDZdhJRTGUTuSajiZWwDIcdTpifcIpPiLk3T7XgODSLA-C5BxkPJ0DJPoMP5hmLK70RwtFk8zFOhfgH1ZZ73WoUvlRRX6F4kQMcRPTKLtJvTuauvTBXTrmOPTLixHUV9zXURD3LyyyDc-IKPAtw5K7mClcWJUJPRpuhKWJeX906fPYuDqUbnfzIN-VIPvA8_vvBcaqn4G44bvUlDQCGrqJLGZNPf4yQyz7dHQzePT1nFt_1l8akfIsTqE0iv-ouEdXNhEUbILdUDcSDq8R-rEjGBqSvkGz5CQfMjef3qmET3vwA6KLIa2HNblmi2ccJK3N2EgvWH2QJ6FO3z_4C28ke3BOW2De-kD_j3YfJf14_Eq6JhSbcY_AYmlsNbzEPmqKptqcWjZMmdlWfUNrsCX9YrXOV0x1lBaNWyNW8X6si0aHmxT_JlEiGBntVmIluaU5lVR5HWR0ybreLXeNXXPi6Gky76DmfwIZ2ThHtlo9gvTxit1fm9xGNqEfTtEnoek4FEd8Jl3h9G0jPuOqa92EXW38e5_AxGyTaY">