1 ; RUN: llc < %s -mtriple=aarch64-windows -mattr=+neon | FileCheck %s
3 ; CHECK-LABEL: testmsxs:
5 ; CHECK-NEXT: sxtw x0, w8
7 define i64 @testmsxs(float %x) {
9 %0 = tail call i32 @llvm.lround.i32.f32(float %x)
10 %conv = sext i32 %0 to i64
14 ; CHECK-LABEL: testmsws:
15 ; CHECK: fcvtas w0, s0
17 define i32 @testmsws(float %x) {
19 %0 = tail call i32 @llvm.lround.i32.f32(float %x)
23 ; CHECK-LABEL: testmsxd:
24 ; CHECK: fcvtas w8, d0
25 ; CHECK-NEXT: sxtw x0, w8
27 define i64 @testmsxd(double %x) {
29 %0 = tail call i32 @llvm.lround.i32.f64(double %x)
30 %conv = sext i32 %0 to i64
34 ; CHECK-LABEL: testmswd:
35 ; CHECK: fcvtas w0, d0
37 define i32 @testmswd(double %x) {
39 %0 = tail call i32 @llvm.lround.i32.f64(double %x)
43 declare i32 @llvm.lround.i32.f32(float) nounwind readnone
44 declare i32 @llvm.lround.i32.f64(double) nounwind readnone