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