1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76
|
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 5
# RUN: llc -mtriple=s390x-linux-gnu -run-pass=machine-latecleanup %s -o - -mcpu=z16 \
# RUN: -verify-machineinstrs 2>&1 | FileCheck %s
# Kill flag of $r0q (super-reg) needs to be removed, and $r0l needs to be added as live-in.
---
name: fun0
tracksRegLiveness: true
body: |
; CHECK-LABEL: name: fun0
; CHECK: bb.0:
; CHECK-NEXT: successors: %bb.1(0x80000000)
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r0l = LHIMux -1
; CHECK-NEXT: J %bb.1
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.1:
; CHECK-NEXT: liveins: $r0l
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: renamable $r1d = LGFI 0
; CHECK-NEXT: ST128 renamable $r0q, $r15d, 168, $noreg
; CHECK-NEXT: ST killed renamable $r0l, $r15d, 160, $noreg
; CHECK-NEXT: Return
bb.0:
renamable $r0l = LHIMux -1
J %bb.1
bb.1:
renamable $r1d = LGFI 0
ST128 killed renamable $r0q, $r15d, 168, $noreg
renamable $r0l = LHIMux -1
ST killed renamable $r0l, $r15d, 160, $noreg
Return
...
# Kill flags of both $r1d and $r0q (super-reg) need to be removed.
---
name: fun1
tracksRegLiveness: true
body: |
bb.0:
; CHECK-LABEL: name: fun1
; CHECK: renamable $r1d = LLILL 1
; CHECK-NEXT: STG renamable $r1d, killed $r15d, 8, $noreg
; CHECK-NEXT: renamable $r0d = LLILL 0
; CHECK-NEXT: ST128 renamable $r0q, $r15d, 0, $noreg
; CHECK-NEXT: STG killed renamable $r1d, killed $r15d, 8, $noreg
; CHECK-NEXT: Return
renamable $r1d = LLILL 1
STG killed renamable $r1d, killed $r15d, 8, $noreg
renamable $r0d = LLILL 0
ST128 killed renamable $r0q, $r15d, 0, $noreg
renamable $r1d = LLILL 1
STG killed renamable $r1d, killed $r15d, 8, $noreg
Return
...
# Kill flags of both $r1l (subreg) and $r1d need to be removed.
---
name: fun2
tracksRegLiveness: true
body: |
bb.0:
; CHECK-LABEL: name: fun2
; CHECK: renamable $r1d = LLILL 1
; CHECK-NEXT: ST renamable $r1l, $r15d, 0, $noreg
; CHECK-NEXT: STG renamable $r1d, $r15d, 8, $noreg
; CHECK-NEXT: STG killed renamable $r1d, $r15d, 16, $noreg
; CHECK-NEXT: Return
renamable $r1d = LLILL 1
ST killed renamable $r1l, $r15d, 0, $noreg
STG killed renamable $r1d, $r15d, 8, $noreg
renamable $r1d = LLILL 1
STG killed renamable $r1d, $r15d, 16, $noreg
Return
...
|