|
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