1*eca01b03SLeonard Chan; RUN: opt < %s -passes='module(sancov-module)' -sanitizer-coverage-level=4 -sanitizer-coverage-trace-pc -sanitizer-coverage-prune-blocks=1 -S | FileCheck %s 2*eca01b03SLeonard Chan; RUN: opt < %s -passes='module(sancov-module)' -sanitizer-coverage-level=4 -sanitizer-coverage-trace-pc -sanitizer-coverage-prune-blocks=0 -S | FileCheck %s --check-prefix=CHECK_NO_PRUNE 3a1c53278SGeorge Karpenkov 4a1c53278SGeorge Karpenkovdefine i32 @foo(i32) #0 { 5a1c53278SGeorge Karpenkov %2 = icmp sgt i32 %0, 0 6a1c53278SGeorge Karpenkov br i1 %2, label %left, label %right 7a1c53278SGeorge Karpenkov; CHECK: call void @__sanitizer_cov_trace_pc() 8a1c53278SGeorge Karpenkov 9a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc() 10a1c53278SGeorge Karpenkov 11a1c53278SGeorge Karpenkovleft: 12a1c53278SGeorge Karpenkov %3 = icmp sgt i32 %0, 10 13a1c53278SGeorge Karpenkov br i1 %3, label %left_left, label %left_right 14a1c53278SGeorge Karpenkov; CHECK-LABEL: left: 15a1c53278SGeorge Karpenkov; CHECK-NOT: call void @__sanitizer_cov_trace_pc() 16a1c53278SGeorge Karpenkov 17a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE-LABEL: left: 18a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc() 19a1c53278SGeorge Karpenkov 20a1c53278SGeorge Karpenkovleft_left: 21a1c53278SGeorge Karpenkov br label %left_join 22a1c53278SGeorge Karpenkov; CHECK-LABEL: left_left: 23a1c53278SGeorge Karpenkov; CHECK: call void @__sanitizer_cov_trace_pc() 24a1c53278SGeorge Karpenkov 25a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE-LABEL: left_left: 26a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc() 27a1c53278SGeorge Karpenkov 28a1c53278SGeorge Karpenkovleft_right: 29a1c53278SGeorge Karpenkov br label %left_join 30a1c53278SGeorge Karpenkov; CHECK-LABEL: left_right: 31a1c53278SGeorge Karpenkov; CHECK: call void @__sanitizer_cov_trace_pc() 32a1c53278SGeorge Karpenkov 33a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE-LABEL: left_right: 34a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc() 35a1c53278SGeorge Karpenkov 36a1c53278SGeorge Karpenkovleft_join: 37a1c53278SGeorge Karpenkov br label %finish 38a1c53278SGeorge Karpenkov; CHECK-LABEL: left_join: 39a1c53278SGeorge Karpenkov; CHECK-NOT: call void @__sanitizer_cov_trace_pc() 40a1c53278SGeorge Karpenkov 41a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE-LABEL: left_join: 42a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc() 43a1c53278SGeorge Karpenkov 44a1c53278SGeorge Karpenkovright: 45a1c53278SGeorge Karpenkov %4 = icmp sgt i32 %0, 10 46a1c53278SGeorge Karpenkov br i1 %4, label %right_left, label %right_right 47a1c53278SGeorge Karpenkov; CHECK-LABEL: right: 48a1c53278SGeorge Karpenkov; CHECK-NOT: call void @__sanitizer_cov_trace_pc() 49a1c53278SGeorge Karpenkov 50a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE-LABEL: right: 51a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc() 52a1c53278SGeorge Karpenkov 53a1c53278SGeorge Karpenkovright_left: 54a1c53278SGeorge Karpenkov br label %right_join 55a1c53278SGeorge Karpenkov; CHECK-LABEL: right_left: 56a1c53278SGeorge Karpenkov; CHECK: call void @__sanitizer_cov_trace_pc() 57a1c53278SGeorge Karpenkov 58a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE-LABEL: right_left: 59a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc() 60a1c53278SGeorge Karpenkov 61a1c53278SGeorge Karpenkovright_right: 62a1c53278SGeorge Karpenkov br label %right_join 63a1c53278SGeorge Karpenkov; CHECK-LABEL: right_right: 64a1c53278SGeorge Karpenkov; CHECK: call void @__sanitizer_cov_trace_pc() 65a1c53278SGeorge Karpenkov 66a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE-LABEL: right_right: 67a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc() 68a1c53278SGeorge Karpenkov 69a1c53278SGeorge Karpenkovright_join: 70a1c53278SGeorge Karpenkov br label %finish 71a1c53278SGeorge Karpenkov; CHECK-LABEL: right_join: 72a1c53278SGeorge Karpenkov; CHECK-NOT: call void @__sanitizer_cov_trace_pc() 73a1c53278SGeorge Karpenkov 74a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE-LABEL: right_join: 75a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc() 76a1c53278SGeorge Karpenkov 77a1c53278SGeorge Karpenkovfinish: 78a1c53278SGeorge Karpenkov ret i32 %0 79a1c53278SGeorge Karpenkov; CHECK-LABEL: finish: 80a1c53278SGeorge Karpenkov; CHECK-NOT: call void @__sanitizer_cov_trace_pc() 81a1c53278SGeorge Karpenkov 82a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE-LABEL: finish: 83a1c53278SGeorge Karpenkov; CHECK_NO_PRUNE: call void @__sanitizer_cov_trace_pc() 84a1c53278SGeorge Karpenkov 85a1c53278SGeorge Karpenkov} 86