brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.8 KiB · b019cfe Raw
71 lines · plain
1; RUN: llc < %s -verify-machineinstrs -enable-machine-outliner | FileCheck %s2 3target triple = "riscv64-unknown-linux-gnu"4 5declare void @foo(i32, i32, i32, i32) minsize6 7define void @fentry0(i1 %a) nounwind {8; CHECK-LABEL: fentry0:9; CHECK:       # %bb.1:10; CHECK-NEXT:    call t0, OUTLINED_FUNCTION_[[BB1:[0-9]+]]11; CHECK-NEXT:    call foo12; CHECK-LABEL: .LBB0_2:13; CHECK-NEXT:    tail OUTLINED_FUNCTION_[[BB2:[0-9]+]]14entry:15  br i1 %a, label %if.then, label %if.end16if.then:17  call void @foo(i32 1, i32 2, i32 3, i32 4)18  br label %if.end19if.end:20  call void @foo(i32 5, i32 6, i32 7, i32 8)21  ret void22}23 24define void @fentry1(i1 %a) nounwind {25; CHECK-LABEL: fentry1:26; CHECK:       # %bb.1:27; CHECK-NEXT:    call t0, OUTLINED_FUNCTION_[[BB1:[0-9]+]]28; CHECK-NEXT:    call foo29; CHECK-LABEL: .LBB1_2:30; CHECK-NEXT:    tail OUTLINED_FUNCTION_[[BB2:[0-9]+]]31entry:32  br i1 %a, label %if.then, label %if.end33if.then:34  call void @foo(i32 1, i32 2, i32 3, i32 4)35  br label %if.end36if.end:37  call void @foo(i32 5, i32 6, i32 7, i32 8)38  ret void39}40 41define void @fentry2(i1 %a) nounwind {42; CHECK-LABEL: fentry2:43; CHECK:       # %bb.1:44; CHECK-NEXT:    call t0, OUTLINED_FUNCTION_[[BB1:[0-9]+]]45; CHECK-NEXT:    call foo46; CHECK-LABEL: .LBB2_2:47; CHECK-NEXT:    tail OUTLINED_FUNCTION_[[BB2:[0-9]+]]48entry:49  br i1 %a, label %if.then, label %if.end50if.then:51  call void @foo(i32 1, i32 2, i32 3, i32 4)52  br label %if.end53if.end:54  call void @foo(i32 5, i32 6, i32 7, i32 8)55  ret void56}57 58; CHECK:       OUTLINED_FUNCTION_[[BB2]]:59; CHECK:       li      a0, 560; CHECK-NEXT:  li      a1, 661; CHECK-NEXT:  li      a2, 762; CHECK-NEXT:  li      a3, 863; CHECK-NEXT:  call foo64 65; CHECK:       OUTLINED_FUNCTION_[[BB1]]:66; CHECK:       li      a0, 167; CHECK-NEXT:  li      a1, 268; CHECK-NEXT:  li      a2, 369; CHECK-NEXT:  li      a3, 470; CHECK-NEXT:  jr      t071