1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 2; RUN: opt < %s -slp-vectorizer -mtriple=x86_64-apple-macosx10.9.0 -S -o - | FileCheck %s 3 4target datalayout = "f64:64:64-v64:64:64" 5 6define void @test_phi_in_landingpad() personality i8* 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 { i8*, i32 } 17; CHECK-NEXT: catch i8* 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 22; 23 bitcast (i32 (...)* @__gxx_personality_v0 to i8*) { 24entry: 25 invoke void @foo() 26 to label %inner unwind label %lpad 27 28inner: 29 %x0 = fsub double undef, undef 30 %y0 = fsub double undef, undef 31 invoke void @foo() 32 to label %done unwind label %lpad 33 34lpad: 35 %x1 = phi double [ undef, %entry ], [ undef, %inner ] 36 %y1 = phi double [ undef, %entry ], [ undef, %inner ] 37 landingpad { i8*, i32 } catch i8* null 38 br label %done 39 40done: 41 phi double [ %x0, %inner ], [ %x1, %lpad ] 42 phi double [ %y0, %inner ], [ %y1, %lpad ] 43 ret void 44} 45 46declare void @foo() 47 48declare i32 @__gxx_personality_v0(...) 49