Closed
Description
This was only recently fixed by #123878 (bug was #120493), but the test fails on LLVM 19 like this:
failures:
---- [codegen] tests/codegen/vec-in-place.rs stdout ----
error: verification with 'FileCheck' failed
status: exit status: 1
command: "/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/llvm-installed/bin/FileCheck" "--input-file" "/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/build/x86_64-unknown-linux-gnu/test/codegen/vec-in-place/vec-in-place.ll" "/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/tests/codegen/vec-in-place.rs" "--check-prefix=CHECK" "--check-prefix" "NONMSVC" "--allow-unused-prefixes" "--dump-input-context" "100"
stdout: none
--- stderr -------------------------------
/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/tests/codegen/vec-in-place.rs:97:16: error: CHECK-NOT: excluded string found in input
// CHECK-NOT: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}
^
/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/build/x86_64-unknown-linux-gnu/test/codegen/vec-in-place/vec-in-place.ll:122:2: note: found here
br i1 %_47.not8.i.i.i.i.i, label %bb6.i.i, label %bb11.i.i.i.i.i
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/tests/codegen/vec-in-place.rs:98:16: error: CHECK-NOT: excluded string found in input
// CHECK-NOT: call
^
/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/build/x86_64-unknown-linux-gnu/test/codegen/vec-in-place/vec-in-place.ll:119:7: note: found here
tail call void @llvm.experimental.noalias.scope.decl(metadata !87)
^~~~
/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/tests/codegen/vec-in-place.rs:100:16: error: CHECK-NOT: excluded string found in input
// CHECK-NOT: %{{.*}} = udiv
^
/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/build/x86_64-unknown-linux-gnu/test/codegen/vec-in-place/vec-in-place.ll:136:2: note: found here
%3 = udiv exact i64 %2, 24
^~~~~~~~~
/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/tests/codegen/vec-in-place.rs:108:16: error: CHECK-NOT: excluded string found in input
// CHECK-NOT: br i1 %{{.*}}, label %{{.*}}, label %{{.*}}
^
/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/build/x86_64-unknown-linux-gnu/test/codegen/vec-in-place/vec-in-place.ll:189:2: note: found here
br i1 %_47.not8.i.i.i.i.i, label %bb6.i.i, label %bb11.i.i.i.i.i
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/tests/codegen/vec-in-place.rs:109:16: error: CHECK-NOT: excluded string found in input
// CHECK-NOT: call
^
/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/build/x86_64-unknown-linux-gnu/test/codegen/vec-in-place/vec-in-place.ll:186:7: note: found here
tail call void @llvm.experimental.noalias.scope.decl(metadata !128)
^~~~
/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/tests/codegen/vec-in-place.rs:111:16: error: CHECK-NOT: excluded string found in input
// CHECK-NOT: %{{.*}} = udiv
^
/var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/build/x86_64-unknown-linux-gnu/test/codegen/vec-in-place/vec-in-place.ll:203:2: note: found here
%3 = udiv exact i64 %2, 24
^~~~~~~~~
Input file: /var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/build/x86_64-unknown-linux-gnu/test/codegen/vec-in-place/vec-in-place.ll
Check file: /var/lib/buildkite-agent/builds/rust-llvm-integrate/llvm-project/rust-llvm-integrate-prototype/tests/codegen/vec-in-place.rs
-dump-input=help explains the following input dump.
Input was:
<<<<<<
.
.
.
19: %me.sroa.5.0.copyload.i = load i64, ptr %me.sroa.5.0.self.sroa_idx.i, align 8, !alias.scope !3, !noalias !6
20: store i64 %me.sroa.0.0.copyload.i, ptr %_0, align 8, !alias.scope !9, !noalias !14
21: %0 = getelementptr inbounds i8, ptr %_0, i64 8
22: store ptr %me.sroa.4.0.copyload.i, ptr %0, align 8, !alias.scope !9, !noalias !14
23: %1 = getelementptr inbounds i8, ptr %_0, i64 16
24: store i64 %me.sroa.5.0.copyload.i, ptr %1, align 8, !alias.scope !9, !noalias !14
25: ret void
26: }
27:
28: ; Function Attrs: mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: readwrite) uwtable
29: define void @vec_iterator_cast_wrapper(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([24 x i8]) align 8 dereferenceable(24) %_0, ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %vec) unnamed_addr #0 personality ptr @rust_eh_personality {
30: start:
31: %me.sroa.0.0.copyload.i = load i64, ptr %vec, align 8, !alias.scope !17, !noalias !20
32: %me.sroa.4.0.self.sroa_idx.i = getelementptr inbounds i8, ptr %vec, i64 8
33: %me.sroa.4.0.copyload.i = load ptr, ptr %me.sroa.4.0.self.sroa_idx.i, align 8, !alias.scope !17, !noalias !20, !nonnull !8, !noundef !8
34: %me.sroa.5.0.self.sroa_idx.i = getelementptr inbounds i8, ptr %vec, i64 16
35: %me.sroa.5.0.copyload.i = load i64, ptr %me.sroa.5.0.self.sroa_idx.i, align 8, !alias.scope !17, !noalias !20
36: store i64 %me.sroa.0.0.copyload.i, ptr %_0, align 8, !alias.scope !22, !noalias !27
37: %0 = getelementptr inbounds i8, ptr %_0, i64 8
38: store ptr %me.sroa.4.0.copyload.i, ptr %0, align 8, !alias.scope !22, !noalias !27
39: %1 = getelementptr inbounds i8, ptr %_0, i64 16
40: store i64 %me.sroa.5.0.copyload.i, ptr %1, align 8, !alias.scope !22, !noalias !27
41: ret void
42: }
43:
44: ; Function Attrs: nofree norecurse nosync nounwind nonlazybind memory(argmem: readwrite) uwtable
45: define void @vec_iterator_cast_unwrap(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([24 x i8]) align 8 dereferenceable(24) %_0, ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %vec) unnamed_addr #1 personality ptr @rust_eh_personality {
46: start:
47: %me.sroa.0.0.copyload.i = load i64, ptr %vec, align 8, !alias.scope !30, !noalias !33
48: %me.sroa.4.0.self.sroa_idx.i = getelementptr inbounds i8, ptr %vec, i64 8
49: %me.sroa.4.0.copyload.i = load ptr, ptr %me.sroa.4.0.self.sroa_idx.i, align 8, !alias.scope !30, !noalias !33, !nonnull !8, !noundef !8
50: %me.sroa.5.0.self.sroa_idx.i = getelementptr inbounds i8, ptr %vec, i64 16
51: %me.sroa.5.0.copyload.i = load i64, ptr %me.sroa.5.0.self.sroa_idx.i, align 8, !alias.scope !30, !noalias !33
52: store i64 %me.sroa.0.0.copyload.i, ptr %_0, align 8, !alias.scope !35, !noalias !40
53: %0 = getelementptr inbounds i8, ptr %_0, i64 8
54: store ptr %me.sroa.4.0.copyload.i, ptr %0, align 8, !alias.scope !35, !noalias !40
55: %1 = getelementptr inbounds i8, ptr %_0, i64 16
56: store i64 %me.sroa.5.0.copyload.i, ptr %1, align 8, !alias.scope !35, !noalias !40
57: ret void
58: }
59:
60: ; Function Attrs: nofree norecurse nosync nounwind nonlazybind memory(argmem: readwrite) uwtable
61: define void @vec_iterator_cast_aggregate(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([24 x i8]) align 8 dereferenceable(24) %_0, ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %vec) unnamed_addr #1 personality ptr @rust_eh_personality {
62: start:
63: %me.sroa.0.0.copyload.i = load i64, ptr %vec, align 8, !alias.scope !43, !noalias !46
64: %me.sroa.4.0.self.sroa_idx.i = getelementptr inbounds i8, ptr %vec, i64 8
65: %me.sroa.4.0.copyload.i = load ptr, ptr %me.sroa.4.0.self.sroa_idx.i, align 8, !alias.scope !43, !noalias !46, !nonnull !8, !noundef !8
66: %me.sroa.5.0.self.sroa_idx.i = getelementptr inbounds i8, ptr %vec, i64 16
67: %me.sroa.5.0.copyload.i = load i64, ptr %me.sroa.5.0.self.sroa_idx.i, align 8, !alias.scope !43, !noalias !46
68: %_18.i.idx = and i64 %me.sroa.5.0.copyload.i, 576460752303423487
69: store i64 %me.sroa.0.0.copyload.i, ptr %_0, align 8, !alias.scope !48, !noalias !53
70: %0 = getelementptr inbounds i8, ptr %_0, i64 8
71: store ptr %me.sroa.4.0.copyload.i, ptr %0, align 8, !alias.scope !48, !noalias !53
72: %1 = getelementptr inbounds i8, ptr %_0, i64 16
73: store i64 %_18.i.idx, ptr %1, align 8, !alias.scope !48, !noalias !53
74: ret void
75: }
76:
77: ; Function Attrs: nofree norecurse nosync nounwind nonlazybind memory(argmem: readwrite) uwtable
78: define void @vec_iterator_cast_deaggregate_tra(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([24 x i8]) align 8 dereferenceable(24) %_0, ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %vec) unnamed_addr #1 personality ptr @rust_eh_personality {
79: start:
80: %me.sroa.0.0.copyload.i = load i64, ptr %vec, align 8, !alias.scope !56, !noalias !59
81: %me.sroa.4.0.self.sroa_idx.i = getelementptr inbounds i8, ptr %vec, i64 8
82: %me.sroa.4.0.copyload.i = load ptr, ptr %me.sroa.4.0.self.sroa_idx.i, align 8, !alias.scope !56, !noalias !59, !nonnull !8, !noundef !8
83: %me.sroa.5.0.self.sroa_idx.i = getelementptr inbounds i8, ptr %vec, i64 16
84: %me.sroa.5.0.copyload.i = load i64, ptr %me.sroa.5.0.self.sroa_idx.i, align 8, !alias.scope !56, !noalias !59
85: %_18.i.idx = and i64 %me.sroa.5.0.copyload.i, 576460752303423487
86: store i64 %me.sroa.0.0.copyload.i, ptr %_0, align 8, !alias.scope !61, !noalias !66
87: %0 = getelementptr inbounds i8, ptr %_0, i64 8
88: store ptr %me.sroa.4.0.copyload.i, ptr %0, align 8, !alias.scope !61, !noalias !66
89: %1 = getelementptr inbounds i8, ptr %_0, i64 16
90: store i64 %_18.i.idx, ptr %1, align 8, !alias.scope !61, !noalias !66
91: ret void
92: }
93:
94: ; Function Attrs: nofree norecurse nosync nounwind nonlazybind memory(argmem: readwrite) uwtable
95: define void @vec_iterator_cast_deaggregate_fold(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([24 x i8]) align 8 dereferenceable(24) %_0, ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %vec) unnamed_addr #1 personality ptr @rust_eh_personality {
96: start:
97: %me.sroa.0.0.copyload.i = load i64, ptr %vec, align 8, !alias.scope !69, !noalias !72
98: %me.sroa.4.0.self.sroa_idx.i = getelementptr inbounds i8, ptr %vec, i64 8
99: %me.sroa.4.0.copyload.i = load ptr, ptr %me.sroa.4.0.self.sroa_idx.i, align 8, !alias.scope !69, !noalias !72, !nonnull !8, !noundef !8
100: %me.sroa.5.0.self.sroa_idx.i = getelementptr inbounds i8, ptr %vec, i64 16
101: %me.sroa.5.0.copyload.i = load i64, ptr %me.sroa.5.0.self.sroa_idx.i, align 8, !alias.scope !69, !noalias !72
102: store i64 %me.sroa.0.0.copyload.i, ptr %_0, align 8, !alias.scope !74, !noalias !79
103: %0 = getelementptr inbounds i8, ptr %_0, i64 8
104: store ptr %me.sroa.4.0.copyload.i, ptr %0, align 8, !alias.scope !74, !noalias !79
105: %1 = getelementptr inbounds i8, ptr %_0, i64 16
106: store i64 %me.sroa.5.0.copyload.i, ptr %1, align 8, !alias.scope !74, !noalias !79
107: ret void
108: }
109:
110: ; Function Attrs: nounwind nonlazybind uwtable
111: define void @vec_iterator_cast_unwrap_drop(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([24 x i8]) align 8 dereferenceable(24) %_0, ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %vec) unnamed_addr #2 personality ptr @rust_eh_personality {
112: start:
113: %me.sroa.0.0.copyload.i = load i64, ptr %vec, align 8, !alias.scope !82, !noalias !85
114: %me.sroa.4.0.self.sroa_idx.i = getelementptr inbounds i8, ptr %vec, i64 8
115: %me.sroa.4.0.copyload.i = load ptr, ptr %me.sroa.4.0.self.sroa_idx.i, align 8, !alias.scope !82, !noalias !85, !nonnull !8, !noundef !8
116: %me.sroa.5.0.self.sroa_idx.i = getelementptr inbounds i8, ptr %vec, i64 16
117: %me.sroa.5.0.copyload.i = load i64, ptr %me.sroa.5.0.self.sroa_idx.i, align 8, !alias.scope !82, !noalias !85
118: %_18.i = getelementptr inbounds %"Wrapper<alloc::string::String>", ptr %me.sroa.4.0.copyload.i, i64 %me.sroa.5.0.copyload.i
119: tail call void @llvm.experimental.noalias.scope.decl(metadata !87)
not:98 !~~~ error: no match expected
120: tail call void @llvm.experimental.noalias.scope.decl(metadata !90)
121: %_47.not8.i.i.i.i.i = icmp eq i64 %me.sroa.5.0.copyload.i, 0
122: br i1 %_47.not8.i.i.i.i.i, label %bb6.i.i, label %bb11.i.i.i.i.i
not:97 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match expected
123:
124: bb11.i.i.i.i.i: ; preds = %start, %bb11.i.i.i.i.i
125: %accum.sroa.4.010.i.i.i.i.i = phi ptr [ %_6.i.i.i.i.i.i.i, %bb11.i.i.i.i.i ], [ %me.sroa.4.0.copyload.i, %start ]
126: %_6.i.i.i.i.i.i.i = getelementptr i8, ptr %accum.sroa.4.010.i.i.i.i.i, i64 24
127: %_47.not.i.i.i.i.i = icmp eq ptr %_6.i.i.i.i.i.i.i, %_18.i
128: br i1 %_47.not.i.i.i.i.i, label %bb6.i.i, label %bb11.i.i.i.i.i
129:
130: bb6.i.i: ; preds = %bb11.i.i.i.i.i, %start
131: %self2.i.i.i = phi ptr [ %me.sroa.4.0.copyload.i, %start ], [ %_6.i.i.i.i.i.i.i, %bb11.i.i.i.i.i ]
132: %accum.sroa.4.0.lcssa.i.i.i.i.i = phi ptr [ %me.sroa.4.0.copyload.i, %start ], [ %_18.i, %bb11.i.i.i.i.i ]
133: %0 = ptrtoint ptr %_18.i to i64
134: %1 = ptrtoint ptr %self2.i.i.i to i64
135: %2 = sub nuw i64 %0, %1
136: %3 = udiv exact i64 %2, 24
not:100 !~~~~~~~~ error: no match expected
137: tail call void @llvm.experimental.noalias.scope.decl(metadata !93)
138: %_710.i.i.i.i = icmp eq ptr %_18.i, %self2.i.i.i
139: br i1 %_710.i.i.i.i, label %"_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17heaba35c2218b2756E.exit", label %bb5.i.i.i.i
140:
141: bb5.i.i.i.i: ; preds = %bb6.i.i, %"_ZN4core3ptr71drop_in_place$LT$vec_in_place..Wrapper$LT$alloc..string..String$GT$$GT$17he9d1d0763a5e7e3bE.exit.i.i.i.i"
142: %_3.sroa.0.011.i.i.i.i = phi i64 [ %4, %"_ZN4core3ptr71drop_in_place$LT$vec_in_place..Wrapper$LT$alloc..string..String$GT$$GT$17he9d1d0763a5e7e3bE.exit.i.i.i.i" ], [ 0, %bb6.i.i ]
143: %_6.i.i.i.i = getelementptr inbounds [0 x %"Wrapper<alloc::string::String>"], ptr %self2.i.i.i, i64 0, i64 %_3.sroa.0.011.i.i.i.i
144: %4 = add nuw i64 %_3.sroa.0.011.i.i.i.i, 1
145: tail call void @llvm.experimental.noalias.scope.decl(metadata !96)
146: tail call void @llvm.experimental.noalias.scope.decl(metadata !99)
147: tail call void @llvm.experimental.noalias.scope.decl(metadata !102)
148: tail call void @llvm.experimental.noalias.scope.decl(metadata !105)
149: tail call void @llvm.experimental.noalias.scope.decl(metadata !108)
150: %_3.i.i.i1.i.i.i.i.i.i.i = load i64, ptr %_6.i.i.i.i, align 8, !alias.scope !111, !noalias !114, !noundef !8
151: %5 = icmp eq i64 %_3.i.i.i1.i.i.i.i.i.i.i, 0
152: br i1 %5, label %"_ZN4core3ptr71drop_in_place$LT$vec_in_place..Wrapper$LT$alloc..string..String$GT$$GT$17he9d1d0763a5e7e3bE.exit.i.i.i.i", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0f2d39528d187dc6E.exit.i.i2.i.i.i.i.i.i.i"
153:
154: "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0f2d39528d187dc6E.exit.i.i2.i.i.i.i.i.i.i": ; preds = %bb5.i.i.i.i
155: %6 = getelementptr inbounds i8, ptr %_6.i.i.i.i, i64 8
156: %self1.i.i.i3.i.i.i.i.i.i.i = load ptr, ptr %6, align 8, !alias.scope !111, !noalias !114, !nonnull !8, !noundef !8
157: tail call void @__rust_dealloc(ptr noundef nonnull %self1.i.i.i3.i.i.i.i.i.i.i, i64 noundef %_3.i.i.i1.i.i.i.i.i.i.i, i64 noundef 1) #6, !noalias !120
158: br label %"_ZN4core3ptr71drop_in_place$LT$vec_in_place..Wrapper$LT$alloc..string..String$GT$$GT$17he9d1d0763a5e7e3bE.exit.i.i.i.i"
159:
160: "_ZN4core3ptr71drop_in_place$LT$vec_in_place..Wrapper$LT$alloc..string..String$GT$$GT$17he9d1d0763a5e7e3bE.exit.i.i.i.i": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0f2d39528d187dc6E.exit.i.i2.i.i.i.i.i.i.i", %bb5.i.i.i.i
161: %_7.i.i.i.i = icmp eq i64 %4, %3
162: br i1 %_7.i.i.i.i, label %"_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17heaba35c2218b2756E.exit", label %bb5.i.i.i.i
163:
164: "_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17heaba35c2218b2756E.exit": ; preds = %"_ZN4core3ptr71drop_in_place$LT$vec_in_place..Wrapper$LT$alloc..string..String$GT$$GT$17he9d1d0763a5e7e3bE.exit.i.i.i.i", %bb6.i.i
165: %7 = ptrtoint ptr %accum.sroa.4.0.lcssa.i.i.i.i.i to i64
166: %8 = ptrtoint ptr %me.sroa.4.0.copyload.i to i64
167: %9 = sub nuw i64 %7, %8
168: %10 = udiv exact i64 %9, 24
169: store i64 %me.sroa.0.0.copyload.i, ptr %_0, align 8, !alias.scope !121, !noalias !122
170: %11 = getelementptr inbounds i8, ptr %_0, i64 8
171: store ptr %me.sroa.4.0.copyload.i, ptr %11, align 8, !alias.scope !121, !noalias !122
172: %12 = getelementptr inbounds i8, ptr %_0, i64 16
173: store i64 %10, ptr %12, align 8, !alias.scope !121, !noalias !122
174: ret void
175: }
176:
177: ; Function Attrs: nounwind nonlazybind uwtable
178: define void @vec_iterator_cast_wrap_drop(ptr dead_on_unwind noalias nocapture noundef writable writeonly sret([24 x i8]) align 8 dereferenceable(24) %_0, ptr noalias nocapture noundef readonly align 8 dereferenceable(24) %vec) unnamed_addr #2 personality ptr @rust_eh_personality {
179: start:
180: %me.sroa.0.0.copyload.i = load i64, ptr %vec, align 8, !alias.scope !123, !noalias !126
181: %me.sroa.4.0.self.sroa_idx.i = getelementptr inbounds i8, ptr %vec, i64 8
182: %me.sroa.4.0.copyload.i = load ptr, ptr %me.sroa.4.0.self.sroa_idx.i, align 8, !alias.scope !123, !noalias !126, !nonnull !8, !noundef !8
183: %me.sroa.5.0.self.sroa_idx.i = getelementptr inbounds i8, ptr %vec, i64 16
184: %me.sroa.5.0.copyload.i = load i64, ptr %me.sroa.5.0.self.sroa_idx.i, align 8, !alias.scope !123, !noalias !126
185: %_18.i = getelementptr inbounds %"alloc::string::String", ptr %me.sroa.4.0.copyload.i, i64 %me.sroa.5.0.copyload.i
186: tail call void @llvm.experimental.noalias.scope.decl(metadata !128)
not:109 !~~~ error: no match expected
187: tail call void @llvm.experimental.noalias.scope.decl(metadata !131)
188: %_47.not8.i.i.i.i.i = icmp eq i64 %me.sroa.5.0.copyload.i, 0
189: br i1 %_47.not8.i.i.i.i.i, label %bb6.i.i, label %bb11.i.i.i.i.i
not:108 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ error: no match expected
190:
191: bb11.i.i.i.i.i: ; preds = %start, %bb11.i.i.i.i.i
192: %accum.sroa.4.010.i.i.i.i.i = phi ptr [ %_6.i.i.i.i.i.i.i, %bb11.i.i.i.i.i ], [ %me.sroa.4.0.copyload.i, %start ]
193: %_6.i.i.i.i.i.i.i = getelementptr i8, ptr %accum.sroa.4.010.i.i.i.i.i, i64 24
194: %_47.not.i.i.i.i.i = icmp eq ptr %_6.i.i.i.i.i.i.i, %_18.i
195: br i1 %_47.not.i.i.i.i.i, label %bb6.i.i, label %bb11.i.i.i.i.i
196:
197: bb6.i.i: ; preds = %bb11.i.i.i.i.i, %start
198: %self2.i.i.i = phi ptr [ %me.sroa.4.0.copyload.i, %start ], [ %_6.i.i.i.i.i.i.i, %bb11.i.i.i.i.i ]
199: %accum.sroa.4.0.lcssa.i.i.i.i.i = phi ptr [ %me.sroa.4.0.copyload.i, %start ], [ %_18.i, %bb11.i.i.i.i.i ]
200: %0 = ptrtoint ptr %_18.i to i64
201: %1 = ptrtoint ptr %self2.i.i.i to i64
202: %2 = sub nuw i64 %0, %1
203: %3 = udiv exact i64 %2, 24
not:111 !~~~~~~~~ error: no match expected
204: tail call void @llvm.experimental.noalias.scope.decl(metadata !134)
205: %_710.i.i.i.i = icmp eq ptr %_18.i, %self2.i.i.i
206: br i1 %_710.i.i.i.i, label %"_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17h2f243e1fd049e2c3E.exit", label %bb5.i.i.i.i
207:
208: bb5.i.i.i.i: ; preds = %bb6.i.i, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17ha0ebea32be7a5449E.exit.i.i.i.i"
209: %_3.sroa.0.011.i.i.i.i = phi i64 [ %4, %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17ha0ebea32be7a5449E.exit.i.i.i.i" ], [ 0, %bb6.i.i ]
210: %_6.i.i.i.i = getelementptr inbounds [0 x %"alloc::string::String"], ptr %self2.i.i.i, i64 0, i64 %_3.sroa.0.011.i.i.i.i
211: %4 = add nuw i64 %_3.sroa.0.011.i.i.i.i, 1
212: tail call void @llvm.experimental.noalias.scope.decl(metadata !137)
213: tail call void @llvm.experimental.noalias.scope.decl(metadata !140)
214: tail call void @llvm.experimental.noalias.scope.decl(metadata !143)
215: tail call void @llvm.experimental.noalias.scope.decl(metadata !146)
216: %_3.i.i.i1.i.i.i.i.i.i = load i64, ptr %_6.i.i.i.i, align 8, !alias.scope !149, !noalias !152, !noundef !8
217: %5 = icmp eq i64 %_3.i.i.i1.i.i.i.i.i.i, 0
218: br i1 %5, label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17ha0ebea32be7a5449E.exit.i.i.i.i", label %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0f2d39528d187dc6E.exit.i.i2.i.i.i.i.i.i"
219:
220: "_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0f2d39528d187dc6E.exit.i.i2.i.i.i.i.i.i": ; preds = %bb5.i.i.i.i
221: %6 = getelementptr inbounds i8, ptr %_6.i.i.i.i, i64 8
222: %self1.i.i.i3.i.i.i.i.i.i = load ptr, ptr %6, align 8, !alias.scope !149, !noalias !152, !nonnull !8, !noundef !8
223: tail call void @__rust_dealloc(ptr noundef nonnull %self1.i.i.i3.i.i.i.i.i.i, i64 noundef %_3.i.i.i1.i.i.i.i.i.i, i64 noundef 1) #6, !noalias !158
224: br label %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17ha0ebea32be7a5449E.exit.i.i.i.i"
225:
226: "_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17ha0ebea32be7a5449E.exit.i.i.i.i": ; preds = %"_ZN63_$LT$alloc..alloc..Global$u20$as$u20$core..alloc..Allocator$GT$10deallocate17h0f2d39528d187dc6E.exit.i.i2.i.i.i.i.i.i", %bb5.i.i.i.i
227: %_7.i.i.i.i = icmp eq i64 %4, %3
228: br i1 %_7.i.i.i.i, label %"_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17h2f243e1fd049e2c3E.exit", label %bb5.i.i.i.i
229:
230: "_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17h2f243e1fd049e2c3E.exit": ; preds = %"_ZN4core3ptr42drop_in_place$LT$alloc..string..String$GT$17ha0ebea32be7a5449E.exit.i.i.i.i", %bb6.i.i
231: %7 = ptrtoint ptr %accum.sroa.4.0.lcssa.i.i.i.i.i to i64
232: %8 = ptrtoint ptr %me.sroa.4.0.copyload.i to i64
233: %9 = sub nuw i64 %7, %8
234: %10 = udiv exact i64 %9, 24
235: store i64 %me.sroa.0.0.copyload.i, ptr %_0, align 8, !alias.scope !159, !noalias !160
236: %11 = getelementptr inbounds i8, ptr %_0, i64 8
237: store ptr %me.sroa.4.0.copyload.i, ptr %11, align 8, !alias.scope !159, !noalias !160
238: %12 = getelementptr inbounds i8, ptr %_0, i64 16
239: store i64 %10, ptr %12, align 8, !alias.scope !159, !noalias !160
240: ret void
241: }
242:
243: ; Function Attrs: nonlazybind uwtable
244: declare noundef i32 @rust_eh_personality(i32 noundef, i32 noundef, i64 noundef, ptr noundef, ptr noundef) unnamed_addr #3
245:
246: ; Function Attrs: nounwind nonlazybind allockind("free") uwtable
247: declare void @__rust_dealloc(ptr allocptr noundef, i64 noundef, i64 noundef) unnamed_addr #4
248:
249: ; Function Attrs: nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite)
250: declare void @llvm.experimental.noalias.scope.decl(metadata) #5
251:
252: attributes #0 = { mustprogress nofree norecurse nosync nounwind nonlazybind willreturn memory(argmem: readwrite) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" }
253: attributes #1 = { nofree norecurse nosync nounwind nonlazybind memory(argmem: readwrite) uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" }
254: attributes #2 = { nounwind nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" }
255: attributes #3 = { nonlazybind uwtable "probe-stack"="inline-asm" "target-cpu"="x86-64" }
256: attributes #4 = { nounwind nonlazybind allockind("free") uwtable "alloc-family"="__rust_alloc" "probe-stack"="inline-asm" "target-cpu"="x86-64" }
257: attributes #5 = { nocallback nofree nosync nounwind willreturn memory(inaccessiblemem: readwrite) }
258: attributes #6 = { nounwind }
259:
260: !llvm.module.flags = !{!0, !1}
261: !llvm.ident = !{!2}
262:
263: !0 = !{i32 8, !"PIC Level", i32 2}
264: !1 = !{i32 2, !"RtLibUseGOT", i32 1}
265: !2 = !{!"rustc version 1.80.0-dev"}
266: !3 = !{!4}
267: !4 = distinct !{!4, !5, !"_ZN90_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h4e944e9c75742b34E: %self"}
268: !5 = distinct !{!5, !"_ZN90_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h4e944e9c75742b34E"}
269: !6 = !{!7}
270: !7 = distinct !{!7, !5, !"_ZN90_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h4e944e9c75742b34E: %_0"}
271: !8 = !{}
272: !9 = !{!10, !12}
273: !10 = distinct !{!10, !11, !"_ZN5alloc3vec16in_place_collect18from_iter_in_place17h95c3e8ed0aa22dd5E: %vec"}
274: !11 = distinct !{!11, !"_ZN5alloc3vec16in_place_collect18from_iter_in_place17h95c3e8ed0aa22dd5E"}
275: !12 = distinct !{!12, !13, !"_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17h42a09ea266c3b9e0E: %_0"}
276: !13 = distinct !{!13, !"_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17h42a09ea266c3b9e0E"}
277: !14 = !{!15, !16}
278: !15 = distinct !{!15, !11, !"_ZN5alloc3vec16in_place_collect18from_iter_in_place17h95c3e8ed0aa22dd5E: %iterator"}
279: !16 = distinct !{!16, !13, !"_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17h42a09ea266c3b9e0E: %iterator"}
280: !17 = !{!18}
281: !18 = distinct !{!18, !19, !"_ZN90_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h816975ba8271cf4fE: %self"}
282: !19 = distinct !{!19, !"_ZN90_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h816975ba8271cf4fE"}
283: !20 = !{!21}
284: !21 = distinct !{!21, !19, !"_ZN90_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h816975ba8271cf4fE: %_0"}
285: !22 = !{!23, !25}
286: !23 = distinct !{!23, !24, !"_ZN5alloc3vec16in_place_collect18from_iter_in_place17hf702aa1637d1c1e2E: %vec"}
287: !24 = distinct !{!24, !"_ZN5alloc3vec16in_place_collect18from_iter_in_place17hf702aa1637d1c1e2E"}
288: !25 = distinct !{!25, !26, !"_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17h8ca7b4c96408a2b9E: %_0"}
289: !26 = distinct !{!26, !"_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17h8ca7b4c96408a2b9E"}
290: !27 = !{!28, !29}
291: !28 = distinct !{!28, !24, !"_ZN5alloc3vec16in_place_collect18from_iter_in_place17hf702aa1637d1c1e2E: %iterator"}
292: !29 = distinct !{!29, !26, !"_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17h8ca7b4c96408a2b9E: %iterator"}
293: !30 = !{!31}
294: !31 = distinct !{!31, !32, !"_ZN90_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h42a94bf679cb6a17E: %self"}
295: !32 = distinct !{!32, !"_ZN90_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h42a94bf679cb6a17E"}
296: !33 = !{!34}
297: !34 = distinct !{!34, !32, !"_ZN90_$LT$alloc..vec..Vec$LT$T$C$A$GT$$u20$as$u20$core..iter..traits..collect..IntoIterator$GT$9into_iter17h42a94bf679cb6a17E: %_0"}
298: !35 = !{!36, !38}
299: !36 = distinct !{!36, !37, !"_ZN5alloc3vec16in_place_collect18from_iter_in_place17h090eecf57f869f89E: %vec"}
300: !37 = distinct !{!37, !"_ZN5alloc3vec16in_place_collect18from_iter_in_place17h090eecf57f869f89E"}
301: !38 = distinct !{!38, !39, !"_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17h0d58b7de551627c3E: %_0"}
302: !39 = distinct !{!39, !"_ZN5alloc3vec16in_place_collect108_$LT$impl$u20$alloc..vec..spec_from_iter..SpecFromIter$LT$T$C$I$GT$$u20$for$u20$alloc..vec..Vec$LT$T$GT$$GT$9from_iter17h0d58b7de551627c3E"}
303: !40 = !{!41, !42}
.
.
.
>>>>>>
------------------------------------------
failures:
[codegen] tests/codegen/vec-in-place.rs
Filing this so we don't lose track of it.