1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 2 2; Test vector intrinsics added with z16. 3; 4; RUN: llc < %s -mtriple=s390x-linux-gnu -mcpu=z16 | FileCheck %s 5 6declare <4 x float> @llvm.s390.vclfnhs(<8 x i16>, i32) 7declare <4 x float> @llvm.s390.vclfnls(<8 x i16>, i32) 8declare <8 x i16> @llvm.s390.vcrnfs(<4 x float>, <4 x float>, i32) 9declare <8 x i16> @llvm.s390.vcfn(<8 x i16>, i32) 10declare <8 x i16> @llvm.s390.vcnf(<8 x i16>, i32) 11 12; VCLFNH. 13define <4 x float> @test_vclfnhs(<8 x i16> %a) { 14; CHECK-LABEL: test_vclfnhs: 15; CHECK: # %bb.0: 16; CHECK-NEXT: vclfnh %v24, %v24, 2, 0 17; CHECK-NEXT: br %r14 18 %res = call <4 x float> @llvm.s390.vclfnhs(<8 x i16> %a, i32 0) 19 ret <4 x float> %res 20} 21 22; VCLFNL. 23define <4 x float> @test_vclfnls(<8 x i16> %a) { 24; CHECK-LABEL: test_vclfnls: 25; CHECK: # %bb.0: 26; CHECK-NEXT: vclfnl %v24, %v24, 2, 0 27; CHECK-NEXT: br %r14 28 %res = call <4 x float> @llvm.s390.vclfnls(<8 x i16> %a, i32 0) 29 ret <4 x float> %res 30} 31 32; VCRNF. 33define <8 x i16> @test_vcrnfs(<4 x float> %a, <4 x float> %b) { 34; CHECK-LABEL: test_vcrnfs: 35; CHECK: # %bb.0: 36; CHECK-NEXT: vcrnf %v24, %v24, %v26, 0, 2 37; CHECK-NEXT: br %r14 38 %res = call <8 x i16> @llvm.s390.vcrnfs(<4 x float> %a, <4 x float> %b, i32 0) 39 ret <8 x i16> %res 40} 41 42; VCFN. 43define <8 x i16> @test_vcfn(<8 x i16> %a) { 44; CHECK-LABEL: test_vcfn: 45; CHECK: # %bb.0: 46; CHECK-NEXT: vcfn %v24, %v24, 1, 0 47; CHECK-NEXT: br %r14 48 %res = call <8 x i16> @llvm.s390.vcfn(<8 x i16> %a, i32 0) 49 ret <8 x i16> %res 50} 51 52; VCNF. 53define <8 x i16> @test_vcnf(<8 x i16> %a) { 54; CHECK-LABEL: test_vcnf: 55; CHECK: # %bb.0: 56; CHECK-NEXT: vcnf %v24, %v24, 0, 1 57; CHECK-NEXT: br %r14 58 %res = call <8 x i16> @llvm.s390.vcnf(<8 x i16> %a, i32 0) 59 ret <8 x i16> %res 60} 61