52 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt < %s -passes=slp-vectorizer -mtriple=x86_64-apple-macosx10.9.0 -S -o - | FileCheck %s3 4target datalayout = "f64:64:64-v64:64:64"5 6define void @test_phi_in_landingpad() personality ptr7; 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: [[X1:%.*]] = phi double [ undef, [[ENTRY:%.*]] ], [ undef, [[INNER]] ]16; CHECK-NEXT: [[Y1:%.*]] = phi double [ undef, [[ENTRY]] ], [ undef, [[INNER]] ]17; CHECK-NEXT: [[TMP1:%.*]] = landingpad { ptr, i32 }18; CHECK-NEXT: catch ptr null19; CHECK-NEXT: [[TMP3:%.*]] = insertelement <2 x double> poison, double [[X1]], i32 020; CHECK-NEXT: [[TMP0:%.*]] = insertelement <2 x double> [[TMP3]], double [[Y1]], i32 121; CHECK-NEXT: br label [[DONE]]22; CHECK: done:23; CHECK-NEXT: [[TMP2:%.*]] = phi <2 x double> [ undef, [[INNER]] ], [ [[TMP0]], [[LPAD]] ]24; CHECK-NEXT: ret void25;26 @__gxx_personality_v0 {27entry:28 invoke void @foo()29 to label %inner unwind label %lpad30 31inner:32 %x0 = fsub double undef, undef33 %y0 = fsub double undef, undef34 invoke void @foo()35 to label %done unwind label %lpad36 37lpad:38 %x1 = phi double [ undef, %entry ], [ undef, %inner ]39 %y1 = phi double [ undef, %entry ], [ undef, %inner ]40 landingpad { ptr, i32 } catch ptr null41 br label %done42 43done:44 phi double [ %x0, %inner ], [ %x1, %lpad ]45 phi double [ %y0, %inner ], [ %y1, %lpad ]46 ret void47}48 49declare void @foo()50 51declare i32 @__gxx_personality_v0(...)52