blob: 7f121874a411156ddb740822808af92a18fddeed [file] [log] [blame]
Karl Schimpf97501832014-09-16 13:35:32 -07001; Test parsing unreachable instruction.
2
Karl Schimpf2a5324a2014-09-25 09:37:49 -07003; RUN: %p2i -i %s --insts | FileCheck %s
Karl Schimpf6fcbddd2014-11-06 09:49:24 -08004; RUN: %if --need=allow_disable_ir_gen --command \
5; RUN: %p2i -i %s --args -notranslate -timing -no-ir-gen \
6; RUN: | %if --need=allow_disable_ir_gen --command \
7; RUN: FileCheck --check-prefix=NOIR %s
Karl Schimpf97501832014-09-16 13:35:32 -07008
9define internal i32 @divide(i32 %num, i32 %den) {
10entry:
11 %cmp = icmp ne i32 %den, 0
12 br i1 %cmp, label %return, label %abort
13
14abort: ; preds = %entry
15 unreachable
16
17return: ; preds = %entry
18 %div = sdiv i32 %num, %den
19 ret i32 %div
20}
21
22; CHECK: define internal i32 @divide(i32 %num, i32 %den) {
23; CHECK-NEXT: entry:
24; CHECK-NEXT: %cmp = icmp ne i32 %den, 0
25; CHECK-NEXT: br i1 %cmp, label %return, label %abort
26; CHECK-NEXT: abort:
27; CHECK-NEXT: unreachable
28; CHECK-NEXT: return:
29; CHECK-NEXT: %div = sdiv i32 %num, %den
30; CHECK-NEXT: ret i32 %div
31; CHECK-NEXT: }
Karl Schimpf6fcbddd2014-11-06 09:49:24 -080032
33; NOIR: Total across all functions