[SelectOpt] Support ADD and SUB with zext operands. (#115489)
[llvm-project.git] / llvm / test / CodeGen / Mips / GlobalISel / legalizer / load_store_vec.mir
blob636bf35f44c23fc07d5926700cdc9c7b33467f0b
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 ---
4 name:            load_store_v16i8
5 alignment:       4
6 tracksRegLiveness: true
7 body:             |
8   bb.1.entry:
9     liveins: $a0, $a1
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
25 ...
26 ---
27 name:            load_store_v8i16
28 alignment:       4
29 tracksRegLiveness: true
30 body:             |
31   bb.1.entry:
32     liveins: $a0, $a1
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
48 ...
49 ---
50 name:            load_store_v4i32
51 alignment:       4
52 tracksRegLiveness: true
53 body:             |
54   bb.1.entry:
55     liveins: $a0, $a1
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
71 ...
72 ---
73 name:            load_store_v2i64
74 alignment:       4
75 tracksRegLiveness: true
76 body:             |
77   bb.1.entry:
78     liveins: $a0, $a1
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
94 ...
95 ---
96 name:            load_store_v4f32
97 alignment:       4
98 tracksRegLiveness: true
99 body:             |
100   bb.1.entry:
101     liveins: $a0, $a1
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
119 name:            load_store_v2f64
120 alignment:       4
121 tracksRegLiveness: true
122 body:             |
123   bb.1.entry:
124     liveins: $a0, $a1
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