; NOTE: Assertions have been autogenerated by utils/update_test_checks.py ; RUN: opt -passes=instcombine -S < %s | FileCheck %s ; This test checks a regression in the select operand folding combine, in which ; Constant::getUniqueInteger would crash for a scalable-vector zeroinitializer. define @select_opt( %b, %m) { ; CHECK-LABEL: @select_opt( ; CHECK-NEXT: [[C:%.*]] = add nsw [[B:%.*]], shufflevector ( insertelement ( undef, i32 2, i32 0), undef, zeroinitializer) ; CHECK-NEXT: [[D:%.*]] = select [[M:%.*]], [[C]], [[B]] ; CHECK-NEXT: ret [[D]] ; %head = insertelement undef, i32 2, i32 0 %splat = shufflevector %head, undef, zeroinitializer %c = add nsw %b, %splat %d = select %m, %c, %b ret %d }