Lines Matching refs:store

16 ; DSE across unordered store (allowed)
19 ; CHECK-NEXT: store atomic i32 0, i32* @y unordered, align 4
20 ; CHECK-NEXT: store i32 1, i32* @x, align 4
23 store i32 0, i32* @x
24 store atomic i32 0, i32* @y unordered, align 4
25 store i32 1, i32* @x
29 ; DSE remove unordered store (allowed)
32 ; CHECK-NEXT: store i32 1, i32* @x, align 4
35 store atomic i32 0, i32* @x unordered, align 4
36 store i32 1, i32* @x
40 ; DSE unordered store overwriting non-atomic store (allowed)
43 ; CHECK-NEXT: store atomic i32 1, i32* @x unordered, align 4
46 store i32 0, i32* @x
47 store atomic i32 1, i32* @x unordered, align 4
51 ; DSE no-op unordered atomic store (allowed)
57 store atomic i32 %x, i32* @x unordered, align 4
61 ; DSE seq_cst store (be conservative; DSE doesn't have infrastructure
66 ; CHECK-NEXT: store atomic i32 0, i32* [[A]] seq_cst, align 4
70 store atomic i32 0, i32* %a seq_cst, align 4
80 ; CHECK-NEXT: store i32 0, i32* [[A]], align 4
86 store i32 0, i32* %a, align 4
91 ; DSE across monotonic store (allowed as long as the eliminated store isUnordered)
94 ; CHECK-NOT: store i32 0
95 ; CHECK: store i32 1
96 store i32 0, i32* @x
97 store atomic i32 42, i32* @y monotonic, align 4
98 store i32 1, i32* @x
102 ; DSE across monotonic load (forbidden since the eliminated store is atomic)
105 ; CHECK-NEXT: store atomic i32 0, i32* @x monotonic, align 4
107 ; CHECK-NEXT: store atomic i32 1, i32* @x monotonic, align 4
110 store atomic i32 0, i32* @x monotonic, align 4
112 store atomic i32 1, i32* @x monotonic, align 4
116 ; DSE across monotonic store (forbidden since the eliminated store is atomic)
119 ; CHECK-NEXT: store atomic i32 0, i32* @x monotonic, align 4
120 ; CHECK-NEXT: store atomic i32 42, i32* @y monotonic, align 4
121 ; CHECK-NEXT: store atomic i32 1, i32* @x monotonic, align 4
124 store atomic i32 0, i32* @x monotonic, align 4
125 store atomic i32 42, i32* @y monotonic, align 4
126 store atomic i32 1, i32* @x monotonic, align 4
133 ; CHECK-NEXT: store i32 0, i32* @x, align 4
134 ; CHECK-NEXT: store atomic i32 0, i32* @y release, align 4
136 ; CHECK-NEXT: store i32 1, i32* @x, align 4
139 store i32 0, i32* @x
140 store atomic i32 0, i32* @y release, align 4
142 store i32 1, i32* @x
149 ; Be conservative, do not kill regular store.
152 ; CHECK-NEXT: store i64 1, i64* @z, align 8
156 store i64 1, i64* @z
161 ; Be conservative, do not kill regular store.
164 ; CHECK-NEXT: store i64 1, i64* @z, align 8
168 store i64 1, i64* @z
177 ; CHECK-NEXT: store i64 2, i64* @z, align 8
180 store i64 1, i64* @z
182 store i64 2, i64* @z
189 ; CHECK-NEXT: store i64 1, i64* @z, align 8
191 ; CHECK-NEXT: store i64 2, i64* @z, align 8
194 store i64 1, i64* @z
196 store i64 2, i64* @z
203 ; CHECK-NEXT: store i64 1, i64* @z, align 8
205 ; CHECK-NEXT: store i64 2, i64* @z, align 8
208 store i64 1, i64* @z
210 store i64 2, i64* @z
217 ; CHECK-NEXT: store i64 1, i64* @z, align 8
219 ; CHECK-NEXT: store i64 2, i64* @z, align 8
222 store i64 1, i64* @z
224 store i64 2, i64* @z
231 ; CHECK-NEXT: store i32 1, i32* @x, align 4
233 ; CHECK-NEXT: store i32 2, i32* @x, align 4
236 store i32 1, i32* @x
238 store i32 2, i32* @x
246 ; CHECK-NEXT: store i32 2, i32* @x, align 4
249 store i32 1, i32* @x
251 store i32 2, i32* @x
258 ; CHECK-NEXT: store i32 1, i32* @x, align 4
260 ; CHECK-NEXT: store i32 2, i32* @x, align 4
263 store i32 1, i32* @x
265 store i32 2, i32* @x
272 ; CHECK-NEXT: store i32 1, i32* @x, align 4
274 ; CHECK-NEXT: store i32 2, i32* @x, align 4
277 store i32 1, i32* @x
279 store i32 2, i32* @x
286 ; CHECK-NEXT: store i32 1, i32* @x, align 4
288 ; CHECK-NEXT: store i32 2, i32* @x, align 4
291 store i32 1, i32* @x
293 store i32 2, i32* @x
297 ; **** Noop load->store tests **************************************************
305 store atomic i32 %a, i32* %Q unordered, align 4
315 store atomic i32 %a, i32* %Q unordered, align 4
323 ; CHECK-NEXT: store atomic i32 [[A]], i32* [[Q]] release, align 4
327 store atomic i32 %a, i32* %Q release, align 4