@@ -95,16 +95,30 @@ float32x4_t test_vrnd64xq_f32(float32x4_t a) {
95
95
// CHECK-LABEL: test_vrnd64z_f32
96
96
// CHECK: [[RND:%.*]] = call <2 x float> @llvm.aarch64.neon.frint64z.v2f32(<2 x float> %a)
97
97
// CHECK: ret <2 x float> [[RND]]
98
- // float32x2_t test_vrnd64z_f32(float32x2_t a) {
99
- // return vrnd64z_f32(a);
100
- // }
98
+ float32x2_t test_vrnd64z_f32 (float32x2_t a ) {
99
+ return vrnd64z_f32 (a );
100
+
101
+ // CIR-LABEL: vrnd64z_f32
102
+ // CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.frint64z" {{.*}} : (!cir.vector<!cir.float x 2>) -> !cir.vector<!cir.float x 2>
103
+
104
+ // LLVM-LABEL: @test_vrnd64z_f32
105
+ // LLVM: [[RND:%.*]] = call <2 x float> @llvm.aarch64.neon.frint64z.v2f32(<2 x float> %0)
106
+ // LLVM: ret <2 x float> [[RND]]
107
+ }
101
108
102
109
// CHECK-LABEL: test_vrnd64zq_f32
103
110
// CHECK: [[RND:%.*]] = call <4 x float> @llvm.aarch64.neon.frint64z.v4f32(<4 x float> %a)
104
111
// CHECK: ret <4 x float> [[RND]]
105
- // float32x4_t test_vrnd64zq_f32(float32x4_t a) {
106
- // return vrnd64zq_f32(a);
107
- // }
112
+ float32x4_t test_vrnd64zq_f32 (float32x4_t a ) {
113
+ return vrnd64zq_f32 (a );
114
+
115
+ // CIR-LABEL: vrnd64zq_f32
116
+ // CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.frint64z" {{.*}} : (!cir.vector<!cir.float x 4>) -> !cir.vector<!cir.float x 4>
117
+
118
+ // LLVM-LABEL: @test_vrnd64zq_f32
119
+ // LLVM: [[RND:%.*]] = call <4 x float> @llvm.aarch64.neon.frint64z.v4f32(<4 x float> %0)
120
+ // LLVM: ret <4 x float> [[RND]]
121
+ }
108
122
109
123
float64x1_t test_vrnd32x_f64 (float64x1_t a ) {
110
124
return vrnd32x_f64 (a );
@@ -182,13 +196,27 @@ float64x2_t test_vrnd64xq_f64(float64x2_t a) {
182
196
// CHECK-LABEL: test_vrnd64z_f64
183
197
// CHECK: [[RND:%.*]] = call <1 x double> @llvm.aarch64.neon.frint64z.v1f64(<1 x double> %a)
184
198
// CHECK: ret <1 x double> [[RND]]
185
- // float64x1_t test_vrnd64z_f64(float64x1_t a) {
186
- // return vrnd64z_f64(a);
187
- // }
199
+ float64x1_t test_vrnd64z_f64 (float64x1_t a ) {
200
+ return vrnd64z_f64 (a );
201
+
202
+ // CIR-LABEL: vrnd64z_f64
203
+ // CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.frint64z" {{.*}} : (!cir.vector<!cir.double x 1>) -> !cir.vector<!cir.double x 1>
204
+
205
+ // LLVM-LABEL: @test_vrnd64z_f64
206
+ // LLVM: [[RND:%.*]] = call <1 x double> @llvm.aarch64.neon.frint64z.v1f64(<1 x double> %0)
207
+ // LLVM: ret <1 x double> [[RND]]
208
+ }
188
209
189
210
// CHECK-LABEL: test_vrnd64zq_f64
190
211
// CHECK: [[RND:%.*]] = call <2 x double> @llvm.aarch64.neon.frint64z.v2f64(<2 x double> %a)
191
212
// CHECK: ret <2 x double> [[RND]]
192
- // float64x2_t test_vrnd64zq_f64(float64x2_t a) {
193
- // return vrnd64zq_f64(a);
194
- // }
213
+ float64x2_t test_vrnd64zq_f64 (float64x2_t a ) {
214
+ return vrnd64zq_f64 (a );
215
+
216
+ // CIR-LABEL: vrnd64zq_f64
217
+ // CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.frint64z" {{.*}} : (!cir.vector<!cir.double x 2>) -> !cir.vector<!cir.double x 2>
218
+
219
+ // LLVM-LABEL: @test_vrnd64zq_f64
220
+ // LLVM: [[RND:%.*]] = call <2 x double> @llvm.aarch64.neon.frint64z.v2f64(<2 x double> %0)
221
+ // LLVM: ret <2 x double> [[RND]]
222
+ }
0 commit comments