1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py 2# RUN: llc -mtriple=s390x-linux-gnu -sink-insts-to-avoid-spills -verify-machineinstrs -run-pass=machine-sink -o - %s | FileCheck %s 3 4# Test kill flags are cleared after sinking operations into cycle during MachineLICM. 5 6--- | 7 target datalayout = "E-m:e-i1:8:16-i8:8:16-i64:64-f128:64-a:8:16-n32:64" 8 target triple = "s390x-unknown-linux-gnu" 9 10 %0 = type <{ i32, [3 x i8] }> 11 12 @b = external dso_local global [1 x %0], align 2 13 14 define dso_local void @c() local_unnamed_addr { 15 ret void 16 } 17 18... 19--- 20name: c 21tracksRegLiveness: true 22body: | 23 ; CHECK-LABEL: name: c 24 ; CHECK: bb.0: 25 ; CHECK-NEXT: successors: %bb.1(0x80000000) 26 ; CHECK-NEXT: {{ $}} 27 ; CHECK-NEXT: [[LARL:%[0-9]+]]:addr64bit = LARL @b 28 ; CHECK-NEXT: {{ $}} 29 ; CHECK-NEXT: bb.1: 30 ; CHECK-NEXT: successors: %bb.1(0x80000000) 31 ; CHECK-NEXT: {{ $}} 32 ; CHECK-NEXT: [[LA:%[0-9]+]]:gr64bit = LA [[LARL]], 49, $noreg 33 ; CHECK-NEXT: [[LGHI:%[0-9]+]]:gr64bit = LGHI 7 34 ; CHECK-NEXT: [[DEF:%[0-9]+]]:gr64bit = IMPLICIT_DEF 35 ; CHECK-NEXT: [[DEF1:%[0-9]+]]:gr64bit = IMPLICIT_DEF 36 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0 37 ; CHECK-NEXT: $r2d = COPY [[DEF]] 38 ; CHECK-NEXT: $r3d = COPY [[LA]] 39 ; CHECK-NEXT: $r4d = COPY [[LGHI]] 40 ; CHECK-NEXT: CallBRASL &memcpy, $r2d, $r3d, $r4d, csr_systemz_elf, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc, implicit-def $r2d 41 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0 42 ; CHECK-NEXT: ADJCALLSTACKDOWN 0, 0 43 ; CHECK-NEXT: $r2d = COPY [[DEF1]] 44 ; CHECK-NEXT: $r3d = COPY [[LA]] 45 ; CHECK-NEXT: $r4d = COPY [[LGHI]] 46 ; CHECK-NEXT: CallBRASL &memcpy, $r2d, $r3d, $r4d, csr_systemz_elf, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc, implicit-def $r2d 47 ; CHECK-NEXT: ADJCALLSTACKUP 0, 0 48 ; CHECK-NEXT: J %bb.1 49 bb.0: 50 successors: %bb.1(0x80000000) 51 52 %1:addr64bit = LARL @b 53 %0:gr64bit = LA killed %1, 49, $noreg 54 %2:gr64bit = LGHI 7 55 %3:gr64bit = IMPLICIT_DEF 56 %5:gr64bit = IMPLICIT_DEF 57 58 bb.1: 59 successors: %bb.1(0x80000000) 60 61 ADJCALLSTACKDOWN 0, 0 62 $r2d = COPY %3 63 $r3d = COPY %0 64 $r4d = COPY %2 65 CallBRASL &memcpy, $r2d, $r3d, $r4d, csr_systemz_elf, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc, implicit-def $r2d 66 ADJCALLSTACKUP 0, 0 67 ADJCALLSTACKDOWN 0, 0 68 $r2d = COPY %5 69 $r3d = COPY %0 70 $r4d = COPY %2 71 CallBRASL &memcpy, $r2d, $r3d, $r4d, csr_systemz_elf, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc, implicit-def $r2d 72 ADJCALLSTACKUP 0, 0 73 J %bb.1 74 75... 76