File: spill-half-01.mir

package info (click to toggle)
llvm-toolchain-21 1%3A21.1.6-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,245,028 kB
  • sloc: cpp: 7,619,726; ansic: 1,434,018; asm: 1,058,748; python: 252,740; f90: 94,671; objc: 70,685; lisp: 42,813; pascal: 18,401; sh: 8,601; ml: 5,111; perl: 4,720; makefile: 3,675; awk: 3,523; javascript: 2,409; xml: 892; fortran: 770
file content (63 lines) | stat: -rw-r--r-- 3,517 bytes parent folder | download | duplicates (3)
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
# RUN: llc -o - %s -mtriple=s390x-linux-gnu -mcpu=zEC12 -verify-machineinstrs \
# RUN:   -start-before=greedy | FileCheck %s -check-prefix=CHECK
# RUN: llc -o - %s -mtriple=s390x-linux-gnu -mcpu=z16 -verify-machineinstrs \
# RUN:   -start-before=greedy | FileCheck %s -check-prefix=VECTOR

# Test spilling / reloading fp16bit virtual registers.

---
name: fun0
tracksRegLiveness: true
body:             |
  bb.0:
    liveins: $f0h, $f2h, $f4h

    ; CHECK-LABEL: fun0:
    ; CHECK:      aghi %r15, -240
    ; CHECK:      ste %f4, 172(%r15)          # 4-byte Spill
    ; CHECK-NEXT: ste %f2, 164(%r15)          # 4-byte Spill
    ; CHECK-NEXT: ste %f0, 168(%r15)          # 4-byte Spill
    ; CHECK-NEXT: #APP
    ; CHECK-NEXT: #NO_APP
    ; CHECK-NEXT: le %f0, 164(%r15)           # 4-byte Reload
    ; CHECK:      le %f0, 168(%r15)           # 4-byte Reload
    ; CHECK:      le %f0, 172(%r15)           # 4-byte Reload

    ; VECTOR-LABEL: fun0:
    ; VECTOR:      aghi %r15, -232
    ; VECTOR:      vsteh %v4, 166(%r15), 0     # 2-byte Spill
    ; VECTOR-NEXT: vsteh %v2, 162(%r15), 0     # 2-byte Spill
    ; VECTOR-NEXT: vsteh %v0, 164(%r15), 0     # 2-byte Spill
    ; VECTOR-NEXT: #APP
    ; VECTOR-NEXT: #NO_APP
    ; VECTOR-NEXT: vlreph %v0, 162(%r15)       # 2-byte Reload
    ; VECTOR:      vlreph %v0, 164(%r15)       # 2-byte Reload
    ; VECTOR:      vlreph %v0, 166(%r15)       # 2-byte Reload

    %2:fp16bit = COPY $f4h
    %1:fp16bit = COPY $f2h
    %0:fp16bit = COPY $f0h
    INLINEASM &"", 1, 12, implicit-def dead early-clobber $f0d, 12, implicit-def dead early-clobber $f1d, 12, implicit-def dead early-clobber $f2d, 12, implicit-def dead early-clobber $f3d, 12, implicit-def dead early-clobber $f4d, 12, implicit-def dead early-clobber $f5d, 12, implicit-def dead early-clobber $f6d, 12, implicit-def dead early-clobber $f7d, 12, implicit-def dead early-clobber $f8d, 12, implicit-def dead early-clobber $f9d, 12, implicit-def dead early-clobber $f10d, 12, implicit-def dead early-clobber $f11d, 12, implicit-def dead early-clobber $f12d, 12, implicit-def dead early-clobber $f13d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f14d, 12, implicit-def dead early-clobber $f15d
    $f0h = COPY %1
    CallBRASL &__extendhfsf2, $f0h, csr_systemz_elf, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc, implicit-def $f0s
    %3:fp32bit = COPY $f0s
    $f0h = COPY %0
    CallBRASL &__extendhfsf2, $f0h, csr_systemz_elf, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc, implicit-def $f0s
    %5:fp32bit = COPY $f0s
    %5:fp32bit = nofpexcept AEBR %5, %3, implicit-def dead $cc, implicit $fpc
    $f0s = COPY %5
    CallBRASL &__truncsfhf2, $f0s, csr_systemz_elf, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc, implicit-def $f0h
    %6:fp16bit = COPY $f0h
    $f0h = COPY %6
    CallBRASL &__extendhfsf2, $f0h, csr_systemz_elf, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc, implicit-def $f0s
    %7:fp32bit = COPY $f0s
    $f0h = COPY %2
    CallBRASL &__extendhfsf2, $f0h, csr_systemz_elf, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc, implicit-def $f0s
    %9:fp32bit = COPY $f0s
    %9:fp32bit = nofpexcept AEBR %9, %7, implicit-def dead $cc, implicit $fpc
    $f0s = COPY %9
    CallBRASL &__truncsfhf2, $f0s, csr_systemz_elf, implicit-def dead $r14d, implicit-def dead $cc, implicit $fpc, implicit-def $f0h
    %10:fp16bit = COPY $f0h
    $f0h = COPY %10
    Return implicit $f0h
...