From ebbf881f71f7b18cf31fad202873aaa4f8673597 Mon Sep 17 00:00:00 2001 From: Michel Schanen Date: Thu, 28 May 2026 11:14:22 -0500 Subject: [PATCH 1/2] Gate VectorCombinePass on can_vectorize(job) --- src/optim.jl | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/optim.jl b/src/optim.jl index 0bf2d4cd..7d19aebd 100644 --- a/src/optim.jl +++ b/src/optim.jl @@ -225,7 +225,13 @@ function buildScalarOptimizerPipeline(fpm, @nospecialize(job::CompilerJob), opt_ if opt_level >= 2 add!(fpm, AllocOptPass()) add!(fpm, SROAPass()) - add!(fpm, VectorCombinePass()) + # VectorCombinePass introduces vector intrinsics that back-ends + # without vectorization support cannot lower (e.g. SPIR-V emits + # forward-referenced SSA ids that fail spirv-val). Gate on the + # same predicate that controls buildVectorPipeline below. + if can_vectorize(job) + add!(fpm, VectorCombinePass()) + end add!(fpm, MergedLoadStoreMotionPass()) add!(fpm, GVNPass()) add!(fpm, SCCPPass()) From 01611b6ca7ea98b72fe0fa52d787bd49a4936cfa Mon Sep 17 00:00:00 2001 From: Tim Besard Date: Thu, 28 May 2026 21:30:23 +0200 Subject: [PATCH 2/2] Apply suggestion from @maleadt --- src/optim.jl | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/optim.jl b/src/optim.jl index 7d19aebd..f86e7c4f 100644 --- a/src/optim.jl +++ b/src/optim.jl @@ -225,10 +225,6 @@ function buildScalarOptimizerPipeline(fpm, @nospecialize(job::CompilerJob), opt_ if opt_level >= 2 add!(fpm, AllocOptPass()) add!(fpm, SROAPass()) - # VectorCombinePass introduces vector intrinsics that back-ends - # without vectorization support cannot lower (e.g. SPIR-V emits - # forward-referenced SSA ids that fail spirv-val). Gate on the - # same predicate that controls buildVectorPipeline below. if can_vectorize(job) add!(fpm, VectorCombinePass()) end