brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 4ebb4d4 Raw
43 lines · plain
1# RUN: llc -mtriple=hexagon -run-pass if-converter %s -o - | FileCheck %s2 3# Make sure that the necessary implicit uses are added to predicated4# instructions.5 6# CHECK-LABEL: name: foo7 8--- |9  define void @foo() {10    ret void11  }12...13 14---15name: foo16tracksRegLiveness: true17body: |18  bb.0:19    successors: %bb.1, %bb.220    liveins: $r0, $r2, $p121        J2_jumpf $p1, %bb.1, implicit-def $pc22        J2_jump %bb.2, implicit-def $pc23  bb.1:24    successors: %bb.325    liveins: $r226        $r0 = A2_tfrsi 227        J2_jump %bb.3, implicit-def $pc28  bb.2:29    successors: %bb.330    liveins: $r031    ; Even though r2 was not live on entry to this block, it was live across32    ; block bb.1 in the original diamond. After if-conversion, the diamond33    ; became a single block, and so r2 is now live on entry to the instructions34    ; originating from bb.2.35    ; CHECK: $r2 = C2_cmoveit $p1, 1, implicit killed $r236        $r2 = A2_tfrsi 137  bb.3:38    liveins: $r0, $r239        $r0 = A2_add $r0, $r240        J2_jumpr $r31, implicit-def $pc41...42 43