[TableGen] Add TreePatternNode::children and use it in for loops (NFC) (#119877)
[llvm-project.git] / llvm / test / CodeGen / RISCV / GlobalISel / regbankselect / store-rv64.mir
blobc3475dd64789aa9e7916348809c5b9a4d2379deb
1 # NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2 # RUN: llc -mtriple=riscv64 -run-pass=regbankselect \
3 # RUN:   -simplify-mir -verify-machineinstrs %s \
4 # RUN:   -o - | FileCheck -check-prefix=RV64I %s
6 ---
7 name:            store_i8
8 legalized:       true
9 body:             |
10   bb.0:
11     liveins: $x10, $x11
13     ; RV64I-LABEL: name: store_i8
14     ; RV64I: liveins: $x10, $x11
15     ; RV64I-NEXT: {{  $}}
16     ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10
17     ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $x11
18     ; RV64I-NEXT: [[TRUNC:%[0-9]+]]:gprb(s32) = G_TRUNC [[COPY]](s64)
19     ; RV64I-NEXT: G_STORE [[TRUNC]](s32), [[COPY1]](p0) :: (store (s8))
20     ; RV64I-NEXT: PseudoRET
21     %2:_(s64) = COPY $x10
22     %1:_(p0) = COPY $x11
23     %3:_(s32) = G_TRUNC %2(s64)
24     G_STORE %3(s32), %1(p0) :: (store (s8))
25     PseudoRET
27 ...
28 ---
29 name:            store_i16
30 legalized:       true
31 body:             |
32   bb.0:
33     liveins: $x10, $x11
35     ; RV64I-LABEL: name: store_i16
36     ; RV64I: liveins: $x10, $x11
37     ; RV64I-NEXT: {{  $}}
38     ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10
39     ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $x11
40     ; RV64I-NEXT: [[TRUNC:%[0-9]+]]:gprb(s32) = G_TRUNC [[COPY]](s64)
41     ; RV64I-NEXT: G_STORE [[TRUNC]](s32), [[COPY1]](p0) :: (store (s16))
42     ; RV64I-NEXT: PseudoRET
43     %2:_(s64) = COPY $x10
44     %1:_(p0) = COPY $x11
45     %3:_(s32) = G_TRUNC %2(s64)
46     G_STORE %3(s32), %1(p0) :: (store (s16))
47     PseudoRET
49 ...
50 ---
51 name:            store_i32
52 legalized:       true
53 body:             |
54   bb.0:
55     liveins: $x10, $x11
57     ; RV64I-LABEL: name: store_i32
58     ; RV64I: liveins: $x10, $x11
59     ; RV64I-NEXT: {{  $}}
60     ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10
61     ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $x11
62     ; RV64I-NEXT: [[TRUNC:%[0-9]+]]:gprb(s32) = G_TRUNC [[COPY]](s64)
63     ; RV64I-NEXT: G_STORE [[TRUNC]](s32), [[COPY1]](p0) :: (store (s32))
64     ; RV64I-NEXT: PseudoRET
65     %2:_(s64) = COPY $x10
66     %1:_(p0) = COPY $x11
67     %3:_(s32) = G_TRUNC %2(s64)
68     G_STORE %3(s32), %1(p0) :: (store (s32))
69     PseudoRET
71 ...
72 ---
73 name:            store_i64
74 legalized:       true
75 tracksRegLiveness: true
76 body:             |
77   bb.0:
78     liveins: $x10, $x11
80     ; RV64I-LABEL: name: store_i64
81     ; RV64I: liveins: $x10, $x11
82     ; RV64I-NEXT: {{  $}}
83     ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(s64) = COPY $x10
84     ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $x11
85     ; RV64I-NEXT: G_STORE [[COPY]](s64), [[COPY1]](p0) :: (store (s64))
86     ; RV64I-NEXT: PseudoRET
87     %0:_(s64) = COPY $x10
88     %1:_(p0) = COPY $x11
89     G_STORE %0(s64), %1(p0) :: (store (s64))
90     PseudoRET
92 ...
93 ---
94 name:            store_ptr
95 legalized:       true
96 tracksRegLiveness: true
97 body:             |
98   bb.0:
99     liveins: $x10, $x11
101     ; RV64I-LABEL: name: store_ptr
102     ; RV64I: liveins: $x10, $x11
103     ; RV64I-NEXT: {{  $}}
104     ; RV64I-NEXT: [[COPY:%[0-9]+]]:gprb(p0) = COPY $x10
105     ; RV64I-NEXT: [[COPY1:%[0-9]+]]:gprb(p0) = COPY $x11
106     ; RV64I-NEXT: G_STORE [[COPY]](p0), [[COPY1]](p0) :: (store (p0))
107     ; RV64I-NEXT: PseudoRET
108     %0:_(p0) = COPY $x10
109     %1:_(p0) = COPY $x11
110     G_STORE %0(p0), %1(p0) :: (store (p0))
111     PseudoRET