Issue 185281
Summary [SLPVectorizer] Crash on trunk
Labels llvm:SLPVectorizer, crash-on-valid
Assignees
Reporter antoniofrighetto
    LLVM baseline: da8d1b52d0d344068a8bd3e46a8af3a692d2efc2

Reduced IR:
```llvm
; ./bin/opt -p slp-vectorizer reduced.ll
define i16 @main() {
entry:
 %.promoted300.i.i.i = load i16, ptr null, align 2
  %.promoted304.i.i.i = load i16, ptr null, align 2
  %.promoted308.i.i.i = load i16, ptr null, align 2
  %.promoted312.i.i.i = load i16, ptr null, align 2
  br i1 false, label %for.cond144.preheader.i.i.i, label %cleanup383.split.4.i.i.i

for.cond144.preheader.i.i.i: ; preds = %entry
  br i1 false, label %for.cond144.preheader.5.i.i.i, label %cleanup383.split.4.i.i.i

for.cond144.preheader.5.i.i.i: ; preds = %for.cond144.preheader.i.i.i
  %.us-phi.2.i.i.i = and i16 0, 0
 %.us-phi.3.i.i.i = and i16 0, 0
  %.us-phi.4.i.i.i = and i16 0, 0
 %.us-phi.5.i.i.i = and i16 0, 0
  br label %cleanup383.split.4.i.i.i

cleanup383.split.4.i.i.i: ; preds = %for.cond144.preheader.5.i.i.i, %for.cond144.preheader.i.i.i, %entry
  %0 = phi i16 [ %.us-phi.5.i.i.i, %for.cond144.preheader.5.i.i.i ], [ %.promoted312.i.i.i, %for.cond144.preheader.i.i.i ], [ %.promoted312.i.i.i, %entry ]
  %1 = phi i16 [ %.us-phi.5.i.i.i, %for.cond144.preheader.5.i.i.i ], [ %.promoted312.i.i.i, %for.cond144.preheader.i.i.i ], [ %.promoted312.i.i.i, %entry ]
  %2 = phi i16 [ %.us-phi.5.i.i.i, %for.cond144.preheader.5.i.i.i ], [ %.promoted312.i.i.i, %for.cond144.preheader.i.i.i ], [ %.promoted312.i.i.i, %entry ]
  %3 = phi i16 [ %.us-phi.5.i.i.i, %for.cond144.preheader.5.i.i.i ], [ %.promoted312.i.i.i, %for.cond144.preheader.i.i.i ], [ %.promoted312.i.i.i, %entry ]
  %4 = phi i16 [ %.us-phi.5.i.i.i, %for.cond144.preheader.5.i.i.i ], [ %.promoted312.i.i.i, %for.cond144.preheader.i.i.i ], [ %.promoted312.i.i.i, %entry ]
  %5 = phi i16 [ %.us-phi.5.i.i.i, %for.cond144.preheader.5.i.i.i ], [ %.promoted312.i.i.i, %for.cond144.preheader.i.i.i ], [ %.promoted312.i.i.i, %entry ]
  %6 = phi i16 [ %.us-phi.4.i.i.i, %for.cond144.preheader.5.i.i.i ], [ %.promoted308.i.i.i, %for.cond144.preheader.i.i.i ], [ %.promoted308.i.i.i, %entry ]
  %7 = phi i16 [ %.us-phi.4.i.i.i, %for.cond144.preheader.5.i.i.i ], [ %.promoted308.i.i.i, %for.cond144.preheader.i.i.i ], [ %.promoted308.i.i.i, %entry ]
  %8 = phi i16 [ %.us-phi.4.i.i.i, %for.cond144.preheader.5.i.i.i ], [ %.promoted308.i.i.i, %for.cond144.preheader.i.i.i ], [ %.promoted308.i.i.i, %entry ]
  %9 = phi i16 [ %.us-phi.4.i.i.i, %for.cond144.preheader.5.i.i.i ], [ %.promoted308.i.i.i, %for.cond144.preheader.i.i.i ], [ %.promoted308.i.i.i, %entry ]
  %10 = phi i16 [ %.us-phi.4.i.i.i, %for.cond144.preheader.5.i.i.i ], [ %.promoted308.i.i.i, %for.cond144.preheader.i.i.i ], [ %.promoted308.i.i.i, %entry ]
  %11 = phi i16 [ %.us-phi.3.i.i.i, %for.cond144.preheader.5.i.i.i ], [ %.promoted304.i.i.i, %for.cond144.preheader.i.i.i ], [ %.promoted304.i.i.i, %entry ]
  %12 = phi i16 [ %.us-phi.3.i.i.i, %for.cond144.preheader.5.i.i.i ], [ %.promoted304.i.i.i, %for.cond144.preheader.i.i.i ], [ %.promoted304.i.i.i, %entry ]
  %13 = phi i16 [ %.us-phi.3.i.i.i, %for.cond144.preheader.5.i.i.i ], [ %.promoted304.i.i.i, %for.cond144.preheader.i.i.i ], [ %.promoted304.i.i.i, %entry ]
  %14 = phi i16 [ %.us-phi.3.i.i.i, %for.cond144.preheader.5.i.i.i ], [ %.promoted304.i.i.i, %for.cond144.preheader.i.i.i ], [ %.promoted304.i.i.i, %entry ]
  %15 = phi i16 [ %.us-phi.2.i.i.i, %for.cond144.preheader.5.i.i.i ], [ %.promoted300.i.i.i, %for.cond144.preheader.i.i.i ], [ %.promoted300.i.i.i, %entry ]
  ret i16 %15
}
```

I suspect a use-after-free / use-after-move. Reduced from @dtcxzyw CI fuzz-service.

Maybe cc/ @alexey-bataev.
_______________________________________________
llvm-bugs mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs

Reply via email to