1cea80760SAndrew Litteken; NOTE: Assertions have been autogenerated by utils/update_test_checks.py 29dd9575cSRoman Lebedev; RUN: opt -S -passes=verify,iroutliner -ir-outlining-no-cost < %s | FileCheck %s 3cea80760SAndrew Litteken 4cea80760SAndrew Litteken; Show that we do not extract phi nodes as it would require extra label and 5cea80760SAndrew Litteken; control flow checking. 6cea80760SAndrew Litteken 7*f4b925eeSMatt Arsenaultdefine void @function1(ptr %a, ptr %b) { 8cea80760SAndrew Litteken; CHECK-LABEL: @function1( 9cea80760SAndrew Litteken; CHECK-NEXT: entry: 10cea80760SAndrew Litteken; CHECK-NEXT: br label [[FIRST:%.*]] 11cea80760SAndrew Litteken; CHECK: first: 12cea80760SAndrew Litteken; CHECK-NEXT: [[TMP0:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ 3, [[NEXT:%.*]] ] 13*f4b925eeSMatt Arsenault; CHECK-NEXT: call void @outlined_ir_func_0(ptr [[A:%.*]], ptr [[B:%.*]]) 14cea80760SAndrew Litteken; CHECK-NEXT: ret void 15cea80760SAndrew Litteken; CHECK: next: 16cea80760SAndrew Litteken; CHECK-NEXT: br label [[FIRST]] 17cea80760SAndrew Litteken; 18cea80760SAndrew Littekenentry: 19cea80760SAndrew Litteken br label %first 20cea80760SAndrew Littekenfirst: 21cea80760SAndrew Litteken %0 = phi i32 [ 0, %entry ], [ 3, %next ] 22*f4b925eeSMatt Arsenault store i32 2, ptr %a, align 4 23*f4b925eeSMatt Arsenault store i32 3, ptr %b, align 4 24cea80760SAndrew Litteken ret void 25cea80760SAndrew Littekennext: 26cea80760SAndrew Litteken br label %first 27cea80760SAndrew Litteken} 28cea80760SAndrew Litteken 29*f4b925eeSMatt Arsenaultdefine void @function2(ptr %a, ptr %b) { 30cea80760SAndrew Litteken; CHECK-LABEL: @function2( 31cea80760SAndrew Litteken; CHECK-NEXT: entry: 32cea80760SAndrew Litteken; CHECK-NEXT: br label [[FIRST:%.*]] 33cea80760SAndrew Litteken; CHECK: first: 34cea80760SAndrew Litteken; CHECK-NEXT: [[TMP0:%.*]] = phi i32 [ 0, [[ENTRY:%.*]] ], [ 3, [[NEXT:%.*]] ] 35*f4b925eeSMatt Arsenault; CHECK-NEXT: call void @outlined_ir_func_0(ptr [[A:%.*]], ptr [[B:%.*]]) 36cea80760SAndrew Litteken; CHECK-NEXT: ret void 37cea80760SAndrew Litteken; CHECK: next: 38cea80760SAndrew Litteken; CHECK-NEXT: br label [[FIRST]] 39cea80760SAndrew Litteken; 40cea80760SAndrew Littekenentry: 41cea80760SAndrew Litteken br label %first 42cea80760SAndrew Littekenfirst: 43cea80760SAndrew Litteken %0 = phi i32 [ 0, %entry ], [ 3, %next ] 44*f4b925eeSMatt Arsenault store i32 2, ptr %a, align 4 45*f4b925eeSMatt Arsenault store i32 3, ptr %b, align 4 46cea80760SAndrew Litteken ret void 47cea80760SAndrew Littekennext: 48cea80760SAndrew Litteken br label %first 49cea80760SAndrew Litteken} 50