@@ -23,7 +23,7 @@ define <32 x i8> @xvabsd_b(<32 x i8> %a, <32 x i8> %b) {
23
23
%a.sext = sext <32 x i8 > %a to <32 x i16 >
24
24
%b.sext = sext <32 x i8 > %b to <32 x i16 >
25
25
%sub = sub <32 x i16 > %a.sext , %b.sext
26
- %abs = call <32 x i16 > @llvm.abs.v16i16 (<32 x i16 > %sub , i1 true )
26
+ %abs = call <32 x i16 > @llvm.abs.v32i16 (<32 x i16 > %sub , i1 true )
27
27
%trunc = trunc <32 x i16 > %abs to <32 x i8 >
28
28
ret <32 x i8 > %trunc
29
29
}
@@ -38,7 +38,7 @@ define <16 x i16> @xvabsd_h(<16 x i16> %a, <16 x i16> %b) {
38
38
%a.sext = sext <16 x i16 > %a to <16 x i32 >
39
39
%b.sext = sext <16 x i16 > %b to <16 x i32 >
40
40
%sub = sub <16 x i32 > %a.sext , %b.sext
41
- %abs = call <16 x i32 > @llvm.abs.v8i32 (<16 x i32 > %sub , i1 true )
41
+ %abs = call <16 x i32 > @llvm.abs.v16i32 (<16 x i32 > %sub , i1 true )
42
42
%trunc = trunc <16 x i32 > %abs to <16 x i16 >
43
43
ret <16 x i16 > %trunc
44
44
}
@@ -53,7 +53,7 @@ define <8 x i32> @xvabsd_w(<8 x i32> %a, <8 x i32> %b) {
53
53
%a.sext = sext <8 x i32 > %a to <8 x i64 >
54
54
%b.sext = sext <8 x i32 > %b to <8 x i64 >
55
55
%sub = sub <8 x i64 > %a.sext , %b.sext
56
- %abs = call <8 x i64 > @llvm.abs.v4i64 (<8 x i64 > %sub , i1 true )
56
+ %abs = call <8 x i64 > @llvm.abs.v8i64 (<8 x i64 > %sub , i1 true )
57
57
%trunc = trunc <8 x i64 > %abs to <8 x i32 >
58
58
ret <8 x i32 > %trunc
59
59
}
@@ -68,7 +68,7 @@ define <4 x i64> @xvabsd_d(<4 x i64> %a, <4 x i64> %b) {
68
68
%a.sext = sext <4 x i64 > %a to <4 x i128 >
69
69
%b.sext = sext <4 x i64 > %b to <4 x i128 >
70
70
%sub = sub <4 x i128 > %a.sext , %b.sext
71
- %abs = call <4 x i128 > @llvm.abs.v2i128 (<4 x i128 > %sub , i1 true )
71
+ %abs = call <4 x i128 > @llvm.abs.v4i128 (<4 x i128 > %sub , i1 true )
72
72
%trunc = trunc <4 x i128 > %abs to <4 x i64 >
73
73
ret <4 x i64 > %trunc
74
74
}
@@ -83,7 +83,7 @@ define <32 x i8> @xvabsd_bu(<32 x i8> %a, <32 x i8> %b) {
83
83
%a.zext = zext <32 x i8 > %a to <32 x i16 >
84
84
%b.zext = zext <32 x i8 > %b to <32 x i16 >
85
85
%sub = sub <32 x i16 > %a.zext , %b.zext
86
- %abs = call <32 x i16 > @llvm.abs.v16i16 (<32 x i16 > %sub , i1 true )
86
+ %abs = call <32 x i16 > @llvm.abs.v32i16 (<32 x i16 > %sub , i1 true )
87
87
%trunc = trunc <32 x i16 > %abs to <32 x i8 >
88
88
ret <32 x i8 > %trunc
89
89
}
@@ -98,7 +98,7 @@ define <16 x i16> @xvabsd_hu(<16 x i16> %a, <16 x i16> %b) {
98
98
%a.zext = zext <16 x i16 > %a to <16 x i32 >
99
99
%b.zext = zext <16 x i16 > %b to <16 x i32 >
100
100
%sub = sub <16 x i32 > %a.zext , %b.zext
101
- %abs = call <16 x i32 > @llvm.abs.v8i32 (<16 x i32 > %sub , i1 true )
101
+ %abs = call <16 x i32 > @llvm.abs.v16i32 (<16 x i32 > %sub , i1 true )
102
102
%trunc = trunc <16 x i32 > %abs to <16 x i16 >
103
103
ret <16 x i16 > %trunc
104
104
}
@@ -113,7 +113,7 @@ define <8 x i32> @xvabsd_wu(<8 x i32> %a, <8 x i32> %b) {
113
113
%a.zext = zext <8 x i32 > %a to <8 x i64 >
114
114
%b.zext = zext <8 x i32 > %b to <8 x i64 >
115
115
%sub = sub <8 x i64 > %a.zext , %b.zext
116
- %abs = call <8 x i64 > @llvm.abs.v4i64 (<8 x i64 > %sub , i1 true )
116
+ %abs = call <8 x i64 > @llvm.abs.v8i64 (<8 x i64 > %sub , i1 true )
117
117
%trunc = trunc <8 x i64 > %abs to <8 x i32 >
118
118
ret <8 x i32 > %trunc
119
119
}
@@ -128,7 +128,7 @@ define <4 x i64> @xvabsd_du(<4 x i64> %a, <4 x i64> %b) {
128
128
%a.zext = zext <4 x i64 > %a to <4 x i128 >
129
129
%b.zext = zext <4 x i64 > %b to <4 x i128 >
130
130
%sub = sub <4 x i128 > %a.zext , %b.zext
131
- %abs = call <4 x i128 > @llvm.abs.v2i128 (<4 x i128 > %sub , i1 true )
131
+ %abs = call <4 x i128 > @llvm.abs.v4i128 (<4 x i128 > %sub , i1 true )
132
132
%trunc = trunc <4 x i128 > %abs to <4 x i64 >
133
133
ret <4 x i64 > %trunc
134
134
}
@@ -142,7 +142,7 @@ define <32 x i8> @xvabsd_b_nsw(<32 x i8> %a, <32 x i8> %b) {
142
142
; CHECK-NEXT: xvmax.b $xr0, $xr0, $xr1
143
143
; CHECK-NEXT: ret
144
144
%sub = sub nsw <32 x i8 > %a , %b
145
- %abs = call <32 x i8 > @llvm.abs.v16i8 (<32 x i8 > %sub , i1 true )
145
+ %abs = call <32 x i8 > @llvm.abs.v32i8 (<32 x i8 > %sub , i1 true )
146
146
ret <32 x i8 > %abs
147
147
}
148
148
@@ -154,7 +154,7 @@ define <16 x i16> @xvabsd_h_nsw(<16 x i16> %a, <16 x i16> %b) {
154
154
; CHECK-NEXT: xvmax.h $xr0, $xr0, $xr1
155
155
; CHECK-NEXT: ret
156
156
%sub = sub nsw <16 x i16 > %a , %b
157
- %abs = call <16 x i16 > @llvm.abs.v8i16 (<16 x i16 > %sub , i1 true )
157
+ %abs = call <16 x i16 > @llvm.abs.v16i16 (<16 x i16 > %sub , i1 true )
158
158
ret <16 x i16 > %abs
159
159
}
160
160
@@ -166,7 +166,7 @@ define <8 x i32> @xvabsd_w_nsw(<8 x i32> %a, <8 x i32> %b) {
166
166
; CHECK-NEXT: xvmax.w $xr0, $xr0, $xr1
167
167
; CHECK-NEXT: ret
168
168
%sub = sub nsw <8 x i32 > %a , %b
169
- %abs = call <8 x i32 > @llvm.abs.v4i32 (<8 x i32 > %sub , i1 true )
169
+ %abs = call <8 x i32 > @llvm.abs.v8i32 (<8 x i32 > %sub , i1 true )
170
170
ret <8 x i32 > %abs
171
171
}
172
172
@@ -178,7 +178,7 @@ define <4 x i64> @xvabsd_d_nsw(<4 x i64> %a, <4 x i64> %b) {
178
178
; CHECK-NEXT: xvmax.d $xr0, $xr0, $xr1
179
179
; CHECK-NEXT: ret
180
180
%sub = sub nsw <4 x i64 > %a , %b
181
- %abs = call <4 x i64 > @llvm.abs.v2i64 (<4 x i64 > %sub , i1 true )
181
+ %abs = call <4 x i64 > @llvm.abs.v4i64 (<4 x i64 > %sub , i1 true )
182
182
ret <4 x i64 > %abs
183
183
}
184
184
@@ -190,8 +190,8 @@ define <32 x i8> @maxmin_b(<32 x i8> %0, <32 x i8> %1) {
190
190
; CHECK-NEXT: xvmax.b $xr0, $xr0, $xr1
191
191
; CHECK-NEXT: xvsub.b $xr0, $xr0, $xr2
192
192
; CHECK-NEXT: ret
193
- %a = tail call <32 x i8 > @llvm.smax.v16i8 (<32 x i8 > %0 , <32 x i8 > %1 )
194
- %b = tail call <32 x i8 > @llvm.smin.v16i8 (<32 x i8 > %0 , <32 x i8 > %1 )
193
+ %a = tail call <32 x i8 > @llvm.smax.v32i8 (<32 x i8 > %0 , <32 x i8 > %1 )
194
+ %b = tail call <32 x i8 > @llvm.smin.v32i8 (<32 x i8 > %0 , <32 x i8 > %1 )
195
195
%sub = sub <32 x i8 > %a , %b
196
196
ret <32 x i8 > %sub
197
197
}
@@ -203,8 +203,8 @@ define <16 x i16> @maxmin_h(<16 x i16> %0, <16 x i16> %1) {
203
203
; CHECK-NEXT: xvmax.h $xr0, $xr0, $xr1
204
204
; CHECK-NEXT: xvsub.h $xr0, $xr0, $xr2
205
205
; CHECK-NEXT: ret
206
- %a = tail call <16 x i16 > @llvm.smax.v8i16 (<16 x i16 > %0 , <16 x i16 > %1 )
207
- %b = tail call <16 x i16 > @llvm.smin.v8i16 (<16 x i16 > %0 , <16 x i16 > %1 )
206
+ %a = tail call <16 x i16 > @llvm.smax.v16i16 (<16 x i16 > %0 , <16 x i16 > %1 )
207
+ %b = tail call <16 x i16 > @llvm.smin.v16i16 (<16 x i16 > %0 , <16 x i16 > %1 )
208
208
%sub = sub <16 x i16 > %a , %b
209
209
ret <16 x i16 > %sub
210
210
}
@@ -216,8 +216,8 @@ define <8 x i32> @maxmin_w(<8 x i32> %0, <8 x i32> %1) {
216
216
; CHECK-NEXT: xvmax.w $xr0, $xr0, $xr1
217
217
; CHECK-NEXT: xvsub.w $xr0, $xr0, $xr2
218
218
; CHECK-NEXT: ret
219
- %a = tail call <8 x i32 > @llvm.smax.v4i32 (<8 x i32 > %0 , <8 x i32 > %1 )
220
- %b = tail call <8 x i32 > @llvm.smin.v4i32 (<8 x i32 > %0 , <8 x i32 > %1 )
219
+ %a = tail call <8 x i32 > @llvm.smax.v8i32 (<8 x i32 > %0 , <8 x i32 > %1 )
220
+ %b = tail call <8 x i32 > @llvm.smin.v8i32 (<8 x i32 > %0 , <8 x i32 > %1 )
221
221
%sub = sub <8 x i32 > %a , %b
222
222
ret <8 x i32 > %sub
223
223
}
@@ -229,8 +229,8 @@ define <4 x i64> @maxmin_d(<4 x i64> %0, <4 x i64> %1) {
229
229
; CHECK-NEXT: xvmax.d $xr0, $xr0, $xr1
230
230
; CHECK-NEXT: xvsub.d $xr0, $xr0, $xr2
231
231
; CHECK-NEXT: ret
232
- %a = tail call <4 x i64 > @llvm.smax.v2i64 (<4 x i64 > %0 , <4 x i64 > %1 )
233
- %b = tail call <4 x i64 > @llvm.smin.v2i64 (<4 x i64 > %0 , <4 x i64 > %1 )
232
+ %a = tail call <4 x i64 > @llvm.smax.v4i64 (<4 x i64 > %0 , <4 x i64 > %1 )
233
+ %b = tail call <4 x i64 > @llvm.smin.v4i64 (<4 x i64 > %0 , <4 x i64 > %1 )
234
234
%sub = sub <4 x i64 > %a , %b
235
235
ret <4 x i64 > %sub
236
236
}
@@ -242,8 +242,8 @@ define <32 x i8> @maxmin_bu(<32 x i8> %0, <32 x i8> %1) {
242
242
; CHECK-NEXT: xvmax.bu $xr0, $xr0, $xr1
243
243
; CHECK-NEXT: xvsub.b $xr0, $xr0, $xr2
244
244
; CHECK-NEXT: ret
245
- %a = tail call <32 x i8 > @llvm.umax.v16i8 (<32 x i8 > %0 , <32 x i8 > %1 )
246
- %b = tail call <32 x i8 > @llvm.umin.v16i8 (<32 x i8 > %0 , <32 x i8 > %1 )
245
+ %a = tail call <32 x i8 > @llvm.umax.v32i8 (<32 x i8 > %0 , <32 x i8 > %1 )
246
+ %b = tail call <32 x i8 > @llvm.umin.v32i8 (<32 x i8 > %0 , <32 x i8 > %1 )
247
247
%sub = sub <32 x i8 > %a , %b
248
248
ret <32 x i8 > %sub
249
249
}
@@ -255,8 +255,8 @@ define <16 x i16> @maxmin_hu(<16 x i16> %0, <16 x i16> %1) {
255
255
; CHECK-NEXT: xvmax.hu $xr0, $xr0, $xr1
256
256
; CHECK-NEXT: xvsub.h $xr0, $xr0, $xr2
257
257
; CHECK-NEXT: ret
258
- %a = tail call <16 x i16 > @llvm.umax.v8i16 (<16 x i16 > %0 , <16 x i16 > %1 )
259
- %b = tail call <16 x i16 > @llvm.umin.v8i16 (<16 x i16 > %0 , <16 x i16 > %1 )
258
+ %a = tail call <16 x i16 > @llvm.umax.v16i16 (<16 x i16 > %0 , <16 x i16 > %1 )
259
+ %b = tail call <16 x i16 > @llvm.umin.v16i16 (<16 x i16 > %0 , <16 x i16 > %1 )
260
260
%sub = sub <16 x i16 > %a , %b
261
261
ret <16 x i16 > %sub
262
262
}
@@ -268,8 +268,8 @@ define <8 x i32> @maxmin_wu(<8 x i32> %0, <8 x i32> %1) {
268
268
; CHECK-NEXT: xvmax.wu $xr0, $xr0, $xr1
269
269
; CHECK-NEXT: xvsub.w $xr0, $xr0, $xr2
270
270
; CHECK-NEXT: ret
271
- %a = tail call <8 x i32 > @llvm.umax.v4i32 (<8 x i32 > %0 , <8 x i32 > %1 )
272
- %b = tail call <8 x i32 > @llvm.umin.v4i32 (<8 x i32 > %0 , <8 x i32 > %1 )
271
+ %a = tail call <8 x i32 > @llvm.umax.v8i32 (<8 x i32 > %0 , <8 x i32 > %1 )
272
+ %b = tail call <8 x i32 > @llvm.umin.v8i32 (<8 x i32 > %0 , <8 x i32 > %1 )
273
273
%sub = sub <8 x i32 > %a , %b
274
274
ret <8 x i32 > %sub
275
275
}
@@ -281,8 +281,8 @@ define <4 x i64> @maxmin_du(<4 x i64> %0, <4 x i64> %1) {
281
281
; CHECK-NEXT: xvmax.du $xr0, $xr0, $xr1
282
282
; CHECK-NEXT: xvsub.d $xr0, $xr0, $xr2
283
283
; CHECK-NEXT: ret
284
- %a = tail call <4 x i64 > @llvm.umax.v2i64 (<4 x i64 > %0 , <4 x i64 > %1 )
285
- %b = tail call <4 x i64 > @llvm.umin.v2i64 (<4 x i64 > %0 , <4 x i64 > %1 )
284
+ %a = tail call <4 x i64 > @llvm.umax.v4i64 (<4 x i64 > %0 , <4 x i64 > %1 )
285
+ %b = tail call <4 x i64 > @llvm.umin.v4i64 (<4 x i64 > %0 , <4 x i64 > %1 )
286
286
%sub = sub <4 x i64 > %a , %b
287
287
ret <4 x i64 > %sub
288
288
}
@@ -294,8 +294,8 @@ define <32 x i8> @maxmin_bu_com1(<32 x i8> %0, <32 x i8> %1) {
294
294
; CHECK-NEXT: xvmax.bu $xr0, $xr0, $xr1
295
295
; CHECK-NEXT: xvsub.b $xr0, $xr0, $xr2
296
296
; CHECK-NEXT: ret
297
- %a = tail call <32 x i8 > @llvm.umax.v16i8 (<32 x i8 > %0 , <32 x i8 > %1 )
298
- %b = tail call <32 x i8 > @llvm.umin.v16i8 (<32 x i8 > %1 , <32 x i8 > %0 )
297
+ %a = tail call <32 x i8 > @llvm.umax.v32i8 (<32 x i8 > %0 , <32 x i8 > %1 )
298
+ %b = tail call <32 x i8 > @llvm.umin.v32i8 (<32 x i8 > %1 , <32 x i8 > %0 )
299
299
%sub = sub <32 x i8 > %a , %b
300
300
ret <32 x i8 > %sub
301
301
}
@@ -526,32 +526,32 @@ define <4 x i64> @xvabsd_du_select(<4 x i64> %a, <4 x i64> %b) nounwind {
526
526
ret <4 x i64 > %sub
527
527
}
528
528
529
- declare <32 x i8 > @llvm.abs.v16i8 (<32 x i8 >, i1 )
529
+ declare <32 x i8 > @llvm.abs.v32i8 (<32 x i8 >, i1 )
530
530
531
- declare <16 x i16 > @llvm.abs.v8i16 (<16 x i16 >, i1 )
532
- declare <32 x i16 > @llvm.abs.v16i16 (<32 x i16 >, i1 )
531
+ declare <16 x i16 > @llvm.abs.v16i16 (<16 x i16 >, i1 )
532
+ declare <32 x i16 > @llvm.abs.v32i16 (<32 x i16 >, i1 )
533
533
534
- declare <8 x i32 > @llvm.abs.v4i32 (<8 x i32 >, i1 )
535
- declare <16 x i32 > @llvm.abs.v8i32 (<16 x i32 >, i1 )
534
+ declare <8 x i32 > @llvm.abs.v8i32 (<8 x i32 >, i1 )
535
+ declare <16 x i32 > @llvm.abs.v16i32 (<16 x i32 >, i1 )
536
536
537
- declare <4 x i64 > @llvm.abs.v2i64 (<4 x i64 >, i1 )
538
- declare <8 x i64 > @llvm.abs.v4i64 (<8 x i64 >, i1 )
537
+ declare <4 x i64 > @llvm.abs.v4i64 (<4 x i64 >, i1 )
538
+ declare <8 x i64 > @llvm.abs.v8i64 (<8 x i64 >, i1 )
539
539
540
- declare <4 x i128 > @llvm.abs.v2i128 (<4 x i128 >, i1 )
540
+ declare <4 x i128 > @llvm.abs.v4i128 (<4 x i128 >, i1 )
541
541
542
- declare <32 x i8 > @llvm.smax.v16i8 (<32 x i8 >, <32 x i8 >)
543
- declare <16 x i16 > @llvm.smax.v8i16 (<16 x i16 >, <16 x i16 >)
544
- declare <8 x i32 > @llvm.smax.v4i32 (<8 x i32 >, <8 x i32 >)
545
- declare <4 x i64 > @llvm.smax.v2i64 (<4 x i64 >, <4 x i64 >)
546
- declare <32 x i8 > @llvm.smin.v16i8 (<32 x i8 >, <32 x i8 >)
547
- declare <16 x i16 > @llvm.smin.v8i16 (<16 x i16 >, <16 x i16 >)
548
- declare <8 x i32 > @llvm.smin.v4i32 (<8 x i32 >, <8 x i32 >)
549
- declare <4 x i64 > @llvm.smin.v2i64 (<4 x i64 >, <4 x i64 >)
550
- declare <32 x i8 > @llvm.umax.v16i8 (<32 x i8 >, <32 x i8 >)
551
- declare <16 x i16 > @llvm.umax.v8i16 (<16 x i16 >, <16 x i16 >)
552
- declare <8 x i32 > @llvm.umax.v4i32 (<8 x i32 >, <8 x i32 >)
553
- declare <4 x i64 > @llvm.umax.v2i64 (<4 x i64 >, <4 x i64 >)
554
- declare <32 x i8 > @llvm.umin.v16i8 (<32 x i8 >, <32 x i8 >)
555
- declare <16 x i16 > @llvm.umin.v8i16 (<16 x i16 >, <16 x i16 >)
556
- declare <8 x i32 > @llvm.umin.v4i32 (<8 x i32 >, <8 x i32 >)
557
- declare <4 x i64 > @llvm.umin.v2i64 (<4 x i64 >, <4 x i64 >)
542
+ declare <32 x i8 > @llvm.smax.v32i8 (<32 x i8 >, <32 x i8 >)
543
+ declare <16 x i16 > @llvm.smax.v16i16 (<16 x i16 >, <16 x i16 >)
544
+ declare <8 x i32 > @llvm.smax.v8i32 (<8 x i32 >, <8 x i32 >)
545
+ declare <4 x i64 > @llvm.smax.v4i64 (<4 x i64 >, <4 x i64 >)
546
+ declare <32 x i8 > @llvm.smin.v32i8 (<32 x i8 >, <32 x i8 >)
547
+ declare <16 x i16 > @llvm.smin.v16i16 (<16 x i16 >, <16 x i16 >)
548
+ declare <8 x i32 > @llvm.smin.v8i32 (<8 x i32 >, <8 x i32 >)
549
+ declare <4 x i64 > @llvm.smin.v4i64 (<4 x i64 >, <4 x i64 >)
550
+ declare <32 x i8 > @llvm.umax.v32i8 (<32 x i8 >, <32 x i8 >)
551
+ declare <16 x i16 > @llvm.umax.v16i16 (<16 x i16 >, <16 x i16 >)
552
+ declare <8 x i32 > @llvm.umax.v8i32 (<8 x i32 >, <8 x i32 >)
553
+ declare <4 x i64 > @llvm.umax.v4i64 (<4 x i64 >, <4 x i64 >)
554
+ declare <32 x i8 > @llvm.umin.v32i8 (<32 x i8 >, <32 x i8 >)
555
+ declare <16 x i16 > @llvm.umin.v16i16 (<16 x i16 >, <16 x i16 >)
556
+ declare <8 x i32 > @llvm.umin.v8i32 (<8 x i32 >, <8 x i32 >)
557
+ declare <4 x i64 > @llvm.umin.v4i64 (<4 x i64 >, <4 x i64 >)
0 commit comments