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 freeze instructions, since extra handling is 5cea80760SAndrew Litteken; required to mark any outputs used with freeze. 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: 12*f4b925eeSMatt Arsenault; CHECK-NEXT: [[C:%.*]] = freeze ptr [[A:%.*]] 13*f4b925eeSMatt Arsenault; CHECK-NEXT: call void @outlined_ir_func_0(ptr [[C]], 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: 21*f4b925eeSMatt Arsenault %c = freeze ptr %a 22*f4b925eeSMatt Arsenault store i32 2, ptr %c, 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: 34*f4b925eeSMatt Arsenault; CHECK-NEXT: [[C:%.*]] = freeze ptr [[A:%.*]] 35*f4b925eeSMatt Arsenault; CHECK-NEXT: call void @outlined_ir_func_0(ptr [[C]], 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: 43*f4b925eeSMatt Arsenault %c = freeze ptr %a 44*f4b925eeSMatt Arsenault store i32 2, ptr %c, 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