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