xref: /llvm-project/polly/test/CodeGen/phi_after_error_block_outside_of_scop.ll (revision e1f056f692d869708c1898d9d65a69ac5584a0ed)
1; RUN: opt %loadNPMPolly -passes=polly-codegen -S < %s | FileCheck %s
2
3; Make sure code generation does not break in case an 'error block' is detected
4; outside of the scope. In this situation, we should not affect code generation.
5
6; CHECK:        polly.cond:
7; CHECK-NEXT:   ptrtoint ptr %tmp8 to i64
8; CHECK-NEXT:   icmp sle i64
9; CHECK-NEXT:   ptrtoint ptr %tmp8 to i64
10; CHECK-NEXT:   icmp sge i64
11; CHECK-NEXT:   or i1
12; CHECK-NEXT:   label %polly.then, label %polly.else
13
14target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
15
16declare void @widget()
17
18define void @baz() {
19bb:
20  br label %bb1
21
22bb1:
23  br i1 undef, label %bb5, label %bb2
24
25bb2:
26  %tmp = call ptr @pluto()
27  br label %bb6
28
29bb5:
30  call void @widget()
31  br label %bb7
32
33bb6:
34  br label %bb7
35
36bb7:
37  %tmp8 = phi ptr [ %tmp, %bb6 ], [ null, %bb5 ]
38  br label %bb9
39
40bb9:
41  %tmp10 = icmp eq ptr %tmp8, null
42  br i1 %tmp10, label %bb12, label %bb11
43
44bb11:
45  br label %bb12
46
47bb12:
48  %tmp13 = phi ptr [ undef, %bb9 ], [ undef, %bb11 ]
49  ret void
50}
51
52declare ptr @pluto()
53