[clang] [CIR][AArch64] Port f64 tests for v8.5 rounding NEON builtins (PR #221389)

Vicky Nguyen via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 8 22:57:46 PDT 2026


================
@@ -130,3 +130,127 @@ float32x4_t test_vrnd64zq_f32(float32x4_t a) {
 // LLVM: [[VRND64ZQ1_I:%.*]] = call <4 x float> @llvm.aarch64.neon.frint64z.v4f32(<4 x float> [[VRND64ZQ_I]])
   return vrnd64zq_f32(a);
 }
+
+// LLVM-LABEL: @test_vrnd32x_f64(
+// CIR-LABEL: @vrnd32x_f64(
+float64x1_t test_vrnd32x_f64(float64x1_t a) {
+// CIR: [[LOAD:%.*]] = cir.load {{.*}} : !cir.ptr<!cir.vector<8 x !s8i>>, !cir.vector<8 x !s8i>
+// CIR: [[CAST:%.*]] = cir.cast bitcast [[LOAD]] : !cir.vector<8 x !s8i> -> !cir.vector<1 x !cir.double>
+// CIR: cir.call_llvm_intrinsic "aarch64.neon.frint32x" [[CAST]] : (!cir.vector<1 x !cir.double>) -> !cir.vector<1 x !cir.double>
+
+// LLVM-SAME: <1 x double> noundef [[A:%.*]])
----------------
iamvickynguyen wrote:

Thank you! I've moved the rounding tests to rounding.c an ignored `noundef`

https://github.com/llvm/llvm-project/pull/221389


More information about the cfe-commits mailing list