11; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
22; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=aarch64 -mattr=+neon |\
3- ; RUN: FileCheck %s --check-prefixes=CHECK-i32
3+ ; RUN: FileCheck %s --check-prefixes=CHECK-i32,CHECK-i32-SD
44; RUN: sed 's/iXLen/i64/g' %s | llc -mtriple=aarch64 -mattr=+neon |\
55; RUN: FileCheck %s --check-prefixes=CHECK-i64,CHECK-i64-SD
66; RUN: sed 's/iXLen/i32/g' %s | llc -mtriple=aarch64 -mattr=+neon \
1010; RUN: -global-isel -global-isel-abort=2 2>&1 |\
1111; RUN: FileCheck %s --check-prefixes=CHECK-i64,CHECK-i64-GI
1212
13- ; CHECK-i32-GI: warning: Instruction selection used fallback path for lrint_v1f16
14- ; CHECK-i32-GI-NEXT: warning: Instruction selection used fallback path for lrint_v2f16
13+ ; CHECK-i32-GI: warning: Instruction selection used fallback path for lrint_v2f16
1514; CHECK-i32-GI-NEXT: warning: Instruction selection used fallback path for lrint_v4f16
1615; CHECK-i32-GI-NEXT: warning: Instruction selection used fallback path for lrint_v8f16
1716; CHECK-i32-GI-NEXT: warning: Instruction selection used fallback path for lrint_v16f16
1817; CHECK-i32-GI-NEXT: warning: Instruction selection used fallback path for lrint_v32f16
19- ; CHECK-i32-GI-NEXT: warning: Instruction selection used fallback path for lrint_v1f32
2018; CHECK-i32-GI-NEXT: warning: Instruction selection used fallback path for lrint_v2f32
2119; CHECK-i32-GI-NEXT: warning: Instruction selection used fallback path for lrint_v4f32
2220; CHECK-i32-GI-NEXT: warning: Instruction selection used fallback path for lrint_v8f32
2321; CHECK-i32-GI-NEXT: warning: Instruction selection used fallback path for lrint_v16f32
2422; CHECK-i32-GI-NEXT: warning: Instruction selection used fallback path for lrint_v32f32
25- ; CHECK-i32-GI-NEXT: warning: Instruction selection used fallback path for lrint_v1f64
2623; CHECK-i32-GI-NEXT: warning: Instruction selection used fallback path for lrint_v2f64
2724; CHECK-i32-GI-NEXT: warning: Instruction selection used fallback path for lrint_v4f64
2825; CHECK-i32-GI-NEXT: warning: Instruction selection used fallback path for lrint_v8f64
5350; CHECK-i64-GI-NEXT: warning: Instruction selection used fallback path for lrint_v4fp128
5451; CHECK-i64-GI-NEXT: warning: Instruction selection used fallback path for lrint_v8fp128
5552; CHECK-i64-GI-NEXT: warning: Instruction selection used fallback path for lrint_v16fp128
53+ ;
54+ ;
55+ ;
5656
5757
5858define <1 x iXLen> @lrint_v1f16 (<1 x half > %x ) nounwind {
@@ -759,11 +759,11 @@ define <32 x iXLen> @lrint_v32f16(<32 x half> %x) nounwind {
759759declare <32 x iXLen> @llvm.lrint.v32iXLen.v32f16 (<32 x half >)
760760
761761define <1 x iXLen> @lrint_v1f32 (<1 x float > %x ) nounwind {
762- ; CHECK-i32-LABEL: lrint_v1f32:
763- ; CHECK-i32: // %bb.0:
764- ; CHECK-i32-NEXT: frintx v0.2s, v0.2s
765- ; CHECK-i32-NEXT: fcvtzs v0.2s, v0.2s
766- ; CHECK-i32-NEXT: ret
762+ ; CHECK-i32-SD- LABEL: lrint_v1f32:
763+ ; CHECK-i32-SD : // %bb.0:
764+ ; CHECK-i32-SD- NEXT: frintx v0.2s, v0.2s
765+ ; CHECK-i32-SD- NEXT: fcvtzs v0.2s, v0.2s
766+ ; CHECK-i32-SD- NEXT: ret
767767;
768768; CHECK-i64-SD-LABEL: lrint_v1f32:
769769; CHECK-i64-SD: // %bb.0:
@@ -773,6 +773,13 @@ define <1 x iXLen> @lrint_v1f32(<1 x float> %x) nounwind {
773773; CHECK-i64-SD-NEXT: fmov d0, x8
774774; CHECK-i64-SD-NEXT: ret
775775;
776+ ; CHECK-i32-GI-LABEL: lrint_v1f32:
777+ ; CHECK-i32-GI: // %bb.0:
778+ ; CHECK-i32-GI-NEXT: frintx s0, s0
779+ ; CHECK-i32-GI-NEXT: fcvtzs w8, s0
780+ ; CHECK-i32-GI-NEXT: fmov s0, w8
781+ ; CHECK-i32-GI-NEXT: ret
782+ ;
776783; CHECK-i64-GI-LABEL: lrint_v1f32:
777784; CHECK-i64-GI: // %bb.0:
778785; CHECK-i64-GI-NEXT: frintx s0, s0
@@ -1791,5 +1798,3 @@ define <16 x iXLen> @lrint_v16fp128(<16 x fp128> %x) nounwind {
17911798}
17921799declare <16 x iXLen> @llvm.lrint.v16iXLen.v16fp128 (<16 x fp128 >)
17931800
1794- ;; NOTE: These prefixes are unused and the list is autogenerated. Do not add tests below this line:
1795- ; CHECK-i32-GI: {{.*}}
0 commit comments