66 lines · plain
1; RUN: opt < %s -passes=dse -S | FileCheck %s2 3; CHECK-LABEL: void @skipBarrier(ptr %ptr)4define void @skipBarrier(ptr %ptr) {5; CHECK-NOT: store i8 426 store i8 42, ptr %ptr7; CHECK: %ptr2 = call ptr @llvm.launder.invariant.group.p0(ptr %ptr)8 %ptr2 = call ptr @llvm.launder.invariant.group.p0(ptr %ptr)9; CHECK: store i8 4310 store i8 43, ptr %ptr211 ret void12}13 14; CHECK-LABEL: void @skip2Barriers(ptr %ptr)15define void @skip2Barriers(ptr %ptr) {16; CHECK-NOT: store i8 4217 store i8 42, ptr %ptr18; CHECK: %ptr2 = call ptr @llvm.launder.invariant.group.p0(ptr %ptr)19 %ptr2 = call ptr @llvm.launder.invariant.group.p0(ptr %ptr)20; CHECK-NOT: store i8 4321 store i8 43, ptr %ptr222 %ptr3 = call ptr @llvm.launder.invariant.group.p0(ptr %ptr2)23 %ptr4 = call ptr @llvm.launder.invariant.group.p0(ptr %ptr3)24 25; CHECK: store i8 4426 store i8 44, ptr %ptr427 ret void28}29 30; CHECK-LABEL: void @skip3Barriers(ptr %ptr)31define void @skip3Barriers(ptr %ptr) {32; CHECK-NOT: store i8 4233 store i8 42, ptr %ptr34; CHECK: %ptr2 = call ptr @llvm.strip.invariant.group.p0(ptr %ptr)35 %ptr2 = call ptr @llvm.strip.invariant.group.p0(ptr %ptr)36; CHECK-NOT: store i8 4337 store i8 43, ptr %ptr238 %ptr3 = call ptr @llvm.strip.invariant.group.p0(ptr %ptr2)39 %ptr4 = call ptr @llvm.strip.invariant.group.p0(ptr %ptr3)40 41; CHECK: store i8 4442 store i8 44, ptr %ptr443 ret void44}45 46; CHECK-LABEL: void @skip4Barriers(ptr %ptr)47define void @skip4Barriers(ptr %ptr) {48; CHECK-NOT: store i8 4249 store i8 42, ptr %ptr50; CHECK: %ptr2 = call ptr @llvm.strip.invariant.group.p0(ptr %ptr)51 %ptr2 = call ptr @llvm.strip.invariant.group.p0(ptr %ptr)52; CHECK-NOT: store i8 4353 store i8 43, ptr %ptr254 %ptr3 = call ptr @llvm.launder.invariant.group.p0(ptr %ptr2)55 %ptr4 = call ptr @llvm.strip.invariant.group.p0(ptr %ptr3)56 %ptr5 = call ptr @llvm.launder.invariant.group.p0(ptr %ptr3)57 58; CHECK: store i8 4459 store i8 44, ptr %ptr560 ret void61}62 63 64declare ptr @llvm.launder.invariant.group.p0(ptr)65declare ptr @llvm.strip.invariant.group.p0(ptr)66