1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2
2 ; Test vector intrinsics added with z16.
4 ; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z16 | FileCheck %s
6 declare <4 x float> @llvm.s390.vclfnhs(<8 x i16>, i32)
7 declare <4 x float> @llvm.s390.vclfnls(<8 x i16>, i32)
8 declare <8 x i16> @llvm.s390.vcrnfs(<4 x float>, <4 x float>, i32)
9 declare <8 x i16> @llvm.s390.vcfn(<8 x i16>, i32)
10 declare <8 x i16> @llvm.s390.vcnf(<8 x i16>, i32)
13 define <4 x float> @test_vclfnhs(<8 x i16> %a) {
14 ; CHECK-LABEL: test_vclfnhs:
16 ; CHECK-NEXT: vclfnh %v24, %v24, 2, 0
18 %res = call <4 x float> @llvm.s390.vclfnhs(<8 x i16> %a, i32 0)
23 define <4 x float> @test_vclfnls(<8 x i16> %a) {
24 ; CHECK-LABEL: test_vclfnls:
26 ; CHECK-NEXT: vclfnl %v24, %v24, 2, 0
28 %res = call <4 x float> @llvm.s390.vclfnls(<8 x i16> %a, i32 0)
33 define <8 x i16> @test_vcrnfs(<4 x float> %a, <4 x float> %b) {
34 ; CHECK-LABEL: test_vcrnfs:
36 ; CHECK-NEXT: vcrnf %v24, %v24, %v26, 0, 2
38 %res = call <8 x i16> @llvm.s390.vcrnfs(<4 x float> %a, <4 x float> %b, i32 0)
43 define <8 x i16> @test_vcfn(<8 x i16> %a) {
44 ; CHECK-LABEL: test_vcfn:
46 ; CHECK-NEXT: vcfn %v24, %v24, 1, 0
48 %res = call <8 x i16> @llvm.s390.vcfn(<8 x i16> %a, i32 0)
53 define <8 x i16> @test_vcnf(<8 x i16> %a) {
54 ; CHECK-LABEL: test_vcnf:
56 ; CHECK-NEXT: vcnf %v24, %v24, 0, 1
58 %res = call <8 x i16> @llvm.s390.vcnf(<8 x i16> %a, i32 0)