brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 31cfe2c Raw
57 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --include-generated-funcs2; RUN: opt -S -passes=verify,iroutliner -ir-outlining-no-cost < %s | FileCheck %s3 4; Show that we are able to outline the simple phi node case of constants when5; the corresponding labels match.6 7define void @function1(ptr %a, ptr %b) {8entry:9  br label %test10test:11  br label %first12first:13  %0 = phi i32 [ 0, %test ]14  store i32 2, ptr %a, align 415  store i32 3, ptr %b, align 416  ret void17}18 19define void @function2(ptr %a, ptr %b) {20entry:21  br label %test22test:23  br label %first24first:25  %0 = phi i32 [ 0, %test ]26  store i32 2, ptr %a, align 427  store i32 3, ptr %b, align 428  ret void29}30; CHECK-LABEL: @function1(31; CHECK-NEXT:  entry:32; CHECK-NEXT:    call void @outlined_ir_func_0(ptr [[A:%.*]], ptr [[B:%.*]])33; CHECK-NEXT:    ret void34;35;36; CHECK-LABEL: @function2(37; CHECK-NEXT:  entry:38; CHECK-NEXT:    call void @outlined_ir_func_0(ptr [[A:%.*]], ptr [[B:%.*]])39; CHECK-NEXT:    ret void40;41;42; CHECK: define internal void @outlined_ir_func_0(43; CHECK-NEXT:  newFuncRoot:44; CHECK-NEXT:    br label [[ENTRY_TO_OUTLINE:%.*]]45; CHECK:       entry_to_outline:46; CHECK-NEXT:    br label [[TEST:%.*]]47; CHECK:       test:48; CHECK-NEXT:    br label [[FIRST:%.*]]49; CHECK:       first:50; CHECK-NEXT:    [[TMP2:%.*]] = phi i32 [ 0, [[TEST]] ]51; CHECK-NEXT:    store i32 2, ptr [[TMP0:%.*]], align 452; CHECK-NEXT:    store i32 3, ptr [[TMP1:%.*]], align 453; CHECK-NEXT:    br label [[ENTRY_AFTER_OUTLINE_EXITSTUB:%.*]]54; CHECK:       entry_after_outline.exitStub:55; CHECK-NEXT:    ret void56;57