73 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 62; RUN: llc < %s -mtriple=aarch64 -mattr=+neon | FileCheck %s3; RUN: llc < %s -mtriple=aarch64 -mattr=+neon -global-isel | FileCheck %s4 5define i32 @testmsws(float %x) {6; CHECK-LABEL: testmsws:7; CHECK: // %bb.0: // %entry8; CHECK-NEXT: fcvtas x0, s09; CHECK-NEXT: // kill: def $w0 killed $w0 killed $x010; CHECK-NEXT: ret11entry:12 %0 = tail call i64 @llvm.lround.i64.f32(float %x)13 %conv = trunc i64 %0 to i3214 ret i32 %conv15}16 17define i64 @testmsxs(float %x) {18; CHECK-LABEL: testmsxs:19; CHECK: // %bb.0: // %entry20; CHECK-NEXT: fcvtas x0, s021; CHECK-NEXT: ret22entry:23 %0 = tail call i64 @llvm.lround.i64.f32(float %x)24 ret i64 %025}26 27define i32 @testmswd(double %x) {28; CHECK-LABEL: testmswd:29; CHECK: // %bb.0: // %entry30; CHECK-NEXT: fcvtas x0, d031; CHECK-NEXT: // kill: def $w0 killed $w0 killed $x032; CHECK-NEXT: ret33entry:34 %0 = tail call i64 @llvm.lround.i64.f64(double %x)35 %conv = trunc i64 %0 to i3236 ret i32 %conv37}38 39define i64 @testmsxd(double %x) {40; CHECK-LABEL: testmsxd:41; CHECK: // %bb.0: // %entry42; CHECK-NEXT: fcvtas x0, d043; CHECK-NEXT: ret44entry:45 %0 = tail call i64 @llvm.lround.i64.f64(double %x)46 ret i64 %047}48 49define i32 @testmswl(fp128 %x) {50; CHECK-LABEL: testmswl:51; CHECK: // %bb.0: // %entry52; CHECK-NEXT: str x30, [sp, #-16]! // 8-byte Folded Spill53; CHECK-NEXT: .cfi_def_cfa_offset 1654; CHECK-NEXT: .cfi_offset w30, -1655; CHECK-NEXT: bl lroundl56; CHECK-NEXT: // kill: def $w0 killed $w0 killed $x057; CHECK-NEXT: ldr x30, [sp], #16 // 8-byte Folded Reload58; CHECK-NEXT: ret59entry:60 %0 = tail call i64 @llvm.lround.i64.f128(fp128 %x)61 %conv = trunc i64 %0 to i3262 ret i32 %conv63}64 65define i64 @testmsll(fp128 %x) {66; CHECK-LABEL: testmsll:67; CHECK: // %bb.0: // %entry68; CHECK-NEXT: b lroundl69entry:70 %0 = tail call i64 @llvm.lround.i64.f128(fp128 %x)71 ret i64 %072}73