Skip to content

Commit 39bf43b

Browse files
committed
Fix fp-accuracy for atan2 after 5c2a133
Add new atan2 to table, update the name in tests.
1 parent 8e9f1e3 commit 39bf43b

File tree

2 files changed

+8
-7
lines changed

2 files changed

+8
-7
lines changed

clang/lib/CodeGen/CGBuiltin.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2979,8 +2979,8 @@ RValue CodeGenFunction::EmitBuiltinExpr(const GlobalDecl GD, unsigned BuiltinID,
29792979
case Builtin::BI__builtin_atan2l:
29802980
case Builtin::BI__builtin_atan2f128:
29812981
return RValue::get(emitBinaryMaybeConstrainedFPBuiltin(
2982-
*this, E, Intrinsic::atan2,
2983-
Intrinsic::experimental_constrained_atan2));
2982+
*this, E, Intrinsic::atan2, Intrinsic::experimental_constrained_atan2,
2983+
Intrinsic::fpbuiltin_atan2));
29842984

29852985
case Builtin::BIceil:
29862986
case Builtin::BIceilf:

clang/test/CodeGen/fp-accuracy.c

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
// RUN: -emit-llvm -o - %s | FileCheck --check-prefixes=CHECK-F5 %s
2929

3030
// RUN: %clang_cc1 -triple x86_64-unknown-unknown \
31-
// RUN: "-ffp-builtin-accuracy=medium high:[sin,atan]" \
31+
// RUN: "-ffp-builtin-accuracy=medium high:[sin,atan] low:[atan2]" \
3232
// RUN: -Wno-return-type -Wno-implicit-function-declaration \
3333
// RUN: -emit-llvm -o - %s | FileCheck --check-prefixes=CHECK-F6 %s
3434

@@ -102,7 +102,7 @@ double rsqrt(double);
102102
// CHECK-F1: call double @llvm.asin.f64(double {{.*}})
103103
// CHECK-F1: call double @asinh(double {{.*}})
104104
// CHECK-F1: call double @llvm.atan.f64(double {{.*}})
105-
// CHECK-F1: call double @atan2(double {{.*}}, double {{.*}})
105+
// CHECK-F1: call double @llvm.atan2.f64(double {{.*}}, double {{.*}})
106106
// CHECK-F1: call double @atanh(double {{.*}})
107107
// CHECK-F1: call double @llvm.fpbuiltin.cos.f64(double {{.*}}) #[[ATTR_F1_HIGH:[0-9]+]]
108108
// CHECK-F1: call double @llvm.cosh.f64(double {{.*}})
@@ -264,7 +264,7 @@ double rsqrt(double);
264264
// CHECK-F5: call double @llvm.asin.f64(double {{.*}})
265265
// CHECK-F5: call double @asinh(double {{.*}})
266266
// CHECK-F5: call double @llvm.atan.f64(double {{.*}})
267-
// CHECK-F5: call double @atan2(double {{.*}}, double {{.*}})
267+
// CHECK-F5: call double @llvm.atan2.f64(double {{.*}}, double {{.*}})
268268
// CHECK-F5: call double @atanh(double {{.*}})
269269
// CHECK-F5: call double @llvm.fpbuiltin.cos.f64(double {{.*}}) #[[ATTR_F5_MEDIUM:[0-9]+]]
270270
// CHECK-F5: call double @llvm.cosh.f64(double {{.*}})
@@ -301,7 +301,7 @@ double rsqrt(double);
301301
// CHECK-F6: call double @llvm.fpbuiltin.asin.f64(double {{.*}}) #[[ATTR_F6_MEDIUM]]
302302
// CHECK-F6: call double @llvm.fpbuiltin.asinh.f64(double {{.*}}) #[[ATTR_F6_MEDIUM]]
303303
// CHECK-F6: call double @llvm.fpbuiltin.atan.f64(double {{.*}}) #[[ATTR_F6_HIGH:[0-9]+]]
304-
// CHECK-F6: call double @llvm.fpbuiltin.atan2.f64(double {{.*}}, double {{.*}}) #[[ATTR_F6_MEDIUM]]
304+
// CHECK-F6: call double @llvm.fpbuiltin.atan2.f64(double {{.*}}, double {{.*}}) #[[ATTR_F6_LOW:[0-9]+]]
305305
// CHECK-F6: call double @llvm.fpbuiltin.atanh.f64(double {{.*}}) #[[ATTR_F6_MEDIUM]]
306306
// CHECK-F6: call double @llvm.fpbuiltin.cos.f64(double {{.*}}) #[[ATTR_F6_MEDIUM]]
307307
// CHECK-F6: call double @llvm.fpbuiltin.cosh.f64(double {{.*}}) #[[ATTR_F6_MEDIUM]]
@@ -499,6 +499,7 @@ void f1(float a, float b) {
499499

500500
// CHECK-F6: attributes #[[ATTR_F6_MEDIUM]] = {{.*}}"fpbuiltin-max-error"="4.0"
501501
// CHECK-F6: attributes #[[ATTR_F6_HIGH]] = {{.*}}"fpbuiltin-max-error"="1.0"
502+
// CHECK-F6: attributes #[[ATTR_F6_LOW]] = {{.*}}"fpbuiltin-max-error"="67108864.0"
502503
//
503504
// CHECK-SPIR-LABEL: define dso_local spir_func void @f2
504505
// CHECK-SPIR: call float @llvm.fpbuiltin.cos.f32(float {{.*}}) #[[ATTR_SYCL1]]
@@ -565,7 +566,7 @@ void f1(float a, float b) {
565566
// CHECK-DEFAULT: call double @llvm.asin.f64(double {{.*}})
566567
// CHECK-DEFAULT: call double @asinh(double {{.*}})
567568
// CHECK-DEFAULT: call double @llvm.atan.f64(double {{.*}})
568-
// CHECK-DEFAULT: call double @atan2(double {{.*}}, double {{.*}})
569+
// CHECK-DEFAULT: call double @llvm.atan2.f64(double {{.*}}, double {{.*}})
569570
// CHECK-DEFAULT: call double @atanh(double {{.*}})
570571
// CHECK-DEFAULT: call double @llvm.cos.f64(double {{.*}})
571572
// CHECK-DEFAULT: call double @llvm.cosh.f64(double {{.*}})

0 commit comments

Comments
 (0)