Skip to content

[VectorCombine] VectorCombiner goes into infinite loop #153012

@redstar

Description

@redstar

Consider the following IR stored as bug.ll:

@val = external hidden global ptr, align 8

define void @bug(ptr %ptr1, ptr %ptr2, i64 %idx) #0 {
entry:
  %158 = insertelement <2 x i64> <i64 5, i64 ptrtoint (ptr @val to i64)>, i64 %idx, i32 0
  %159 = or disjoint <2 x i64> splat (i64 2), %158
  store <2 x i64> %159, ptr %ptr2
  ret void
}

Feeding this into the vector combiner via opt --mtriple aarch64-linux -march=neon --passes=vector-combine -debug-only=vector-combine bug.ll -o /dev/null or opt --mtriple systemz-linux -march=z13 --passes=vector-combine -debug-only=vector-combine bug.ll -o /dev/null results in the VectorCombiner going into an infinite loop.

Hang verified with master (ccd35e5) and llvmorg-21.1.0-rc2.

Metadata

Metadata

Assignees

Labels

Type

Projects

Status

Needs Fix

Relationships

None yet

Development

No branches or pull requests

Issue actions