brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.1 KiB · c46801f Raw
132 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -verify-machineinstrs -mtriple=aarch64 < %s | FileCheck %s3 4define void @f32_to_u8(float %f, ptr %dst) {5; CHECK-LABEL: f32_to_u8:6; CHECK:       // %bb.0: // %entry7; CHECK-NEXT:    fcvtzu s0, s08; CHECK-NEXT:    str b0, [x0]9; CHECK-NEXT:    ret10entry:11  %conv = fptoui float %f to i3212  %trunc = trunc i32 %conv to i813  store i8 %trunc, ptr %dst14  ret void15}16 17define void @f32_to_s8(float %f, ptr %dst) {18; CHECK-LABEL: f32_to_s8:19; CHECK:       // %bb.0: // %entry20; CHECK-NEXT:    fcvtzs s0, s021; CHECK-NEXT:    str b0, [x0]22; CHECK-NEXT:    ret23entry:24  %conv = fptosi float %f to i3225  %trunc = trunc i32 %conv to i826  store i8 %trunc, ptr %dst27  ret void28}29 30define void @f32_to_u16(float %f, ptr %dst) {31; CHECK-LABEL: f32_to_u16:32; CHECK:       // %bb.0: // %entry33; CHECK-NEXT:    fcvtzu s0, s034; CHECK-NEXT:    str h0, [x0]35; CHECK-NEXT:    ret36entry:37  %conv = fptoui float %f to i3238  %trunc = trunc i32 %conv to i1639  store i16 %trunc, ptr %dst40  ret void41}42 43define void @f32_to_s16(float %f, ptr %dst) {44; CHECK-LABEL: f32_to_s16:45; CHECK:       // %bb.0: // %entry46; CHECK-NEXT:    fcvtzs s0, s047; CHECK-NEXT:    str h0, [x0]48; CHECK-NEXT:    ret49entry:50  %conv = fptosi float %f to i3251  %trunc = trunc i32 %conv to i1652  store i16 %trunc, ptr %dst53  ret void54}55 56define void @f32_to_u32(float %f, ptr %dst) {57; CHECK-LABEL: f32_to_u32:58; CHECK:       // %bb.0: // %entry59; CHECK-NEXT:    fcvtzu s0, s060; CHECK-NEXT:    str s0, [x0]61; CHECK-NEXT:    ret62entry:63  %conv = fptoui float %f to i3264  store i32 %conv, ptr %dst65  ret void66}67 68define void @f32_to_s32(float %f, ptr %dst) {69; CHECK-LABEL: f32_to_s32:70; CHECK:       // %bb.0: // %entry71; CHECK-NEXT:    fcvtzs s0, s072; CHECK-NEXT:    str s0, [x0]73; CHECK-NEXT:    ret74entry:75  %conv = fptosi float %f to i3276  store i32 %conv, ptr %dst77  ret void78}79 80define void @f32_to_s64(float %f, ptr %dst) {81; CHECK-LABEL: f32_to_s64:82; CHECK:       // %bb.0: // %entry83; CHECK-NEXT:    fcvtzs w8, s084; CHECK-NEXT:    sxtw x8, w885; CHECK-NEXT:    str x8, [x0]86; CHECK-NEXT:    ret87entry:88  %conv = fptosi float %f to i3289  %ext = sext i32 %conv to i6490  store i64 %ext, ptr %dst91  ret void92}93 94define void @f64_to_u64(double %d, ptr %dst) {95; CHECK-LABEL: f64_to_u64:96; CHECK:       // %bb.0: // %entry97; CHECK-NEXT:    fcvtzu d0, d098; CHECK-NEXT:    str d0, [x0]99; CHECK-NEXT:    ret100entry:101  %conv = fptoui double %d to i64102  store i64 %conv, ptr %dst103  ret void104}105 106define void @f64_to_s64(double %d, ptr %dst) {107; CHECK-LABEL: f64_to_s64:108; CHECK:       // %bb.0: // %entry109; CHECK-NEXT:    fcvtzs d0, d0110; CHECK-NEXT:    str d0, [x0]111; CHECK-NEXT:    ret112entry:113  %conv = fptosi double %d to i64114  store i64 %conv, ptr %dst115  ret void116}117 118define i32 @f32_to_i32_multiple_uses(float %f, ptr %dst) {119; CHECK-LABEL: f32_to_i32_multiple_uses:120; CHECK:       // %bb.0: // %entry121; CHECK-NEXT:    fcvtzs w8, s0122; CHECK-NEXT:    mov x9, x0123; CHECK-NEXT:    mov w0, w8124; CHECK-NEXT:    strb w8, [x9]125; CHECK-NEXT:    ret126entry:127  %conv = fptosi float %f to i32128  %trunc = trunc i32 %conv to i8129  store i8 %trunc, ptr %dst130  ret i32 %conv131}132