llvmorg-github-actions[bot] wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang @llvm/pr-subscribers-clangir Author: Letu Ren (FantasqueX) <details> <summary>Changes</summary> --- Full diff: https://github.com/llvm/llvm-project/pull/204974.diff 2 Files Affected: - (modified) clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp (+3-3) - (modified) clang/test/CIR/CodeGenBuiltins/builtins-elementwise.c (+22) ``````````diff diff --git a/clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp b/clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp index a483eb635f0e2..cebc4cc733ece 100644 --- a/clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp +++ b/clang/lib/CIR/CodeGen/CIRGenBuiltin.cpp @@ -537,9 +537,8 @@ static RValue tryEmitFPMathIntrinsic(CIRGenFunction &cgf, const CallExpr *e, case Builtin::BI__builtin_ceilf16: case Builtin::BI__builtin_ceill: case Builtin::BI__builtin_ceilf128: - return emitUnaryMaybeConstrainedFPBuiltin<cir::CeilOp>(cgf, *e); case Builtin::BI__builtin_elementwise_ceil: - return RValue::getIgnored(); + return emitUnaryMaybeConstrainedFPBuiltin<cir::CeilOp>(cgf, *e); case Builtin::BIcopysign: case Builtin::BIcopysignf: case Builtin::BIcopysignl: @@ -1645,6 +1644,8 @@ RValue CIRGenFunction::emitBuiltinExpr(const GlobalDecl &gd, unsigned builtinID, return emitUnaryMaybeConstrainedFPBuiltin<cir::Log10Op>(*this, *e); case Builtin::BI__builtin_elementwise_cos: return emitUnaryMaybeConstrainedFPBuiltin<cir::CosOp>(*this, *e); + case Builtin::BI__builtin_elementwise_ceil: + return emitUnaryMaybeConstrainedFPBuiltin<cir::CeilOp>(*this, *e); case Builtin::BI__builtin_elementwise_floor: return emitUnaryMaybeConstrainedFPBuiltin<cir::FloorOp>(*this, *e); case Builtin::BI__builtin_elementwise_round: @@ -1664,7 +1665,6 @@ RValue CIRGenFunction::emitBuiltinExpr(const GlobalDecl &gd, unsigned builtinID, case Builtin::BI__builtin_elementwise_fmod: return RValue::get( emitBinaryMaybeConstrainedFPBuiltin<cir::FModOp>(*this, *e)); - case Builtin::BI__builtin_elementwise_ceil: case Builtin::BI__builtin_elementwise_exp10: case Builtin::BI__builtin_elementwise_ldexp: case Builtin::BI__builtin_elementwise_pow: diff --git a/clang/test/CIR/CodeGenBuiltins/builtins-elementwise.c b/clang/test/CIR/CodeGenBuiltins/builtins-elementwise.c index c04739d737632..8d14a813d61f5 100644 --- a/clang/test/CIR/CodeGenBuiltins/builtins-elementwise.c +++ b/clang/test/CIR/CodeGenBuiltins/builtins-elementwise.c @@ -261,6 +261,28 @@ void test_builtin_elementwise_cos(float f, double d, vfloat4 vf4, vd4 = __builtin_elementwise_cos(vd4); } +void test_builtin_elementwise_ceil(float f, double d, vfloat4 vf4, + vdouble4 vd4) { + // CIR-LABEL: test_builtin_elementwise_ceil + // LLVM-LABEL: test_builtin_elementwise_ceil + + // CIR: cir.ceil %{{.*}} : !cir.float + // LLVM: call float @llvm.ceil.f32(float %{{.*}}) + f = __builtin_elementwise_ceil(f); + + // CIR: cir.ceil %{{.*}} : !cir.double + // LLVM: call double @llvm.ceil.f64(double %{{.*}}) + d = __builtin_elementwise_ceil(d); + + // CIR: cir.ceil %{{.*}} : !cir.vector<4 x !cir.float> + // LLVM: call <4 x float> @llvm.ceil.v4f32(<4 x float> %{{.*}}) + vf4 = __builtin_elementwise_ceil(vf4); + + // CIR: cir.ceil %{{.*}} : !cir.vector<4 x !cir.double> + // LLVM: call <4 x double> @llvm.ceil.v4f64(<4 x double> %{{.*}}) + vd4 = __builtin_elementwise_ceil(vd4); +} + void test_builtin_elementwise_floor(float f, double d, vfloat4 vf4, vdouble4 vd4) { // CIR-LABEL: test_builtin_elementwise_floor `````````` </details> https://github.com/llvm/llvm-project/pull/204974 _______________________________________________ cfe-commits mailing list [email protected] https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
