# RUN: llc -mtriple=s390x-linux-gnu -mcpu=z13 -run-pass=postra-machine-sink -verify-machineinstrs -o - %s | FileCheck %s --- # Don't sink COPY to bb.2 since SLLK define r13l that is aliased with r12q. # CHECK-LABEL: name: donot_sink_copy # CHECK-LABEL: bb.0: # CHECK: renamable $r0l = COPY renamable $r12l, implicit killed $r12q # CHECK-LABEL: bb.2: # CHECK-NOT: COPY name: donot_sink_copy tracksRegLiveness: true body: | bb.0 : successors: %bb.1, %bb.2 liveins: $r2d, $r3d, $r4d, $r5d, $r12q renamable $r0l = COPY renamable $r12l, implicit killed $r12q renamable $r13l = SLLK renamable $r4l, $noreg, 1 CHIMux renamable $r3l, 0, implicit-def $cc, implicit killed $r3d BRC 14, 6, %bb.2, implicit killed $cc J %bb.1 bb.1: successors: bb.2: successors: liveins: $r2d, $r4d, $r5d, $r0l, $r13l renamable $r0d = LGFR killed renamable $r0l renamable $r11d = LGFR killed renamable $r13l ... # Don't sink COPY to bb.2 since SLLK use r1l that is aliased with r0q. # CHECK-LABEL: name: donot_sink_copy2 # CHECK-LABEL: bb.0: # CHECK: renamable $r0l = COPY renamable $r12l, implicit-def $r0q # CHECK-LABEL: bb.2: # CHECK-NOT: COPY name: donot_sink_copy2 tracksRegLiveness: true body: | bb.0 : successors: %bb.1, %bb.2 liveins: $r2d, $r3d, $r4d, $r5d, $r12q renamable $r0l = COPY renamable $r12l, implicit def $r0q renamable $r13l = SLLK renamable $r1l, $noreg, 1 CHIMux renamable $r3l, 0, implicit-def $cc, implicit killed $r3d BRC 14, 6, %bb.2, implicit killed $cc J %bb.1 bb.1: successors: bb.2: successors: liveins: $r2d, $r4d, $r5d, $r0l, $r13l renamable $r0d = LGFR killed renamable $r0l renamable $r11d = LGFR killed renamable $r13l ...