|
4 | 4 |
|
5 | 5 | declare half @llvm.vector.reduce.fadd.v1f16(half, <1 x half>)
|
6 | 6 |
|
7 |
| -define half @vreduce_fadd_v1f16(ptr %x, half %s) { |
| 7 | +define half @vreduce_fadd_v1f16(<1 x half> %v, half %s) { |
8 | 8 | ; CHECK-LABEL: vreduce_fadd_v1f16:
|
9 | 9 | ; CHECK: # %bb.0:
|
10 |
| -; CHECK-NEXT: vsetivli zero, 1, e16, mf4, ta, ma |
11 |
| -; CHECK-NEXT: vle16.v v8, (a0) |
| 10 | +; CHECK-NEXT: vsetivli zero, 1, e16, m1, ta, ma |
12 | 11 | ; CHECK-NEXT: vfmv.f.s fa5, v8
|
13 | 12 | ; CHECK-NEXT: fadd.h fa0, fa0, fa5
|
14 | 13 | ; CHECK-NEXT: ret
|
15 |
| - %v = load <1 x half>, ptr %x |
16 | 14 | %red = call reassoc half @llvm.vector.reduce.fadd.v1f16(half %s, <1 x half> %v)
|
17 | 15 | ret half %red
|
18 | 16 | }
|
19 | 17 |
|
20 |
| -define half @vreduce_ord_fadd_v1f16(ptr %x, half %s) { |
| 18 | +define half @vreduce_ord_fadd_v1f16(<1 x half> %v, half %s) { |
21 | 19 | ; CHECK-LABEL: vreduce_ord_fadd_v1f16:
|
22 | 20 | ; CHECK: # %bb.0:
|
23 | 21 | ; CHECK-NEXT: vsetivli zero, 1, e16, mf4, ta, ma
|
24 |
| -; CHECK-NEXT: vle16.v v8, (a0) |
25 | 22 | ; CHECK-NEXT: vfmv.s.f v9, fa0
|
26 | 23 | ; CHECK-NEXT: vfredosum.vs v8, v8, v9
|
27 | 24 | ; CHECK-NEXT: vfmv.f.s fa0, v8
|
28 | 25 | ; CHECK-NEXT: ret
|
29 |
| - %v = load <1 x half>, ptr %x |
30 | 26 | %red = call half @llvm.vector.reduce.fadd.v1f16(half %s, <1 x half> %v)
|
31 | 27 | ret half %red
|
32 | 28 | }
|
@@ -271,61 +267,53 @@ define half @vreduce_ord_fadd_v128f16(ptr %x, half %s) {
|
271 | 267 |
|
272 | 268 | declare float @llvm.vector.reduce.fadd.v1f32(float, <1 x float>)
|
273 | 269 |
|
274 |
| -define float @vreduce_fadd_v1f32(ptr %x, float %s) { |
| 270 | +define float @vreduce_fadd_v1f32(<1 x float> %v, float %s) { |
275 | 271 | ; CHECK-LABEL: vreduce_fadd_v1f32:
|
276 | 272 | ; CHECK: # %bb.0:
|
277 |
| -; CHECK-NEXT: vsetivli zero, 1, e32, mf2, ta, ma |
278 |
| -; CHECK-NEXT: vle32.v v8, (a0) |
| 273 | +; CHECK-NEXT: vsetivli zero, 1, e32, m1, ta, ma |
279 | 274 | ; CHECK-NEXT: vfmv.f.s fa5, v8
|
280 | 275 | ; CHECK-NEXT: fadd.s fa0, fa0, fa5
|
281 | 276 | ; CHECK-NEXT: ret
|
282 |
| - %v = load <1 x float>, ptr %x |
283 | 277 | %red = call reassoc float @llvm.vector.reduce.fadd.v1f32(float %s, <1 x float> %v)
|
284 | 278 | ret float %red
|
285 | 279 | }
|
286 | 280 |
|
287 |
| -define float @vreduce_ord_fadd_v1f32(ptr %x, float %s) { |
| 281 | +define float @vreduce_ord_fadd_v1f32(<1 x float> %v, float %s) { |
288 | 282 | ; CHECK-LABEL: vreduce_ord_fadd_v1f32:
|
289 | 283 | ; CHECK: # %bb.0:
|
290 | 284 | ; CHECK-NEXT: vsetivli zero, 1, e32, mf2, ta, ma
|
291 |
| -; CHECK-NEXT: vle32.v v8, (a0) |
292 | 285 | ; CHECK-NEXT: vfmv.s.f v9, fa0
|
293 | 286 | ; CHECK-NEXT: vfredosum.vs v8, v8, v9
|
294 | 287 | ; CHECK-NEXT: vfmv.f.s fa0, v8
|
295 | 288 | ; CHECK-NEXT: ret
|
296 |
| - %v = load <1 x float>, ptr %x |
297 | 289 | %red = call float @llvm.vector.reduce.fadd.v1f32(float %s, <1 x float> %v)
|
298 | 290 | ret float %red
|
299 | 291 | }
|
300 | 292 |
|
301 |
| -define float @vreduce_fwadd_v1f32(ptr %x, float %s) { |
| 293 | +define float @vreduce_fwadd_v1f32(<1 x half> %v, float %s) { |
302 | 294 | ; CHECK-LABEL: vreduce_fwadd_v1f32:
|
303 | 295 | ; CHECK: # %bb.0:
|
304 | 296 | ; CHECK-NEXT: vsetivli zero, 1, e16, mf4, ta, ma
|
305 |
| -; CHECK-NEXT: vle16.v v8, (a0) |
306 | 297 | ; CHECK-NEXT: vfwcvt.f.f.v v9, v8
|
307 | 298 | ; CHECK-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
|
308 | 299 | ; CHECK-NEXT: vfmv.f.s fa5, v9
|
309 | 300 | ; CHECK-NEXT: fadd.s fa0, fa0, fa5
|
310 | 301 | ; CHECK-NEXT: ret
|
311 |
| - %v = load <1 x half>, ptr %x |
312 | 302 | %e = fpext <1 x half> %v to <1 x float>
|
313 | 303 | %red = call reassoc float @llvm.vector.reduce.fadd.v1f32(float %s, <1 x float> %e)
|
314 | 304 | ret float %red
|
315 | 305 | }
|
316 | 306 |
|
317 |
| -define float @vreduce_ord_fwadd_v1f32(ptr %x, float %s) { |
| 307 | +define float @vreduce_ord_fwadd_v1f32(<1 x half> %v, float %s) { |
318 | 308 | ; CHECK-LABEL: vreduce_ord_fwadd_v1f32:
|
319 | 309 | ; CHECK: # %bb.0:
|
320 |
| -; CHECK-NEXT: vsetivli zero, 1, e32, mf2, ta, ma |
321 |
| -; CHECK-NEXT: vle16.v v8, (a0) |
| 310 | +; CHECK-NEXT: vsetivli zero, 1, e32, m1, ta, ma |
322 | 311 | ; CHECK-NEXT: vfmv.s.f v9, fa0
|
323 |
| -; CHECK-NEXT: vsetvli zero, zero, e16, mf4, ta, ma |
| 312 | +; CHECK-NEXT: vsetivli zero, 1, e16, mf4, ta, ma |
324 | 313 | ; CHECK-NEXT: vfwredosum.vs v8, v8, v9
|
325 | 314 | ; CHECK-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
|
326 | 315 | ; CHECK-NEXT: vfmv.f.s fa0, v8
|
327 | 316 | ; CHECK-NEXT: ret
|
328 |
| - %v = load <1 x half>, ptr %x |
329 | 317 | %e = fpext <1 x half> %v to <1 x float>
|
330 | 318 | %red = call float @llvm.vector.reduce.fadd.v1f32(float %s, <1 x float> %e)
|
331 | 319 | ret float %red
|
@@ -815,61 +803,53 @@ define float @vreduce_ord_fwadd_v64f32(ptr %x, float %s) {
|
815 | 803 |
|
816 | 804 | declare double @llvm.vector.reduce.fadd.v1f64(double, <1 x double>)
|
817 | 805 |
|
818 |
| -define double @vreduce_fadd_v1f64(ptr %x, double %s) { |
| 806 | +define double @vreduce_fadd_v1f64(<1 x double> %v, double %s) { |
819 | 807 | ; CHECK-LABEL: vreduce_fadd_v1f64:
|
820 | 808 | ; CHECK: # %bb.0:
|
821 | 809 | ; CHECK-NEXT: vsetivli zero, 1, e64, m1, ta, ma
|
822 |
| -; CHECK-NEXT: vle64.v v8, (a0) |
823 | 810 | ; CHECK-NEXT: vfmv.f.s fa5, v8
|
824 | 811 | ; CHECK-NEXT: fadd.d fa0, fa0, fa5
|
825 | 812 | ; CHECK-NEXT: ret
|
826 |
| - %v = load <1 x double>, ptr %x |
827 | 813 | %red = call reassoc double @llvm.vector.reduce.fadd.v1f64(double %s, <1 x double> %v)
|
828 | 814 | ret double %red
|
829 | 815 | }
|
830 | 816 |
|
831 |
| -define double @vreduce_ord_fadd_v1f64(ptr %x, double %s) { |
| 817 | +define double @vreduce_ord_fadd_v1f64(<1 x double> %v, double %s) { |
832 | 818 | ; CHECK-LABEL: vreduce_ord_fadd_v1f64:
|
833 | 819 | ; CHECK: # %bb.0:
|
834 | 820 | ; CHECK-NEXT: vsetivli zero, 1, e64, m1, ta, ma
|
835 |
| -; CHECK-NEXT: vle64.v v8, (a0) |
836 | 821 | ; CHECK-NEXT: vfmv.s.f v9, fa0
|
837 | 822 | ; CHECK-NEXT: vfredosum.vs v8, v8, v9
|
838 | 823 | ; CHECK-NEXT: vfmv.f.s fa0, v8
|
839 | 824 | ; CHECK-NEXT: ret
|
840 |
| - %v = load <1 x double>, ptr %x |
841 | 825 | %red = call double @llvm.vector.reduce.fadd.v1f64(double %s, <1 x double> %v)
|
842 | 826 | ret double %red
|
843 | 827 | }
|
844 | 828 |
|
845 |
| -define double @vreduce_fwadd_v1f64(ptr %x, double %s) { |
| 829 | +define double @vreduce_fwadd_v1f64(<1 x float> %v, double %s) { |
846 | 830 | ; CHECK-LABEL: vreduce_fwadd_v1f64:
|
847 | 831 | ; CHECK: # %bb.0:
|
848 | 832 | ; CHECK-NEXT: vsetivli zero, 1, e32, mf2, ta, ma
|
849 |
| -; CHECK-NEXT: vle32.v v8, (a0) |
850 | 833 | ; CHECK-NEXT: vfwcvt.f.f.v v9, v8
|
851 | 834 | ; CHECK-NEXT: vsetvli zero, zero, e64, m1, ta, ma
|
852 | 835 | ; CHECK-NEXT: vfmv.f.s fa5, v9
|
853 | 836 | ; CHECK-NEXT: fadd.d fa0, fa0, fa5
|
854 | 837 | ; CHECK-NEXT: ret
|
855 |
| - %v = load <1 x float>, ptr %x |
856 | 838 | %e = fpext <1 x float> %v to <1 x double>
|
857 | 839 | %red = call reassoc double @llvm.vector.reduce.fadd.v1f64(double %s, <1 x double> %e)
|
858 | 840 | ret double %red
|
859 | 841 | }
|
860 | 842 |
|
861 |
| -define double @vreduce_ord_fwadd_v1f64(ptr %x, double %s) { |
| 843 | +define double @vreduce_ord_fwadd_v1f64(<1 x float> %v, double %s) { |
862 | 844 | ; CHECK-LABEL: vreduce_ord_fwadd_v1f64:
|
863 | 845 | ; CHECK: # %bb.0:
|
864 | 846 | ; CHECK-NEXT: vsetivli zero, 1, e64, m1, ta, ma
|
865 |
| -; CHECK-NEXT: vle32.v v8, (a0) |
866 | 847 | ; CHECK-NEXT: vfmv.s.f v9, fa0
|
867 | 848 | ; CHECK-NEXT: vsetvli zero, zero, e32, mf2, ta, ma
|
868 | 849 | ; CHECK-NEXT: vfwredosum.vs v8, v8, v9
|
869 | 850 | ; CHECK-NEXT: vsetvli zero, zero, e64, m1, ta, ma
|
870 | 851 | ; CHECK-NEXT: vfmv.f.s fa0, v8
|
871 | 852 | ; CHECK-NEXT: ret
|
872 |
| - %v = load <1 x float>, ptr %x |
873 | 853 | %e = fpext <1 x float> %v to <1 x double>
|
874 | 854 | %red = call double @llvm.vector.reduce.fadd.v1f64(double %s, <1 x double> %e)
|
875 | 855 | ret double %red
|
|
0 commit comments