[AVX512] Bring back vector-shuffle lowering support through broadcasts
[oota-llvm.git] / test / CodeGen / X86 / fmaxnum.ll
1 ; RUN: llc  -march=x86 -mtriple=i386-linux-gnu  < %s | FileCheck %s
2
3 declare float @fmaxf(float, float)
4 declare double @fmax(double, double)
5 declare x86_fp80 @fmaxl(x86_fp80, x86_fp80)
6 declare float @llvm.maxnum.f32(float, float)
7 declare double @llvm.maxnum.f64(double, double)
8 declare x86_fp80 @llvm.maxnum.f80(x86_fp80, x86_fp80)
9
10 ; CHECK-LABEL: @test_fmaxf
11 ; CHECK: calll fmaxf
12 define 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
19 define 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
26 define 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
33 define 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
40 define 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
47 define 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 }