4
4
define <vscale x 2 x i16 > @dupsext_v2i8_v2i16 (i8 %src , <vscale x 2 x i16 > %b ) {
5
5
; CHECK-LABEL: dupsext_v2i8_v2i16:
6
6
; CHECK: // %bb.0: // %entry
7
- ; CHECK-NEXT: ptrue p0.d
8
7
; CHECK-NEXT: sxtb w8, w0
8
+ ; CHECK-NEXT: ptrue p0.d
9
9
; CHECK-NEXT: mov z1.d, x8
10
10
; CHECK-NEXT: mul z0.d, p0/m, z0.d, z1.d
11
11
; CHECK-NEXT: ret
20
20
define <vscale x 4 x i16 > @dupsext_v4i8_v4i16 (i8 %src , <vscale x 4 x i16 > %b ) {
21
21
; CHECK-LABEL: dupsext_v4i8_v4i16:
22
22
; CHECK: // %bb.0: // %entry
23
- ; CHECK-NEXT: ptrue p0.s
24
23
; CHECK-NEXT: sxtb w8, w0
24
+ ; CHECK-NEXT: ptrue p0.s
25
25
; CHECK-NEXT: mov z1.s, w8
26
26
; CHECK-NEXT: mul z0.s, p0/m, z0.s, z1.s
27
27
; CHECK-NEXT: ret
36
36
define <vscale x 8 x i16 > @dupsext_v8i8_v8i16 (i8 %src , <vscale x 8 x i16 > %b ) {
37
37
; CHECK-LABEL: dupsext_v8i8_v8i16:
38
38
; CHECK: // %bb.0: // %entry
39
- ; CHECK-NEXT: ptrue p0.h
40
39
; CHECK-NEXT: sxtb w8, w0
40
+ ; CHECK-NEXT: ptrue p0.h
41
41
; CHECK-NEXT: mov z1.h, w8
42
42
; CHECK-NEXT: mul z0.h, p0/m, z0.h, z1.h
43
43
; CHECK-NEXT: ret
52
52
define <vscale x 2 x i32 > @dupsext_v2i8_v2i32 (i8 %src , <vscale x 2 x i32 > %b ) {
53
53
; CHECK-LABEL: dupsext_v2i8_v2i32:
54
54
; CHECK: // %bb.0: // %entry
55
- ; CHECK-NEXT: ptrue p0.d
56
55
; CHECK-NEXT: sxtb w8, w0
56
+ ; CHECK-NEXT: ptrue p0.d
57
57
; CHECK-NEXT: mov z1.d, x8
58
58
; CHECK-NEXT: mul z0.d, p0/m, z0.d, z1.d
59
59
; CHECK-NEXT: ret
68
68
define <vscale x 4 x i32 > @dupsext_v4i8_v4i32 (i8 %src , <vscale x 4 x i32 > %b ) {
69
69
; CHECK-LABEL: dupsext_v4i8_v4i32:
70
70
; CHECK: // %bb.0: // %entry
71
- ; CHECK-NEXT: ptrue p0.s
72
71
; CHECK-NEXT: sxtb w8, w0
72
+ ; CHECK-NEXT: ptrue p0.s
73
73
; CHECK-NEXT: mov z1.s, w8
74
74
; CHECK-NEXT: mul z0.s, p0/m, z0.s, z1.s
75
75
; CHECK-NEXT: ret
84
84
define <vscale x 2 x i64 > @dupsext_v2i8_v2i64 (i8 %src , <vscale x 2 x i64 > %b ) {
85
85
; CHECK-LABEL: dupsext_v2i8_v2i64:
86
86
; CHECK: // %bb.0: // %entry
87
- ; CHECK-NEXT: ptrue p0.d
88
87
; CHECK-NEXT: // kill: def $w0 killed $w0 def $x0
89
88
; CHECK-NEXT: sxtb x8, w0
89
+ ; CHECK-NEXT: ptrue p0.d
90
90
; CHECK-NEXT: mov z1.d, x8
91
91
; CHECK-NEXT: mul z0.d, p0/m, z0.d, z1.d
92
92
; CHECK-NEXT: ret
@@ -101,8 +101,8 @@ entry:
101
101
define <vscale x 2 x i32 > @dupsext_v2i16_v2i32 (i16 %src , <vscale x 2 x i32 > %b ) {
102
102
; CHECK-LABEL: dupsext_v2i16_v2i32:
103
103
; CHECK: // %bb.0: // %entry
104
- ; CHECK-NEXT: ptrue p0.d
105
104
; CHECK-NEXT: sxth w8, w0
105
+ ; CHECK-NEXT: ptrue p0.d
106
106
; CHECK-NEXT: mov z1.d, x8
107
107
; CHECK-NEXT: mul z0.d, p0/m, z0.d, z1.d
108
108
; CHECK-NEXT: ret
@@ -117,8 +117,8 @@ entry:
117
117
define <vscale x 4 x i32 > @dupsext_v4i16_v4i32 (i16 %src , <vscale x 4 x i32 > %b ) {
118
118
; CHECK-LABEL: dupsext_v4i16_v4i32:
119
119
; CHECK: // %bb.0: // %entry
120
- ; CHECK-NEXT: ptrue p0.s
121
120
; CHECK-NEXT: sxth w8, w0
121
+ ; CHECK-NEXT: ptrue p0.s
122
122
; CHECK-NEXT: mov z1.s, w8
123
123
; CHECK-NEXT: mul z0.s, p0/m, z0.s, z1.s
124
124
; CHECK-NEXT: ret
@@ -133,9 +133,9 @@ entry:
133
133
define <vscale x 2 x i64 > @dupsext_v2i16_v2i64 (i16 %src , <vscale x 2 x i64 > %b ) {
134
134
; CHECK-LABEL: dupsext_v2i16_v2i64:
135
135
; CHECK: // %bb.0: // %entry
136
- ; CHECK-NEXT: ptrue p0.d
137
136
; CHECK-NEXT: // kill: def $w0 killed $w0 def $x0
138
137
; CHECK-NEXT: sxth x8, w0
138
+ ; CHECK-NEXT: ptrue p0.d
139
139
; CHECK-NEXT: mov z1.d, x8
140
140
; CHECK-NEXT: mul z0.d, p0/m, z0.d, z1.d
141
141
; CHECK-NEXT: ret
@@ -150,9 +150,9 @@ entry:
150
150
define <vscale x 2 x i64 > @dupsext_v2i32_v2i64 (i32 %src , <vscale x 2 x i64 > %b ) {
151
151
; CHECK-LABEL: dupsext_v2i32_v2i64:
152
152
; CHECK: // %bb.0: // %entry
153
- ; CHECK-NEXT: ptrue p0.d
154
153
; CHECK-NEXT: // kill: def $w0 killed $w0 def $x0
155
154
; CHECK-NEXT: sxtw x8, w0
155
+ ; CHECK-NEXT: ptrue p0.d
156
156
; CHECK-NEXT: mov z1.d, x8
157
157
; CHECK-NEXT: mul z0.d, p0/m, z0.d, z1.d
158
158
; CHECK-NEXT: ret
@@ -167,8 +167,8 @@ entry:
167
167
define <vscale x 2 x i16 > @dupzext_v2i8_v2i16 (i8 %src , <vscale x 2 x i16 > %b ) {
168
168
; CHECK-LABEL: dupzext_v2i8_v2i16:
169
169
; CHECK: // %bb.0: // %entry
170
- ; CHECK-NEXT: ptrue p0.d
171
170
; CHECK-NEXT: and w8, w0, #0xff
171
+ ; CHECK-NEXT: ptrue p0.d
172
172
; CHECK-NEXT: mov z1.d, x8
173
173
; CHECK-NEXT: mul z0.d, p0/m, z0.d, z1.d
174
174
; CHECK-NEXT: ret
@@ -183,8 +183,8 @@ entry:
183
183
define <vscale x 4 x i16 > @dupzext_v4i8_v4i16 (i8 %src , <vscale x 4 x i16 > %b ) {
184
184
; CHECK-LABEL: dupzext_v4i8_v4i16:
185
185
; CHECK: // %bb.0: // %entry
186
- ; CHECK-NEXT: ptrue p0.s
187
186
; CHECK-NEXT: and w8, w0, #0xff
187
+ ; CHECK-NEXT: ptrue p0.s
188
188
; CHECK-NEXT: mov z1.s, w8
189
189
; CHECK-NEXT: mul z0.s, p0/m, z0.s, z1.s
190
190
; CHECK-NEXT: ret
@@ -199,8 +199,8 @@ entry:
199
199
define <vscale x 8 x i16 > @dupzext_v8i8_v8i16 (i8 %src , <vscale x 8 x i16 > %b ) {
200
200
; CHECK-LABEL: dupzext_v8i8_v8i16:
201
201
; CHECK: // %bb.0: // %entry
202
- ; CHECK-NEXT: ptrue p0.h
203
202
; CHECK-NEXT: and w8, w0, #0xff
203
+ ; CHECK-NEXT: ptrue p0.h
204
204
; CHECK-NEXT: mov z1.h, w8
205
205
; CHECK-NEXT: mul z0.h, p0/m, z0.h, z1.h
206
206
; CHECK-NEXT: ret
@@ -215,8 +215,8 @@ entry:
215
215
define <vscale x 2 x i32 > @dupzext_v2i8_v2i32 (i8 %src , <vscale x 2 x i32 > %b ) {
216
216
; CHECK-LABEL: dupzext_v2i8_v2i32:
217
217
; CHECK: // %bb.0: // %entry
218
- ; CHECK-NEXT: ptrue p0.d
219
218
; CHECK-NEXT: and w8, w0, #0xff
219
+ ; CHECK-NEXT: ptrue p0.d
220
220
; CHECK-NEXT: mov z1.d, x8
221
221
; CHECK-NEXT: mul z0.d, p0/m, z0.d, z1.d
222
222
; CHECK-NEXT: ret
@@ -231,8 +231,8 @@ entry:
231
231
define <vscale x 4 x i32 > @dupzext_v4i8_v4i32 (i8 %src , <vscale x 4 x i32 > %b ) {
232
232
; CHECK-LABEL: dupzext_v4i8_v4i32:
233
233
; CHECK: // %bb.0: // %entry
234
- ; CHECK-NEXT: ptrue p0.s
235
234
; CHECK-NEXT: and w8, w0, #0xff
235
+ ; CHECK-NEXT: ptrue p0.s
236
236
; CHECK-NEXT: mov z1.s, w8
237
237
; CHECK-NEXT: mul z0.s, p0/m, z0.s, z1.s
238
238
; CHECK-NEXT: ret
@@ -247,9 +247,9 @@ entry:
247
247
define <vscale x 2 x i64 > @dupzext_v2i8_v2i64 (i8 %src , <vscale x 2 x i64 > %b ) {
248
248
; CHECK-LABEL: dupzext_v2i8_v2i64:
249
249
; CHECK: // %bb.0: // %entry
250
- ; CHECK-NEXT: ptrue p0.d
251
250
; CHECK-NEXT: // kill: def $w0 killed $w0 def $x0
252
251
; CHECK-NEXT: and x8, x0, #0xff
252
+ ; CHECK-NEXT: ptrue p0.d
253
253
; CHECK-NEXT: mov z1.d, x8
254
254
; CHECK-NEXT: mul z0.d, p0/m, z0.d, z1.d
255
255
; CHECK-NEXT: ret
@@ -264,8 +264,8 @@ entry:
264
264
define <vscale x 2 x i32 > @dupzext_v2i16_v2i32 (i16 %src , <vscale x 2 x i32 > %b ) {
265
265
; CHECK-LABEL: dupzext_v2i16_v2i32:
266
266
; CHECK: // %bb.0: // %entry
267
- ; CHECK-NEXT: ptrue p0.d
268
267
; CHECK-NEXT: and w8, w0, #0xffff
268
+ ; CHECK-NEXT: ptrue p0.d
269
269
; CHECK-NEXT: mov z1.d, x8
270
270
; CHECK-NEXT: mul z0.d, p0/m, z0.d, z1.d
271
271
; CHECK-NEXT: ret
@@ -280,8 +280,8 @@ entry:
280
280
define <vscale x 4 x i32 > @dupzext_v4i16_v4i32 (i16 %src , <vscale x 4 x i32 > %b ) {
281
281
; CHECK-LABEL: dupzext_v4i16_v4i32:
282
282
; CHECK: // %bb.0: // %entry
283
- ; CHECK-NEXT: ptrue p0.s
284
283
; CHECK-NEXT: and w8, w0, #0xffff
284
+ ; CHECK-NEXT: ptrue p0.s
285
285
; CHECK-NEXT: mov z1.s, w8
286
286
; CHECK-NEXT: mul z0.s, p0/m, z0.s, z1.s
287
287
; CHECK-NEXT: ret
@@ -296,9 +296,9 @@ entry:
296
296
define <vscale x 2 x i64 > @dupzext_v2i16_v2i64 (i16 %src , <vscale x 2 x i64 > %b ) {
297
297
; CHECK-LABEL: dupzext_v2i16_v2i64:
298
298
; CHECK: // %bb.0: // %entry
299
- ; CHECK-NEXT: ptrue p0.d
300
299
; CHECK-NEXT: // kill: def $w0 killed $w0 def $x0
301
300
; CHECK-NEXT: and x8, x0, #0xffff
301
+ ; CHECK-NEXT: ptrue p0.d
302
302
; CHECK-NEXT: mov z1.d, x8
303
303
; CHECK-NEXT: mul z0.d, p0/m, z0.d, z1.d
304
304
; CHECK-NEXT: ret
@@ -313,8 +313,8 @@ entry:
313
313
define <vscale x 2 x i64 > @dupzext_v2i32_v2i64 (i32 %src , <vscale x 2 x i64 > %b ) {
314
314
; CHECK-LABEL: dupzext_v2i32_v2i64:
315
315
; CHECK: // %bb.0: // %entry
316
- ; CHECK-NEXT: ptrue p0.d
317
316
; CHECK-NEXT: mov w8, w0
317
+ ; CHECK-NEXT: ptrue p0.d
318
318
; CHECK-NEXT: mov z1.d, x8
319
319
; CHECK-NEXT: mul z0.d, p0/m, z0.d, z1.d
320
320
; CHECK-NEXT: ret
0 commit comments