blob: dfa316e4dd61c570be117dfa9136c6590e850754 [file] [log] [blame]
Piotr Padlewskic77ab8e2018-05-03 11:03:53 +00001; RUN: opt < %s -basicaa -dse -S | FileCheck %s
2
3; CHECK-LABEL: void @skipBarrier(i8* %ptr)
4define void @skipBarrier(i8* %ptr) {
5; CHECK-NOT: store i8 42
6 store i8 42, i8* %ptr
7; CHECK: %ptr2 = call i8* @llvm.launder.invariant.group.p0i8(i8* %ptr)
8 %ptr2 = call i8* @llvm.launder.invariant.group.p0i8(i8* %ptr)
9; CHECK: store i8 43
10 store i8 43, i8* %ptr2
11 ret void
12}
13
14; CHECK-LABEL: void @skip2Barriers(i8* %ptr)
15define void @skip2Barriers(i8* %ptr) {
16; CHECK-NOT: store i8 42
17 store i8 42, i8* %ptr
18; CHECK: %ptr2 = call i8* @llvm.launder.invariant.group.p0i8(i8* %ptr)
19 %ptr2 = call i8* @llvm.launder.invariant.group.p0i8(i8* %ptr)
20; CHECK-NOT: store i8 43
21 store i8 43, i8* %ptr2
22 %ptr3 = call i8* @llvm.launder.invariant.group.p0i8(i8* %ptr2)
23 %ptr4 = call i8* @llvm.launder.invariant.group.p0i8(i8* %ptr3)
24
25; CHECK: store i8 44
26 store i8 44, i8* %ptr4
27 ret void
28}
29
30declare i8* @llvm.launder.invariant.group.p0i8(i8*)