brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.9 KiB · cece6b7 Raw
65 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_test_checks.py2; RUN: opt -S -passes=verify,iroutliner -ir-outlining-no-cost < %s | FileCheck %s3 4; This test checks that we do not outline callbr instruction since as we do not5; outline any control flow change instructions.6 7 8define i32 @function1(i32 %a, i32 %b) {9; CHECK-LABEL: @function1(10; CHECK-NEXT:  bb0:11; CHECK-NEXT:    [[TMP0:%.*]] = add i32 [[A:%.*]], 412; CHECK-NEXT:    call void @outlined_ir_func_0(i32 [[B:%.*]])13; CHECK-NEXT:    callbr void asm "xorl $0, $014; CHECK-NEXT:    to label [[NORMAL:%.*]] [label %fail1]15; CHECK:       normal:16; CHECK-NEXT:    call void @outlined_ir_func_0(i32 [[B]])17; CHECK-NEXT:    ret i32 018; CHECK:       fail1:19; CHECK-NEXT:    call void @outlined_ir_func_0(i32 [[B]])20; CHECK-NEXT:    ret i32 021;22bb0:23  %0 = add i32 %a, 424  %1 = add i32 %b, 125  %2 = add i32 %b, 126  callbr void asm "xorl $0, $0; jmp ${1:l}", "r,!i,~{dirflag},~{fpsr},~{flags}"(i32 %0) to label %normal [label %fail1]27normal:28  %3 = add i32 %b, 129  %4 = add i32 %b, 130  ret i32 031fail1:32  %5 = add i32 %b, 133  %6 = add i32 %b, 134  ret i32 035}36 37define i32 @function2(i32 %a, i32 %b) {38; CHECK-LABEL: @function2(39; CHECK-NEXT:  bb0:40; CHECK-NEXT:    [[TMP0:%.*]] = add i32 [[A:%.*]], 441; CHECK-NEXT:    call void @outlined_ir_func_0(i32 [[B:%.*]])42; CHECK-NEXT:    callbr void asm "xorl $0, $043; CHECK-NEXT:    to label [[NORMAL:%.*]] [label %fail1]44; CHECK:       normal:45; CHECK-NEXT:    call void @outlined_ir_func_0(i32 [[B]])46; CHECK-NEXT:    ret i32 047; CHECK:       fail1:48; CHECK-NEXT:    call void @outlined_ir_func_0(i32 [[B]])49; CHECK-NEXT:    ret i32 050;51bb0:52  %0 = add i32 %a, 453  %1 = add i32 %b, 154  %2 = add i32 %b, 155  callbr void asm "xorl $0, $0; jmp ${1:l}", "r,!i,~{dirflag},~{fpsr},~{flags}"(i32 %0) to label %normal [label %fail1]56normal:57  %3 = add i32 %b, 158  %4 = add i32 %b, 159  ret i32 060fail1:61  %5 = add i32 %b, 162  %6 = add i32 %b, 163  ret i32 064}65