blob: 23678c46dba07a43d287cc32b7546b13feabab9f [file] [log] [blame]
Matt Arsenault7c936902014-10-21 23:01:01 +00001; 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}