@@ -87,17 +87,17 @@ asm volatile(
8787 "vor.vv v0, %1, %1\n\t"
8888 "vsetvli x0, %3, e64,m8 \n\t"
8989 "vfrsub.vf %0, %0, %2, v0.t \n\t"
90- :"+v " (v0 )
91- :"v " (mask0 ), "f" (zero ), "r" (gvl )
90+ :"+vd " (v0 )
91+ :"vd " (mask0 ), "f" (zero ), "r" (gvl )
9292 :"v0" );
9393#else
9494asm volatile (
9595 "vsetvli zero, zero, e8, m1\n\t"
9696 "vor.vv v0, %1, %1\n\t"
9797 "vsetvli x0, %3, e32,m8 \n\t"
9898 "vfrsub.vf %0, %0, %2, v0.t \n\t"
99- :"+v " (v0 )
100- :"v " (mask0 ), "f" (zero ), "r" (gvl )
99+ :"+vd " (v0 )
100+ :"vd " (mask0 ), "f" (zero ), "r" (gvl )
101101 :"v0" );
102102#endif
103103 v_min = VFMINVV_FLOAT (v_min , v0 , gvl );
@@ -111,25 +111,25 @@ asm volatile(
111111 "vor.vv v0, %1, %1\n\t"
112112 "vsetvli x0, %3, e64,m8 \n\t"
113113 "vfrsub.vf %0, %0, %2, v0.t \n\t"
114- :"+v " (v1 )
115- :"v " (mask1 ), "f" (zero ), "r" (gvl )
114+ :"+vd " (v1 )
115+ :"vd " (mask1 ), "f" (zero ), "r" (gvl )
116116 :"v0" );
117117#else
118118asm volatile (
119119 "vsetvli zero, zero, e8, m1\n\t"
120120 "vor.vv v0, %1, %1\n\t"
121121 "vsetvli x0, %3, e32,m8 \n\t"
122122 "vfrsub.vf %0, %0, %2, v0.t \n\t"
123- :"+v " (v1 )
124- :"v " (mask1 ), "f" (zero ), "r" (gvl )
123+ :"+vd " (v1 )
124+ :"vd " (mask1 ), "f" (zero ), "r" (gvl )
125125 :"v0" );
126126#endif
127127
128128 v_min = VFMINVV_FLOAT (v_min , v1 , gvl );
129129 j += gvl * 2 ;
130130 }
131131 v_res = VFREDMINVS_FLOAT (v_res , v_min , v_max , gvl );
132- minf = v_res [ 0 ] ;
132+ minf = * (( FLOAT * ) & v_res ) ;
133133 }
134134 for (;j < n ;){
135135 gvl = VSETVL (n - j );
@@ -142,22 +142,22 @@ asm volatile(
142142 "vor.vv v0, %1, %1\n\t"
143143 "vsetvli x0, %3, e64,m8 \n\t"
144144 "vfrsub.vf %0, %0, %2, v0.t \n\t"
145- :"+v " (v0 )
146- :"v " (mask0 ), "f" (zero ), "r" (gvl )
145+ :"+vd " (v0 )
146+ :"vd " (mask0 ), "f" (zero ), "r" (gvl )
147147 :"v0" );
148148#else
149149asm volatile (
150150 "vsetvli zero, zero, e8, m1\n\t"
151151 "vor.vv v0, %1, %1\n\t"
152152 "vsetvli x0, %3, e32,m8 \n\t"
153153 "vfrsub.vf %0, %0, %2, v0.t \n\t"
154- :"+v " (v0 )
155- :"v " (mask0 ), "f" (zero ), "r" (gvl )
154+ :"+vd " (v0 )
155+ :"vd " (mask0 ), "f" (zero ), "r" (gvl )
156156 :"v0" );
157157#endif
158158 v_res = VFREDMINVS_FLOAT (v_res , v0 , v_max , gvl );
159- if (v_res [ 0 ] < minf )
160- minf = v_res [ 0 ] ;
159+ if (* (( FLOAT * ) & v_res ) < minf )
160+ minf = * (( FLOAT * ) & v_res ) ;
161161 j += gvl ;
162162 }
163163 }else {
@@ -176,17 +176,17 @@ asm volatile(
176176 "vor.vv v0, %1, %1\n\t"
177177 "vsetvli x0, %3, e64,m8 \n\t"
178178 "vfrsub.vf %0, %0, %2, v0.t \n\t"
179- :"+v " (v0 )
180- :"v " (mask0 ), "f" (zero ), "r" (gvl )
179+ :"+vd " (v0 )
180+ :"vd " (mask0 ), "f" (zero ), "r" (gvl )
181181 :"v0" );
182182#else
183183asm volatile (
184184 "vsetvli zero, zero, e8, m1\n\t"
185185 "vor.vv v0, %1, %1\n\t"
186186 "vsetvli x0, %3, e32,m8 \n\t"
187187 "vfrsub.vf %0, %0, %2, v0.t \n\t"
188- :"+v " (v0 )
189- :"v " (mask0 ), "f" (zero ), "r" (gvl )
188+ :"+vd " (v0 )
189+ :"vd " (mask0 ), "f" (zero ), "r" (gvl )
190190 :"v0" );
191191#endif
192192 v_min = VFMINVV_FLOAT (v_min , v0 , gvl );
@@ -200,17 +200,17 @@ asm volatile(
200200 "vor.vv v0, %1, %1\n\t"
201201 "vsetvli x0, %3, e64,m8 \n\t"
202202 "vfrsub.vf %0, %0, %2, v0.t \n\t"
203- :"+v " (v1 )
204- :"v " (mask1 ), "f" (zero ), "r" (gvl )
203+ :"+vd " (v1 )
204+ :"vd " (mask1 ), "f" (zero ), "r" (gvl )
205205 :"v0" );
206206#else
207207asm volatile (
208208 "vsetvli zero, zero, e8, m1\n\t"
209209 "vor.vv v0, %1, %1\n\t"
210210 "vsetvli x0, %3, e32,m8 \n\t"
211211 "vfrsub.vf %0, %0, %2, v0.t \n\t"
212- :"+v " (v1 )
213- :"v " (mask1 ), "f" (zero ), "r" (gvl )
212+ :"+vd " (v1 )
213+ :"vd " (mask1 ), "f" (zero ), "r" (gvl )
214214 :"v0" );
215215#endif
216216
@@ -219,7 +219,7 @@ asm volatile(
219219 idx += inc_xv * 2 ;
220220 }
221221 v_res = VFREDMINVS_FLOAT (v_res , v_min , v_max , gvl );
222- minf = v_res [ 0 ] ;
222+ minf = * (( FLOAT * ) & v_res ) ;
223223 }
224224 for (;j < n ;){
225225 gvl = VSETVL (n - j );
@@ -232,22 +232,22 @@ asm volatile(
232232 "vor.vv v0, %1, %1\n\t"
233233 "vsetvli x0, %3, e64,m8 \n\t"
234234 "vfrsub.vf %0, %0, %2, v0.t \n\t"
235- :"+v " (v0 )
236- :"v " (mask0 ), "f" (zero ), "r" (gvl )
235+ :"+vd " (v0 )
236+ :"vd " (mask0 ), "f" (zero ), "r" (gvl )
237237 :"v0" );
238238#else
239239asm volatile (
240240 "vsetvli zero, zero, e8, m1\n\t"
241241 "vor.vv v0, %1, %1\n\t"
242242 "vsetvli x0, %3, e32,m8 \n\t"
243243 "vfrsub.vf %0, %0, %2, v0.t \n\t"
244- :"+v " (v0 )
245- :"v " (mask0 ), "f" (zero ), "r" (gvl )
244+ :"+vd " (v0 )
245+ :"vd " (mask0 ), "f" (zero ), "r" (gvl )
246246 :"v0" );
247247#endif
248248 v_res = VFREDMINVS_FLOAT (v_res , v0 , v_max , gvl );
249- if (v_res [ 0 ] < minf )
250- minf = v_res [ 0 ] ;
249+ if (* (( FLOAT * ) & v_res ) < minf )
250+ minf = * (( FLOAT * ) & v_res ) ;
251251 j += gvl ;
252252 }
253253 }
0 commit comments