1; RUN: llc  -march=x86 -mtriple=i386-linux-gnu  < %s | FileCheck %s
2
3declare float @fmaxf(float, float)
4declare double @fmax(double, double)
5declare x86_fp80 @fmaxl(x86_fp80, x86_fp80)
6declare float @llvm.maxnum.f32(float, float)
7declare double @llvm.maxnum.f64(double, double)
8declare x86_fp80 @llvm.maxnum.f80(x86_fp80, x86_fp80)
9
10; CHECK-LABEL: @test_fmaxf
11; CHECK: calll fmaxf
12define float @test_fmaxf(float %x, float %y) {
13  %z = call float @fmaxf(float %x, float %y) readnone
14  ret float %z
15}
16
17; CHECK-LABEL: @test_fmax
18; CHECK: calll fmax
19define double @test_fmax(double %x, double %y) {
20  %z = call double @fmax(double %x, double %y) readnone
21  ret double %z
22}
23
24; CHECK-LABEL: @test_fmaxl
25; CHECK: calll fmaxl
26define x86_fp80 @test_fmaxl(x86_fp80 %x, x86_fp80 %y) {
27  %z = call x86_fp80 @fmaxl(x86_fp80 %x, x86_fp80 %y) readnone
28  ret x86_fp80 %z
29}
30
31; CHECK-LABEL: @test_intrinsic_fmaxf
32; CHECK: calll fmaxf
33define float @test_intrinsic_fmaxf(float %x, float %y) {
34  %z = call float @llvm.maxnum.f32(float %x, float %y) readnone
35  ret float %z
36}
37
38; CHECK-LABEL: @test_intrinsic_fmax
39; CHECK: calll fmax
40define double @test_intrinsic_fmax(double %x, double %y) {
41  %z = call double @llvm.maxnum.f64(double %x, double %y) readnone
42  ret double %z
43}
44
45; CHECK-LABEL: @test_intrinsic_fmaxl
46; CHECK: calll fmaxl
47define x86_fp80 @test_intrinsic_fmaxl(x86_fp80 %x, x86_fp80 %y) {
48  %z = call x86_fp80 @llvm.maxnum.f80(x86_fp80 %x, x86_fp80 %y) readnone
49  ret x86_fp80 %z
50}
51