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