llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT--> @llvm/pr-subscribers-clang Author: Farzon Lotfi (farzonl) <details> <summary>Changes</summary> This reverts commit b15a0a37404f36bcd9c7995de8cd16f9cb5ac8af. This should undo PR: https://github.com/llvm/llvm-project/pull/93314 will need to re-open https://github.com/llvm/llvm-project/issues/91421 wait for https://github.com/llvm/llvm-project/pull/90503 to land --- Full diff: https://github.com/llvm/llvm-project/pull/93721.diff 12 Files Affected: - (modified) clang/include/clang/Basic/Builtins.td (+3-3) - (modified) clang/lib/CodeGen/CGBuiltin.cpp (-12) - (modified) clang/test/CodeGen/X86/math-builtins.c (+4-4) - (modified) clang/test/CodeGen/constrained-math-builtins.c (-13) - (modified) clang/test/CodeGen/math-libcalls.c (+6-6) - (modified) clang/test/CodeGenOpenCL/builtins-f16.cl (-3) - (modified) llvm/docs/LangRef.rst (-36) - (modified) llvm/include/llvm/CodeGen/ISDOpcodes.h (-2) - (modified) llvm/include/llvm/IR/ConstrainedOps.def (-1) - (modified) llvm/include/llvm/IR/Intrinsics.td (-4) - (modified) llvm/test/Assembler/fp-intrinsics-attr.ll (-8) - (modified) llvm/test/Feature/fp-intrinsics.ll (-11) ``````````diff diff --git a/clang/include/clang/Basic/Builtins.td b/clang/include/clang/Basic/Builtins.td index 7bef5fd7ad40f..11982af3fa609 100644 --- a/clang/include/clang/Basic/Builtins.td +++ b/clang/include/clang/Basic/Builtins.td @@ -482,11 +482,11 @@ def SqrtF16F128 : Builtin, F16F128MathTemplate { let Prototype = "T(T)"; } -def TanF16F128 : Builtin, F16F128MathTemplate { - let Spellings = ["__builtin_tan"]; +def TanF128 : Builtin { + let Spellings = ["__builtin_tanf128"]; let Attributes = [FunctionWithBuiltinPrefix, NoThrow, ConstIgnoringErrnoAndExceptions]; - let Prototype = "T(T)"; + let Prototype = "__float128(__float128)"; } def TanhF128 : Builtin { diff --git a/clang/lib/CodeGen/CGBuiltin.cpp b/clang/lib/CodeGen/CGBuiltin.cpp index 94a7036f6233c..266bf41fd5577 100644 --- a/clang/lib/CodeGen/CGBuiltin.cpp +++ b/clang/lib/CodeGen/CGBuiltin.cpp @@ -2923,18 +2923,6 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID, SetSqrtFPAccuracy(Call); return RValue::get(Call); } - - case Builtin::BItan: - case Builtin::BItanf: - case Builtin::BItanl: - case Builtin::BI__builtin_tan: - case Builtin::BI__builtin_tanf: - case Builtin::BI__builtin_tanf16: - case Builtin::BI__builtin_tanl: - case Builtin::BI__builtin_tanf128: - return RValue::get(emitUnaryMaybeConstrainedFPBuiltin( - *this, E, Intrinsic::tan, Intrinsic::experimental_constrained_tan)); - case Builtin::BItrunc: case Builtin::BItruncf: case Builtin::BItruncl: diff --git a/clang/test/CodeGen/X86/math-builtins.c b/clang/test/CodeGen/X86/math-builtins.c index 1e0f129b98610..093239b448260 100644 --- a/clang/test/CodeGen/X86/math-builtins.c +++ b/clang/test/CodeGen/X86/math-builtins.c @@ -674,10 +674,10 @@ __builtin_sqrt(f); __builtin_sqrtf(f); __builtin_sqrtl(f); __builtin_ __builtin_tan(f); __builtin_tanf(f); __builtin_tanl(f); __builtin_tanf128(f); -// NO__ERRNO: declare double @llvm.tan.f64(double) [[READNONE_INTRINSIC]] -// NO__ERRNO: declare float @llvm.tan.f32(float) [[READNONE_INTRINSIC]] -// NO__ERRNO: declare x86_fp80 @llvm.tan.f80(x86_fp80) [[READNONE_INTRINSIC]] -// NO__ERRNO: declare fp128 @llvm.tan.f128(fp128) [[READNONE_INTRINSIC]] +// NO__ERRNO: declare double @tan(double noundef) [[READNONE]] +// NO__ERRNO: declare float @tanf(float noundef) [[READNONE]] +// NO__ERRNO: declare x86_fp80 @tanl(x86_fp80 noundef) [[READNONE]] +// NO__ERRNO: declare fp128 @tanf128(fp128 noundef) [[READNONE]] // HAS_ERRNO: declare double @tan(double noundef) [[NOT_READNONE]] // HAS_ERRNO: declare float @tanf(float noundef) [[NOT_READNONE]] // HAS_ERRNO: declare x86_fp80 @tanl(x86_fp80 noundef) [[NOT_READNONE]] diff --git a/clang/test/CodeGen/constrained-math-builtins.c b/clang/test/CodeGen/constrained-math-builtins.c index 6cc3a10a1e794..2de832dd2b6ca 100644 --- a/clang/test/CodeGen/constrained-math-builtins.c +++ b/clang/test/CodeGen/constrained-math-builtins.c @@ -183,14 +183,6 @@ void foo(double *d, float f, float *fp, long double *l, int *i, const char *c, _ // CHECK: call x86_fp80 @llvm.experimental.constrained.sqrt.f80(x86_fp80 %{{.*}}, metadata !"round.tonearest", metadata !"fpexcept.strict") // CHECK: call fp128 @llvm.experimental.constrained.sqrt.f128(fp128 %{{.*}}, metadata !"round.tonearest", metadata !"fpexcept.strict") - __builtin_tan(f); __builtin_tanf(f); __builtin_tanl(f); __builtin_tanf128(f); - -// CHECK: call double @llvm.experimental.constrained.tan.f64(double %{{.*}}, metadata !"round.tonearest", metadata !"fpexcept.strict") -// CHECK: call float @llvm.experimental.constrained.tan.f32(float %{{.*}}, metadata !"round.tonearest", metadata !"fpexcept.strict") -// CHECK: call x86_fp80 @llvm.experimental.constrained.tan.f80(x86_fp80 %{{.*}}, metadata !"round.tonearest", metadata !"fpexcept.strict") -// CHECK: call fp128 @llvm.experimental.constrained.tan.f128(fp128 %{{.*}}, metadata !"round.tonearest", metadata !"fpexcept.strict") - - __builtin_trunc(f); __builtin_truncf(f); __builtin_truncl(f); __builtin_truncf128(f); // CHECK: call double @llvm.experimental.constrained.trunc.f64(double %{{.*}}, metadata !"fpexcept.strict") @@ -323,11 +315,6 @@ void foo(double *d, float f, float *fp, long double *l, int *i, const char *c, _ // CHECK: declare x86_fp80 @llvm.experimental.constrained.sqrt.f80(x86_fp80, metadata, metadata) // CHECK: declare fp128 @llvm.experimental.constrained.sqrt.f128(fp128, metadata, metadata) -// CHECK: declare double @llvm.experimental.constrained.tan.f64(double, metadata, metadata) -// CHECK: declare float @llvm.experimental.constrained.tan.f32(float, metadata, metadata) -// CHECK: declare x86_fp80 @llvm.experimental.constrained.tan.f80(x86_fp80, metadata, metadata) -// CHECK: declare fp128 @llvm.experimental.constrained.tan.f128(fp128, metadata, metadata) - // CHECK: declare double @llvm.experimental.constrained.trunc.f64(double, metadata) // CHECK: declare float @llvm.experimental.constrained.trunc.f32(float, metadata) // CHECK: declare x86_fp80 @llvm.experimental.constrained.trunc.f80(x86_fp80, metadata) diff --git a/clang/test/CodeGen/math-libcalls.c b/clang/test/CodeGen/math-libcalls.c index a249182692762..29c312ba0ecac 100644 --- a/clang/test/CodeGen/math-libcalls.c +++ b/clang/test/CodeGen/math-libcalls.c @@ -662,15 +662,15 @@ void foo(double *d, float f, float *fp, long double *l, int *i, const char *c) { tan(f); tanf(f); tanl(f); -// NO__ERRNO: declare double @llvm.tan.f64(double) [[READNONE_INTRINSIC]] -// NO__ERRNO: declare float @llvm.tan.f32(float) [[READNONE_INTRINSIC]] -// NO__ERRNO: declare x86_fp80 @llvm.tan.f80(x86_fp80) [[READNONE_INTRINSIC]] +// NO__ERRNO: declare double @tan(double noundef) [[READNONE]] +// NO__ERRNO: declare float @tanf(float noundef) [[READNONE]] +// NO__ERRNO: declare x86_fp80 @tanl(x86_fp80 noundef) [[READNONE]] // HAS_ERRNO: declare double @tan(double noundef) [[NOT_READNONE]] // HAS_ERRNO: declare float @tanf(float noundef) [[NOT_READNONE]] // HAS_ERRNO: declare x86_fp80 @tanl(x86_fp80 noundef) [[NOT_READNONE]] -// HAS_MAYTRAP: declare double @llvm.experimental.constrained.tan.f64( -// HAS_MAYTRAP: declare float @llvm.experimental.constrained.tan.f32( -// HAS_MAYTRAP: declare x86_fp80 @llvm.experimental.constrained.tan.f80( +// HAS_MAYTRAP: declare double @tan(double noundef) [[NOT_READNONE]] +// HAS_MAYTRAP: declare float @tanf(float noundef) [[NOT_READNONE]] +// HAS_MAYTRAP: declare x86_fp80 @tanl(x86_fp80 noundef) [[NOT_READNONE]] tanh(f); tanhf(f); tanhl(f); diff --git a/clang/test/CodeGenOpenCL/builtins-f16.cl b/clang/test/CodeGenOpenCL/builtins-f16.cl index d7bffdad5c548..adf7cdde154f5 100644 --- a/clang/test/CodeGenOpenCL/builtins-f16.cl +++ b/clang/test/CodeGenOpenCL/builtins-f16.cl @@ -66,9 +66,6 @@ void test_half_builtins(half h0, half h1, half h2, int i0) { // CHECK: call half @llvm.sqrt.f16(half %h0) res = __builtin_sqrtf16(h0); - // CHECK: call half @llvm.tan.f16(half %h0) - res = __builtin_tanf16(h0); - // CHECK: call half @llvm.trunc.f16(half %h0) res = __builtin_truncf16(h0); diff --git a/llvm/docs/LangRef.rst b/llvm/docs/LangRef.rst index a650692d44d76..7b64c477d13c7 100644 --- a/llvm/docs/LangRef.rst +++ b/llvm/docs/LangRef.rst @@ -26229,42 +26229,6 @@ same values as the libm ``cos`` functions would, and handles error conditions in the same way. -'``llvm.experimental.constrained.tan``' Intrinsic -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Syntax: -""""""" - -:: - - declare <type> - @llvm.experimental.constrained.tan(<type> <op1>, - metadata <rounding mode>, - metadata <exception behavior>) - -Overview: -""""""""" - -The '``llvm.experimental.constrained.tan``' intrinsic returns the tangent of the -first operand. - -Arguments: -"""""""""" - -The first argument and the return type are floating-point numbers of the same -type. - -The second and third arguments specify the rounding mode and exception -behavior as described above. - -Semantics: -"""""""""" - -This function returns the tangent of the specified operand, returning the -same values as the libm ``tan`` functions would, and handles error -conditions in the same way. - - '``llvm.experimental.constrained.exp``' Intrinsic ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/llvm/include/llvm/CodeGen/ISDOpcodes.h b/llvm/include/llvm/CodeGen/ISDOpcodes.h index 22062f0efbbda..d8af97957e48e 100644 --- a/llvm/include/llvm/CodeGen/ISDOpcodes.h +++ b/llvm/include/llvm/CodeGen/ISDOpcodes.h @@ -415,7 +415,6 @@ enum NodeType { STRICT_FLDEXP, STRICT_FSIN, STRICT_FCOS, - STRICT_FTAN, STRICT_FEXP, STRICT_FEXP2, STRICT_FLOG, @@ -935,7 +934,6 @@ enum NodeType { FCBRT, FSIN, FCOS, - FTAN, FPOW, FPOWI, /// FLDEXP - ldexp, inspired by libm (op0 * 2**op1). diff --git a/llvm/include/llvm/IR/ConstrainedOps.def b/llvm/include/llvm/IR/ConstrainedOps.def index a7b37c5cb204d..41aa44de957f9 100644 --- a/llvm/include/llvm/IR/ConstrainedOps.def +++ b/llvm/include/llvm/IR/ConstrainedOps.def @@ -95,7 +95,6 @@ DAG_FUNCTION(round, 1, 0, experimental_constrained_round, FROUND) DAG_FUNCTION(roundeven, 1, 0, experimental_constrained_roundeven, FROUNDEVEN) DAG_FUNCTION(sin, 1, 1, experimental_constrained_sin, FSIN) DAG_FUNCTION(sqrt, 1, 1, experimental_constrained_sqrt, FSQRT) -DAG_FUNCTION(tan, 1, 1, experimental_constrained_tan, FTAN) DAG_FUNCTION(trunc, 1, 0, experimental_constrained_trunc, FTRUNC) // This is definition for fmuladd intrinsic function, that is converted into diff --git a/llvm/include/llvm/IR/Intrinsics.td b/llvm/include/llvm/IR/Intrinsics.td index 4c506a6ace23e..107442623ab7b 100644 --- a/llvm/include/llvm/IR/Intrinsics.td +++ b/llvm/include/llvm/IR/Intrinsics.td @@ -1218,10 +1218,6 @@ let IntrProperties = [IntrInaccessibleMemOnly, IntrWillReturn, IntrStrictFP] in [ LLVMMatchType<0>, llvm_metadata_ty, llvm_metadata_ty ]>; - def int_experimental_constrained_tan : DefaultAttrsIntrinsic<[ llvm_anyfloat_ty ], - [ LLVMMatchType<0>, - llvm_metadata_ty, - llvm_metadata_ty ]>; def int_experimental_constrained_pow : DefaultAttrsIntrinsic<[ llvm_anyfloat_ty ], [ LLVMMatchType<0>, LLVMMatchType<0>, diff --git a/llvm/test/Assembler/fp-intrinsics-attr.ll b/llvm/test/Assembler/fp-intrinsics-attr.ll index 613630e1a2b4d..6546d1a275c99 100644 --- a/llvm/test/Assembler/fp-intrinsics-attr.ll +++ b/llvm/test/Assembler/fp-intrinsics-attr.ll @@ -85,11 +85,6 @@ define void @func(double %a, double %b, double %c, i32 %i) strictfp { metadata !"round.dynamic", metadata !"fpexcept.strict") - %tan = call double @llvm.experimental.constrained.tan.f64( - double %a, - metadata !"round.dynamic", - metadata !"fpexcept.strict") - %pow = call double @llvm.experimental.constrained.pow.f64( double %a, double %b, metadata !"round.dynamic", @@ -249,9 +244,6 @@ declare double @llvm.experimental.constrained.sin.f64(double, metadata, metadata declare double @llvm.experimental.constrained.cos.f64(double, metadata, metadata) ; CHECK: @llvm.experimental.constrained.cos.f64({{.*}}) #[[ATTR1]] -declare double @llvm.experimental.constrained.tan.f64(double, metadata, metadata) -; CHECK: @llvm.experimental.constrained.tan.f64({{.*}}) #[[ATTR1]] - declare double @llvm.experimental.constrained.pow.f64(double, double, metadata, metadata) ; CHECK: @llvm.experimental.constrained.pow.f64({{.*}}) #[[ATTR1]] diff --git a/llvm/test/Feature/fp-intrinsics.ll b/llvm/test/Feature/fp-intrinsics.ll index 7759813dc2e11..b92408a1bf1cd 100644 --- a/llvm/test/Feature/fp-intrinsics.ll +++ b/llvm/test/Feature/fp-intrinsics.ll @@ -151,17 +151,6 @@ entry: ret double %result } -; Verify that tan(42.0) isn't simplified when the rounding mode is unknown. -; CHECK-LABEL: ftan -; CHECK: call double @llvm.experimental.constrained.tan -define double @ftan() #0 { -entry: - %result = call double @llvm.experimental.constrained.tan.f64(double 42.0, - metadata !"round.dynamic", - metadata !"fpexcept.strict") #0 - ret double %result -} - ; Verify that exp(42.0) isn't simplified when the rounding mode is unknown. ; CHECK-LABEL: f10 ; CHECK: call double @llvm.experimental.constrained.exp `````````` </details> https://github.com/llvm/llvm-project/pull/93721 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits