1
1
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2
2
; RUN: llc -mattr=+sve -force-streaming-compatible-sve < %s | FileCheck %s
3
3
; RUN: llc -mattr=+sme -force-streaming-compatible-sve < %s | FileCheck %s
4
- ; RUN: llc -force-streaming-compatible-sve < %s | FileCheck %s --check-prefix=NONEON-NOSVE
5
4
6
5
target triple = "aarch64-unknown-linux-gnu"
7
6
@@ -15,12 +14,6 @@ define <4 x i8> @vls_sve_and_4xi8(<4 x i8> %b) nounwind {
15
14
; CHECK-NEXT: and z0.d, z0.d, z1.d
16
15
; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0
17
16
; CHECK-NEXT: ret
18
- ;
19
- ; NONEON-NOSVE-LABEL: vls_sve_and_4xi8:
20
- ; NONEON-NOSVE: // %bb.0:
21
- ; NONEON-NOSVE-NEXT: movi d1, #0xff000000ff0000
22
- ; NONEON-NOSVE-NEXT: and v0.8b, v0.8b, v1.8b
23
- ; NONEON-NOSVE-NEXT: ret
24
17
%c = and <4 x i8 > %b , <i8 0 , i8 255 , i8 0 , i8 255 >
25
18
ret <4 x i8 > %c
26
19
}
@@ -34,12 +27,6 @@ define <8 x i8> @vls_sve_and_8xi8(<8 x i8> %b) nounwind {
34
27
; CHECK-NEXT: and z0.d, z0.d, z1.d
35
28
; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0
36
29
; CHECK-NEXT: ret
37
- ;
38
- ; NONEON-NOSVE-LABEL: vls_sve_and_8xi8:
39
- ; NONEON-NOSVE: // %bb.0:
40
- ; NONEON-NOSVE-NEXT: movi d1, #0xff00ff00ff00ff00
41
- ; NONEON-NOSVE-NEXT: and v0.8b, v0.8b, v1.8b
42
- ; NONEON-NOSVE-NEXT: ret
43
30
%c = and <8 x i8 > %b , <i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 >
44
31
ret <8 x i8 > %c
45
32
}
@@ -53,12 +40,6 @@ define <16 x i8> @vls_sve_and_16xi8(<16 x i8> %b) nounwind {
53
40
; CHECK-NEXT: and z0.d, z0.d, z1.d
54
41
; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
55
42
; CHECK-NEXT: ret
56
- ;
57
- ; NONEON-NOSVE-LABEL: vls_sve_and_16xi8:
58
- ; NONEON-NOSVE: // %bb.0:
59
- ; NONEON-NOSVE-NEXT: movi v1.2d, #0xff00ff00ff00ff00
60
- ; NONEON-NOSVE-NEXT: and v0.16b, v0.16b, v1.16b
61
- ; NONEON-NOSVE-NEXT: ret
62
43
%c = and <16 x i8 > %b , <i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 >
63
44
ret <16 x i8 > %c
64
45
}
@@ -75,13 +56,6 @@ define <32 x i8> @vls_sve_and_32xi8(<32 x i8> %ap) nounwind {
75
56
; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
76
57
; CHECK-NEXT: // kill: def $q1 killed $q1 killed $z1
77
58
; CHECK-NEXT: ret
78
- ;
79
- ; NONEON-NOSVE-LABEL: vls_sve_and_32xi8:
80
- ; NONEON-NOSVE: // %bb.0:
81
- ; NONEON-NOSVE-NEXT: movi v2.2d, #0xff00ff00ff00ff00
82
- ; NONEON-NOSVE-NEXT: and v0.16b, v0.16b, v2.16b
83
- ; NONEON-NOSVE-NEXT: and v1.16b, v1.16b, v2.16b
84
- ; NONEON-NOSVE-NEXT: ret
85
59
%b = and <32 x i8 > %ap , <i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 ,
86
60
i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 , i8 0 , i8 255 >
87
61
ret <32 x i8 > %b
@@ -99,13 +73,6 @@ define <2 x i16> @vls_sve_and_2xi16(<2 x i16> %b) nounwind {
99
73
; CHECK-NEXT: ldr d0, [sp, #8]
100
74
; CHECK-NEXT: add sp, sp, #16
101
75
; CHECK-NEXT: ret
102
- ;
103
- ; NONEON-NOSVE-LABEL: vls_sve_and_2xi16:
104
- ; NONEON-NOSVE: // %bb.0:
105
- ; NONEON-NOSVE-NEXT: // kill: def $d0 killed $d0 def $q0
106
- ; NONEON-NOSVE-NEXT: mov v0.s[0], wzr
107
- ; NONEON-NOSVE-NEXT: // kill: def $d0 killed $d0 killed $q0
108
- ; NONEON-NOSVE-NEXT: ret
109
76
%c = and <2 x i16 > %b , <i16 0 , i16 65535 >
110
77
ret <2 x i16 > %c
111
78
}
@@ -119,12 +86,6 @@ define <4 x i16> @vls_sve_and_4xi16(<4 x i16> %b) nounwind {
119
86
; CHECK-NEXT: and z0.d, z0.d, z1.d
120
87
; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0
121
88
; CHECK-NEXT: ret
122
- ;
123
- ; NONEON-NOSVE-LABEL: vls_sve_and_4xi16:
124
- ; NONEON-NOSVE: // %bb.0:
125
- ; NONEON-NOSVE-NEXT: movi d1, #0xffff0000ffff0000
126
- ; NONEON-NOSVE-NEXT: and v0.8b, v0.8b, v1.8b
127
- ; NONEON-NOSVE-NEXT: ret
128
89
%c = and <4 x i16 > %b , <i16 0 , i16 65535 , i16 0 , i16 65535 >
129
90
ret <4 x i16 > %c
130
91
}
@@ -138,12 +99,6 @@ define <8 x i16> @vls_sve_and_8xi16(<8 x i16> %b) nounwind {
138
99
; CHECK-NEXT: and z0.d, z0.d, z1.d
139
100
; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
140
101
; CHECK-NEXT: ret
141
- ;
142
- ; NONEON-NOSVE-LABEL: vls_sve_and_8xi16:
143
- ; NONEON-NOSVE: // %bb.0:
144
- ; NONEON-NOSVE-NEXT: movi v1.2d, #0xffff0000ffff0000
145
- ; NONEON-NOSVE-NEXT: and v0.16b, v0.16b, v1.16b
146
- ; NONEON-NOSVE-NEXT: ret
147
102
%c = and <8 x i16 > %b , <i16 0 , i16 65535 , i16 0 , i16 65535 , i16 0 , i16 65535 , i16 0 , i16 65535 >
148
103
ret <8 x i16 > %c
149
104
}
@@ -160,13 +115,6 @@ define <16 x i16> @vls_sve_and_16xi16(<16 x i16> %b) nounwind {
160
115
; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
161
116
; CHECK-NEXT: // kill: def $q1 killed $q1 killed $z1
162
117
; CHECK-NEXT: ret
163
- ;
164
- ; NONEON-NOSVE-LABEL: vls_sve_and_16xi16:
165
- ; NONEON-NOSVE: // %bb.0:
166
- ; NONEON-NOSVE-NEXT: movi v2.2d, #0xffff0000ffff0000
167
- ; NONEON-NOSVE-NEXT: and v0.16b, v0.16b, v2.16b
168
- ; NONEON-NOSVE-NEXT: and v1.16b, v1.16b, v2.16b
169
- ; NONEON-NOSVE-NEXT: ret
170
118
%c = and <16 x i16 > %b , <i16 0 , i16 65535 , i16 0 , i16 65535 , i16 0 , i16 65535 , i16 0 , i16 65535 , i16 0 , i16 65535 , i16 0 , i16 65535 , i16 0 , i16 65535 , i16 0 , i16 65535 >
171
119
ret <16 x i16 > %c
172
120
}
@@ -180,13 +128,6 @@ define <2 x i32> @vls_sve_and_2xi32(<2 x i32> %b) nounwind {
180
128
; CHECK-NEXT: and z0.d, z0.d, z1.d
181
129
; CHECK-NEXT: // kill: def $d0 killed $d0 killed $z0
182
130
; CHECK-NEXT: ret
183
- ;
184
- ; NONEON-NOSVE-LABEL: vls_sve_and_2xi32:
185
- ; NONEON-NOSVE: // %bb.0:
186
- ; NONEON-NOSVE-NEXT: // kill: def $d0 killed $d0 def $q0
187
- ; NONEON-NOSVE-NEXT: mov v0.s[0], wzr
188
- ; NONEON-NOSVE-NEXT: // kill: def $d0 killed $d0 killed $q0
189
- ; NONEON-NOSVE-NEXT: ret
190
131
%c = and <2 x i32 > %b , <i32 0 , i32 4294967295 >
191
132
ret <2 x i32 > %c
192
133
}
@@ -200,12 +141,6 @@ define <4 x i32> @vls_sve_and_4xi32(<4 x i32> %b) nounwind {
200
141
; CHECK-NEXT: and z0.d, z0.d, z1.d
201
142
; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
202
143
; CHECK-NEXT: ret
203
- ;
204
- ; NONEON-NOSVE-LABEL: vls_sve_and_4xi32:
205
- ; NONEON-NOSVE: // %bb.0:
206
- ; NONEON-NOSVE-NEXT: movi v1.2d, #0xffffffff00000000
207
- ; NONEON-NOSVE-NEXT: and v0.16b, v0.16b, v1.16b
208
- ; NONEON-NOSVE-NEXT: ret
209
144
%c = and <4 x i32 > %b , <i32 0 , i32 4294967295 , i32 0 , i32 4294967295 >
210
145
ret <4 x i32 > %c
211
146
}
@@ -222,13 +157,6 @@ define <8 x i32> @vls_sve_and_8xi32(<8 x i32> %b) nounwind {
222
157
; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
223
158
; CHECK-NEXT: // kill: def $q1 killed $q1 killed $z1
224
159
; CHECK-NEXT: ret
225
- ;
226
- ; NONEON-NOSVE-LABEL: vls_sve_and_8xi32:
227
- ; NONEON-NOSVE: // %bb.0:
228
- ; NONEON-NOSVE-NEXT: movi v2.2d, #0xffffffff00000000
229
- ; NONEON-NOSVE-NEXT: and v0.16b, v0.16b, v2.16b
230
- ; NONEON-NOSVE-NEXT: and v1.16b, v1.16b, v2.16b
231
- ; NONEON-NOSVE-NEXT: ret
232
160
%c = and <8 x i32 > %b , <i32 0 , i32 4294967295 , i32 0 , i32 4294967295 , i32 0 , i32 4294967295 , i32 0 , i32 4294967295 >
233
161
ret <8 x i32 > %c
234
162
}
@@ -242,11 +170,6 @@ define <2 x i64> @vls_sve_and_2xi64(<2 x i64> %b) nounwind {
242
170
; CHECK-NEXT: and z0.d, z0.d, z1.d
243
171
; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
244
172
; CHECK-NEXT: ret
245
- ;
246
- ; NONEON-NOSVE-LABEL: vls_sve_and_2xi64:
247
- ; NONEON-NOSVE: // %bb.0:
248
- ; NONEON-NOSVE-NEXT: mov v0.d[0], xzr
249
- ; NONEON-NOSVE-NEXT: ret
250
173
%c = and <2 x i64 > %b , <i64 0 , i64 18446744073709551615 >
251
174
ret <2 x i64 > %c
252
175
}
@@ -262,12 +185,6 @@ define <4 x i64> @vls_sve_and_4xi64(<4 x i64> %b) nounwind {
262
185
; CHECK-NEXT: // kill: def $q0 killed $q0 killed $z0
263
186
; CHECK-NEXT: // kill: def $q1 killed $q1 killed $z1
264
187
; CHECK-NEXT: ret
265
- ;
266
- ; NONEON-NOSVE-LABEL: vls_sve_and_4xi64:
267
- ; NONEON-NOSVE: // %bb.0:
268
- ; NONEON-NOSVE-NEXT: mov v0.d[0], xzr
269
- ; NONEON-NOSVE-NEXT: mov v1.d[0], xzr
270
- ; NONEON-NOSVE-NEXT: ret
271
188
%c = and <4 x i64 > %b , <i64 0 , i64 18446744073709551615 , i64 0 , i64 18446744073709551615 >
272
189
ret <4 x i64 > %c
273
190
}
0 commit comments