55define void @minnum_v8f32 (ptr %res , ptr %x , ptr %y ) nounwind {
66; CHECK-LABEL: minnum_v8f32:
77; CHECK: # %bb.0: # %entry
8- ; CHECK-NEXT: xvld $xr0, $a2, 0
9- ; CHECK-NEXT: xvld $xr1, $a1, 0
10- ; CHECK-NEXT: xvpickve.w $xr2, $xr0, 5
11- ; CHECK-NEXT: xvpickve.w $xr3, $xr1, 5
12- ; CHECK-NEXT: fmin.s $fa2, $fa3, $fa2
13- ; CHECK-NEXT: xvpickve.w $xr3, $xr0, 4
14- ; CHECK-NEXT: xvpickve.w $xr4, $xr1, 4
15- ; CHECK-NEXT: fmin.s $fa3, $fa4, $fa3
16- ; CHECK-NEXT: vextrins.w $vr3, $vr2, 16
17- ; CHECK-NEXT: xvpickve.w $xr2, $xr0, 6
18- ; CHECK-NEXT: xvpickve.w $xr4, $xr1, 6
19- ; CHECK-NEXT: fmin.s $fa2, $fa4, $fa2
20- ; CHECK-NEXT: vextrins.w $vr3, $vr2, 32
21- ; CHECK-NEXT: xvpickve.w $xr2, $xr0, 7
22- ; CHECK-NEXT: xvpickve.w $xr4, $xr1, 7
23- ; CHECK-NEXT: fmin.s $fa2, $fa4, $fa2
24- ; CHECK-NEXT: vextrins.w $vr3, $vr2, 48
25- ; CHECK-NEXT: xvpickve.w $xr2, $xr0, 1
26- ; CHECK-NEXT: xvpickve.w $xr4, $xr1, 1
27- ; CHECK-NEXT: fmin.s $fa2, $fa4, $fa2
28- ; CHECK-NEXT: xvpickve.w $xr4, $xr0, 0
29- ; CHECK-NEXT: xvpickve.w $xr5, $xr1, 0
30- ; CHECK-NEXT: fmin.s $fa4, $fa5, $fa4
31- ; CHECK-NEXT: vextrins.w $vr4, $vr2, 16
32- ; CHECK-NEXT: xvpickve.w $xr2, $xr0, 2
33- ; CHECK-NEXT: xvpickve.w $xr5, $xr1, 2
34- ; CHECK-NEXT: fmin.s $fa2, $fa5, $fa2
35- ; CHECK-NEXT: vextrins.w $vr4, $vr2, 32
36- ; CHECK-NEXT: xvpickve.w $xr0, $xr0, 3
37- ; CHECK-NEXT: xvpickve.w $xr1, $xr1, 3
38- ; CHECK-NEXT: fmin.s $fa0, $fa1, $fa0
39- ; CHECK-NEXT: vextrins.w $vr4, $vr0, 48
40- ; CHECK-NEXT: xvpermi.q $xr4, $xr3, 2
41- ; CHECK-NEXT: xvst $xr4, $a0, 0
8+ ; CHECK-NEXT: xvld $xr0, $a1, 0
9+ ; CHECK-NEXT: xvld $xr1, $a2, 0
10+ ; CHECK-NEXT: xvfmin.s $xr0, $xr0, $xr1
11+ ; CHECK-NEXT: xvst $xr0, $a0, 0
4212; CHECK-NEXT: ret
4313entry:
4414 %v0 = load <8 x float >, ptr %x
@@ -51,23 +21,9 @@ entry:
5121define void @minnum_v4f64 (ptr %res , ptr %x , ptr %y ) nounwind {
5222; CHECK-LABEL: minnum_v4f64:
5323; CHECK: # %bb.0: # %entry
54- ; CHECK-NEXT: xvld $xr0, $a2, 0
55- ; CHECK-NEXT: xvld $xr1, $a1, 0
56- ; CHECK-NEXT: xvpickve.d $xr2, $xr0, 3
57- ; CHECK-NEXT: xvpickve.d $xr3, $xr1, 3
58- ; CHECK-NEXT: fmin.d $fa2, $fa3, $fa2
59- ; CHECK-NEXT: xvpickve.d $xr3, $xr0, 2
60- ; CHECK-NEXT: xvpickve.d $xr4, $xr1, 2
61- ; CHECK-NEXT: fmin.d $fa3, $fa4, $fa3
62- ; CHECK-NEXT: vextrins.d $vr3, $vr2, 16
63- ; CHECK-NEXT: xvpickve.d $xr2, $xr0, 1
64- ; CHECK-NEXT: xvpickve.d $xr4, $xr1, 1
65- ; CHECK-NEXT: fmin.d $fa2, $fa4, $fa2
66- ; CHECK-NEXT: xvpickve.d $xr0, $xr0, 0
67- ; CHECK-NEXT: xvpickve.d $xr1, $xr1, 0
68- ; CHECK-NEXT: fmin.d $fa0, $fa1, $fa0
69- ; CHECK-NEXT: vextrins.d $vr0, $vr2, 16
70- ; CHECK-NEXT: xvpermi.q $xr0, $xr3, 2
24+ ; CHECK-NEXT: xvld $xr0, $a1, 0
25+ ; CHECK-NEXT: xvld $xr1, $a2, 0
26+ ; CHECK-NEXT: xvfmin.d $xr0, $xr0, $xr1
7127; CHECK-NEXT: xvst $xr0, $a0, 0
7228; CHECK-NEXT: ret
7329entry:
@@ -81,40 +37,10 @@ entry:
8137define void @maxnum_v8f32 (ptr %res , ptr %x , ptr %y ) nounwind {
8238; CHECK-LABEL: maxnum_v8f32:
8339; CHECK: # %bb.0: # %entry
84- ; CHECK-NEXT: xvld $xr0, $a2, 0
85- ; CHECK-NEXT: xvld $xr1, $a1, 0
86- ; CHECK-NEXT: xvpickve.w $xr2, $xr0, 5
87- ; CHECK-NEXT: xvpickve.w $xr3, $xr1, 5
88- ; CHECK-NEXT: fmax.s $fa2, $fa3, $fa2
89- ; CHECK-NEXT: xvpickve.w $xr3, $xr0, 4
90- ; CHECK-NEXT: xvpickve.w $xr4, $xr1, 4
91- ; CHECK-NEXT: fmax.s $fa3, $fa4, $fa3
92- ; CHECK-NEXT: vextrins.w $vr3, $vr2, 16
93- ; CHECK-NEXT: xvpickve.w $xr2, $xr0, 6
94- ; CHECK-NEXT: xvpickve.w $xr4, $xr1, 6
95- ; CHECK-NEXT: fmax.s $fa2, $fa4, $fa2
96- ; CHECK-NEXT: vextrins.w $vr3, $vr2, 32
97- ; CHECK-NEXT: xvpickve.w $xr2, $xr0, 7
98- ; CHECK-NEXT: xvpickve.w $xr4, $xr1, 7
99- ; CHECK-NEXT: fmax.s $fa2, $fa4, $fa2
100- ; CHECK-NEXT: vextrins.w $vr3, $vr2, 48
101- ; CHECK-NEXT: xvpickve.w $xr2, $xr0, 1
102- ; CHECK-NEXT: xvpickve.w $xr4, $xr1, 1
103- ; CHECK-NEXT: fmax.s $fa2, $fa4, $fa2
104- ; CHECK-NEXT: xvpickve.w $xr4, $xr0, 0
105- ; CHECK-NEXT: xvpickve.w $xr5, $xr1, 0
106- ; CHECK-NEXT: fmax.s $fa4, $fa5, $fa4
107- ; CHECK-NEXT: vextrins.w $vr4, $vr2, 16
108- ; CHECK-NEXT: xvpickve.w $xr2, $xr0, 2
109- ; CHECK-NEXT: xvpickve.w $xr5, $xr1, 2
110- ; CHECK-NEXT: fmax.s $fa2, $fa5, $fa2
111- ; CHECK-NEXT: vextrins.w $vr4, $vr2, 32
112- ; CHECK-NEXT: xvpickve.w $xr0, $xr0, 3
113- ; CHECK-NEXT: xvpickve.w $xr1, $xr1, 3
114- ; CHECK-NEXT: fmax.s $fa0, $fa1, $fa0
115- ; CHECK-NEXT: vextrins.w $vr4, $vr0, 48
116- ; CHECK-NEXT: xvpermi.q $xr4, $xr3, 2
117- ; CHECK-NEXT: xvst $xr4, $a0, 0
40+ ; CHECK-NEXT: xvld $xr0, $a1, 0
41+ ; CHECK-NEXT: xvld $xr1, $a2, 0
42+ ; CHECK-NEXT: xvfmax.s $xr0, $xr0, $xr1
43+ ; CHECK-NEXT: xvst $xr0, $a0, 0
11844; CHECK-NEXT: ret
11945entry:
12046 %v0 = load <8 x float >, ptr %x
@@ -127,23 +53,9 @@ entry:
12753define void @maxnum_v4f64 (ptr %res , ptr %x , ptr %y ) nounwind {
12854; CHECK-LABEL: maxnum_v4f64:
12955; CHECK: # %bb.0: # %entry
130- ; CHECK-NEXT: xvld $xr0, $a2, 0
131- ; CHECK-NEXT: xvld $xr1, $a1, 0
132- ; CHECK-NEXT: xvpickve.d $xr2, $xr0, 3
133- ; CHECK-NEXT: xvpickve.d $xr3, $xr1, 3
134- ; CHECK-NEXT: fmax.d $fa2, $fa3, $fa2
135- ; CHECK-NEXT: xvpickve.d $xr3, $xr0, 2
136- ; CHECK-NEXT: xvpickve.d $xr4, $xr1, 2
137- ; CHECK-NEXT: fmax.d $fa3, $fa4, $fa3
138- ; CHECK-NEXT: vextrins.d $vr3, $vr2, 16
139- ; CHECK-NEXT: xvpickve.d $xr2, $xr0, 1
140- ; CHECK-NEXT: xvpickve.d $xr4, $xr1, 1
141- ; CHECK-NEXT: fmax.d $fa2, $fa4, $fa2
142- ; CHECK-NEXT: xvpickve.d $xr0, $xr0, 0
143- ; CHECK-NEXT: xvpickve.d $xr1, $xr1, 0
144- ; CHECK-NEXT: fmax.d $fa0, $fa1, $fa0
145- ; CHECK-NEXT: vextrins.d $vr0, $vr2, 16
146- ; CHECK-NEXT: xvpermi.q $xr0, $xr3, 2
56+ ; CHECK-NEXT: xvld $xr0, $a1, 0
57+ ; CHECK-NEXT: xvld $xr1, $a2, 0
58+ ; CHECK-NEXT: xvfmax.d $xr0, $xr0, $xr1
14759; CHECK-NEXT: xvst $xr0, $a0, 0
14860; CHECK-NEXT: ret
14961entry:
0 commit comments