[llvm] [VPlan] First step towards VPlan cost modeling. (PR #92555)

Arthur Eubanks via llvm-commits llvm-commits at lists.llvm.org
Thu Jun 13 09:32:33 PDT 2024


aeubanks wrote:

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

define ptr @f() {
entry:
  %0 = load i32, ptr null, align 8
  %cmp = icmp ult i32 %0, 8
  br i1 %cmp, label %if.then10, label %if.end26

if.then10:                                        ; preds = %entry
  %1 = zext i32 %0 to i64
  br label %for.body

for.body16.preheader:                             ; preds = %for.body
  ret ptr null

for.body:                                         ; preds = %for.body, %if.then10
  %indvars.iv = phi i64 [ 0, %if.then10 ], [ %indvars.iv.next, %for.body ]
  %2 = trunc i64 %indvars.iv to i32
  store i32 %2, ptr null, align 4
  %indvars.iv.next = add i64 %indvars.iv, 1
  %cmp11.not = icmp eq i64 %indvars.iv, %1
  br i1 %cmp11.not, label %for.body16.preheader, label %for.body

if.end26:                                         ; preds = %entry
  ret ptr null
}
$ opt -p loop-vectorize -disable-output /tmp/a.ll
opt: ../../llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:10322: bool llvm::LoopVectorizePass::processLoop(Loop *): Assertion `VF.Width == Width && "VPlan cost model and legacy cost model disagreed"' failed.
```

https://github.com/llvm/llvm-project/pull/92555


More information about the llvm-commits mailing list