File: opt-w-instrs.mir

package info (click to toggle)
llvm-toolchain-19 1%3A19.1.7-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,998,520 kB
  • sloc: cpp: 6,951,680; ansic: 1,486,157; asm: 913,598; python: 232,024; f90: 80,126; objc: 75,281; lisp: 37,276; pascal: 16,990; sh: 10,009; ml: 5,058; perl: 4,724; awk: 3,523; makefile: 3,167; javascript: 2,504; xml: 892; fortran: 664; cs: 573
file content (113 lines) | stat: -rw-r--r-- 3,197 bytes parent folder | download | duplicates (4)
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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 3
# RUN: llc -mtriple=riscv64 -mattr='+d,+zfa,+v,+xtheadmempair' -verify-machineinstrs -run-pass=riscv-opt-w-instrs %s -o - | FileCheck %s

---
name:            fcvtmod_w_d
tracksRegLiveness: true
body:             |
  bb.0.entry:
    liveins: $x10

    ; CHECK-LABEL: name: fcvtmod_w_d
    ; CHECK: liveins: $x10
    ; CHECK-NEXT: {{  $}}
    ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $x10
    ; CHECK-NEXT: [[FCVTMOD_W_D:%[0-9]+]]:gpr = nofpexcept FCVTMOD_W_D [[COPY]], 1
    ; CHECK-NEXT: $x10 = COPY [[FCVTMOD_W_D]]
    ; CHECK-NEXT: PseudoRET
    %0:fpr64 = COPY $x10

    %1:gpr = nofpexcept FCVTMOD_W_D %0, 1
    %2:gpr = ADDIW %1, 0
    $x10 = COPY %2
    PseudoRET
...

---
name:            physreg
tracksRegLiveness: true
body:             |
  bb.0.entry:
    liveins: $x10, $x11

    ; CHECK-LABEL: name: physreg
    ; CHECK: liveins: $x10, $x11
    ; CHECK-NEXT: {{  $}}
    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
    ; CHECK-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[COPY]], 0
    ; CHECK-NEXT: $x10 = COPY [[ADDIW]]
    ; CHECK-NEXT: PseudoRET
    %0:gpr = COPY $x10
    %1:gpr = ADDIW %0, 0
    $x10 = COPY %1
    PseudoRET
...
---
 name:            vfirst
 tracksRegLiveness: true
 body:             |
   bb.0.entry:
     liveins: $x10, $v8

    ; CHECK-LABEL: name: vfirst
    ; CHECK: liveins: $x10, $v8
    ; CHECK-NEXT: {{  $}}
    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vr = COPY $v8
    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gprnox0 = COPY $x10
    ; CHECK-NEXT: [[PseudoVFIRST_M_B1_:%[0-9]+]]:gpr = PseudoVFIRST_M_B1 [[COPY]], [[COPY1]], 0 /* e8 */
    ; CHECK-NEXT: $x11 = COPY [[PseudoVFIRST_M_B1_]]
    ; CHECK-NEXT: PseudoRET
     %0:vr = COPY $v8
     %1:gprnox0 = COPY $x10

     %2:gpr = PseudoVFIRST_M_B1 %0:vr, %1:gprnox0, 0
     %3:gpr = ADDIW %2, 0
     $x11 = COPY %3
     PseudoRET
...
---
 name:            vcpop
 tracksRegLiveness: true
 body:             |
   bb.0.entry:
     liveins: $x10, $v8

    ; CHECK-LABEL: name: vcpop
    ; CHECK: liveins: $x10, $v8
    ; CHECK-NEXT: {{  $}}
    ; CHECK-NEXT: [[COPY:%[0-9]+]]:vr = COPY $v8
    ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gprnox0 = COPY $x10
    ; CHECK-NEXT: [[PseudoVCPOP_M_B1_:%[0-9]+]]:gpr = PseudoVCPOP_M_B1 [[COPY]], [[COPY1]], 0 /* e8 */
    ; CHECK-NEXT: $x11 = COPY [[PseudoVCPOP_M_B1_]]
    ; CHECK-NEXT: PseudoRET
     %0:vr = COPY $v8
     %1:gprnox0 = COPY $x10

     %2:gpr = PseudoVCPOP_M_B1 %0:vr, %1:gprnox0, 0
     %3:gpr = ADDIW %2, 0
     $x11 = COPY %3
     PseudoRET
...
---
 name:            th_lwd
 tracksRegLiveness: true
 body:             |
   bb.0.entry:
     liveins: $x10
    ; CHECK-LABEL: name: th_lwd
    ; CHECK: liveins: $x10
    ; CHECK-NEXT: {{  $}}
    ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
    ; CHECK-NEXT: early-clobber %1:gpr, early-clobber %2:gpr = TH_LWD [[COPY]], 2, 3
    ; CHECK-NEXT: $x10 = COPY %1
    ; CHECK-NEXT: $x11 = COPY %2
    ; CHECK-NEXT: PseudoRET
     %0:gpr = COPY $x10
     early-clobber %1:gpr, early-clobber %2:gpr = TH_LWD %0, 2, 3
     %3:gpr = ADDIW %1, 0
     %4:gpr = ADDIW %2, 0
     $x10 = COPY %3
     $x11 = COPY %4
     PseudoRET
...