@@ -67,16 +67,30 @@ float32x4_t test_vrnd32zq_f32(float32x4_t a) {
67
67
// CHECK-LABEL: test_vrnd64x_f32
68
68
// CHECK: [[RND:%.*]] = call <2 x float> @llvm.aarch64.neon.frint64x.v2f32(<2 x float> %a)
69
69
// CHECK: ret <2 x float> [[RND]]
70
- // float32x2_t test_vrnd64x_f32(float32x2_t a) {
71
- // return vrnd64x_f32(a);
72
- // }
70
+ float32x2_t test_vrnd64x_f32 (float32x2_t a ) {
71
+ return vrnd64x_f32 (a );
72
+
73
+ // CIR-LABEL: vrnd64x_f32
74
+ // CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.frint64x" {{.*}} : (!cir.vector<!cir.float x 2>) -> !cir.vector<!cir.float x 2>
75
+
76
+ // LLVM-LABEL: @test_vrnd64x_f32
77
+ // LLVM: [[RND:%.*]] = call <2 x float> @llvm.aarch64.neon.frint64x.v2f32(<2 x float> %0)
78
+ // LLVM: ret <2 x float> [[RND]]
79
+ }
73
80
74
81
// CHECK-LABEL: test_vrnd64xq_f32
75
82
// CHECK: [[RND:%.*]] = call <4 x float> @llvm.aarch64.neon.frint64x.v4f32(<4 x float> %a)
76
83
// CHECK: ret <4 x float> [[RND]]
77
- // float32x4_t test_vrnd64xq_f32(float32x4_t a) {
78
- // return vrnd64xq_f32(a);
79
- // }
84
+ float32x4_t test_vrnd64xq_f32 (float32x4_t a ) {
85
+ return vrnd64xq_f32 (a );
86
+
87
+ // CIR-LABEL: vrnd64xq_f32
88
+ // CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.frint64x" {{.*}} : (!cir.vector<!cir.float x 4>) -> !cir.vector<!cir.float x 4>
89
+
90
+ // LLVM-LABEL: @test_vrnd64xq_f32
91
+ // LLVM: [[RND:%.*]] = call <4 x float> @llvm.aarch64.neon.frint64x.v4f32(<4 x float> %0)
92
+ // LLVM: ret <4 x float> [[RND]]
93
+ }
80
94
81
95
// CHECK-LABEL: test_vrnd64z_f32
82
96
// CHECK: [[RND:%.*]] = call <2 x float> @llvm.aarch64.neon.frint64z.v2f32(<2 x float> %a)
@@ -140,16 +154,30 @@ float64x2_t test_vrnd32zq_f64(float64x2_t a) {
140
154
// CHECK-LABEL: test_vrnd64x_f64
141
155
// CHECK: [[RND:%.*]] = call <1 x double> @llvm.aarch64.neon.frint64x.v1f64(<1 x double> %a)
142
156
// CHECK: ret <1 x double> [[RND]]
143
- // float64x1_t test_vrnd64x_f64(float64x1_t a) {
144
- // return vrnd64x_f64(a);
145
- // }
157
+ float64x1_t test_vrnd64x_f64 (float64x1_t a ) {
158
+ return vrnd64x_f64 (a );
159
+
160
+ // CIR-LABEL: vrnd64x_f64
161
+ // CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.frint64x" {{.*}} : (!cir.vector<!cir.double x 1>) -> !cir.vector<!cir.double x 1>
162
+
163
+ // LLVM-LABEL: @test_vrnd64x_f64
164
+ // LLVM: [[RND:%.*]] = call <1 x double> @llvm.aarch64.neon.frint64x.v1f64(<1 x double> %0)
165
+ // LLVM: ret <1 x double> [[RND]]
166
+ }
146
167
147
168
// CHECK-LABEL: test_vrnd64xq_f64
148
169
// CHECK: [[RND:%.*]] = call <2 x double> @llvm.aarch64.neon.frint64x.v2f64(<2 x double> %a)
149
170
// CHECK: ret <2 x double> [[RND]]
150
- // float64x2_t test_vrnd64xq_f64(float64x2_t a) {
151
- // return vrnd64xq_f64(a);
152
- // }
171
+ float64x2_t test_vrnd64xq_f64 (float64x2_t a ) {
172
+ return vrnd64xq_f64 (a );
173
+
174
+ // CIR-LABEL: vrnd64xq_f64
175
+ // CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.frint64x" {{.*}} : (!cir.vector<!cir.double x 2>) -> !cir.vector<!cir.double x 2>
176
+
177
+ // LLVM-LABEL: @test_vrnd64xq_f64
178
+ // LLVM: [[RND:%.*]] = call <2 x double> @llvm.aarch64.neon.frint64x.v2f64(<2 x double> %0)
179
+ // LLVM: ret <2 x double> [[RND]]
180
+ }
153
181
154
182
// CHECK-LABEL: test_vrnd64z_f64
155
183
// CHECK: [[RND:%.*]] = call <1 x double> @llvm.aarch64.neon.frint64z.v1f64(<1 x double> %a)
0 commit comments