Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / Transforms / SLPVectorizer / X86 / phi_landingpad.ll
blobc758d05cab800fbd3f976730475cfc0a1b242d72
1 ; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
2 ; RUN: opt < %s -passes=slp-vectorizer -mtriple=x86_64-apple-macosx10.9.0 -S -o - | FileCheck %s
4 target datalayout = "f64:64:64-v64:64:64"
6 define void @test_phi_in_landingpad() personality ptr
7 ; CHECK-LABEL: @test_phi_in_landingpad(
8 ; CHECK-NEXT:  entry:
9 ; CHECK-NEXT:    invoke void @foo()
10 ; CHECK-NEXT:    to label [[INNER:%.*]] unwind label [[LPAD:%.*]]
11 ; CHECK:       inner:
12 ; CHECK-NEXT:    invoke void @foo()
13 ; CHECK-NEXT:    to label [[DONE:%.*]] unwind label [[LPAD]]
14 ; CHECK:       lpad:
15 ; CHECK-NEXT:    [[TMP0:%.*]] = phi <2 x double> [ undef, [[ENTRY:%.*]] ], [ undef, [[INNER]] ]
16 ; CHECK-NEXT:    [[TMP1:%.*]] = landingpad { ptr, i32 }
17 ; CHECK-NEXT:    catch ptr null
18 ; CHECK-NEXT:    br label [[DONE]]
19 ; CHECK:       done:
20 ; CHECK-NEXT:    [[TMP2:%.*]] = phi <2 x double> [ undef, [[INNER]] ], [ [[TMP0]], [[LPAD]] ]
21 ; CHECK-NEXT:    ret void
23   @__gxx_personality_v0 {
24 entry:
25   invoke void @foo()
26   to label %inner unwind label %lpad
28 inner:
29   %x0 = fsub double undef, undef
30   %y0 = fsub double undef, undef
31   invoke void @foo()
32   to label %done unwind label %lpad
34 lpad:
35   %x1 = phi double [ undef, %entry ], [ undef, %inner ]
36   %y1 = phi double [ undef, %entry ], [ undef, %inner ]
37   landingpad { ptr, i32 } catch ptr null
38   br label %done
40 done:
41   phi double [ %x0, %inner ], [ %x1, %lpad ]
42   phi double [ %y0, %inner ], [ %y1, %lpad ]
43   ret void
46 declare void @foo()
48 declare i32 @__gxx_personality_v0(...)