[InstCombine] Signed saturation patterns
[llvm-complete.git] / test / CodeGen / AArch64 / lround-conv-fp16.ll
blobcf81047f65ec923c9698840c4825ddc9faeae4da
1 ; RUN: llc < %s -mtriple=aarch64 -mattr=+fullfp16 | FileCheck %s
3 ; CHECK-LABEL: testmhhs:
4 ; CHECK:       fcvtas  x0, h0
5 ; CHECK:       ret
6 define i16 @testmhhs(half %x) {
7 entry:
8   %0 = tail call i64 @llvm.lround.i64.f16(half %x)
9   %conv = trunc i64 %0 to i16
10   ret i16 %conv
13 ; CHECK-LABEL: testmhws:
14 ; CHECK:       fcvtas  x0, h0
15 ; CHECK:       ret
16 define i32 @testmhws(half %x) {
17 entry:
18   %0 = tail call i64 @llvm.lround.i64.f16(half %x)
19   %conv = trunc i64 %0 to i32
20   ret i32 %conv
23 ; CHECK-LABEL: testmhxs:
24 ; CHECK:       fcvtas  x0, h0
25 ; CHECK-NEXT:  ret
26 define i64 @testmhxs(half %x) {
27 entry:
28   %0 = tail call i64 @llvm.lround.i64.f16(half %x)
29   ret i64 %0
32 declare i64 @llvm.lround.i64.f16(half) nounwind readnone