| ; RUN: llc -mtriple=arm64ec-windows-msvc < %s | FileCheck -check-prefixes=ARM64EC %s |
| |
| ; Separate from ldexp.ll test because this errors on half cases |
| |
| ; ARM64EC-LABEL: ldexp_f16 = |
| ; ARM64EC: fcvt d0, h0 |
| ; ARM64EC: bl "#ldexp" |
| ; ARM64EC: fcvt h0, d0 |
| define half @ldexp_f16(half %val, i32 %a) { |
| %call = call half @llvm.ldexp.f16(half %val, i32 %a) |
| ret half %call |
| } |
| |
| ; ARM64EC-LABEL: ldexp_f32 = |
| ; ARM64EC: fcvt d0, s0 |
| ; ARM64EC: bl "#ldexp" |
| ; ARM64EC: fcvt s0, d0 |
| define float @ldexp_f32(float %val, i32 %a) { |
| %call = call float @llvm.ldexp.f32(float %val, i32 %a) |
| ret float %call |
| } |
| |
| ; ARM64EC-LABEL: ldexp_f64 = |
| ; ARM64EC: b "#ldexp" |
| define double @ldexp_f64(double %val, i32 %a) { |
| %call = call double @llvm.ldexp.f64(double %val, i32 %a) |
| ret double %call |
| } |