69 lines · plain
1; RUN: llc -O0 -fast-isel -verify-machineinstrs -mtriple=aarch64-apple-ios < %s | FileCheck %s2 3; Fast-isel can't do vector conversions yet, but it was emitting some highly4; suspect UCVTFUWDri MachineInstrs.5define <4 x float> @test_uitofp(<4 x i32> %in) {6; CHECK-LABEL: test_uitofp:7; CHECK: ucvtf.4s v0, v08 9 %res = uitofp <4 x i32> %in to <4 x float>10 ret <4 x float> %res11}12 13define <2 x double> @test_sitofp(<2 x i32> %in) {14; CHECK-LABEL: test_sitofp:15; CHECK: sshll.2d [[EXT:v[0-9]+]], v0, #016; CHECK: scvtf.2d v0, [[EXT]]17 18 %res = sitofp <2 x i32> %in to <2 x double>19 ret <2 x double> %res20}21 22define <2 x i32> @test_fptoui(<2 x float> %in) {23; CHECK-LABEL: test_fptoui:24; CHECK: fcvtzu.2s v0, v025 26 %res = fptoui <2 x float> %in to <2 x i32>27 ret <2 x i32> %res28}29 30define <2 x i64> @test_fptosi(<2 x double> %in) {31; CHECK-LABEL: test_fptosi:32; CHECK: fcvtzs.2d v0, v033 34 %res = fptosi <2 x double> %in to <2 x i64>35 ret <2 x i64> %res36}37 38define fp128 @uitofp_i32_fp128(i32 %a) {39entry:40; CHECK-LABEL: uitofp_i32_fp12841; CHECK: bl ___floatunsitf42 %conv = uitofp i32 %a to fp12843 ret fp128 %conv44}45 46define fp128 @uitofp_i64_fp128(i64 %a) {47entry:48; CHECK-LABEL: uitofp_i64_fp12849; CHECK: bl ___floatunditf50 %conv = uitofp i64 %a to fp12851 ret fp128 %conv52}53 54define i32 @uitofp_fp128_i32(fp128 %a) {55entry:56; CHECK-LABEL: uitofp_fp128_i3257; CHECK: ___fixunstfsi58 %conv = fptoui fp128 %a to i3259 ret i32 %conv60}61 62define i64 @uitofp_fp128_i64(fp128 %a) {63entry:64; CHECK-LABEL: uitofp_fp128_i6465; CHECK: ___fixunstfdi66 %conv = fptoui fp128 %a to i6467 ret i64 %conv68}69