# RUN: llc -mtriple=aarch64-none-linux-gnu -run-pass machine-sink -o - %s | FileCheck %s --- | define void @sinkwzr() { ret void } ... --- name: sinkwzr tracksRegLiveness: true registers: - { id: 0, class: gpr32 } - { id: 1, class: gpr32 } - { id: 2, class: gpr32sp } - { id: 3, class: gpr32 } - { id: 4, class: gpr32 } body: | ; Check that WZR copy is sunk into the loop preheader. ; CHECK-LABEL: name: sinkwzr ; CHECK-LABEL: bb.0: ; CHECK-NOT: COPY $wzr bb.0: liveins: $w0 %0 = COPY $w0 %1 = COPY $wzr CBZW %0, %bb.3 ; CHECK-LABEL: bb.1: ; CHECK: COPY $wzr bb.1: B %bb.2 bb.2: %2 = PHI %0, %bb.1, %4, %bb.2 $w0 = COPY %1 %3 = SUBSWri %2, 1, 0, implicit-def dead $nzcv %4 = COPY %3 CBZW %3, %bb.3 B %bb.2 bb.3: RET_ReallyLR ...