xref: /llvm-project/llvm/test/CodeGen/PowerPC/tail-dup-analyzable-fallthrough.ll (revision 5403c59c608c08c8ecd4303763f08eb046eb5e4d)
1; RUN: llc -O2 < %s | FileCheck %s
2target datalayout = "e-m:e-i64:64-n32:64"
3target triple = "powerpc64le-unknown-linux-gnu"
4
5; Check that the conditional return block of fmax_double3.exit was not
6; duplicated into the if.then.i block
7; CHECK: # %if.then.i
8; CHECK: xxlxor
9; CHECK: stxvd2x
10; CHECK-NOT: bclr
11; CHECK: {{^}}.LBB{{[0-9_]+}}:
12; CHECK-SAME: # %fmax_double3.exit
13; CHECK: bclr
14; CHECK: # %if.then
15; Function Attrs: nounwind
16define void @__fmax_double3_3D_exec(ptr %input6, i1 %bool1, i1 %bool2) #0 {
17entry:
18  br i1 %bool1, label %if.then.i, label %fmax_double3.exit
19
20if.then.i:                                        ; preds = %entry
21  store <2 x double> zeroinitializer, ptr %input6, align 32
22  br label %fmax_double3.exit
23
24fmax_double3.exit:                                ; preds = %if.then.i, %entry
25  br i1 %bool2, label %if.then, label %do.end
26
27if.then:                                          ; preds = %fmax_double3.exit
28  unreachable
29
30do.end:                                           ; preds = %fmax_double3.exit
31  ret void
32}
33
34attributes #0 = { nounwind }
35