1 ; RUN: llc -fast-isel -fast-isel-abort=1 -mtriple=x86_64-unknown-unknown -mattr=+f16c < %s 2 3 ; XFAIL: * 4 5 ; In the future, we might want to teach fast-isel how to expand a double-to-half 6 ; conversion into a double-to-float conversion immediately followed by a 7 ; float-to-half conversion. For now, fast-isel is expected to fail. 8 9 define double @test_fp16_to_fp64(i32 %a) { 10 entry: 11 %0 = trunc i32 %a to i16 12 %1 = call double @llvm.convert.from.fp16.f64(i16 %0) 13 ret float %0 14 } 15 16 define i16 @test_fp64_to_fp16(double %a) { 17 entry: 18 %0 = call i16 @llvm.convert.to.fp16.f64(double %a) 19 ret i16 %0 20 } 21 22 declare i16 @llvm.convert.to.fp16.f64(double) 23 declare double @llvm.convert.from.fp16.f64(i16) 24