Bump version to 19.1.0-rc3
[llvm-project.git] / llvm / test / CodeGen / ARM / ldexp.ll
blob941390ee94c1eb0e06eb91c8748768de5871ca13
1 ; RUN: llc -mtriple=armv7-linux < %s -o - | FileCheck -check-prefix=LINUX %s
2 ; RUN: llc -mtriple=thumbv7-windows-msvc -mattr=+thumb-mode < %s -o - | FileCheck -check-prefix=WINDOWS %s
4 define double @testExp(double %val, i32 %a) {
5 ; LINUX:    b ldexp{{$}}
6 ; WINDOWS:  b.w ldexp{{$}}
7 entry:
8   %call = tail call fast double @ldexp(double %val, i32 %a)
9   ret double %call
12 declare double @ldexp(double, i32) memory(none)
14 define double @testExpIntrinsic(double %val, i32 %a) {
15 ; LINUX:    b ldexp{{$}}
16 ; WINDOWS:  b.w ldexp{{$}}
17 entry:
18   %call = tail call fast double @llvm.ldexp.f64(double %val, i32 %a)
19   ret double %call
22 define float @testExpf(float %val, i32 %a) {
23 ; LINUX:    b ldexpf
24 ; WINDOWS:  b.w ldexpf
25 entry:
26   %call = tail call fast float @ldexpf(float %val, i32 %a)
27   ret float %call
30 define float @testExpfIntrinsic(float %val, i32 %a) {
31 ; LINUX:    b ldexpf
32 ; WINDOWS:  bl ldexp{{$}}
33 entry:
34   %call = tail call fast float @llvm.ldexp.f32(float %val, i32 %a)
35   ret float %call
38 declare float @ldexpf(float, i32) memory(none)
40 define fp128 @testExpl(fp128 %val, i32 %a) {
41 ; LINUX:    bl ldexpl
42 ; WINDOWS:    b.w ldexpl
43 entry:
44   %call = tail call fast fp128 @ldexpl(fp128 %val, i32 %a)
45   ret fp128 %call
48 declare fp128 @ldexpl(fp128, i32) memory(none)
50 define half @testExpf16(half %val, i32 %a) {
51 ; LINUX: bl ldexpf
52 ; WINDOWS: bl ldexp{{$}}
53 entry:
54   %0 = tail call fast half @llvm.ldexp.f16.i32(half %val, i32 %a)
55   ret half %0
58 declare half @llvm.ldexp.f16.i32(half, i32) memory(none)