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