1# RUN: llc -march=hexagon -run-pass if-converter -verify-machineinstrs -o - %s | FileCheck %s 2 3# CHECK-LABEL: name: foo 4# CHECK: $p0 = C2_cmpeqi $r16, 0 5# Make sure there is no implicit use of r1. 6# CHECK: $r1 = L2_ploadruhf_io $p0, $r29, 6 7 8--- | 9 define void @foo() { 10 ret void 11 } 12... 13 14 15--- 16name: foo 17tracksRegLiveness: true 18 19body: | 20 bb.0: 21 liveins: $r0, $r16 22 successors: %bb.1, %bb.2 23 $p0 = C2_cmpeqi $r16, 0 24 J2_jumpt $p0, %bb.2, implicit-def $pc 25 26 bb.1: 27 ; The lane mask $d0:0002 is equivalent to $r0. LivePhysRegs would ignore 28 ; it and treat it as the whole $d0, which is a pair $r1, $r0. The extra 29 ; $r1 would cause an (undefined) implicit use to be added during 30 ; if-conversion. 31 liveins: $d0:0x00000002, $d15:0x00000001, $r16 32 successors: %bb.2 33 $r1 = L2_loadruh_io $r29, 6 34 S2_storeri_io killed $r16, 0, $r1 35 36 bb.2: 37 liveins: $r0 38 $d8 = L2_loadrd_io $r29, 8 39 $d15 = L4_return $r29, implicit-def $r29, implicit-def $pc, implicit $r30, implicit $framekey 40 41