[LLVM][IR] Use splat syntax when printing ConstantExpr based splats. (#116856)
[llvm-project.git] / llvm / test / CodeGen / RISCV / opt-w-instrs.mir
blob03b4e330a09680d1094f81bd95f460d8c0e13e9f
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 3
2 # RUN: llc -mtriple=riscv64 -mattr='+d,+zfa,+v,+xtheadmempair' -verify-machineinstrs -run-pass=riscv-opt-w-instrs %s -o - | FileCheck %s
4 ---
5 name:            fcvtmod_w_d
6 tracksRegLiveness: true
7 body:             |
8   bb.0.entry:
9     liveins: $x10
11     ; CHECK-LABEL: name: fcvtmod_w_d
12     ; CHECK: liveins: $x10
13     ; CHECK-NEXT: {{  $}}
14     ; CHECK-NEXT: [[COPY:%[0-9]+]]:fpr64 = COPY $x10
15     ; CHECK-NEXT: [[FCVTMOD_W_D:%[0-9]+]]:gpr = nofpexcept FCVTMOD_W_D [[COPY]], 1
16     ; CHECK-NEXT: $x10 = COPY [[FCVTMOD_W_D]]
17     ; CHECK-NEXT: PseudoRET
18     %0:fpr64 = COPY $x10
20     %1:gpr = nofpexcept FCVTMOD_W_D %0, 1
21     %2:gpr = ADDIW %1, 0
22     $x10 = COPY %2
23     PseudoRET
24 ...
26 ---
27 name:            physreg
28 tracksRegLiveness: true
29 body:             |
30   bb.0.entry:
31     liveins: $x10, $x11
33     ; CHECK-LABEL: name: physreg
34     ; CHECK: liveins: $x10, $x11
35     ; CHECK-NEXT: {{  $}}
36     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
37     ; CHECK-NEXT: [[ADDIW:%[0-9]+]]:gpr = ADDIW [[COPY]], 0
38     ; CHECK-NEXT: $x10 = COPY [[ADDIW]]
39     ; CHECK-NEXT: PseudoRET
40     %0:gpr = COPY $x10
41     %1:gpr = ADDIW %0, 0
42     $x10 = COPY %1
43     PseudoRET
44 ...
45 ---
46  name:            vfirst
47  tracksRegLiveness: true
48  body:             |
49    bb.0.entry:
50      liveins: $x10, $v8
52     ; CHECK-LABEL: name: vfirst
53     ; CHECK: liveins: $x10, $v8
54     ; CHECK-NEXT: {{  $}}
55     ; CHECK-NEXT: [[COPY:%[0-9]+]]:vr = COPY $v8
56     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gprnox0 = COPY $x10
57     ; CHECK-NEXT: [[PseudoVFIRST_M_B1_:%[0-9]+]]:gpr = PseudoVFIRST_M_B1 [[COPY]], [[COPY1]], 0 /* e8 */
58     ; CHECK-NEXT: $x11 = COPY [[PseudoVFIRST_M_B1_]]
59     ; CHECK-NEXT: PseudoRET
60      %0:vr = COPY $v8
61      %1:gprnox0 = COPY $x10
63      %2:gpr = PseudoVFIRST_M_B1 %0:vr, %1:gprnox0, 0
64      %3:gpr = ADDIW %2, 0
65      $x11 = COPY %3
66      PseudoRET
67 ...
68 ---
69  name:            vcpop
70  tracksRegLiveness: true
71  body:             |
72    bb.0.entry:
73      liveins: $x10, $v8
75     ; CHECK-LABEL: name: vcpop
76     ; CHECK: liveins: $x10, $v8
77     ; CHECK-NEXT: {{  $}}
78     ; CHECK-NEXT: [[COPY:%[0-9]+]]:vr = COPY $v8
79     ; CHECK-NEXT: [[COPY1:%[0-9]+]]:gprnox0 = COPY $x10
80     ; CHECK-NEXT: [[PseudoVCPOP_M_B1_:%[0-9]+]]:gpr = PseudoVCPOP_M_B1 [[COPY]], [[COPY1]], 0 /* e8 */
81     ; CHECK-NEXT: $x11 = COPY [[PseudoVCPOP_M_B1_]]
82     ; CHECK-NEXT: PseudoRET
83      %0:vr = COPY $v8
84      %1:gprnox0 = COPY $x10
86      %2:gpr = PseudoVCPOP_M_B1 %0:vr, %1:gprnox0, 0
87      %3:gpr = ADDIW %2, 0
88      $x11 = COPY %3
89      PseudoRET
90 ...
91 ---
92  name:            th_lwd
93  tracksRegLiveness: true
94  body:             |
95    bb.0.entry:
96      liveins: $x10
97     ; CHECK-LABEL: name: th_lwd
98     ; CHECK: liveins: $x10
99     ; CHECK-NEXT: {{  $}}
100     ; CHECK-NEXT: [[COPY:%[0-9]+]]:gpr = COPY $x10
101     ; CHECK-NEXT: early-clobber %1:gpr, early-clobber %2:gpr = TH_LWD [[COPY]], 2, 3
102     ; CHECK-NEXT: $x10 = COPY %1
103     ; CHECK-NEXT: $x11 = COPY %2
104     ; CHECK-NEXT: PseudoRET
105      %0:gpr = COPY $x10
106      early-clobber %1:gpr, early-clobber %2:gpr = TH_LWD %0, 2, 3
107      %3:gpr = ADDIW %1, 0
108      %4:gpr = ADDIW %2, 0
109      $x10 = COPY %3
110      $x11 = COPY %4
111      PseudoRET