@@ -73,16 +73,30 @@ float32x4_t test_vrnd32xq_f32(float32x4_t a) {
73
73
// CHECK-LABEL: test_vrnd64z_f32
74
74
// CHECK: [[RND:%.*]] = call <2 x float> @llvm.aarch64.neon.frint64z.v2f32(<2 x float> %a)
75
75
// CHECK: ret <2 x float> [[RND]]
76
- // float32x2_t test_vrnd64z_f32(float32x2_t a) {
77
- // return vrnd64z_f32(a);
78
- // }
76
+ float32x2_t test_vrnd64z_f32 (float32x2_t a ) {
77
+ return vrnd64z_f32 (a );
78
+
79
+ // CIR-LABEL: vrnd64z_f32
80
+ // CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.frint64z" {{.*}} : (!cir.vector<!cir.float x 2>) -> !cir.vector<!cir.float x 2>
81
+
82
+ // LLVM-LABEL: @test_vrnd64z_f32
83
+ // LLVM: [[RND:%.*]] = call <2 x float> @llvm.aarch64.neon.frint64z.v2f32(<2 x float> %0)
84
+ // LLVM: ret <2 x float> [[RND]]
85
+ }
79
86
80
87
// CHECK-LABEL: test_vrnd64zq_f32
81
88
// CHECK: [[RND:%.*]] = call <4 x float> @llvm.aarch64.neon.frint64z.v4f32(<4 x float> %a)
82
89
// CHECK: ret <4 x float> [[RND]]
83
- // float32x4_t test_vrnd64zq_f32(float32x4_t a) {
84
- // return vrnd64zq_f32(a);
85
- // }
90
+ float32x4_t test_vrnd64zq_f32 (float32x4_t a ) {
91
+ return vrnd64zq_f32 (a );
92
+
93
+ // CIR-LABEL: vrnd64zq_f32
94
+ // CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.frint64z" {{.*}} : (!cir.vector<!cir.float x 4>) -> !cir.vector<!cir.float x 4>
95
+
96
+ // LLVM-LABEL: @test_vrnd64zq_f32
97
+ // LLVM: [[RND:%.*]] = call <4 x float> @llvm.aarch64.neon.frint64z.v4f32(<4 x float> %0)
98
+ // LLVM: ret <4 x float> [[RND]]
99
+ }
86
100
87
101
float64x1_t test_vrnd32x_f64 (float64x1_t a ) {
88
102
return vrnd32x_f64 (a );
@@ -138,13 +152,27 @@ float64x2_t test_vrnd32xq_f64(float64x2_t a) {
138
152
// CHECK-LABEL: test_vrnd64z_f64
139
153
// CHECK: [[RND:%.*]] = call <1 x double> @llvm.aarch64.neon.frint64z.v1f64(<1 x double> %a)
140
154
// CHECK: ret <1 x double> [[RND]]
141
- // float64x1_t test_vrnd64z_f64(float64x1_t a) {
142
- // return vrnd64z_f64(a);
143
- // }
155
+ float64x1_t test_vrnd64z_f64 (float64x1_t a ) {
156
+ return vrnd64z_f64 (a );
157
+
158
+ // CIR-LABEL: vrnd64z_f64
159
+ // CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.frint64z" {{.*}} : (!cir.vector<!cir.double x 1>) -> !cir.vector<!cir.double x 1>
160
+
161
+ // LLVM-LABEL: @test_vrnd64z_f64
162
+ // LLVM: [[RND:%.*]] = call <1 x double> @llvm.aarch64.neon.frint64z.v1f64(<1 x double> %0)
163
+ // LLVM: ret <1 x double> [[RND]]
164
+ }
144
165
145
166
// CHECK-LABEL: test_vrnd64zq_f64
146
167
// CHECK: [[RND:%.*]] = call <2 x double> @llvm.aarch64.neon.frint64z.v2f64(<2 x double> %a)
147
168
// CHECK: ret <2 x double> [[RND]]
148
- // float64x2_t test_vrnd64zq_f64(float64x2_t a) {
149
- // return vrnd64zq_f64(a);
150
- // }
169
+ float64x2_t test_vrnd64zq_f64 (float64x2_t a ) {
170
+ return vrnd64zq_f64 (a );
171
+
172
+ // CIR-LABEL: vrnd64zq_f64
173
+ // CIR: [[TMP0:%.*]] = cir.llvm.intrinsic "aarch64.neon.frint64z" {{.*}} : (!cir.vector<!cir.double x 2>) -> !cir.vector<!cir.double x 2>
174
+
175
+ // LLVM-LABEL: @test_vrnd64zq_f64
176
+ // LLVM: [[RND:%.*]] = call <2 x double> @llvm.aarch64.neon.frint64z.v2f64(<2 x double> %0)
177
+ // LLVM: ret <2 x double> [[RND]]
178
+ }
0 commit comments