xref: /llvm-project/llvm/test/CodeGen/Mips/GlobalISel/legalizer/load_store_vec.mir (revision 3f3ff0e4309ac317ebea3e44188751451b88862f)
1# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
2# RUN: llc -O0 -mtriple=mipsel-linux-gnu -mcpu=mips32r5 -mattr=msa,+fp64 -mattr=nan2008 -run-pass=legalizer -verify-machineinstrs %s -o - | FileCheck %s -check-prefixes=P5600
3---
4name:            load_store_v16i8
5alignment:       4
6tracksRegLiveness: true
7body:             |
8  bb.1.entry:
9    liveins: $a0, $a1
10
11    ; P5600-LABEL: name: load_store_v16i8
12    ; P5600: liveins: $a0, $a1
13    ; P5600-NEXT: {{  $}}
14    ; P5600-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
15    ; P5600-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
16    ; P5600-NEXT: [[LOAD:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY1]](p0) :: (load (<16 x s8>))
17    ; P5600-NEXT: G_STORE [[LOAD]](<16 x s8>), [[COPY]](p0) :: (store (<16 x s8>))
18    ; P5600-NEXT: RetRA
19    %0:_(p0) = COPY $a0
20    %1:_(p0) = COPY $a1
21    %2:_(<16 x s8>) = G_LOAD %1(p0) :: (load (<16 x s8>))
22    G_STORE %2(<16 x s8>), %0(p0) :: (store (<16 x s8>))
23    RetRA
24
25...
26---
27name:            load_store_v8i16
28alignment:       4
29tracksRegLiveness: true
30body:             |
31  bb.1.entry:
32    liveins: $a0, $a1
33
34    ; P5600-LABEL: name: load_store_v8i16
35    ; P5600: liveins: $a0, $a1
36    ; P5600-NEXT: {{  $}}
37    ; P5600-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
38    ; P5600-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
39    ; P5600-NEXT: [[LOAD:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY1]](p0) :: (load (<8 x s16>))
40    ; P5600-NEXT: G_STORE [[LOAD]](<8 x s16>), [[COPY]](p0) :: (store (<8 x s16>))
41    ; P5600-NEXT: RetRA
42    %0:_(p0) = COPY $a0
43    %1:_(p0) = COPY $a1
44    %2:_(<8 x s16>) = G_LOAD %1(p0) :: (load (<8 x s16>))
45    G_STORE %2(<8 x s16>), %0(p0) :: (store (<8 x s16>))
46    RetRA
47
48...
49---
50name:            load_store_v4i32
51alignment:       4
52tracksRegLiveness: true
53body:             |
54  bb.1.entry:
55    liveins: $a0, $a1
56
57    ; P5600-LABEL: name: load_store_v4i32
58    ; P5600: liveins: $a0, $a1
59    ; P5600-NEXT: {{  $}}
60    ; P5600-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
61    ; P5600-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
62    ; P5600-NEXT: [[LOAD:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load (<4 x s32>))
63    ; P5600-NEXT: G_STORE [[LOAD]](<4 x s32>), [[COPY]](p0) :: (store (<4 x s32>))
64    ; P5600-NEXT: RetRA
65    %0:_(p0) = COPY $a0
66    %1:_(p0) = COPY $a1
67    %2:_(<4 x s32>) = G_LOAD %1(p0) :: (load (<4 x s32>))
68    G_STORE %2(<4 x s32>), %0(p0) :: (store (<4 x s32>))
69    RetRA
70
71...
72---
73name:            load_store_v2i64
74alignment:       4
75tracksRegLiveness: true
76body:             |
77  bb.1.entry:
78    liveins: $a0, $a1
79
80    ; P5600-LABEL: name: load_store_v2i64
81    ; P5600: liveins: $a0, $a1
82    ; P5600-NEXT: {{  $}}
83    ; P5600-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
84    ; P5600-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
85    ; P5600-NEXT: [[LOAD:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load (<2 x s64>))
86    ; P5600-NEXT: G_STORE [[LOAD]](<2 x s64>), [[COPY]](p0) :: (store (<2 x s64>))
87    ; P5600-NEXT: RetRA
88    %0:_(p0) = COPY $a0
89    %1:_(p0) = COPY $a1
90    %2:_(<2 x s64>) = G_LOAD %1(p0) :: (load (<2 x s64>))
91    G_STORE %2(<2 x s64>), %0(p0) :: (store (<2 x s64>))
92    RetRA
93
94...
95---
96name:            load_store_v4f32
97alignment:       4
98tracksRegLiveness: true
99body:             |
100  bb.1.entry:
101    liveins: $a0, $a1
102
103    ; P5600-LABEL: name: load_store_v4f32
104    ; P5600: liveins: $a0, $a1
105    ; P5600-NEXT: {{  $}}
106    ; P5600-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
107    ; P5600-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
108    ; P5600-NEXT: [[LOAD:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load (<4 x s32>))
109    ; P5600-NEXT: G_STORE [[LOAD]](<4 x s32>), [[COPY]](p0) :: (store (<4 x s32>))
110    ; P5600-NEXT: RetRA
111    %0:_(p0) = COPY $a0
112    %1:_(p0) = COPY $a1
113    %2:_(<4 x s32>) = G_LOAD %1(p0) :: (load (<4 x s32>))
114    G_STORE %2(<4 x s32>), %0(p0) :: (store (<4 x s32>))
115    RetRA
116
117...
118---
119name:            load_store_v2f64
120alignment:       4
121tracksRegLiveness: true
122body:             |
123  bb.1.entry:
124    liveins: $a0, $a1
125
126    ; P5600-LABEL: name: load_store_v2f64
127    ; P5600: liveins: $a0, $a1
128    ; P5600-NEXT: {{  $}}
129    ; P5600-NEXT: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
130    ; P5600-NEXT: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
131    ; P5600-NEXT: [[LOAD:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load (<2 x s64>))
132    ; P5600-NEXT: G_STORE [[LOAD]](<2 x s64>), [[COPY]](p0) :: (store (<2 x s64>))
133    ; P5600-NEXT: RetRA
134    %0:_(p0) = COPY $a0
135    %1:_(p0) = COPY $a1
136    %2:_(<2 x s64>) = G_LOAD %1(p0) :: (load (<2 x s64>))
137    G_STORE %2(<2 x s64>), %0(p0) :: (store (<2 x s64>))
138    RetRA
139
140...
141