Issue 184317
Summary [LV] Crash on `llvm-test-suite` with `-force-vector-interleave=(n>=2)`
Labels vectorizers, crash-on-valid
Assignees
Reporter MacDue
    This change seems to break building the llvm-test-suite with `force-vector-interleave`:
```llvm
target datalayout = "e-m:e-p270:32:32-p271:32:32-p272:64:64-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128-Fn32"
target triple = "aarch64-unknown-linux-gnu"

%struct.GOP_DATA = type { i32, i32, i32, i32, i32, i32 }

define void @create_hierarchy(ptr %0, ptr %1, i64 %wide.trip.count225) {
entry:
  br label %for.body

for.body: ; preds = %for.inc, %entry
  %indvars.iv218 = phi i64 [ 0, %entry ], [ %indvars.iv.next219, %for.inc ]
  %arrayidx = getelementptr %struct.GOP_DATA, ptr %1, i64 %indvars.iv218
  %reference_idc = getelementptr i8, ptr %arrayidx, i64 8
  br i1 false, label %if.then4, label %if.else

if.then4:                                         ; preds = %for.body
  store i32 0, ptr %reference_idc, align 4
  %2 = load i32, ptr %0, align 8
  br label %for.inc

if.else: ; preds = %for.body
  store i32 0, ptr %reference_idc, align 4
  br label %for.inc

for.inc:                                          ; preds = %if.else, %if.then4
  %indvars.iv.next219 = add i64 %indvars.iv218, 1
 %exitcond226.not = icmp eq i64 %indvars.iv218, %wide.trip.count225
  br i1 %exitcond226.not, label %for.end, label %for.body

for.end: ; preds = %for.inc
  ret void
}
```

Opt: `opt reduced.ll  -force-vector-interleave=2 -passes=loop-vectorize -S`

Hits assert:
```
llvm::VPReplicateRecipe::execute(VPTransformState &): Assertion `IsSingleScalar && "VPReplicateRecipes outside replicate regions must have already been unrolled"' failed.
```

Compiler Explorer: https://godbolt.org/z/K7T7Ebb1n
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to