| // RUN: %clang_cc1 -emit-llvm -triple=armv7-apple-darwin -std=c++11 %s -o - -O1 \ |
| // RUN: | FileCheck %s |
| // RUN: %clang_cc1 -emit-llvm -triple=armv7-apple-darwin -std=c++11 %s -o - -O1 \ |
| // RUN: -discard-value-names | FileCheck %s --check-prefix=DISCARDVALUE |
| |
| extern "C" void branch(); |
| |
| bool test(bool pred) { |
| // DISCARDVALUE: br i1 %0, label %2, label %3 |
| // CHECK: br i1 %pred, label %if.then, label %if.end |
| |
| if (pred) { |
| // DISCARDVALUE: ; <label>:2: |
| // DISCARDVALUE-NEXT: tail call void @branch() |
| // DISCARDVALUE-NEXT: br label %3 |
| |
| // CHECK: if.then: |
| // CHECK-NEXT: tail call void @branch() |
| // CHECK-NEXT: br label %if.end |
| branch(); |
| } |
| |
| // DISCARDVALUE: ; <label>:3: |
| // DISCARDVALUE-NEXT: ret i1 %0 |
| |
| // CHECK: if.end: |
| // CHECK-NEXT: ret i1 %pred |
| return pred; |
| } |