1 # RUN: llc -mtriple=s390x-linux-gnu -mcpu=z13 -run-pass=postra-machine-sink -verify-machineinstrs -o - %s | FileCheck %s 2 3 --- 4 # Don't sink COPY to bb.2 since SLLK define r13l that is aliased with r12q. 5 # CHECK-LABEL: name: donot_sink_copy 6 # CHECK-LABEL: bb.0: 7 # CHECK: renamable $r0l = COPY renamable $r12l, implicit killed $r12q 8 # CHECK-LABEL: bb.2: 9 # CHECK-NOT: COPY 10 name: donot_sink_copy 11 tracksRegLiveness: true 12 body: | 13 bb.0 : 14 successors: %bb.1, %bb.2 15 liveins: $r2d, $r3d, $r4d, $r5d, $r12q 16 17 renamable $r0l = COPY renamable $r12l, implicit killed $r12q 18 renamable $r13l = SLLK renamable $r4l, $noreg, 1 19 CHIMux renamable $r3l, 0, implicit-def $cc, implicit killed $r3d 20 BRC 14, 6, %bb.2, implicit killed $cc 21 J %bb.1 22 23 bb.1: 24 successors: 25 26 bb.2: 27 successors: 28 liveins: $r2d, $r4d, $r5d, $r0l, $r13l 29 30 renamable $r0d = LGFR killed renamable $r0l 31 renamable $r11d = LGFR killed renamable $r13l 32 ... 33 34 # Don't sink COPY to bb.2 since SLLK use r1l that is aliased with r0q. 35 # CHECK-LABEL: name: donot_sink_copy2 36 # CHECK-LABEL: bb.0: 37 # CHECK: renamable $r0l = COPY renamable $r12l, implicit-def $r0q 38 # CHECK-LABEL: bb.2: 39 # CHECK-NOT: COPY 40 name: donot_sink_copy2 41 tracksRegLiveness: true 42 body: | 43 bb.0 : 44 successors: %bb.1, %bb.2 45 liveins: $r2d, $r3d, $r4d, $r5d, $r12q 46 47 renamable $r0l = COPY renamable $r12l, implicit def $r0q 48 renamable $r13l = SLLK renamable $r1l, $noreg, 1 49 CHIMux renamable $r3l, 0, implicit-def $cc, implicit killed $r3d 50 BRC 14, 6, %bb.2, implicit killed $cc 51 J %bb.1 52 53 bb.1: 54 successors: 55 56 bb.2: 57 successors: 58 liveins: $r2d, $r4d, $r5d, $r0l, $r13l 59 60 renamable $r0d = LGFR killed renamable $r0l 61 renamable $r11d = LGFR killed renamable $r13l 62 ... 63 64