11// RUN: %clang_cc1 -triple x86_64 %s -emit-llvm -o - 2>&1 | FileCheck %s --check-prefix=CHECK
2+ // RUN: %clang_cc1 -ffp-exception-behavior=strict -triple x86_64 %s -emit-llvm -o - 2>&1 | FileCheck %s --check-prefix=CHECK-STRICT
23
34float fminf (float , float );
45double fmin (double , double );
@@ -8,50 +9,34 @@ double fmax (double, double);
89long double fmaxl (long double , long double );
910
1011// CHECK: call nsz float @llvm.minnum.f32
11- float fmin32 (float a , float b ) {
12+ // CHECK-STRICT: call nsz float @llvm.experimental.constrained.minnum.f32{{.*}} #2
13+ float fmin1 (float a , float b ) {
1214 return fminf (a , b );
1315}
14- // CHECK: call nsz float @llvm.minnum.f32
15- float fmin32b (float a , float b ) {
16- return __builtin_fminf (a , b );
17- }
1816// CHECK: call nsz double @llvm.minnum.f64
19- float fmin64 (double a , double b ) {
17+ // CHECK-STRICT: call nsz double @llvm.experimental.constrained.minnum.f64{{.*}} #2
18+ float fmin2 (double a , double b ) {
2019 return fmin (a , b );
2120}
22- // CHECK: call nsz double @llvm.minnum.f64
23- float fmin64b (double a , double b ) {
24- return __builtin_fmin (a , b );
25- }
2621// CHECK: call nsz x86_fp80 @llvm.minnum.f80
27- float fmin80 (long double a , long double b ) {
22+ // CHECK-STRICT: call nsz x86_fp80 @llvm.experimental.constrained.minnum.f80{{.*}} #2
23+ float fmin3 (long double a , long double b ) {
2824 return fminl (a , b );
2925}
30- // CHECK: call nsz x86_fp80 @llvm.minnum.f80
31- float fmin80b (long double a , long double b ) {
32- return __builtin_fminl (a , b );
33- }
3426// CHECK: call nsz float @llvm.maxnum.f32
35- float fmax32 (float a , float b ) {
27+ // CHECK-STRICT: call nsz float @llvm.experimental.constrained.maxnum.f32{{.*}} #2
28+ float fmax1 (float a , float b ) {
3629 return fmaxf (a , b );
3730}
38- // CHECK: call nsz float @llvm.maxnum.f32
39- float fmax32b (float a , float b ) {
40- return __builtin_fmaxf (a , b );
41- }
4231// CHECK: call nsz double @llvm.maxnum.f64
43- float fmax64 (double a , double b ) {
32+ // CHECK-STRICT: call nsz double @llvm.experimental.constrained.maxnum.f64{{.*}} #2
33+ float fmax2 (double a , double b ) {
4434 return fmax (a , b );
4535}
46- // CHECK: call nsz double @llvm.maxnum.f64
47- float fmax64b (double a , double b ) {
48- return __builtin_fmax (a , b );
49- }
5036// CHECK: call nsz x86_fp80 @llvm.maxnum.f80
51- float fmax80 (long double a , long double b ) {
37+ // CHECK-STRICT: call nsz x86_fp80 @llvm.experimental.constrained.maxnum.f80{{.*}} #2
38+ float fmax3 (long double a , long double b ) {
5239 return fmaxl (a , b );
5340}
54- // CHECK: call nsz x86_fp80 @llvm.maxnum.f80
55- float fmax80b (long double a , long double b ) {
56- return __builtin_fmaxl (a , b );
57- }
41+
42+ //CHECK-STRICT: attributes #2 = { strictfp }
0 commit comments