Issue |
135800
|
Summary |
[slp] ICE: Instruction does not dominate all uses!
|
Labels |
llvm:SLPVectorizer
|
Assignees |
|
Reporter |
ashermancinelli
|
First showed up in 04c38981a9ce3e6225669c0e41cab947e3e7989f, last known good commit was 0283bb3afcc5dc521f6b2e7d541a830a9546ed80.
Commits in this range with SLP in the subject line:
```
$ g log 0283bb3afcc5dc521f6b2e7d541a830a9546ed80^1..04c38981a9ce3e6225669c0e41cab947e3e7989f|grep -i slp
'61d04f1aac96 Thu Apr 10 16:05:01 2025 -0400 [SLP][NFC]Extract preliminary checks from buildTree_rec, NFC'
'aaaa2a325bd1 Thu Apr 10 12:06:38 2025 -0400 [SLP]Support vectorization of previously vectorized scalars in split nodes'
'4ea57b3481c0 Thu Apr 10 08:30:43 2025 -0700 [SLP]Fix detection of matching splat vector'
'396e2ef3b7f4 Thu Apr 10 08:20:28 2025 -0700 [SLP][NFC]Add a test with incorrect identity match for less-defined splat'
'a693f23ef2fc Thu Apr 10 23:07:45 2025 +0800 [SLP][REVEC] Fix CompressVectorize does not expand mask when REVEC is enabled. (#135174)'
'd02a704ec952 Thu Apr 10 18:54:45 2025 +0800 [SLP][REVEC] Make getExtractWithExtendCost support FixedVectorType as Dst. (#134822)'
```
```
$ opt -passes=slp-vectorizer reduced.ll -disable-output
Instruction does not dominate all uses!
%15 = call <6 x double> @llvm.vector.insert.v6f64.v2f64(<6 x double> %14, <2 x double> %13, i64 4)
%9 = shufflevector <6 x double> %15, <6 x double> poison, <4 x i32> <i32 0, i32 1, i32 2, i32 3>
Instruction does not dominate all uses!
%13 = insertelement <2 x double> %12, double %1, i32 1
%11 = call <6 x double> @llvm.vector.insert.v6f64.v2f64(<6 x double> %10, <2 x double> %13, i64 4)
LLVM ERROR: Broken module found, compilation aborted!
```
```
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 void @foo(double %0) {
.thread:
%1 = call double null(ptr null, ptr null, ptr null)
%2 = call double null(ptr null, ptr null, ptr null)
br i1 false, label %3, label %5
3: ; preds = %.thread
%4 = call double null(ptr null, ptr null, ptr null)
br label %5
5: ; preds = %3, %.thread
%.1226 = phi double [ %4, %3 ], [ 0.000000e+00, %.thread ]
%.1222 = phi double [ 0.000000e+00, %3 ], [ 0.000000e+00, %.thread ]
%.1218 = phi double [ %0, %3 ], [ 0.000000e+00, %.thread ]
%.1216 = phi double [ 0.000000e+00, %3 ], [ 0.000000e+00, %.thread ]
br i1 false, label %.lr.ph272.preheader, label %._crit_edge
.lr.ph272.preheader: ; preds = %5
br i1 false, label %._crit_edge, label %6
6: ; preds = %.lr.ph272.preheader
%7 = fdiv double 0.000000e+00, 0.000000e+00
%8 = fsub double 0.000000e+00, %7
%9 = fdiv double 0.000000e+00, 0.000000e+00
%10 = fsub double 0.000000e+00, %9
br i1 false, label %11, label %._crit_edge
11: ; preds = %6
br label %._crit_edge
._crit_edge: ; preds = %11, %6, %.lr.ph272.preheader, %5
%.2227.lcssa = phi double [ %.1226, %5 ], [ 0.000000e+00, %11 ], [ %.1226, %6 ], [ %.1226, %.lr.ph272.preheader ]
%.2223.lcssa = phi double [ %.1222, %5 ], [ 0.000000e+00, %11 ], [ %.1222, %6 ], [ %.1222, %.lr.ph272.preheader ]
%.2219.lcssa = phi double [ %.1218, %5 ], [ 0.000000e+00, %11 ], [ %.1218, %6 ], [ %.1218, %.lr.ph272.preheader ]
%.2.lcssa = phi double [ %.1216, %5 ], [ %0, %11 ], [ %.1216, %6 ], [ %.1216, %.lr.ph272.preheader ]
%.0213.lcssa = phi double [ %2, %5 ], [ 0.000000e+00, %11 ], [ %10, %6 ], [ %2, %.lr.ph272.preheader ]
%.0211.lcssa = phi double [ %1, %5 ], [ 0.000000e+00, %11 ], [ %8, %6 ], [ %1, %.lr.ph272.preheader ]
ret void
}
```
_______________________________________________
llvm-bugs mailing list
llvm-bugs@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs