[llvm] [InstCombine] Skip replaceExtractElements for ConstantData (PR #160575)
Matt Arsenault via llvm-commits
llvm-commits at lists.llvm.org
Wed Sep 24 20:20:59 PDT 2025
================
@@ -804,3 +804,49 @@ define <4 x i32> @infloop_D151807(<4 x float> %arg) {
%i4 = insertelement <4 x i32> zeroinitializer, i32 %i3, i64 0
ret <4 x i32> %i4
}
+
+; Make sure we don't crash in this case.
+
+define i64 @pr160507(ptr %arg, i32 %arg1, i1 %arg2, i8 %arg3, i64 %arg4) {
+; CHECK-LABEL: @pr160507(
+; CHECK-NEXT: bb:
+; CHECK-NEXT: br label [[BB5:%.*]]
+; CHECK: bb5:
+; CHECK-NEXT: br i1 [[ARG2:%.*]], label [[BB6:%.*]], label [[BB8:%.*]]
+; CHECK: bb6:
+; CHECK-NEXT: br label [[BB5]]
+; CHECK: bb8:
+; CHECK-NEXT: br label [[BB10:%.*]]
+; CHECK: bb10:
+; CHECK-NEXT: br label [[BB12:%.*]]
+; CHECK: bb12:
+; CHECK-NEXT: store i64 0, ptr [[ARG:%.*]], align 8
+; CHECK-NEXT: br label [[BB5]]
+;
+bb:
+ br label %bb5
+
+bb5:
+ %phi = phi i8 [ 0, %bb ], [ %extractelement, %bb6 ], [ 0, %bb12 ]
+ br i1 %arg2, label %bb6, label %bb8
+
+bb6:
+ %extractelement = extractelement <1 x i8> zeroinitializer, i64 %arg4
----------------
arsenm wrote:
Maybe change this to not use the degenerate 1 element vector case
https://github.com/llvm/llvm-project/pull/160575
More information about the llvm-commits
mailing list