brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.5 KiB · d9997f9 Raw
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