1 // RUN: %clang_cc1 -emit-llvm -triple=armv7-apple-darwin -std=c++11 %s -o - -O1 \
2 // RUN: | FileCheck %s
3 // RUN: %clang_cc1 -emit-llvm -triple=armv7-apple-darwin -std=c++11 %s -o - -O1 \
4 // RUN: -discard-value-names | FileCheck %s --check-prefix=DISCARDVALUE
5
6 extern "C" void branch();
7
test(bool pred)8 bool test(bool pred) {
9 // DISCARDVALUE: br i1 %0, label %2, label %3
10 // CHECK: br i1 %pred, label %if.then, label %if.end
11
12 if (pred) {
13 // DISCARDVALUE: 2:
14 // DISCARDVALUE-NEXT: call void @branch()
15 // DISCARDVALUE-NEXT: br label %3
16
17 // CHECK: if.then:
18 // CHECK-NEXT: call void @branch()
19 // CHECK-NEXT: br label %if.end
20 branch();
21 }
22
23 // DISCARDVALUE: 3:
24 // DISCARDVALUE-NEXT: ret i1 %0
25
26 // CHECK: if.end:
27 // CHECK-NEXT: ret i1 %pred
28 return pred;
29 }
30