[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / Mips / GlobalISel / legalizer / load_store_vec.mir
blobd191de0ab46aa0515233d63b70ef8405d15d307e
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 --- |
5   define void @load_store_v16i8(<16 x i8>* %a, <16 x i8>* %b) { entry: ret void }
6   define void @load_store_v8i16(<8 x i16>* %a, <8 x i16>* %b) { entry: ret void }
7   define void @load_store_v4i32(<4 x i32>* %a, <4 x i32>* %b) { entry: ret void }
8   define void @load_store_v2i64(<2 x i64>* %a, <2 x i64>* %b) { entry: ret void }
9   define void @load_store_v4f32(<4 x float>* %a, <4 x float>* %b) { entry: ret void }
10   define void @load_store_v2f64(<2 x double>* %a, <2 x double>* %b) { entry: ret void }
12 ...
13 ---
14 name:            load_store_v16i8
15 alignment:       4
16 tracksRegLiveness: true
17 body:             |
18   bb.1.entry:
19     liveins: $a0, $a1
21     ; P5600-LABEL: name: load_store_v16i8
22     ; P5600: liveins: $a0, $a1
23     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
24     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
25     ; P5600: [[LOAD:%[0-9]+]]:_(<16 x s8>) = G_LOAD [[COPY1]](p0) :: (load 16 from %ir.b)
26     ; P5600: G_STORE [[LOAD]](<16 x s8>), [[COPY]](p0) :: (store 16 into %ir.a)
27     ; P5600: RetRA
28     %0:_(p0) = COPY $a0
29     %1:_(p0) = COPY $a1
30     %2:_(<16 x s8>) = G_LOAD %1(p0) :: (load 16 from %ir.b)
31     G_STORE %2(<16 x s8>), %0(p0) :: (store 16 into %ir.a)
32     RetRA
34 ...
35 ---
36 name:            load_store_v8i16
37 alignment:       4
38 tracksRegLiveness: true
39 body:             |
40   bb.1.entry:
41     liveins: $a0, $a1
43     ; P5600-LABEL: name: load_store_v8i16
44     ; P5600: liveins: $a0, $a1
45     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
46     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
47     ; P5600: [[LOAD:%[0-9]+]]:_(<8 x s16>) = G_LOAD [[COPY1]](p0) :: (load 16 from %ir.b)
48     ; P5600: G_STORE [[LOAD]](<8 x s16>), [[COPY]](p0) :: (store 16 into %ir.a)
49     ; P5600: RetRA
50     %0:_(p0) = COPY $a0
51     %1:_(p0) = COPY $a1
52     %2:_(<8 x s16>) = G_LOAD %1(p0) :: (load 16 from %ir.b)
53     G_STORE %2(<8 x s16>), %0(p0) :: (store 16 into %ir.a)
54     RetRA
56 ...
57 ---
58 name:            load_store_v4i32
59 alignment:       4
60 tracksRegLiveness: true
61 body:             |
62   bb.1.entry:
63     liveins: $a0, $a1
65     ; P5600-LABEL: name: load_store_v4i32
66     ; P5600: liveins: $a0, $a1
67     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
68     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
69     ; P5600: [[LOAD:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load 16 from %ir.b)
70     ; P5600: G_STORE [[LOAD]](<4 x s32>), [[COPY]](p0) :: (store 16 into %ir.a)
71     ; P5600: RetRA
72     %0:_(p0) = COPY $a0
73     %1:_(p0) = COPY $a1
74     %2:_(<4 x s32>) = G_LOAD %1(p0) :: (load 16 from %ir.b)
75     G_STORE %2(<4 x s32>), %0(p0) :: (store 16 into %ir.a)
76     RetRA
78 ...
79 ---
80 name:            load_store_v2i64
81 alignment:       4
82 tracksRegLiveness: true
83 body:             |
84   bb.1.entry:
85     liveins: $a0, $a1
87     ; P5600-LABEL: name: load_store_v2i64
88     ; P5600: liveins: $a0, $a1
89     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
90     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
91     ; P5600: [[LOAD:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load 16 from %ir.b)
92     ; P5600: G_STORE [[LOAD]](<2 x s64>), [[COPY]](p0) :: (store 16 into %ir.a)
93     ; P5600: RetRA
94     %0:_(p0) = COPY $a0
95     %1:_(p0) = COPY $a1
96     %2:_(<2 x s64>) = G_LOAD %1(p0) :: (load 16 from %ir.b)
97     G_STORE %2(<2 x s64>), %0(p0) :: (store 16 into %ir.a)
98     RetRA
102 name:            load_store_v4f32
103 alignment:       4
104 tracksRegLiveness: true
105 body:             |
106   bb.1.entry:
107     liveins: $a0, $a1
109     ; P5600-LABEL: name: load_store_v4f32
110     ; P5600: liveins: $a0, $a1
111     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
112     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
113     ; P5600: [[LOAD:%[0-9]+]]:_(<4 x s32>) = G_LOAD [[COPY1]](p0) :: (load 16 from %ir.b)
114     ; P5600: G_STORE [[LOAD]](<4 x s32>), [[COPY]](p0) :: (store 16 into %ir.a)
115     ; P5600: RetRA
116     %0:_(p0) = COPY $a0
117     %1:_(p0) = COPY $a1
118     %2:_(<4 x s32>) = G_LOAD %1(p0) :: (load 16 from %ir.b)
119     G_STORE %2(<4 x s32>), %0(p0) :: (store 16 into %ir.a)
120     RetRA
124 name:            load_store_v2f64
125 alignment:       4
126 tracksRegLiveness: true
127 body:             |
128   bb.1.entry:
129     liveins: $a0, $a1
131     ; P5600-LABEL: name: load_store_v2f64
132     ; P5600: liveins: $a0, $a1
133     ; P5600: [[COPY:%[0-9]+]]:_(p0) = COPY $a0
134     ; P5600: [[COPY1:%[0-9]+]]:_(p0) = COPY $a1
135     ; P5600: [[LOAD:%[0-9]+]]:_(<2 x s64>) = G_LOAD [[COPY1]](p0) :: (load 16 from %ir.b)
136     ; P5600: G_STORE [[LOAD]](<2 x s64>), [[COPY]](p0) :: (store 16 into %ir.a)
137     ; P5600: RetRA
138     %0:_(p0) = COPY $a0
139     %1:_(p0) = COPY $a1
140     %2:_(<2 x s64>) = G_LOAD %1(p0) :: (load 16 from %ir.b)
141     G_STORE %2(<2 x s64>), %0(p0) :: (store 16 into %ir.a)
142     RetRA