diff options
Diffstat (limited to 'llvm/test/CodeGen/AArch64/arm64-vfloatintrinsics.ll')
| -rw-r--r-- | llvm/test/CodeGen/AArch64/arm64-vfloatintrinsics.ll | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/AArch64/arm64-vfloatintrinsics.ll b/llvm/test/CodeGen/AArch64/arm64-vfloatintrinsics.ll index fef09ff4979..a9ef0820661 100644 --- a/llvm/test/CodeGen/AArch64/arm64-vfloatintrinsics.ll +++ b/llvm/test/CodeGen/AArch64/arm64-vfloatintrinsics.ll @@ -200,6 +200,15 @@ define %v4f16 @test_v4f16.nearbyint(%v4f16 %a) { %1 = call %v4f16 @llvm.nearbyint.v4f16(%v4f16 %a) ret %v4f16 %1 } +define %v4f16 @test_v4f16.round(%v4f16 %a) { + ; CHECK-LABEL: test_v4f16.round: + ; CHECK-NOFP16-COUNT-4: frinta s{{[0-9]+}}, s{{[0-9]+}} + ; CHECK-FP16-NOT: fcvt + ; CHECK-FP16: frinta.4h + ; CHECK-FP16-NEXT: ret + %1 = call %v4f16 @llvm.round.v4f16(%v4f16 %a) + ret %v4f16 %1 +} declare %v4f16 @llvm.sqrt.v4f16(%v4f16) #0 declare %v4f16 @llvm.powi.v4f16(%v4f16, i32) #0 @@ -218,6 +227,7 @@ declare %v4f16 @llvm.ceil.v4f16(%v4f16) #0 declare %v4f16 @llvm.trunc.v4f16(%v4f16) #0 declare %v4f16 @llvm.rint.v4f16(%v4f16) #0 declare %v4f16 @llvm.nearbyint.v4f16(%v4f16) #0 +declare %v4f16 @llvm.round.v4f16(%v4f16) #0 ;;; @@ -409,6 +419,15 @@ define %v8f16 @test_v8f16.nearbyint(%v8f16 %a) { %1 = call %v8f16 @llvm.nearbyint.v8f16(%v8f16 %a) ret %v8f16 %1 } +define %v8f16 @test_v8f16.round(%v8f16 %a) { + ; CHECK-LABEL: test_v8f16.round: + ; CHECK-NOFP16-COUNT-8: frinta s{{[0-9]+}}, s{{[0-9]+}} + ; CHECK-FP16-NOT: fcvt + ; CHECK-FP16: frinta.8h + ; CHECK-FP16-NEXT: ret + %1 = call %v8f16 @llvm.round.v8f16(%v8f16 %a) + ret %v8f16 %1 +} declare %v8f16 @llvm.sqrt.v8f16(%v8f16) #0 declare %v8f16 @llvm.powi.v8f16(%v8f16, i32) #0 @@ -427,6 +446,7 @@ declare %v8f16 @llvm.ceil.v8f16(%v8f16) #0 declare %v8f16 @llvm.trunc.v8f16(%v8f16) #0 declare %v8f16 @llvm.rint.v8f16(%v8f16) #0 declare %v8f16 @llvm.nearbyint.v8f16(%v8f16) #0 +declare %v8f16 @llvm.round.v8f16(%v8f16) #0 ;;; Float vectors |

