blob: a90bc4c7c1b0433b9bbfec715d2a787ec38fd88b [file] [log] [blame]
Karl Schimpf47661562014-09-11 14:42:49 -07001; Test reading phi instructions.
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 Schimpf47661562014-09-11 14:42:49 -07008
9; TODO(kschimpf) Add forward reference examples.
10
11define internal i32 @testPhi1(i32 %arg) {
12entry:
13 %cmp1 = icmp sgt i32 %arg, 0
14 br i1 %cmp1, label %next, label %target
15next:
16 br label %target
17target:
18 %merge = phi i1 [ %cmp1, %entry ], [ false, %next ]
19 %result = zext i1 %merge to i32
20 ret i32 %result
21}
22
23; CHECK: define internal i32 @testPhi1(i32 %arg) {
24; CHECK-NEXT: entry:
25; CHECK-NEXT: %cmp1 = icmp sgt i32 %arg, 0
26; CHECK-NEXT: br i1 %cmp1, label %next, label %target
27; CHECK-NEXT: next:
28; CHECK-NEXT: br label %target
29; CHECK-NEXT: target:
30; CHECK-NEXT: %merge = phi i1 [ %cmp1, %entry ], [ false, %next ]
31; CHECK-NEXT: %result = zext i1 %merge to i32
32; CHECK-NEXT: ret i32 %result
33; CHECK-NEXT: }
34
Karl Schimpf6fcbddd2014-11-06 09:49:24 -080035; NOIR: Total across all functions