brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.4 KiB · b34aeb7 Raw
86 lines · plain
1# RUN: llc -mtriple x86_64-- -verify-machineinstrs -run-pass branch-folder -o - %s | FileCheck %s2 3# Check the TCRETURNdi64cc optimization.4 5--- |6  target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"7 8  define i64 @test(i64 %arg, ptr %arg1) optsize {9    %tmp = icmp ult i64 %arg, 10010    br i1 %tmp, label %1, label %411 12    %tmp3 = icmp ult i64 %arg, 1013    br i1 %tmp3, label %2, label %314 15    %tmp5 = tail call i64 @f1(ptr %arg1, i64 %arg)16    ret i64 %tmp517 18    %tmp7 = tail call i64 @f2(ptr %arg1, i64 %arg)19    ret i64 %tmp720 21    ret i64 12322  }23 24  declare i64 @f1(ptr, i64)25  declare i64 @f2(ptr, i64)26 27...28---29name: test30tracksRegLiveness: true31liveins:32  - { reg: '$rdi' }33  - { reg: '$rsi' }34body:             |35  bb.0:36    successors: %bb.1, %bb.437    liveins: $rdi, $rsi38 39    $rax = COPY $rdi40    CMP64ri32 $rax, 99, implicit-def $eflags41    JCC_1 %bb.4, 7, implicit $eflags42    JMP_1 %bb.143 44  ; CHECK: bb.1:45  ; CHECK-NEXT: successors: %bb.2({{[^)]+}}){{$}}46  ; CHECK-NEXT: liveins: $rax, $rsi47  ; CHECK-NEXT: {{^  $}}48  ; CHECK-NEXT: $rdi = COPY $rsi49  ; CHECK-NEXT: $rsi = COPY $rax50  ; CHECK-NEXT: CMP64ri32 $rax, 9, implicit-def $eflags51  ; CHECK-NEXT: TCRETURNdi64cc @f1, 0, 6, csr_64, implicit $rsp, implicit $eflags, implicit $ssp, implicit $rsp, implicit $rdi, implicit $rsi, implicit $rdi, implicit-def $rdi, implicit $hsi, implicit-def $hsi, implicit $sih, implicit-def $sih, implicit $sil, implicit-def $sil, implicit $si, implicit-def $si, implicit $esi, implicit-def $esi, implicit $rsi, implicit-def $rsi, implicit $hdi, implicit-def $hdi, implicit $dih, implicit-def $dih, implicit $dil, implicit-def $dil, implicit $di, implicit-def $di, implicit $edi, implicit-def $edi52 53  bb.1:54    successors: %bb.2, %bb.355    liveins: $rax, $rsi56 57    CMP64ri32 $rax, 9, implicit-def $eflags58    JCC_1 %bb.3, 7, implicit $eflags59    JMP_1 %bb.260 61  bb.2:62    liveins: $rax, $rsi63 64    $rdi = COPY $rsi65    $rsi = COPY $rax66 67    TCRETURNdi64 @f1, 0, csr_64, implicit $rsp, implicit $rdi, implicit $rsi68 69  ; CHECK: bb.2:70  ; CHECK-NEXT: liveins: $rdi, $rsi71  ; CHECK-NEXT: {{^  $}}72  ; CHECK-NEXT: TCRETURNdi64 @f2, 0, csr_64, implicit $rsp, implicit $rdi, implicit $rsi73 74  bb.3:75    liveins: $rax, $rsi76 77    $rdi = COPY $rsi78    $rsi = COPY $rax79    TCRETURNdi64 @f2, 0, csr_64, implicit $rsp, implicit $rdi, implicit $rsi80 81  bb.4:82    dead $eax = MOV32ri 123, implicit-def $rax83    RET 0, $rax84 85...86