|
5 | 5 |
|
6 | 6 | #include <riscv_vector.h>
|
7 | 7 |
|
8 |
| -// CHECK-RV64-LABEL: @test_vfwredsum_vs_f32mf2_f64m1( |
| 8 | +// |
| 9 | +// CHECK-RV64-LABEL: @test_vfwredusum_vs_f32mf2_f64m1( |
9 | 10 | // CHECK-RV64-NEXT: entry:
|
10 |
| -// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredsum.nxv1f64.nxv1f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 1 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], i64 [[VL:%.*]]) |
| 11 | +// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredusum.nxv1f64.nxv1f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 1 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], i64 [[VL:%.*]]) |
11 | 12 | // CHECK-RV64-NEXT: ret <vscale x 1 x double> [[TMP0]]
|
12 | 13 | //
|
13 |
| -vfloat64m1_t test_vfwredsum_vs_f32mf2_f64m1(vfloat64m1_t dst, |
14 |
| - vfloat32mf2_t vector, |
15 |
| - vfloat64m1_t scalar, size_t vl) { |
16 |
| - return vfwredsum(dst, vector, scalar, vl); |
| 14 | +vfloat64m1_t test_vfwredusum_vs_f32mf2_f64m1(vfloat64m1_t dst, |
| 15 | + vfloat32mf2_t vector, |
| 16 | + vfloat64m1_t scalar, size_t vl) { |
| 17 | + return vfwredusum(dst, vector, scalar, vl); |
17 | 18 | }
|
18 | 19 |
|
19 |
| -// CHECK-RV64-LABEL: @test_vfwredsum_vs_f32m1_f64m1( |
| 20 | +// |
| 21 | +// CHECK-RV64-LABEL: @test_vfwredusum_vs_f32m1_f64m1( |
20 | 22 | // CHECK-RV64-NEXT: entry:
|
21 |
| -// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredsum.nxv1f64.nxv2f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 2 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], i64 [[VL:%.*]]) |
| 23 | +// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredusum.nxv1f64.nxv2f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 2 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], i64 [[VL:%.*]]) |
22 | 24 | // CHECK-RV64-NEXT: ret <vscale x 1 x double> [[TMP0]]
|
23 | 25 | //
|
24 |
| -vfloat64m1_t test_vfwredsum_vs_f32m1_f64m1(vfloat64m1_t dst, |
25 |
| - vfloat32m1_t vector, |
26 |
| - vfloat64m1_t scalar, size_t vl) { |
27 |
| - return vfwredsum(dst, vector, scalar, vl); |
| 26 | +vfloat64m1_t test_vfwredusum_vs_f32m1_f64m1(vfloat64m1_t dst, |
| 27 | + vfloat32m1_t vector, |
| 28 | + vfloat64m1_t scalar, size_t vl) { |
| 29 | + return vfwredusum(dst, vector, scalar, vl); |
28 | 30 | }
|
29 | 31 |
|
30 |
| -// CHECK-RV64-LABEL: @test_vfwredsum_vs_f32m2_f64m1( |
| 32 | +// |
| 33 | +// CHECK-RV64-LABEL: @test_vfwredusum_vs_f32m2_f64m1( |
31 | 34 | // CHECK-RV64-NEXT: entry:
|
32 |
| -// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredsum.nxv1f64.nxv4f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 4 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], i64 [[VL:%.*]]) |
| 35 | +// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredusum.nxv1f64.nxv4f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 4 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], i64 [[VL:%.*]]) |
33 | 36 | // CHECK-RV64-NEXT: ret <vscale x 1 x double> [[TMP0]]
|
34 | 37 | //
|
35 |
| -vfloat64m1_t test_vfwredsum_vs_f32m2_f64m1(vfloat64m1_t dst, |
36 |
| - vfloat32m2_t vector, |
37 |
| - vfloat64m1_t scalar, size_t vl) { |
38 |
| - return vfwredsum(dst, vector, scalar, vl); |
| 38 | +vfloat64m1_t test_vfwredusum_vs_f32m2_f64m1(vfloat64m1_t dst, |
| 39 | + vfloat32m2_t vector, |
| 40 | + vfloat64m1_t scalar, size_t vl) { |
| 41 | + return vfwredusum(dst, vector, scalar, vl); |
39 | 42 | }
|
40 | 43 |
|
41 |
| -// CHECK-RV64-LABEL: @test_vfwredsum_vs_f32m4_f64m1( |
| 44 | +// |
| 45 | +// CHECK-RV64-LABEL: @test_vfwredusum_vs_f32m4_f64m1( |
42 | 46 | // CHECK-RV64-NEXT: entry:
|
43 |
| -// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredsum.nxv1f64.nxv8f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 8 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], i64 [[VL:%.*]]) |
| 47 | +// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredusum.nxv1f64.nxv8f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 8 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], i64 [[VL:%.*]]) |
44 | 48 | // CHECK-RV64-NEXT: ret <vscale x 1 x double> [[TMP0]]
|
45 | 49 | //
|
46 |
| -vfloat64m1_t test_vfwredsum_vs_f32m4_f64m1(vfloat64m1_t dst, |
47 |
| - vfloat32m4_t vector, |
48 |
| - vfloat64m1_t scalar, size_t vl) { |
49 |
| - return vfwredsum(dst, vector, scalar, vl); |
| 50 | +vfloat64m1_t test_vfwredusum_vs_f32m4_f64m1(vfloat64m1_t dst, |
| 51 | + vfloat32m4_t vector, |
| 52 | + vfloat64m1_t scalar, size_t vl) { |
| 53 | + return vfwredusum(dst, vector, scalar, vl); |
50 | 54 | }
|
51 | 55 |
|
52 |
| -// CHECK-RV64-LABEL: @test_vfwredsum_vs_f32m8_f64m1( |
| 56 | +// |
| 57 | +// CHECK-RV64-LABEL: @test_vfwredusum_vs_f32m8_f64m1( |
53 | 58 | // CHECK-RV64-NEXT: entry:
|
54 |
| -// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredsum.nxv1f64.nxv16f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 16 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], i64 [[VL:%.*]]) |
| 59 | +// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredusum.nxv1f64.nxv16f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 16 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], i64 [[VL:%.*]]) |
55 | 60 | // CHECK-RV64-NEXT: ret <vscale x 1 x double> [[TMP0]]
|
56 | 61 | //
|
57 |
| -vfloat64m1_t test_vfwredsum_vs_f32m8_f64m1(vfloat64m1_t dst, |
58 |
| - vfloat32m8_t vector, |
59 |
| - vfloat64m1_t scalar, size_t vl) { |
60 |
| - return vfwredsum(dst, vector, scalar, vl); |
| 62 | +vfloat64m1_t test_vfwredusum_vs_f32m8_f64m1(vfloat64m1_t dst, |
| 63 | + vfloat32m8_t vector, |
| 64 | + vfloat64m1_t scalar, size_t vl) { |
| 65 | + return vfwredusum(dst, vector, scalar, vl); |
61 | 66 | }
|
62 | 67 |
|
63 |
| -// CHECK-RV64-LABEL: @test_vfwredsum_vs_f32mf2_f64m1_m( |
| 68 | +// |
| 69 | +// CHECK-RV64-LABEL: @test_vfwredusum_vs_f32mf2_f64m1_m( |
64 | 70 | // CHECK-RV64-NEXT: entry:
|
65 |
| -// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredsum.mask.nxv1f64.nxv1f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 1 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], <vscale x 1 x i1> [[MASK:%.*]], i64 [[VL:%.*]]) |
| 71 | +// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredusum.mask.nxv1f64.nxv1f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 1 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], <vscale x 1 x i1> [[MASK:%.*]], i64 [[VL:%.*]]) |
66 | 72 | // CHECK-RV64-NEXT: ret <vscale x 1 x double> [[TMP0]]
|
67 | 73 | //
|
68 |
| -vfloat64m1_t test_vfwredsum_vs_f32mf2_f64m1_m(vbool64_t mask, vfloat64m1_t dst, |
69 |
| - vfloat32mf2_t vector, |
70 |
| - vfloat64m1_t scalar, size_t vl) { |
71 |
| - return vfwredsum(mask, dst, vector, scalar, vl); |
| 74 | +vfloat64m1_t test_vfwredusum_vs_f32mf2_f64m1_m(vbool64_t mask, vfloat64m1_t dst, |
| 75 | + vfloat32mf2_t vector, |
| 76 | + vfloat64m1_t scalar, size_t vl) { |
| 77 | + return vfwredusum(mask, dst, vector, scalar, vl); |
72 | 78 | }
|
73 | 79 |
|
74 |
| -// CHECK-RV64-LABEL: @test_vfwredsum_vs_f32m1_f64m1_m( |
| 80 | +// |
| 81 | +// CHECK-RV64-LABEL: @test_vfwredusum_vs_f32m1_f64m1_m( |
75 | 82 | // CHECK-RV64-NEXT: entry:
|
76 |
| -// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredsum.mask.nxv1f64.nxv2f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 2 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], <vscale x 2 x i1> [[MASK:%.*]], i64 [[VL:%.*]]) |
| 83 | +// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredusum.mask.nxv1f64.nxv2f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 2 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], <vscale x 2 x i1> [[MASK:%.*]], i64 [[VL:%.*]]) |
77 | 84 | // CHECK-RV64-NEXT: ret <vscale x 1 x double> [[TMP0]]
|
78 | 85 | //
|
79 |
| -vfloat64m1_t test_vfwredsum_vs_f32m1_f64m1_m(vbool32_t mask, vfloat64m1_t dst, |
80 |
| - vfloat32m1_t vector, |
81 |
| - vfloat64m1_t scalar, size_t vl) { |
82 |
| - return vfwredsum(mask, dst, vector, scalar, vl); |
| 86 | +vfloat64m1_t test_vfwredusum_vs_f32m1_f64m1_m(vbool32_t mask, vfloat64m1_t dst, |
| 87 | + vfloat32m1_t vector, |
| 88 | + vfloat64m1_t scalar, size_t vl) { |
| 89 | + return vfwredusum(mask, dst, vector, scalar, vl); |
83 | 90 | }
|
84 | 91 |
|
85 |
| -// CHECK-RV64-LABEL: @test_vfwredsum_vs_f32m2_f64m1_m( |
| 92 | +// |
| 93 | +// CHECK-RV64-LABEL: @test_vfwredusum_vs_f32m2_f64m1_m( |
86 | 94 | // CHECK-RV64-NEXT: entry:
|
87 |
| -// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredsum.mask.nxv1f64.nxv4f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 4 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], <vscale x 4 x i1> [[MASK:%.*]], i64 [[VL:%.*]]) |
| 95 | +// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredusum.mask.nxv1f64.nxv4f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 4 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], <vscale x 4 x i1> [[MASK:%.*]], i64 [[VL:%.*]]) |
88 | 96 | // CHECK-RV64-NEXT: ret <vscale x 1 x double> [[TMP0]]
|
89 | 97 | //
|
90 |
| -vfloat64m1_t test_vfwredsum_vs_f32m2_f64m1_m(vbool16_t mask, vfloat64m1_t dst, |
91 |
| - vfloat32m2_t vector, |
92 |
| - vfloat64m1_t scalar, size_t vl) { |
93 |
| - return vfwredsum(mask, dst, vector, scalar, vl); |
| 98 | +vfloat64m1_t test_vfwredusum_vs_f32m2_f64m1_m(vbool16_t mask, vfloat64m1_t dst, |
| 99 | + vfloat32m2_t vector, |
| 100 | + vfloat64m1_t scalar, size_t vl) { |
| 101 | + return vfwredusum(mask, dst, vector, scalar, vl); |
94 | 102 | }
|
95 | 103 |
|
96 |
| -// CHECK-RV64-LABEL: @test_vfwredsum_vs_f32m4_f64m1_m( |
| 104 | +// |
| 105 | +// CHECK-RV64-LABEL: @test_vfwredusum_vs_f32m4_f64m1_m( |
97 | 106 | // CHECK-RV64-NEXT: entry:
|
98 |
| -// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredsum.mask.nxv1f64.nxv8f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 8 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], <vscale x 8 x i1> [[MASK:%.*]], i64 [[VL:%.*]]) |
| 107 | +// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredusum.mask.nxv1f64.nxv8f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 8 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], <vscale x 8 x i1> [[MASK:%.*]], i64 [[VL:%.*]]) |
99 | 108 | // CHECK-RV64-NEXT: ret <vscale x 1 x double> [[TMP0]]
|
100 | 109 | //
|
101 |
| -vfloat64m1_t test_vfwredsum_vs_f32m4_f64m1_m(vbool8_t mask, vfloat64m1_t dst, |
102 |
| - vfloat32m4_t vector, |
103 |
| - vfloat64m1_t scalar, size_t vl) { |
104 |
| - return vfwredsum(mask, dst, vector, scalar, vl); |
| 110 | +vfloat64m1_t test_vfwredusum_vs_f32m4_f64m1_m(vbool8_t mask, vfloat64m1_t dst, |
| 111 | + vfloat32m4_t vector, |
| 112 | + vfloat64m1_t scalar, size_t vl) { |
| 113 | + return vfwredusum(mask, dst, vector, scalar, vl); |
105 | 114 | }
|
106 | 115 |
|
107 |
| -// CHECK-RV64-LABEL: @test_vfwredsum_vs_f32m8_f64m1_m( |
| 116 | +// |
| 117 | +// CHECK-RV64-LABEL: @test_vfwredusum_vs_f32m8_f64m1_m( |
108 | 118 | // CHECK-RV64-NEXT: entry:
|
109 |
| -// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredsum.mask.nxv1f64.nxv16f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 16 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], <vscale x 16 x i1> [[MASK:%.*]], i64 [[VL:%.*]]) |
| 119 | +// CHECK-RV64-NEXT: [[TMP0:%.*]] = call <vscale x 1 x double> @llvm.riscv.vfwredusum.mask.nxv1f64.nxv16f32.i64(<vscale x 1 x double> [[DST:%.*]], <vscale x 16 x float> [[VECTOR:%.*]], <vscale x 1 x double> [[SCALAR:%.*]], <vscale x 16 x i1> [[MASK:%.*]], i64 [[VL:%.*]]) |
110 | 120 | // CHECK-RV64-NEXT: ret <vscale x 1 x double> [[TMP0]]
|
111 | 121 | //
|
112 |
| -vfloat64m1_t test_vfwredsum_vs_f32m8_f64m1_m(vbool4_t mask, vfloat64m1_t dst, |
113 |
| - vfloat32m8_t vector, |
114 |
| - vfloat64m1_t scalar, size_t vl) { |
115 |
| - return vfwredsum(mask, dst, vector, scalar, vl); |
| 122 | +vfloat64m1_t test_vfwredusum_vs_f32m8_f64m1_m(vbool4_t mask, vfloat64m1_t dst, |
| 123 | + vfloat32m8_t vector, |
| 124 | + vfloat64m1_t scalar, size_t vl) { |
| 125 | + return vfwredusum(mask, dst, vector, scalar, vl); |
116 | 126 | }
|
117 | 127 |
|
118 | 128 | // CHECK-RV64-LABEL: @test_vfwredosum_vs_f32mf2_f64m1(
|
|
0 commit comments