@@ -7,10 +7,7 @@ define void @xvavg_b(ptr %res, ptr %a, ptr %b) nounwind {
77; CHECK: # %bb.0: # %entry
88; CHECK-NEXT: xvld $xr0, $a1, 0
99; CHECK-NEXT: xvld $xr1, $a2, 0
10- ; CHECK-NEXT: xvand.v $xr2, $xr0, $xr1
11- ; CHECK-NEXT: xvxor.v $xr0, $xr0, $xr1
12- ; CHECK-NEXT: xvsrai.b $xr0, $xr0, 1
13- ; CHECK-NEXT: xvadd.b $xr0, $xr2, $xr0
10+ ; CHECK-NEXT: xvavg.b $xr0, $xr0, $xr1
1411; CHECK-NEXT: xvst $xr0, $a0, 0
1512; CHECK-NEXT: ret
1613entry:
@@ -30,10 +27,7 @@ define void @xvavg_h(ptr %res, ptr %a, ptr %b) nounwind {
3027; CHECK: # %bb.0: # %entry
3128; CHECK-NEXT: xvld $xr0, $a1, 0
3229; CHECK-NEXT: xvld $xr1, $a2, 0
33- ; CHECK-NEXT: xvand.v $xr2, $xr0, $xr1
34- ; CHECK-NEXT: xvxor.v $xr0, $xr0, $xr1
35- ; CHECK-NEXT: xvsrai.h $xr0, $xr0, 1
36- ; CHECK-NEXT: xvadd.h $xr0, $xr2, $xr0
30+ ; CHECK-NEXT: xvavg.h $xr0, $xr0, $xr1
3731; CHECK-NEXT: xvst $xr0, $a0, 0
3832; CHECK-NEXT: ret
3933entry:
@@ -53,10 +47,7 @@ define void @xvavg_w(ptr %res, ptr %a, ptr %b) nounwind {
5347; CHECK: # %bb.0: # %entry
5448; CHECK-NEXT: xvld $xr0, $a1, 0
5549; CHECK-NEXT: xvld $xr1, $a2, 0
56- ; CHECK-NEXT: xvand.v $xr2, $xr0, $xr1
57- ; CHECK-NEXT: xvxor.v $xr0, $xr0, $xr1
58- ; CHECK-NEXT: xvsrai.w $xr0, $xr0, 1
59- ; CHECK-NEXT: xvadd.w $xr0, $xr2, $xr0
50+ ; CHECK-NEXT: xvavg.w $xr0, $xr0, $xr1
6051; CHECK-NEXT: xvst $xr0, $a0, 0
6152; CHECK-NEXT: ret
6253entry:
@@ -76,10 +67,7 @@ define void @xvavg_d(ptr %res, ptr %a, ptr %b) nounwind {
7667; CHECK: # %bb.0: # %entry
7768; CHECK-NEXT: xvld $xr0, $a1, 0
7869; CHECK-NEXT: xvld $xr1, $a2, 0
79- ; CHECK-NEXT: xvand.v $xr2, $xr0, $xr1
80- ; CHECK-NEXT: xvxor.v $xr0, $xr0, $xr1
81- ; CHECK-NEXT: xvsrai.d $xr0, $xr0, 1
82- ; CHECK-NEXT: xvadd.d $xr0, $xr2, $xr0
70+ ; CHECK-NEXT: xvavg.d $xr0, $xr0, $xr1
8371; CHECK-NEXT: xvst $xr0, $a0, 0
8472; CHECK-NEXT: ret
8573entry:
@@ -99,10 +87,7 @@ define void @xvavg_bu(ptr %res, ptr %a, ptr %b) nounwind {
9987; CHECK: # %bb.0: # %entry
10088; CHECK-NEXT: xvld $xr0, $a1, 0
10189; CHECK-NEXT: xvld $xr1, $a2, 0
102- ; CHECK-NEXT: xvand.v $xr2, $xr0, $xr1
103- ; CHECK-NEXT: xvxor.v $xr0, $xr0, $xr1
104- ; CHECK-NEXT: xvsrli.b $xr0, $xr0, 1
105- ; CHECK-NEXT: xvadd.b $xr0, $xr2, $xr0
90+ ; CHECK-NEXT: xvavg.bu $xr0, $xr0, $xr1
10691; CHECK-NEXT: xvst $xr0, $a0, 0
10792; CHECK-NEXT: ret
10893entry:
@@ -122,10 +107,7 @@ define void @xvavg_hu(ptr %res, ptr %a, ptr %b) nounwind {
122107; CHECK: # %bb.0: # %entry
123108; CHECK-NEXT: xvld $xr0, $a1, 0
124109; CHECK-NEXT: xvld $xr1, $a2, 0
125- ; CHECK-NEXT: xvand.v $xr2, $xr0, $xr1
126- ; CHECK-NEXT: xvxor.v $xr0, $xr0, $xr1
127- ; CHECK-NEXT: xvsrli.h $xr0, $xr0, 1
128- ; CHECK-NEXT: xvadd.h $xr0, $xr2, $xr0
110+ ; CHECK-NEXT: xvavg.hu $xr0, $xr0, $xr1
129111; CHECK-NEXT: xvst $xr0, $a0, 0
130112; CHECK-NEXT: ret
131113entry:
@@ -145,10 +127,7 @@ define void @xvavg_wu(ptr %res, ptr %a, ptr %b) nounwind {
145127; CHECK: # %bb.0: # %entry
146128; CHECK-NEXT: xvld $xr0, $a1, 0
147129; CHECK-NEXT: xvld $xr1, $a2, 0
148- ; CHECK-NEXT: xvand.v $xr2, $xr0, $xr1
149- ; CHECK-NEXT: xvxor.v $xr0, $xr0, $xr1
150- ; CHECK-NEXT: xvsrli.w $xr0, $xr0, 1
151- ; CHECK-NEXT: xvadd.w $xr0, $xr2, $xr0
130+ ; CHECK-NEXT: xvavg.wu $xr0, $xr0, $xr1
152131; CHECK-NEXT: xvst $xr0, $a0, 0
153132; CHECK-NEXT: ret
154133entry:
@@ -168,10 +147,7 @@ define void @xvavg_du(ptr %res, ptr %a, ptr %b) nounwind {
168147; CHECK: # %bb.0: # %entry
169148; CHECK-NEXT: xvld $xr0, $a1, 0
170149; CHECK-NEXT: xvld $xr1, $a2, 0
171- ; CHECK-NEXT: xvand.v $xr2, $xr0, $xr1
172- ; CHECK-NEXT: xvxor.v $xr0, $xr0, $xr1
173- ; CHECK-NEXT: xvsrli.d $xr0, $xr0, 1
174- ; CHECK-NEXT: xvadd.d $xr0, $xr2, $xr0
150+ ; CHECK-NEXT: xvavg.du $xr0, $xr0, $xr1
175151; CHECK-NEXT: xvst $xr0, $a0, 0
176152; CHECK-NEXT: ret
177153entry:
@@ -191,10 +167,7 @@ define void @xvavgr_b(ptr %res, ptr %a, ptr %b) nounwind {
191167; CHECK: # %bb.0: # %entry
192168; CHECK-NEXT: xvld $xr0, $a1, 0
193169; CHECK-NEXT: xvld $xr1, $a2, 0
194- ; CHECK-NEXT: xvor.v $xr2, $xr0, $xr1
195- ; CHECK-NEXT: xvxor.v $xr0, $xr0, $xr1
196- ; CHECK-NEXT: xvsrai.b $xr0, $xr0, 1
197- ; CHECK-NEXT: xvsub.b $xr0, $xr2, $xr0
170+ ; CHECK-NEXT: xvavgr.b $xr0, $xr0, $xr1
198171; CHECK-NEXT: xvst $xr0, $a0, 0
199172; CHECK-NEXT: ret
200173entry:
@@ -215,10 +188,7 @@ define void @xvavgr_h(ptr %res, ptr %a, ptr %b) nounwind {
215188; CHECK: # %bb.0: # %entry
216189; CHECK-NEXT: xvld $xr0, $a1, 0
217190; CHECK-NEXT: xvld $xr1, $a2, 0
218- ; CHECK-NEXT: xvor.v $xr2, $xr0, $xr1
219- ; CHECK-NEXT: xvxor.v $xr0, $xr0, $xr1
220- ; CHECK-NEXT: xvsrai.h $xr0, $xr0, 1
221- ; CHECK-NEXT: xvsub.h $xr0, $xr2, $xr0
191+ ; CHECK-NEXT: xvavgr.h $xr0, $xr0, $xr1
222192; CHECK-NEXT: xvst $xr0, $a0, 0
223193; CHECK-NEXT: ret
224194entry:
@@ -239,10 +209,7 @@ define void @xvavgr_w(ptr %res, ptr %a, ptr %b) nounwind {
239209; CHECK: # %bb.0: # %entry
240210; CHECK-NEXT: xvld $xr0, $a1, 0
241211; CHECK-NEXT: xvld $xr1, $a2, 0
242- ; CHECK-NEXT: xvor.v $xr2, $xr0, $xr1
243- ; CHECK-NEXT: xvxor.v $xr0, $xr0, $xr1
244- ; CHECK-NEXT: xvsrai.w $xr0, $xr0, 1
245- ; CHECK-NEXT: xvsub.w $xr0, $xr2, $xr0
212+ ; CHECK-NEXT: xvavgr.w $xr0, $xr0, $xr1
246213; CHECK-NEXT: xvst $xr0, $a0, 0
247214; CHECK-NEXT: ret
248215entry:
@@ -263,10 +230,7 @@ define void @xvavgr_d(ptr %res, ptr %a, ptr %b) nounwind {
263230; CHECK: # %bb.0: # %entry
264231; CHECK-NEXT: xvld $xr0, $a1, 0
265232; CHECK-NEXT: xvld $xr1, $a2, 0
266- ; CHECK-NEXT: xvor.v $xr2, $xr0, $xr1
267- ; CHECK-NEXT: xvxor.v $xr0, $xr0, $xr1
268- ; CHECK-NEXT: xvsrai.d $xr0, $xr0, 1
269- ; CHECK-NEXT: xvsub.d $xr0, $xr2, $xr0
233+ ; CHECK-NEXT: xvavgr.d $xr0, $xr0, $xr1
270234; CHECK-NEXT: xvst $xr0, $a0, 0
271235; CHECK-NEXT: ret
272236entry:
@@ -287,10 +251,7 @@ define void @xvavgr_bu(ptr %res, ptr %a, ptr %b) nounwind {
287251; CHECK: # %bb.0: # %entry
288252; CHECK-NEXT: xvld $xr0, $a1, 0
289253; CHECK-NEXT: xvld $xr1, $a2, 0
290- ; CHECK-NEXT: xvor.v $xr2, $xr0, $xr1
291- ; CHECK-NEXT: xvxor.v $xr0, $xr0, $xr1
292- ; CHECK-NEXT: xvsrli.b $xr0, $xr0, 1
293- ; CHECK-NEXT: xvsub.b $xr0, $xr2, $xr0
254+ ; CHECK-NEXT: xvavgr.bu $xr0, $xr0, $xr1
294255; CHECK-NEXT: xvst $xr0, $a0, 0
295256; CHECK-NEXT: ret
296257entry:
@@ -311,10 +272,7 @@ define void @xvavgr_hu(ptr %res, ptr %a, ptr %b) nounwind {
311272; CHECK: # %bb.0: # %entry
312273; CHECK-NEXT: xvld $xr0, $a1, 0
313274; CHECK-NEXT: xvld $xr1, $a2, 0
314- ; CHECK-NEXT: xvor.v $xr2, $xr0, $xr1
315- ; CHECK-NEXT: xvxor.v $xr0, $xr0, $xr1
316- ; CHECK-NEXT: xvsrli.h $xr0, $xr0, 1
317- ; CHECK-NEXT: xvsub.h $xr0, $xr2, $xr0
275+ ; CHECK-NEXT: xvavgr.hu $xr0, $xr0, $xr1
318276; CHECK-NEXT: xvst $xr0, $a0, 0
319277; CHECK-NEXT: ret
320278entry:
@@ -335,10 +293,7 @@ define void @xvavgr_wu(ptr %res, ptr %a, ptr %b) nounwind {
335293; CHECK: # %bb.0: # %entry
336294; CHECK-NEXT: xvld $xr0, $a1, 0
337295; CHECK-NEXT: xvld $xr1, $a2, 0
338- ; CHECK-NEXT: xvor.v $xr2, $xr0, $xr1
339- ; CHECK-NEXT: xvxor.v $xr0, $xr0, $xr1
340- ; CHECK-NEXT: xvsrli.w $xr0, $xr0, 1
341- ; CHECK-NEXT: xvsub.w $xr0, $xr2, $xr0
296+ ; CHECK-NEXT: xvavgr.wu $xr0, $xr0, $xr1
342297; CHECK-NEXT: xvst $xr0, $a0, 0
343298; CHECK-NEXT: ret
344299entry:
@@ -359,10 +314,7 @@ define void @xvavgr_du(ptr %res, ptr %a, ptr %b) nounwind {
359314; CHECK: # %bb.0: # %entry
360315; CHECK-NEXT: xvld $xr0, $a1, 0
361316; CHECK-NEXT: xvld $xr1, $a2, 0
362- ; CHECK-NEXT: xvor.v $xr2, $xr0, $xr1
363- ; CHECK-NEXT: xvxor.v $xr0, $xr0, $xr1
364- ; CHECK-NEXT: xvsrli.d $xr0, $xr0, 1
365- ; CHECK-NEXT: xvsub.d $xr0, $xr2, $xr0
317+ ; CHECK-NEXT: xvavgr.du $xr0, $xr0, $xr1
366318; CHECK-NEXT: xvst $xr0, $a0, 0
367319; CHECK-NEXT: ret
368320entry:
0 commit comments