diff --git a/clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp b/clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp index 7c39e4d00031..d0e723a8eb39 100644 --- a/clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp +++ b/clang/lib/CIR/CodeGen/CIRGenBuiltinAArch64.cpp @@ -4135,8 +4135,8 @@ CIRGenFunction::emitAArch64BuiltinExpr(unsigned BuiltinID, const CallExpr *E, case NEON::BI__builtin_neon_vrnda_v: case NEON::BI__builtin_neon_vrndaq_v: { assert(!cir::MissingFeatures::emitConstrainedFPCall()); - return emitNeonCall(builder, {ty}, Ops, "round", ty, - getLoc(E->getExprLoc())); + return emitNeonCallToOp(builder, {ty}, Ops, std::nullopt, ty, + getLoc(E->getExprLoc())); } case NEON::BI__builtin_neon_vrndih_f16: { llvm_unreachable("NEON::BI__builtin_neon_vrndih_f16 NYI"); diff --git a/clang/test/CIR/CodeGen/AArch64/neon-arith.c b/clang/test/CIR/CodeGen/AArch64/neon-arith.c index fda7e6ef471c..083b7a61897e 100644 --- a/clang/test/CIR/CodeGen/AArch64/neon-arith.c +++ b/clang/test/CIR/CodeGen/AArch64/neon-arith.c @@ -47,7 +47,7 @@ float32x2_t test_vrnda_f32(float32x2_t a) { // CIR: [[INTRIN_ARG:%.*]] = cir.load [[ARG_SAVE]] : !cir.ptr>, !cir.vector // CIR: [[INTRIN_ARG_CAST:%.*]] = cir.cast(bitcast, [[INTRIN_ARG]] : !cir.vector), !cir.vector // CIR: [[INTRIN_ARG_BACK:%.*]] = cir.cast(bitcast, [[INTRIN_ARG_CAST]] : !cir.vector), !cir.vector -// CIR: {{%.*}} = cir.llvm.intrinsic "round" [[INTRIN_ARG_BACK]] : (!cir.vector) -> !cir.vector +// CIR: {{%.*}} = cir.round [[INTRIN_ARG_BACK]] : !cir.vector // CIR: cir.return {{%.*}} : !cir.vector // CIR-LABEL: test_vrnda_f32 @@ -71,7 +71,7 @@ float32x4_t test_vrndaq_f32(float32x4_t a) { // CIR: [[INTRIN_ARG:%.*]] = cir.load [[ARG_SAVE]] : !cir.ptr>, !cir.vector // CIR: [[INTRIN_ARG_CAST:%.*]] = cir.cast(bitcast, [[INTRIN_ARG]] : !cir.vector), !cir.vector // CIR: [[INTRIN_ARG_BACK:%.*]] = cir.cast(bitcast, [[INTRIN_ARG_CAST]] : !cir.vector), !cir.vector -// CIR: {{%.*}} = cir.llvm.intrinsic "round" [[INTRIN_ARG_BACK]] : (!cir.vector) -> !cir.vector +// CIR: {{%.*}} = cir.round [[INTRIN_ARG_BACK]] : !cir.vector // CIR: cir.return {{%.*}} : !cir.vector // LLVM: {{.*}}test_vrndaq_f32(<4 x float>{{.*}}[[ARG:%.*]])