; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mtriple=arm-eabi -mattr=+v8.2a,+neon,+fullfp16 -float-abi=hard < %s | FileCheck %s

%struct.float16x4x2_t = type { [2 x <4 x half>] }
%struct.float16x8x2_t = type { [2 x <8 x half>] }

define dso_local <4 x half> @test_vabs_f16(<4 x half> %a) {
; CHECKLABEL: test_vabs_f16:
; CHECK-LABEL: test_vabs_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vabs.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vabs1.i = tail call <4 x half> @llvm.fabs.v4f16(<4 x half> %a)
  ret <4 x half> %vabs1.i
}

define dso_local <8 x half> @test_vabsq_f16(<8 x half> %a) {
; CHECKLABEL: test_vabsq_f16:
; CHECK-LABEL: test_vabsq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vabs.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vabs1.i = tail call <8 x half> @llvm.fabs.v8f16(<8 x half> %a)
  ret <8 x half> %vabs1.i
}

define dso_local <4 x i16> @test_vceqz_f16(<4 x half> %a) {
; CHECKLABEL: test_vceqz_f16:
; CHECK-LABEL: test_vceqz_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vceq.f16 d0, d0, #0
; CHECK-NEXT:    bx lr
entry:
  %0 = fcmp oeq <4 x half> %a, zeroinitializer
  %vceqz.i = sext <4 x i1> %0 to <4 x i16>
  ret <4 x i16> %vceqz.i
}

define dso_local <8 x i16> @test_vceqzq_f16(<8 x half> %a) {
; CHECKLABEL: test_vceqzq_f16:
; CHECK-LABEL: test_vceqzq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vceq.f16 q0, q0, #0
; CHECK-NEXT:    bx lr
entry:
  %0 = fcmp oeq <8 x half> %a, zeroinitializer
  %vceqz.i = sext <8 x i1> %0 to <8 x i16>
  ret <8 x i16> %vceqz.i
}

define dso_local <4 x i16> @test_vcgez_f16(<4 x half> %a) {
; CHECKLABEL: test_vcgez_f16:
; CHECK-LABEL: test_vcgez_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcge.f16 d0, d0, #0
; CHECK-NEXT:    bx lr
entry:
  %0 = fcmp oge <4 x half> %a, zeroinitializer
  %vcgez.i = sext <4 x i1> %0 to <4 x i16>
  ret <4 x i16> %vcgez.i
}

define dso_local <8 x i16> @test_vcgezq_f16(<8 x half> %a) {
; CHECKLABEL: test_vcgezq_f16:
; CHECK-LABEL: test_vcgezq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcge.f16 q0, q0, #0
; CHECK-NEXT:    bx lr
entry:
  %0 = fcmp oge <8 x half> %a, zeroinitializer
  %vcgez.i = sext <8 x i1> %0 to <8 x i16>
  ret <8 x i16> %vcgez.i
}

define dso_local <4 x i16> @test_vcgtz_f16(<4 x half> %a) {
; CHECKLABEL: test_vcgtz_f16:
; CHECK-LABEL: test_vcgtz_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcgt.f16 d0, d0, #0
; CHECK-NEXT:    bx lr
entry:
  %0 = fcmp ogt <4 x half> %a, zeroinitializer
  %vcgtz.i = sext <4 x i1> %0 to <4 x i16>
  ret <4 x i16> %vcgtz.i
}

define dso_local <8 x i16> @test_vcgtzq_f16(<8 x half> %a) {
; CHECKLABEL: test_vcgtzq_f16:
; CHECK-LABEL: test_vcgtzq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcgt.f16 q0, q0, #0
; CHECK-NEXT:    bx lr
entry:
  %0 = fcmp ogt <8 x half> %a, zeroinitializer
  %vcgtz.i = sext <8 x i1> %0 to <8 x i16>
  ret <8 x i16> %vcgtz.i
}

define dso_local <4 x i16> @test_vclez_f16(<4 x half> %a) {
; CHECKLABEL: test_vclez_f16:
; CHECK-LABEL: test_vclez_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcle.f16 d0, d0, #0
; CHECK-NEXT:    bx lr
entry:
  %0 = fcmp ole <4 x half> %a, zeroinitializer
  %vclez.i = sext <4 x i1> %0 to <4 x i16>
  ret <4 x i16> %vclez.i
}

define dso_local <8 x i16> @test_vclezq_f16(<8 x half> %a) {
; CHECKLABEL: test_vclezq_f16:
; CHECK-LABEL: test_vclezq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcle.f16 q0, q0, #0
; CHECK-NEXT:    bx lr
entry:
  %0 = fcmp ole <8 x half> %a, zeroinitializer
  %vclez.i = sext <8 x i1> %0 to <8 x i16>
  ret <8 x i16> %vclez.i
}

define dso_local <4 x i16> @test_vcltz_f16(<4 x half> %a) {
; CHECKLABEL: test_vcltz_f16:
; CHECK-LABEL: test_vcltz_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vclt.f16 d0, d0, #0
; CHECK-NEXT:    bx lr
entry:
  %0 = fcmp olt <4 x half> %a, zeroinitializer
  %vcltz.i = sext <4 x i1> %0 to <4 x i16>
  ret <4 x i16> %vcltz.i
}

define dso_local <8 x i16> @test_vcltzq_f16(<8 x half> %a) {
; CHECKLABEL: test_vcltzq_f16:
; CHECK-LABEL: test_vcltzq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vclt.f16 q0, q0, #0
; CHECK-NEXT:    bx lr
entry:
  %0 = fcmp olt <8 x half> %a, zeroinitializer
  %vcltz.i = sext <8 x i1> %0 to <8 x i16>
  ret <8 x i16> %vcltz.i
}

define dso_local <4 x half> @test_vcvt_f16_s16(<4 x i16> %a) {
; CHECK-LABEL: test_vcvt_f16_s16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvt.f16.s16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vcvt.i = sitofp <4 x i16> %a to <4 x half>
  ret <4 x half> %vcvt.i
}

define dso_local <8 x half> @test_vcvtq_f16_s16(<8 x i16> %a) {
; CHECK-LABEL: test_vcvtq_f16_s16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvt.f16.s16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vcvt.i = sitofp <8 x i16> %a to <8 x half>
  ret <8 x half> %vcvt.i
}

define dso_local <4 x half> @test_vcvt_f16_u16(<4 x i16> %a) {
; CHECK-LABEL: test_vcvt_f16_u16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvt.f16.u16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vcvt.i = uitofp <4 x i16> %a to <4 x half>
  ret <4 x half> %vcvt.i
}

define dso_local <8 x half> @test_vcvtq_f16_u16(<8 x i16> %a) {
; CHECK-LABEL: test_vcvtq_f16_u16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvt.f16.u16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vcvt.i = uitofp <8 x i16> %a to <8 x half>
  ret <8 x half> %vcvt.i
}

define dso_local <4 x i16> @test_vcvt_s16_f16(<4 x half> %a) {
; CHECK-LABEL: test_vcvt_s16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvt.s16.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vcvt.i = fptosi <4 x half> %a to <4 x i16>
  ret <4 x i16> %vcvt.i
}

define dso_local <8 x i16> @test_vcvtq_s16_f16(<8 x half> %a) {
; CHECK-LABEL: test_vcvtq_s16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvt.s16.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vcvt.i = fptosi <8 x half> %a to <8 x i16>
  ret <8 x i16> %vcvt.i
}

define dso_local <4 x i16> @test_vcvt_u16_f16(<4 x half> %a) {
; CHECK-LABEL: test_vcvt_u16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvt.u16.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vcvt.i = fptoui <4 x half> %a to <4 x i16>
  ret <4 x i16> %vcvt.i
}

define dso_local <8 x i16> @test_vcvtq_u16_f16(<8 x half> %a) {
; CHECK-LABEL: test_vcvtq_u16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvt.u16.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vcvt.i = fptoui <8 x half> %a to <8 x i16>
  ret <8 x i16> %vcvt.i
}

define dso_local <4 x i16> @test_vcvta_s16_f16(<4 x half> %a) {
; CHECK-LABEL: test_vcvta_s16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvta.s16.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vcvta_s16_v1.i = tail call <4 x i16> @llvm.arm.neon.vcvtas.v4i16.v4f16(<4 x half> %a)
  ret <4 x i16> %vcvta_s16_v1.i
}

define dso_local <4 x i16> @test_vcvta_u16_f16(<4 x half> %a) {
; CHECK-LABEL: test_vcvta_u16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvta.u16.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vcvta_u16_v1.i = tail call <4 x i16> @llvm.arm.neon.vcvtau.v4i16.v4f16(<4 x half> %a)
  ret <4 x i16> %vcvta_u16_v1.i
}

define dso_local <8 x i16> @test_vcvtaq_s16_f16(<8 x half> %a) {
; CHECK-LABEL: test_vcvtaq_s16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvta.s16.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vcvtaq_s16_v1.i = tail call <8 x i16> @llvm.arm.neon.vcvtas.v8i16.v8f16(<8 x half> %a)
  ret <8 x i16> %vcvtaq_s16_v1.i
}

define dso_local <4 x i16> @test_vcvtm_s16_f16(<4 x half> %a) {
; CHECK-LABEL: test_vcvtm_s16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvtm.s16.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vcvtm_s16_v1.i = tail call <4 x i16> @llvm.arm.neon.vcvtms.v4i16.v4f16(<4 x half> %a)
  ret <4 x i16> %vcvtm_s16_v1.i
}

define dso_local <8 x i16> @test_vcvtmq_s16_f16(<8 x half> %a) {
; CHECK-LABEL: test_vcvtmq_s16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvtm.s16.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vcvtmq_s16_v1.i = tail call <8 x i16> @llvm.arm.neon.vcvtms.v8i16.v8f16(<8 x half> %a)
  ret <8 x i16> %vcvtmq_s16_v1.i
}

define dso_local <4 x i16> @test_vcvtm_u16_f16(<4 x half> %a) {
; CHECK-LABEL: test_vcvtm_u16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvtm.u16.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vcvtm_u16_v1.i = tail call <4 x i16> @llvm.arm.neon.vcvtmu.v4i16.v4f16(<4 x half> %a)
  ret <4 x i16> %vcvtm_u16_v1.i
}

define dso_local <8 x i16> @test_vcvtmq_u16_f16(<8 x half> %a) {
; CHECK-LABEL: test_vcvtmq_u16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvtm.u16.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vcvtmq_u16_v1.i = tail call <8 x i16> @llvm.arm.neon.vcvtmu.v8i16.v8f16(<8 x half> %a)
  ret <8 x i16> %vcvtmq_u16_v1.i
}

define dso_local <4 x i16> @test_vcvtn_s16_f16(<4 x half> %a) {
; CHECK-LABEL: test_vcvtn_s16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvtn.s16.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vcvtn_s16_v1.i = tail call <4 x i16> @llvm.arm.neon.vcvtns.v4i16.v4f16(<4 x half> %a)
  ret <4 x i16> %vcvtn_s16_v1.i
}

define dso_local <8 x i16> @test_vcvtnq_s16_f16(<8 x half> %a) {
; CHECK-LABEL: test_vcvtnq_s16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvtn.s16.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vcvtnq_s16_v1.i = tail call <8 x i16> @llvm.arm.neon.vcvtns.v8i16.v8f16(<8 x half> %a)
  ret <8 x i16> %vcvtnq_s16_v1.i
}

define dso_local <4 x i16> @test_vcvtn_u16_f16(<4 x half> %a) {
; CHECK-LABEL: test_vcvtn_u16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvtn.u16.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vcvtn_u16_v1.i = tail call <4 x i16> @llvm.arm.neon.vcvtnu.v4i16.v4f16(<4 x half> %a)
  ret <4 x i16> %vcvtn_u16_v1.i
}

define dso_local <8 x i16> @test_vcvtnq_u16_f16(<8 x half> %a) {
; CHECK-LABEL: test_vcvtnq_u16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvtn.u16.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vcvtnq_u16_v1.i = tail call <8 x i16> @llvm.arm.neon.vcvtnu.v8i16.v8f16(<8 x half> %a)
  ret <8 x i16> %vcvtnq_u16_v1.i
}

define dso_local <4 x i16> @test_vcvtp_s16_f16(<4 x half> %a) {
; CHECK-LABEL: test_vcvtp_s16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvtp.s16.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vcvtp_s16_v1.i = tail call <4 x i16> @llvm.arm.neon.vcvtps.v4i16.v4f16(<4 x half> %a)
  ret <4 x i16> %vcvtp_s16_v1.i
}

define dso_local <8 x i16> @test_vcvtpq_s16_f16(<8 x half> %a) {
; CHECK-LABEL: test_vcvtpq_s16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvtp.s16.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vcvtpq_s16_v1.i = tail call <8 x i16> @llvm.arm.neon.vcvtps.v8i16.v8f16(<8 x half> %a)
  ret <8 x i16> %vcvtpq_s16_v1.i
}

define dso_local <4 x i16> @test_vcvtp_u16_f16(<4 x half> %a) {
; CHECK-LABEL: test_vcvtp_u16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvtp.u16.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vcvtp_u16_v1.i = tail call <4 x i16> @llvm.arm.neon.vcvtpu.v4i16.v4f16(<4 x half> %a)
  ret <4 x i16> %vcvtp_u16_v1.i
}

define dso_local <8 x i16> @test_vcvtpq_u16_f16(<8 x half> %a) {
; CHECK-LABEL: test_vcvtpq_u16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvtp.u16.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vcvtpq_u16_v1.i = tail call <8 x i16> @llvm.arm.neon.vcvtpu.v8i16.v8f16(<8 x half> %a)
  ret <8 x i16> %vcvtpq_u16_v1.i
}

define dso_local <4 x half> @test_vneg_f16(<4 x half> %a) {
; CHECKLABEL: test_vneg_f16:
; CHECK-LABEL: test_vneg_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vneg.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %sub.i = fsub <4 x half> <half 0xH8000, half 0xH8000, half 0xH8000, half 0xH8000>, %a
  ret <4 x half> %sub.i
}

define dso_local <8 x half> @test_vnegq_f16(<8 x half> %a) {
; CHECKLABEL: test_vnegq_f16:
; CHECK-LABEL: test_vnegq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vneg.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %sub.i = fsub <8 x half> <half 0xH8000, half 0xH8000, half 0xH8000, half 0xH8000, half 0xH8000, half 0xH8000, half 0xH8000, half 0xH8000>, %a
  ret <8 x half> %sub.i
}

define dso_local <4 x half> @test_vrecpe_f16(<4 x half> %a) {
; CHECKLABEL: test_vrecpe_f16:
; CHECK-LABEL: test_vrecpe_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrecpe.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vrecpe_v1.i = tail call <4 x half> @llvm.arm.neon.vrecpe.v4f16(<4 x half> %a)
  ret <4 x half> %vrecpe_v1.i
}

define dso_local <8 x half> @test_vrecpeq_f16(<8 x half> %a) {
; CHECKLABEL: test_vrecpeq_f16:
; CHECK-LABEL: test_vrecpeq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrecpe.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vrecpeq_v1.i = tail call <8 x half> @llvm.arm.neon.vrecpe.v8f16(<8 x half> %a)
  ret <8 x half> %vrecpeq_v1.i
}

define dso_local <4 x half> @test_vrnd_f16(<4 x half> %a) {
; CHECKLABEL: test_vrnd_f16:
; CHECK-LABEL: test_vrnd_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrintz.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vrnd_v1.i = tail call <4 x half> @llvm.arm.neon.vrintz.v4f16(<4 x half> %a)
  ret <4 x half> %vrnd_v1.i
}

define dso_local <8 x half> @test_vrndq_f16(<8 x half> %a) {
; CHECKLABEL: test_vrndq_f16:
; CHECK-LABEL: test_vrndq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrintz.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vrndq_v1.i = tail call <8 x half> @llvm.arm.neon.vrintz.v8f16(<8 x half> %a)
  ret <8 x half> %vrndq_v1.i
}

define dso_local <4 x half> @test_vrnda_f16(<4 x half> %a) {
; CHECKLABEL: test_vrnda_f16:
; CHECK-LABEL: test_vrnda_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrinta.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vrnda_v1.i = tail call <4 x half> @llvm.arm.neon.vrinta.v4f16(<4 x half> %a)
  ret <4 x half> %vrnda_v1.i
}

define dso_local <8 x half> @test_vrndaq_f16(<8 x half> %a) {
; CHECKLABEL: test_vrndaq_f16:
; CHECK-LABEL: test_vrndaq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrinta.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vrndaq_v1.i = tail call <8 x half> @llvm.arm.neon.vrinta.v8f16(<8 x half> %a)
  ret <8 x half> %vrndaq_v1.i
}

define dso_local <4 x half> @test_vrndm_f16(<4 x half> %a) {
; CHECKLABEL: test_vrndm_f16:
; CHECK-LABEL: test_vrndm_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrintm.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vrndm_v1.i = tail call <4 x half> @llvm.arm.neon.vrintm.v4f16(<4 x half> %a)
  ret <4 x half> %vrndm_v1.i
}

define dso_local <8 x half> @test_vrndmq_f16(<8 x half> %a) {
; CHECKLABEL: test_vrndmq_f16:
; CHECK-LABEL: test_vrndmq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrintm.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vrndmq_v1.i = tail call <8 x half> @llvm.arm.neon.vrintm.v8f16(<8 x half> %a)
  ret <8 x half> %vrndmq_v1.i
}

define dso_local <4 x half> @test_vrndn_f16(<4 x half> %a) {
; CHECKLABEL: test_vrndn_f16:
; CHECK-LABEL: test_vrndn_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrintn.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vrndn_v1.i = tail call <4 x half> @llvm.arm.neon.vrintn.v4f16(<4 x half> %a)
  ret <4 x half> %vrndn_v1.i
}

define dso_local <8 x half> @test_vrndnq_f16(<8 x half> %a) {
; CHECKLABEL: test_vrndnq_f16:
; CHECK-LABEL: test_vrndnq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrintn.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vrndnq_v1.i = tail call <8 x half> @llvm.arm.neon.vrintn.v8f16(<8 x half> %a)
  ret <8 x half> %vrndnq_v1.i
}

define dso_local <4 x half> @test_vrndp_f16(<4 x half> %a) {
; CHECKLABEL: test_vrndp_f16:
; CHECK-LABEL: test_vrndp_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrintp.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vrndp_v1.i = tail call <4 x half> @llvm.arm.neon.vrintp.v4f16(<4 x half> %a)
  ret <4 x half> %vrndp_v1.i
}

define dso_local <8 x half> @test_vrndpq_f16(<8 x half> %a) {
; CHECKLABEL: test_vrndpq_f16:
; CHECK-LABEL: test_vrndpq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrintp.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vrndpq_v1.i = tail call <8 x half> @llvm.arm.neon.vrintp.v8f16(<8 x half> %a)
  ret <8 x half> %vrndpq_v1.i
}

define dso_local <4 x half> @test_vrndx_f16(<4 x half> %a) {
; CHECKLABEL: test_vrndx_f16:
; CHECK-LABEL: test_vrndx_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrintx.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vrndx_v1.i = tail call <4 x half> @llvm.arm.neon.vrintx.v4f16(<4 x half> %a)
  ret <4 x half> %vrndx_v1.i
}

define dso_local <8 x half> @test_vrndxq_f16(<8 x half> %a) {
; CHECKLABEL: test_vrndxq_f16:
; CHECK-LABEL: test_vrndxq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrintx.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vrndxq_v1.i = tail call <8 x half> @llvm.arm.neon.vrintx.v8f16(<8 x half> %a)
  ret <8 x half> %vrndxq_v1.i
}

define dso_local <4 x half> @test_vrsqrte_f16(<4 x half> %a) {
; CHECKLABEL: test_vrsqrte_f16:
; CHECK-LABEL: test_vrsqrte_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrsqrte.f16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %vrsqrte_v1.i = tail call <4 x half> @llvm.arm.neon.vrsqrte.v4f16(<4 x half> %a)
  ret <4 x half> %vrsqrte_v1.i
}

define dso_local <8 x half> @test_vrsqrteq_f16(<8 x half> %a) {
; CHECKLABEL: test_vrsqrteq_f16:
; CHECK-LABEL: test_vrsqrteq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrsqrte.f16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %vrsqrteq_v1.i = tail call <8 x half> @llvm.arm.neon.vrsqrte.v8f16(<8 x half> %a)
  ret <8 x half> %vrsqrteq_v1.i
}

define dso_local <4 x half> @test_vadd_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vadd_f16:
; CHECK-LABEL: test_vadd_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vadd.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %add.i = fadd <4 x half> %a, %b
  ret <4 x half> %add.i
}

define dso_local <8 x half> @test_vaddq_f16(<8 x half> %a, <8 x half> %b) {
; CHECKLABEL: test_vaddq_f16:
; CHECK-LABEL: test_vaddq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vadd.f16 q0, q0, q1
; CHECK-NEXT:    bx lr
entry:
  %add.i = fadd <8 x half> %a, %b
  ret <8 x half> %add.i
}

define dso_local <4 x half> @test_vabd_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vabd_f16:
; CHECK-LABEL: test_vabd_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vabd.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %vabd_v2.i = tail call <4 x half> @llvm.arm.neon.vabds.v4f16(<4 x half> %a, <4 x half> %b)
  ret <4 x half> %vabd_v2.i
}

define dso_local <8 x half> @test_vabdq_f16(<8 x half> %a, <8 x half> %b) {
; CHECKLABEL: test_vabdq_f16:
; CHECK-LABEL: test_vabdq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vabd.f16 q0, q0, q1
; CHECK-NEXT:    bx lr
entry:
  %vabdq_v2.i = tail call <8 x half> @llvm.arm.neon.vabds.v8f16(<8 x half> %a, <8 x half> %b)
  ret <8 x half> %vabdq_v2.i
}

define dso_local <4 x i16> @test_vcage_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vcage_f16:
; CHECK-LABEL: test_vcage_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vacge.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %vcage_v2.i = tail call <4 x i16> @llvm.arm.neon.vacge.v4i16.v4f16(<4 x half> %a, <4 x half> %b)
  ret <4 x i16> %vcage_v2.i
}

define dso_local <8 x i16> @test_vcageq_f16(<8 x half> %a, <8 x half> %b) {
; CHECKLABEL: test_vcageq_f16:
; CHECK-LABEL: test_vcageq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vacge.f16 q0, q0, q1
; CHECK-NEXT:    bx lr
entry:
  %vcageq_v2.i = tail call <8 x i16> @llvm.arm.neon.vacge.v8i16.v8f16(<8 x half> %a, <8 x half> %b)
  ret <8 x i16> %vcageq_v2.i
}

define dso_local <4 x i16> @test_vcagt_f16(<4 x half> %a, <4 x half> %b) {
; CHECK-LABEL: test_vcagt_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vacgt.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %vcagt_v2.i = tail call <4 x i16> @llvm.arm.neon.vacgt.v4i16.v4f16(<4 x half> %a, <4 x half> %b)
  ret <4 x i16> %vcagt_v2.i
}

define dso_local <8 x i16> @test_vcagtq_f16(<8 x half> %a, <8 x half> %b) {
; CHECK-LABEL: test_vcagtq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vacgt.f16 q0, q0, q1
; CHECK-NEXT:    bx lr
entry:
  %vcagtq_v2.i = tail call <8 x i16> @llvm.arm.neon.vacgt.v8i16.v8f16(<8 x half> %a, <8 x half> %b)
  ret <8 x i16> %vcagtq_v2.i
}

define dso_local <4 x i16> @test_vcale_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vcale_f16:
; CHECK-LABEL: test_vcale_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vacge.f16 d0, d1, d0
; CHECK-NEXT:    bx lr
entry:
  %vcale_v2.i = tail call <4 x i16> @llvm.arm.neon.vacge.v4i16.v4f16(<4 x half> %b, <4 x half> %a)
  ret <4 x i16> %vcale_v2.i
}

define dso_local <8 x i16> @test_vcaleq_f16(<8 x half> %a, <8 x half> %b) {
; CHECKLABEL: test_vcaleq_f16:
; CHECK-LABEL: test_vcaleq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vacge.f16 q0, q1, q0
; CHECK-NEXT:    bx lr
entry:
  %vcaleq_v2.i = tail call <8 x i16> @llvm.arm.neon.vacge.v8i16.v8f16(<8 x half> %b, <8 x half> %a)
  ret <8 x i16> %vcaleq_v2.i
}

define dso_local <4 x i16> @test_vceq_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vceq_f16:
; CHECK-LABEL: test_vceq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vceq.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %cmp.i = fcmp oeq <4 x half> %a, %b
  %sext.i = sext <4 x i1> %cmp.i to <4 x i16>
  ret <4 x i16> %sext.i
}

define dso_local <8 x i16> @test_vceqq_f16(<8 x half> %a, <8 x half> %b) {
; CHECKLABEL: test_vceqq_f16:
; CHECK-LABEL: test_vceqq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vceq.f16 q0, q0, q1
; CHECK-NEXT:    bx lr
entry:
  %cmp.i = fcmp oeq <8 x half> %a, %b
  %sext.i = sext <8 x i1> %cmp.i to <8 x i16>
  ret <8 x i16> %sext.i
}

define dso_local <4 x i16> @test_vcge_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vcge_f16:
; CHECK-LABEL: test_vcge_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcge.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %cmp.i = fcmp oge <4 x half> %a, %b
  %sext.i = sext <4 x i1> %cmp.i to <4 x i16>
  ret <4 x i16> %sext.i
}

define dso_local <8 x i16> @test_vcgeq_f16(<8 x half> %a, <8 x half> %b) {
; CHECKLABEL: test_vcgeq_f16:
; CHECK-LABEL: test_vcgeq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcge.f16 q0, q0, q1
; CHECK-NEXT:    bx lr
entry:
  %cmp.i = fcmp oge <8 x half> %a, %b
  %sext.i = sext <8 x i1> %cmp.i to <8 x i16>
  ret <8 x i16> %sext.i
}

define dso_local <4 x i16> @test_vcgt_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vcgt_f16:
; CHECK-LABEL: test_vcgt_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcgt.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %cmp.i = fcmp ogt <4 x half> %a, %b
  %sext.i = sext <4 x i1> %cmp.i to <4 x i16>
  ret <4 x i16> %sext.i
}

define dso_local <8 x i16> @test_vcgtq_f16(<8 x half> %a, <8 x half> %b) {
; CHECKLABEL: test_vcgtq_f16:
; CHECK-LABEL: test_vcgtq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcgt.f16 q0, q0, q1
; CHECK-NEXT:    bx lr
entry:
  %cmp.i = fcmp ogt <8 x half> %a, %b
  %sext.i = sext <8 x i1> %cmp.i to <8 x i16>
  ret <8 x i16> %sext.i
}

define dso_local <4 x i16> @test_vcle_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vcle_f16:
; CHECK-LABEL: test_vcle_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcge.f16 d0, d1, d0
; CHECK-NEXT:    bx lr
entry:
  %cmp.i = fcmp ole <4 x half> %a, %b
  %sext.i = sext <4 x i1> %cmp.i to <4 x i16>
  ret <4 x i16> %sext.i
}

define dso_local <8 x i16> @test_vcleq_f16(<8 x half> %a, <8 x half> %b) {
; CHECKLABEL: test_vcleq_f16:
; CHECK-LABEL: test_vcleq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcge.f16 q0, q1, q0
; CHECK-NEXT:    bx lr
entry:
  %cmp.i = fcmp ole <8 x half> %a, %b
  %sext.i = sext <8 x i1> %cmp.i to <8 x i16>
  ret <8 x i16> %sext.i
}

define dso_local <4 x i16> @test_vclt_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vclt_f16:
; CHECK-LABEL: test_vclt_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcgt.f16 d0, d1, d0
; CHECK-NEXT:    bx lr
entry:
  %cmp.i = fcmp olt <4 x half> %a, %b
  %sext.i = sext <4 x i1> %cmp.i to <4 x i16>
  ret <4 x i16> %sext.i
}

define dso_local <8 x i16> @test_vcltq_f16(<8 x half> %a, <8 x half> %b) {
; CHECKLABEL: test_vcltq_f16:
; CHECK-LABEL: test_vcltq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcgt.f16 q0, q1, q0
; CHECK-NEXT:    bx lr
entry:
  %cmp.i = fcmp olt <8 x half> %a, %b
  %sext.i = sext <8 x i1> %cmp.i to <8 x i16>
  ret <8 x i16> %sext.i
}

define dso_local <4 x half> @test_vcvt_n_f16_s16(<4 x i16> %a) {
; CHECKLABEL: test_vcvt_n_f16_s16:
; CHECK-LABEL: test_vcvt_n_f16_s16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvt.f16.s16 d0, d0, #2
; CHECK-NEXT:    bx lr
entry:
  %vcvt_n1 = tail call <4 x half> @llvm.arm.neon.vcvtfxs2fp.v4f16.v4i16(<4 x i16> %a, i32 2)
  ret <4 x half> %vcvt_n1
}

declare <4 x half> @llvm.arm.neon.vcvtfxs2fp.v4f16.v4i16(<4 x i16>, i32) #2

define dso_local <8 x half> @test_vcvtq_n_f16_s16(<8 x i16> %a) {
; CHECKLABEL: test_vcvtq_n_f16_s16:
; CHECK-LABEL: test_vcvtq_n_f16_s16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvt.f16.s16 q0, q0, #2
; CHECK-NEXT:    bx lr
entry:
  %vcvt_n1 = tail call <8 x half> @llvm.arm.neon.vcvtfxs2fp.v8f16.v8i16(<8 x i16> %a, i32 2)
  ret <8 x half> %vcvt_n1
}

declare <8 x half> @llvm.arm.neon.vcvtfxs2fp.v8f16.v8i16(<8 x i16>, i32) #2

define dso_local <4 x half> @test_vcvt_n_f16_u16(<4 x i16> %a) {
; CHECKLABEL: test_vcvt_n_f16_u16:
; CHECK-LABEL: test_vcvt_n_f16_u16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvt.f16.u16 d0, d0, #2
; CHECK-NEXT:    bx lr
entry:
  %vcvt_n1 = tail call <4 x half> @llvm.arm.neon.vcvtfxu2fp.v4f16.v4i16(<4 x i16> %a, i32 2)
  ret <4 x half> %vcvt_n1
}

declare <4 x half> @llvm.arm.neon.vcvtfxu2fp.v4f16.v4i16(<4 x i16>, i32) #2

define dso_local <8 x half> @test_vcvtq_n_f16_u16(<8 x i16> %a) {
; CHECKLABEL: test_vcvtq_n_f16_u16:
; CHECK-LABEL: test_vcvtq_n_f16_u16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvt.f16.u16 q0, q0, #2
; CHECK-NEXT:    bx lr
entry:
  %vcvt_n1 = tail call <8 x half> @llvm.arm.neon.vcvtfxu2fp.v8f16.v8i16(<8 x i16> %a, i32 2)
  ret <8 x half> %vcvt_n1
}

declare <8 x half> @llvm.arm.neon.vcvtfxu2fp.v8f16.v8i16(<8 x i16>, i32) #2

define dso_local <4 x i16> @test_vcvt_n_s16_f16(<4 x half> %a) {
; CHECKLABEL: test_vcvt_n_s16_f16:
; CHECK-LABEL: test_vcvt_n_s16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvt.s16.f16 d0, d0, #2
; CHECK-NEXT:    bx lr
entry:
  %vcvt_n1 = tail call <4 x i16> @llvm.arm.neon.vcvtfp2fxs.v4i16.v4f16(<4 x half> %a, i32 2)
  ret <4 x i16> %vcvt_n1
}

declare <4 x i16> @llvm.arm.neon.vcvtfp2fxs.v4i16.v4f16(<4 x half>, i32) #2

define dso_local <8 x i16> @test_vcvtq_n_s16_f16(<8 x half> %a) {
; CHECKLABEL: test_vcvtq_n_s16_f16:
; CHECK-LABEL: test_vcvtq_n_s16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvt.s16.f16 q0, q0, #2
; CHECK-NEXT:    bx lr
entry:
  %vcvt_n1 = tail call <8 x i16> @llvm.arm.neon.vcvtfp2fxs.v8i16.v8f16(<8 x half> %a, i32 2)
  ret <8 x i16> %vcvt_n1
}

declare <8 x i16> @llvm.arm.neon.vcvtfp2fxs.v8i16.v8f16(<8 x half>, i32) #2

define dso_local <4 x i16> @test_vcvt_n_u16_f16(<4 x half> %a) {
; CHECKLABEL: test_vcvt_n_u16_f16:
; CHECK-LABEL: test_vcvt_n_u16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvt.u16.f16 d0, d0, #2
; CHECK-NEXT:    bx lr
entry:
  %vcvt_n1 = tail call <4 x i16> @llvm.arm.neon.vcvtfp2fxu.v4i16.v4f16(<4 x half> %a, i32 2)
  ret <4 x i16> %vcvt_n1
}

declare <4 x i16> @llvm.arm.neon.vcvtfp2fxu.v4i16.v4f16(<4 x half>, i32) #2

define dso_local <8 x i16> @test_vcvtq_n_u16_f16(<8 x half> %a) {
; CHECKLABEL: test_vcvtq_n_u16_f16:
; CHECK-LABEL: test_vcvtq_n_u16_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vcvt.u16.f16 q0, q0, #2
; CHECK-NEXT:    bx lr
entry:
  %vcvt_n1 = tail call <8 x i16> @llvm.arm.neon.vcvtfp2fxu.v8i16.v8f16(<8 x half> %a, i32 2)
  ret <8 x i16> %vcvt_n1
}

declare <8 x i16> @llvm.arm.neon.vcvtfp2fxu.v8i16.v8f16(<8 x half>, i32) #2

define dso_local <4 x half> @test_vmax_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vmax_f16:
; CHECK-LABEL: test_vmax_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vmax.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %vmax_v2.i = tail call <4 x half> @llvm.arm.neon.vmaxs.v4f16(<4 x half> %a, <4 x half> %b)
  ret <4 x half> %vmax_v2.i
}

define dso_local <8 x half> @test_vmaxq_f16(<8 x half> %a, <8 x half> %b) {
; CHECKLABEL: test_vmaxq_f16:
; CHECK-LABEL: test_vmaxq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vmax.f16 q0, q0, q1
; CHECK-NEXT:    bx lr
entry:
  %vmaxq_v2.i = tail call <8 x half> @llvm.arm.neon.vmaxs.v8f16(<8 x half> %a, <8 x half> %b)
  ret <8 x half> %vmaxq_v2.i
}

define dso_local <4 x half> @test_vmaxnm_f16(<4 x half> %a, <4 x half> %b) {
; CHECK-LABEL: test_vmaxnm_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vmaxnm.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %vmaxnm_v2.i = tail call <4 x half> @llvm.arm.neon.vmaxnm.v4f16(<4 x half> %a, <4 x half> %b)
  ret <4 x half> %vmaxnm_v2.i
}

define dso_local <8 x half> @test_vmaxnmq_f16(<8 x half> %a, <8 x half> %b) {
; CHECK-LABEL: test_vmaxnmq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vmaxnm.f16 q0, q0, q1
; CHECK-NEXT:    bx lr
entry:
  %vmaxnmq_v2.i = tail call <8 x half> @llvm.arm.neon.vmaxnm.v8f16(<8 x half> %a, <8 x half> %b)
  ret <8 x half> %vmaxnmq_v2.i
}

define dso_local <4 x half> @test_vmin_f16(<4 x half> %a, <4 x half> %b) {
; CHECK-LABEL: test_vmin_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vmin.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %vmin_v2.i = tail call <4 x half> @llvm.arm.neon.vmins.v4f16(<4 x half> %a, <4 x half> %b)
  ret <4 x half> %vmin_v2.i
}

define dso_local <8 x half> @test_vminq_f16(<8 x half> %a, <8 x half> %b) {
; CHECK-LABEL: test_vminq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vmin.f16 q0, q0, q1
; CHECK-NEXT:    bx lr
entry:
  %vminq_v2.i = tail call <8 x half> @llvm.arm.neon.vmins.v8f16(<8 x half> %a, <8 x half> %b)
  ret <8 x half> %vminq_v2.i
}

define dso_local <4 x half> @test_vminnm_f16(<4 x half> %a, <4 x half> %b) {
; CHECK-LABEL: test_vminnm_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vminnm.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %vminnm_v2.i = tail call <4 x half> @llvm.arm.neon.vminnm.v4f16(<4 x half> %a, <4 x half> %b)
  ret <4 x half> %vminnm_v2.i
}

define dso_local <8 x half> @test_vminnmq_f16(<8 x half> %a, <8 x half> %b) {
; CHECK-LABEL: test_vminnmq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vminnm.f16 q0, q0, q1
; CHECK-NEXT:    bx lr
entry:
  %vminnmq_v2.i = tail call <8 x half> @llvm.arm.neon.vminnm.v8f16(<8 x half> %a, <8 x half> %b)
  ret <8 x half> %vminnmq_v2.i
}

define dso_local <4 x half> @test_vmul_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vmul_f16:
; CHECK-LABEL: test_vmul_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vmul.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %mul.i = fmul <4 x half> %a, %b
  ret <4 x half> %mul.i
}

define dso_local <8 x half> @test_vmulq_f16(<8 x half> %a, <8 x half> %b) {
; CHECKLABEL: test_vmulq_f16:
; CHECK-LABEL: test_vmulq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vmul.f16 q0, q0, q1
; CHECK-NEXT:    bx lr
entry:
  %mul.i = fmul <8 x half> %a, %b
  ret <8 x half> %mul.i
}

define dso_local <4 x half> @test_vpadd_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vpadd_f16:
; CHECK-LABEL: test_vpadd_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vpadd.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %vpadd_v2.i = tail call <4 x half> @llvm.arm.neon.vpadd.v4f16(<4 x half> %a, <4 x half> %b)
  ret <4 x half> %vpadd_v2.i
}

define dso_local <4 x half> @test_vpmax_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vpmax_f16:
; CHECK-LABEL: test_vpmax_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vpmax.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %vpmax_v2.i = tail call <4 x half> @llvm.arm.neon.vpmaxs.v4f16(<4 x half> %a, <4 x half> %b)
  ret <4 x half> %vpmax_v2.i
}

define dso_local <4 x half> @test_vpmin_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vpmin_f16:
; CHECK-LABEL: test_vpmin_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vpmin.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %vpmin_v2.i = tail call <4 x half> @llvm.arm.neon.vpmins.v4f16(<4 x half> %a, <4 x half> %b)
  ret <4 x half> %vpmin_v2.i
}

define dso_local <4 x half> @test_vrecps_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vrecps_f16:
; CHECK-LABEL: test_vrecps_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrecps.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %vrecps_v2.i = tail call <4 x half> @llvm.arm.neon.vrecps.v4f16(<4 x half> %a, <4 x half> %b)
  ret <4 x half> %vrecps_v2.i
}

define dso_local <8 x half> @test_vrecpsq_f16(<8 x half> %a, <8 x half> %b) {
; CHECKLABEL: test_vrecpsq_f16:
; CHECK-LABEL: test_vrecpsq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrecps.f16 q0, q0, q1
; CHECK-NEXT:    bx lr
entry:
  %vrecpsq_v2.i = tail call <8 x half> @llvm.arm.neon.vrecps.v8f16(<8 x half> %a, <8 x half> %b)
  ret <8 x half> %vrecpsq_v2.i
}

define dso_local <4 x half> @test_vrsqrts_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vrsqrts_f16:
; CHECK-LABEL: test_vrsqrts_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrsqrts.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %vrsqrts_v2.i = tail call <4 x half> @llvm.arm.neon.vrsqrts.v4f16(<4 x half> %a, <4 x half> %b)
  ret <4 x half> %vrsqrts_v2.i
}

define dso_local <8 x half> @test_vrsqrtsq_f16(<8 x half> %a, <8 x half> %b) {
; CHECKLABEL: test_vrsqrtsq_f16:
; CHECK-LABEL: test_vrsqrtsq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrsqrts.f16 q0, q0, q1
; CHECK-NEXT:    bx lr
entry:
  %vrsqrtsq_v2.i = tail call <8 x half> @llvm.arm.neon.vrsqrts.v8f16(<8 x half> %a, <8 x half> %b)
  ret <8 x half> %vrsqrtsq_v2.i
}

define dso_local <4 x half> @test_vsub_f16(<4 x half> %a, <4 x half> %b) {
; CHECKLABEL: test_vsub_f16:
; CHECK-LABEL: test_vsub_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vsub.f16 d0, d0, d1
; CHECK-NEXT:    bx lr
entry:
  %sub.i = fsub <4 x half> %a, %b
  ret <4 x half> %sub.i
}

define dso_local <8 x half> @test_vsubq_f16(<8 x half> %a, <8 x half> %b) {
; CHECKLABEL: test_vsubq_f16:
; CHECK-LABEL: test_vsubq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vsub.f16 q0, q0, q1
; CHECK-NEXT:    bx lr
entry:
  %sub.i = fsub <8 x half> %a, %b
  ret <8 x half> %sub.i
}

define dso_local <4 x half> @test_vfma_f16(<4 x half> %a, <4 x half> %b, <4 x half> %c) {
; CHECK-LABEL: test_vfma_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vfma.f16 d0, d1, d2
; CHECK-NEXT:    bx lr
entry:
  %0 = tail call <4 x half> @llvm.fma.v4f16(<4 x half> %b, <4 x half> %c, <4 x half> %a)
  ret <4 x half> %0
}

define dso_local <8 x half> @test_vfmaq_f16(<8 x half> %a, <8 x half> %b, <8 x half> %c) {
; CHECK-LABEL: test_vfmaq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vfma.f16 q0, q1, q2
; CHECK-NEXT:    bx lr
entry:
  %0 = tail call <8 x half> @llvm.fma.v8f16(<8 x half> %b, <8 x half> %c, <8 x half> %a)
  ret <8 x half> %0
}

define dso_local <4 x half> @test_vfms_f16(<4 x half> %a, <4 x half> %b, <4 x half> %c) {
; CHECK-LABEL: test_vfms_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vneg.f16 d16, d1
; CHECK-NEXT:    vfma.f16 d0, d16, d2
; CHECK-NEXT:    bx lr
entry:
  %sub.i = fsub <4 x half> <half 0xH8000, half 0xH8000, half 0xH8000, half 0xH8000>, %b
  %0 = tail call <4 x half> @llvm.fma.v4f16(<4 x half> %sub.i, <4 x half> %c, <4 x half> %a)
  ret <4 x half> %0
}

define dso_local <8 x half> @test_vfmsq_f16(<8 x half> %a, <8 x half> %b, <8 x half> %c) {
; CHECK-LABEL: test_vfmsq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vneg.f16 q8, q1
; CHECK-NEXT:    vfma.f16 q0, q8, q2
; CHECK-NEXT:    bx lr
entry:
  %sub.i = fsub <8 x half> <half 0xH8000, half 0xH8000, half 0xH8000, half 0xH8000, half 0xH8000, half 0xH8000, half 0xH8000, half 0xH8000>, %b
  %0 = tail call <8 x half> @llvm.fma.v8f16(<8 x half> %sub.i, <8 x half> %c, <8 x half> %a)
  ret <8 x half> %0
}

define dso_local <4 x half> @test_vmul_lane_f16(<4 x half> %a, <4 x half> %b) {
; CHECK-LABEL: test_vmul_lane_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vmul.f16 d0, d0, d1[3]
; CHECK-NEXT:    bx lr
entry:
  %shuffle = shufflevector <4 x half> %b, <4 x half> undef, <4 x i32> <i32 3, i32 3, i32 3, i32 3>
  %mul = fmul <4 x half> %shuffle, %a
  ret <4 x half> %mul
}

define dso_local <8 x half> @test_vmulq_lane_f16(<8 x half> %a, <4 x half> %b) {
; CHECK-LABEL: test_vmulq_lane_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $d2 killed $d2 def $q1
; CHECK-NEXT:    vmul.f16 q0, q0, d2[3]
; CHECK-NEXT:    bx lr
entry:
  %shuffle = shufflevector <4 x half> %b, <4 x half> undef, <8 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>
  %mul = fmul <8 x half> %shuffle, %a
  ret <8 x half> %mul
}

define dso_local <4 x half> @test_vmul_n_f16(<4 x half> %a, float %b.coerce) {
; CHECK-LABEL: test_vmul_n_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $s2 killed $s2 def $d1
; CHECK-NEXT:    vmul.f16 d0, d0, d1[0]
; CHECK-NEXT:    bx lr
entry:
  %0 = bitcast float %b.coerce to i32
  %tmp.0.extract.trunc = trunc i32 %0 to i16
  %1 = bitcast i16 %tmp.0.extract.trunc to half
  %vecinit = insertelement <4 x half> undef, half %1, i32 0
  %vecinit4 = shufflevector <4 x half> %vecinit, <4 x half> undef, <4 x i32> zeroinitializer
  %mul = fmul <4 x half> %vecinit4, %a
  ret <4 x half> %mul
}

define dso_local <8 x half> @test_vmulq_n_f16(<8 x half> %a, float %b.coerce) {
; CHECK-LABEL: test_vmulq_n_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $s4 killed $s4 def $d2
; CHECK-NEXT:    vmul.f16 q0, q0, d2[0]
; CHECK-NEXT:    bx lr
entry:
  %0 = bitcast float %b.coerce to i32
  %tmp.0.extract.trunc = trunc i32 %0 to i16
  %1 = bitcast i16 %tmp.0.extract.trunc to half
  %vecinit = insertelement <8 x half> undef, half %1, i32 0
  %vecinit8 = shufflevector <8 x half> %vecinit, <8 x half> undef, <8 x i32> zeroinitializer
  %mul = fmul <8 x half> %vecinit8, %a
  ret <8 x half> %mul
}

define dso_local <4 x half> @test_vbsl_f16(<4 x i16> %a, <4 x half> %b, <4 x half> %c) {
; CHECKLABEL: test_vbsl_f16:
; CHECK-LABEL: test_vbsl_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vbsl d0, d1, d2
; CHECK-NEXT:    bx lr
entry:
  %0 = bitcast <4 x i16> %a to <8 x i8>
  %1 = bitcast <4 x half> %b to <8 x i8>
  %2 = bitcast <4 x half> %c to <8 x i8>
  %vbsl_v.i = tail call <8 x i8> @llvm.arm.neon.vbsl.v8i8(<8 x i8> %0, <8 x i8> %1, <8 x i8> %2)
  %3 = bitcast <8 x i8> %vbsl_v.i to <4 x half>
  ret <4 x half> %3
}

define dso_local <8 x half> @test_vbslq_f16(<8 x i16> %a, <8 x half> %b, <8 x half> %c) {
; CHECKLABEL: test_vbslq_f16:
; CHECK-LABEL: test_vbslq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vbsl q0, q1, q2
; CHECK-NEXT:    bx lr
entry:
  %0 = bitcast <8 x i16> %a to <16 x i8>
  %1 = bitcast <8 x half> %b to <16 x i8>
  %2 = bitcast <8 x half> %c to <16 x i8>
  %vbslq_v.i = tail call <16 x i8> @llvm.arm.neon.vbsl.v16i8(<16 x i8> %0, <16 x i8> %1, <16 x i8> %2)
  %3 = bitcast <16 x i8> %vbslq_v.i to <8 x half>
  ret <8 x half> %3
}

define dso_local %struct.float16x4x2_t @test_vzip_f16(<4 x half> %a, <4 x half> %b) {
; CHECK-LABEL: test_vzip_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vzip.16 d0, d1
; CHECK-NEXT:    bx lr
entry:
  %vzip.i = shufflevector <4 x half> %a, <4 x half> %b, <4 x i32> <i32 0, i32 4, i32 1, i32 5>
  %vzip1.i = shufflevector <4 x half> %a, <4 x half> %b, <4 x i32> <i32 2, i32 6, i32 3, i32 7>
  %.fca.0.0.insert = insertvalue %struct.float16x4x2_t undef, <4 x half> %vzip.i, 0, 0
  %.fca.0.1.insert = insertvalue %struct.float16x4x2_t %.fca.0.0.insert, <4 x half> %vzip1.i, 0, 1
  ret %struct.float16x4x2_t %.fca.0.1.insert
}

define dso_local %struct.float16x8x2_t @test_vzipq_f16(<8 x half> %a, <8 x half> %b) {
; CHECK-LABEL: test_vzipq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vzip.16 q0, q1
; CHECK-NEXT:    bx lr
entry:
  %vzip.i = shufflevector <8 x half> %a, <8 x half> %b, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 2, i32 10, i32 3, i32 11>
  %vzip1.i = shufflevector <8 x half> %a, <8 x half> %b, <8 x i32> <i32 4, i32 12, i32 5, i32 13, i32 6, i32 14, i32 7, i32 15>
  %.fca.0.0.insert = insertvalue %struct.float16x8x2_t undef, <8 x half> %vzip.i, 0, 0
  %.fca.0.1.insert = insertvalue %struct.float16x8x2_t %.fca.0.0.insert, <8 x half> %vzip1.i, 0, 1
  ret %struct.float16x8x2_t %.fca.0.1.insert
}

define dso_local %struct.float16x4x2_t @test_vuzp_f16(<4 x half> %a, <4 x half> %b) {
; CHECK-LABEL: test_vuzp_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vuzp.16 d0, d1
; CHECK-NEXT:    bx lr
entry:
  %vuzp.i = shufflevector <4 x half> %a, <4 x half> %b, <4 x i32> <i32 0, i32 2, i32 4, i32 6>
  %vuzp1.i = shufflevector <4 x half> %a, <4 x half> %b, <4 x i32> <i32 1, i32 3, i32 5, i32 7>
  %.fca.0.0.insert = insertvalue %struct.float16x4x2_t undef, <4 x half> %vuzp.i, 0, 0
  %.fca.0.1.insert = insertvalue %struct.float16x4x2_t %.fca.0.0.insert, <4 x half> %vuzp1.i, 0, 1
  ret %struct.float16x4x2_t %.fca.0.1.insert
}

define dso_local %struct.float16x8x2_t @test_vuzpq_f16(<8 x half> %a, <8 x half> %b) {
; CHECK-LABEL: test_vuzpq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vuzp.16 q0, q1
; CHECK-NEXT:    bx lr
entry:
  %vuzp.i = shufflevector <8 x half> %a, <8 x half> %b, <8 x i32> <i32 0, i32 2, i32 4, i32 6, i32 8, i32 10, i32 12, i32 14>
  %vuzp1.i = shufflevector <8 x half> %a, <8 x half> %b, <8 x i32> <i32 1, i32 3, i32 5, i32 7, i32 9, i32 11, i32 13, i32 15>
  %.fca.0.0.insert = insertvalue %struct.float16x8x2_t undef, <8 x half> %vuzp.i, 0, 0
  %.fca.0.1.insert = insertvalue %struct.float16x8x2_t %.fca.0.0.insert, <8 x half> %vuzp1.i, 0, 1
  ret %struct.float16x8x2_t %.fca.0.1.insert
}

define dso_local %struct.float16x4x2_t @test_vtrn_f16(<4 x half> %a, <4 x half> %b) {
; CHECK-LABEL: test_vtrn_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vtrn.16 d0, d1
; CHECK-NEXT:    bx lr
entry:
  %vtrn.i = shufflevector <4 x half> %a, <4 x half> %b, <4 x i32> <i32 0, i32 4, i32 2, i32 6>
  %vtrn1.i = shufflevector <4 x half> %a, <4 x half> %b, <4 x i32> <i32 1, i32 5, i32 3, i32 7>
  %.fca.0.0.insert = insertvalue %struct.float16x4x2_t undef, <4 x half> %vtrn.i, 0, 0
  %.fca.0.1.insert = insertvalue %struct.float16x4x2_t %.fca.0.0.insert, <4 x half> %vtrn1.i, 0, 1
  ret %struct.float16x4x2_t %.fca.0.1.insert
}

define dso_local %struct.float16x8x2_t @test_vtrnq_f16(<8 x half> %a, <8 x half> %b) {
; CHECK-LABEL: test_vtrnq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vtrn.16 q0, q1
; CHECK-NEXT:    bx lr
entry:
  %vtrn.i = shufflevector <8 x half> %a, <8 x half> %b, <8 x i32> <i32 0, i32 8, i32 2, i32 10, i32 4, i32 12, i32 6, i32 14>
  %vtrn1.i = shufflevector <8 x half> %a, <8 x half> %b, <8 x i32> <i32 1, i32 9, i32 3, i32 11, i32 5, i32 13, i32 7, i32 15>
  %.fca.0.0.insert = insertvalue %struct.float16x8x2_t undef, <8 x half> %vtrn.i, 0, 0
  %.fca.0.1.insert = insertvalue %struct.float16x8x2_t %.fca.0.0.insert, <8 x half> %vtrn1.i, 0, 1
  ret %struct.float16x8x2_t %.fca.0.1.insert
}

define dso_local <4 x half> @test_vmov_n_f16(float %a.coerce) {
; CHECK-LABEL: test_vmov_n_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $s0 killed $s0 def $d0
; CHECK-NEXT:    vdup.16 d0, d0[0]
; CHECK-NEXT:    bx lr
entry:
  %0 = bitcast float %a.coerce to i32
  %tmp.0.extract.trunc = trunc i32 %0 to i16
  %1 = bitcast i16 %tmp.0.extract.trunc to half
  %vecinit = insertelement <4 x half> undef, half %1, i32 0
  %vecinit4 = shufflevector <4 x half> %vecinit, <4 x half> undef, <4 x i32> zeroinitializer
  ret <4 x half> %vecinit4
}

define dso_local <8 x half> @test_vmovq_n_f16(float %a.coerce) {
; CHECK-LABEL: test_vmovq_n_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $s0 killed $s0 def $d0
; CHECK-NEXT:    vdup.16 q0, d0[0]
; CHECK-NEXT:    bx lr
entry:
  %0 = bitcast float %a.coerce to i32
  %tmp.0.extract.trunc = trunc i32 %0 to i16
  %1 = bitcast i16 %tmp.0.extract.trunc to half
  %vecinit = insertelement <8 x half> undef, half %1, i32 0
  %vecinit8 = shufflevector <8 x half> %vecinit, <8 x half> undef, <8 x i32> zeroinitializer
  ret <8 x half> %vecinit8
}

define dso_local <4 x half> @test_vdup_n_f16(float %a.coerce) {
; CHECK-LABEL: test_vdup_n_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $s0 killed $s0 def $d0
; CHECK-NEXT:    vdup.16 d0, d0[0]
; CHECK-NEXT:    bx lr
entry:
  %0 = bitcast float %a.coerce to i32
  %tmp.0.extract.trunc = trunc i32 %0 to i16
  %1 = bitcast i16 %tmp.0.extract.trunc to half
  %vecinit = insertelement <4 x half> undef, half %1, i32 0
  %vecinit4 = shufflevector <4 x half> %vecinit, <4 x half> undef, <4 x i32> zeroinitializer
  ret <4 x half> %vecinit4
}

define dso_local <8 x half> @test_vdupq_n_f16(float %a.coerce) {
; CHECK-LABEL: test_vdupq_n_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $s0 killed $s0 def $d0
; CHECK-NEXT:    vdup.16 q0, d0[0]
; CHECK-NEXT:    bx lr
entry:
  %0 = bitcast float %a.coerce to i32
  %tmp.0.extract.trunc = trunc i32 %0 to i16
  %1 = bitcast i16 %tmp.0.extract.trunc to half
  %vecinit = insertelement <8 x half> undef, half %1, i32 0
  %vecinit8 = shufflevector <8 x half> %vecinit, <8 x half> undef, <8 x i32> zeroinitializer
  ret <8 x half> %vecinit8
}

define dso_local <4 x half> @test_vdup_lane_f16(<4 x half> %a) {
; CHECK-LABEL: test_vdup_lane_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vdup.16 d0, d0[3]
; CHECK-NEXT:    bx lr
entry:
  %shuffle = shufflevector <4 x half> %a, <4 x half> undef, <4 x i32> <i32 3, i32 3, i32 3, i32 3>
  ret <4 x half> %shuffle
}

define dso_local <8 x half> @test_vdupq_lane_f16(<4 x half> %a) {
; CHECK-LABEL: test_vdupq_lane_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $d0 killed $d0 def $q0
; CHECK-NEXT:    vdup.16 q0, d0[3]
; CHECK-NEXT:    bx lr
entry:
  %shuffle = shufflevector <4 x half> %a, <4 x half> undef, <8 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>
  ret <8 x half> %shuffle
}

define dso_local <4 x half> @test_vext_f16(<4 x half> %a, <4 x half> %b) {
; CHECK-LABEL: test_vext_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vext.16 d0, d0, d1, #2
; CHECK-NEXT:    bx lr
entry:
  %vext = shufflevector <4 x half> %a, <4 x half> %b, <4 x i32> <i32 2, i32 3, i32 4, i32 5>
  ret <4 x half> %vext
}

define dso_local <8 x half> @test_vextq_f16(<8 x half> %a, <8 x half> %b) {
; CHECK-LABEL: test_vextq_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vext.16 q0, q0, q1, #5
; CHECK-NEXT:    bx lr
entry:
  %vext = shufflevector <8 x half> %a, <8 x half> %b, <8 x i32> <i32 5, i32 6, i32 7, i32 8, i32 9, i32 10, i32 11, i32 12>
  ret <8 x half> %vext
}

define dso_local <4 x half> @test_vrev64_f16(<4 x half> %a) {
; CHECK-LABEL: test_vrev64_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrev64.16 d0, d0
; CHECK-NEXT:    bx lr
entry:
  %shuffle.i = shufflevector <4 x half> %a, <4 x half> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0>
  ret <4 x half> %shuffle.i
}

define dso_local <8 x half> @test_vrev64q_f16(<8 x half> %a) {
; CHECK-LABEL: test_vrev64q_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vrev64.16 q0, q0
; CHECK-NEXT:    bx lr
entry:
  %shuffle.i = shufflevector <8 x half> %a, <8 x half> undef, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4>
  ret <8 x half> %shuffle.i
}

define <4 x half> @test_vld_dup1_4xhalf(ptr %b) {
; CHECK-LABEL: test_vld_dup1_4xhalf:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vld1.16 {d0[]}, [r0:16]
; CHECK-NEXT:    bx lr

entry:
  %b1 = load half, ptr %b, align 2
  %vecinit = insertelement <4 x half> undef, half %b1, i32 0
  %vecinit2 = insertelement <4 x half> %vecinit, half %b1, i32 1
  %vecinit3 = insertelement <4 x half> %vecinit2, half %b1, i32 2
  %vecinit4 = insertelement <4 x half> %vecinit3, half %b1, i32 3
  ret <4 x half> %vecinit4
}

define <8 x half> @test_vld_dup1_8xhalf(ptr %b) local_unnamed_addr {
; CHECK-LABEL: test_vld_dup1_8xhalf:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    vld1.16 {d0[], d1[]}, [r0:16]
; CHECK-NEXT:    bx lr

entry:
  %b1 = load half, ptr %b, align 2
  %vecinit = insertelement <8 x half> undef, half %b1, i32 0
  %vecinit8 = shufflevector <8 x half> %vecinit, <8 x half> undef, <8 x i32> zeroinitializer
  ret <8 x half> %vecinit8
}

define <8 x half> @test_shufflevector8xhalf(<4 x half> %a) {
; CHECK-LABEL: test_shufflevector8xhalf:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $d0 killed $d0 def $q0
; CHECK-NEXT:    vmov.f64 d1, d0
; CHECK-NEXT:    bx lr

entry:
  %r = shufflevector <4 x half> %a, <4 x half> %a, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
  ret <8 x half> %r
}

declare <4 x half> @llvm.fabs.v4f16(<4 x half>)
declare <8 x half> @llvm.fabs.v8f16(<8 x half>)
declare <4 x i16> @llvm.arm.neon.vcvtas.v4i16.v4f16(<4 x half>)
declare <4 x i16> @llvm.arm.neon.vcvtau.v4i16.v4f16(<4 x half>)
declare <8 x i16> @llvm.arm.neon.vcvtas.v8i16.v8f16(<8 x half>)
declare <4 x i16> @llvm.arm.neon.vcvtms.v4i16.v4f16(<4 x half>)
declare <8 x i16> @llvm.arm.neon.vcvtms.v8i16.v8f16(<8 x half>)
declare <4 x i16> @llvm.arm.neon.vcvtmu.v4i16.v4f16(<4 x half>)
declare <8 x i16> @llvm.arm.neon.vcvtmu.v8i16.v8f16(<8 x half>)
declare <4 x i16> @llvm.arm.neon.vcvtns.v4i16.v4f16(<4 x half>)
declare <8 x i16> @llvm.arm.neon.vcvtns.v8i16.v8f16(<8 x half>)
declare <4 x i16> @llvm.arm.neon.vcvtnu.v4i16.v4f16(<4 x half>)
declare <8 x i16> @llvm.arm.neon.vcvtnu.v8i16.v8f16(<8 x half>)
declare <4 x i16> @llvm.arm.neon.vcvtps.v4i16.v4f16(<4 x half>)
declare <8 x i16> @llvm.arm.neon.vcvtps.v8i16.v8f16(<8 x half>)
declare <4 x i16> @llvm.arm.neon.vcvtpu.v4i16.v4f16(<4 x half>)
declare <8 x i16> @llvm.arm.neon.vcvtpu.v8i16.v8f16(<8 x half>)
declare <4 x half> @llvm.arm.neon.vrecpe.v4f16(<4 x half>)
declare <8 x half> @llvm.arm.neon.vrecpe.v8f16(<8 x half>)
declare <4 x half> @llvm.arm.neon.vrintz.v4f16(<4 x half>)
declare <8 x half> @llvm.arm.neon.vrintz.v8f16(<8 x half>)
declare <4 x half> @llvm.arm.neon.vrinta.v4f16(<4 x half>)
declare <8 x half> @llvm.arm.neon.vrinta.v8f16(<8 x half>)
declare <4 x half> @llvm.arm.neon.vrintm.v4f16(<4 x half>)
declare <8 x half> @llvm.arm.neon.vrintm.v8f16(<8 x half>)
declare <4 x half> @llvm.arm.neon.vrintn.v4f16(<4 x half>)
declare <8 x half> @llvm.arm.neon.vrintn.v8f16(<8 x half>)
declare <4 x half> @llvm.arm.neon.vrintp.v4f16(<4 x half>)
declare <8 x half> @llvm.arm.neon.vrintp.v8f16(<8 x half>)
declare <4 x half> @llvm.arm.neon.vrintx.v4f16(<4 x half>)
declare <8 x half> @llvm.arm.neon.vrintx.v8f16(<8 x half>)
declare <4 x half> @llvm.arm.neon.vrsqrte.v4f16(<4 x half>)
declare <8 x half> @llvm.arm.neon.vrsqrte.v8f16(<8 x half>)
declare <4 x half> @llvm.arm.neon.vabds.v4f16(<4 x half>, <4 x half>)
declare <8 x half> @llvm.arm.neon.vabds.v8f16(<8 x half>, <8 x half>)
declare <4 x i16> @llvm.arm.neon.vacge.v4i16.v4f16(<4 x half>, <4 x half>)
declare <8 x i16> @llvm.arm.neon.vacge.v8i16.v8f16(<8 x half>, <8 x half>)
declare <4 x i16> @llvm.arm.neon.vacgt.v4i16.v4f16(<4 x half>, <4 x half>)
declare <8 x i16> @llvm.arm.neon.vacgt.v8i16.v8f16(<8 x half>, <8 x half>)
declare <4 x half> @llvm.arm.neon.vmaxs.v4f16(<4 x half>, <4 x half>)
declare <8 x half> @llvm.arm.neon.vmaxs.v8f16(<8 x half>, <8 x half>)
declare <4 x half> @llvm.arm.neon.vmaxnm.v4f16(<4 x half>, <4 x half>)
declare <8 x half> @llvm.arm.neon.vmaxnm.v8f16(<8 x half>, <8 x half>)
declare <4 x half> @llvm.arm.neon.vmins.v4f16(<4 x half>, <4 x half>)
declare <8 x half> @llvm.arm.neon.vmins.v8f16(<8 x half>, <8 x half>)
declare <4 x half> @llvm.arm.neon.vminnm.v4f16(<4 x half>, <4 x half>)
declare <8 x half> @llvm.arm.neon.vminnm.v8f16(<8 x half>, <8 x half>)
declare <4 x half> @llvm.arm.neon.vpadd.v4f16(<4 x half>, <4 x half>)
declare <4 x half> @llvm.arm.neon.vpmaxs.v4f16(<4 x half>, <4 x half>)
declare <4 x half> @llvm.arm.neon.vpmins.v4f16(<4 x half>, <4 x half>)
declare <4 x half> @llvm.arm.neon.vrecps.v4f16(<4 x half>, <4 x half>)
declare <8 x half> @llvm.arm.neon.vrecps.v8f16(<8 x half>, <8 x half>)
declare <4 x half> @llvm.arm.neon.vrsqrts.v4f16(<4 x half>, <4 x half>)
declare <8 x half> @llvm.arm.neon.vrsqrts.v8f16(<8 x half>, <8 x half>)
declare <4 x half> @llvm.fma.v4f16(<4 x half>, <4 x half>, <4 x half>)
declare <8 x half> @llvm.fma.v8f16(<8 x half>, <8 x half>, <8 x half>)
declare <8 x i8> @llvm.arm.neon.vbsl.v8i8(<8 x i8>, <8 x i8>, <8 x i8>)
declare <16 x i8> @llvm.arm.neon.vbsl.v16i8(<16 x i8>, <16 x i8>, <16 x i8>)
declare { <8 x half>, <8 x half> } @llvm.arm.neon.vld2lane.v8f16.p0(ptr, <8 x half>, <8 x half>, i32, i32)
declare { <4 x half>, <4 x half> } @llvm.arm.neon.vld2lane.v4f16.p0(ptr, <4 x half>, <4 x half>, i32, i32)
declare { <8 x half>, <8 x half>, <8 x half> } @llvm.arm.neon.vld3lane.v8f16.p0(ptr, <8 x half>, <8 x half>, <8 x half>, i32, i32)
declare { <4 x half>, <4 x half>, <4 x half> } @llvm.arm.neon.vld3lane.v4f16.p0(ptr, <4 x half>, <4 x half>, <4 x half>, i32, i32)
declare { <8 x half>, <8 x half>, <8 x half>, <8 x half> } @llvm.arm.neon.vld4lane.v8f16.p0(ptr, <8 x half>, <8 x half>, <8 x half>, <8 x half>, i32, i32)
declare { <4 x half>, <4 x half>, <4 x half>, <4 x half> } @llvm.arm.neon.vld4lane.v4f16.p0(ptr, <4 x half>, <4 x half>, <4 x half>, <4 x half>, i32, i32)
declare void @llvm.arm.neon.vst2lane.p0.v8f16(ptr, <8 x half>, <8 x half>, i32, i32)
declare void @llvm.arm.neon.vst2lane.p0.v4f16(ptr, <4 x half>, <4 x half>, i32, i32)
declare void @llvm.arm.neon.vst3lane.p0.v8f16(ptr, <8 x half>, <8 x half>, <8 x half>, i32, i32)
declare void @llvm.arm.neon.vst3lane.p0.v4f16(ptr, <4 x half>, <4 x half>, <4 x half>, i32, i32)
declare void @llvm.arm.neon.vst4lane.p0.v8f16(ptr, <8 x half>, <8 x half>, <8 x half>, <8 x half>, i32, i32)
declare void @llvm.arm.neon.vst4lane.p0.v4f16(ptr, <4 x half>, <4 x half>, <4 x half>, <4 x half>, i32, i32)

define { <8 x half>, <8 x half> } @test_vld2q_lane_f16(ptr, <8 x half>, <8 x half>) {
; CHECK-LABEL: test_vld2q_lane_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $q1 killed $q1 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    @ kill: def $q0 killed $q0 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    vld2.16 {d1[3], d3[3]}, [r0]
; CHECK-NEXT:    bx lr
entry:
  %3 = tail call { <8 x half>, <8 x half> } @llvm.arm.neon.vld2lane.v8f16.p0(ptr %0, <8 x half> %1, <8 x half> %2, i32 7, i32 2)
  ret { <8 x half>, <8 x half> } %3
}

define { <4 x half>, <4 x half> } @test_vld2_lane_f16(ptr, <4 x half>, <4 x half>) {
; CHECK-LABEL: test_vld2_lane_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $d1 killed $d1 killed $q0 def $q0
; CHECK-NEXT:    @ kill: def $d0 killed $d0 killed $q0 def $q0
; CHECK-NEXT:    vld2.16 {d0[3], d1[3]}, [r0]
; CHECK-NEXT:    bx lr
entry:
  %3 = tail call { <4 x half>, <4 x half> } @llvm.arm.neon.vld2lane.v4f16.p0(ptr %0, <4 x half> %1, <4 x half> %2, i32 3, i32 2)
  ret { <4 x half>, <4 x half> } %3
}

define { <8 x half>, <8 x half>, <8 x half> } @test_vld3q_lane_f16(ptr, <8 x half>, <8 x half>, <8 x half>) {
; CHECK-LABEL: test_vld3q_lane_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $q2 killed $q2 killed $q0_q1_q2_q3 def $q0_q1_q2_q3
; CHECK-NEXT:    @ kill: def $q1 killed $q1 killed $q0_q1_q2_q3 def $q0_q1_q2_q3
; CHECK-NEXT:    @ kill: def $q0 killed $q0 killed $q0_q1_q2_q3 def $q0_q1_q2_q3
; CHECK-NEXT:    vld3.16 {d1[3], d3[3], d5[3]}, [r0]
; CHECK-NEXT:    bx lr
entry:
  %4 = tail call { <8 x half>, <8 x half>, <8 x half> } @llvm.arm.neon.vld3lane.v8f16.p0(ptr %0, <8 x half> %1, <8 x half> %2, <8 x half> %3, i32 7, i32 2)
  ret { <8 x half>, <8 x half>, <8 x half> } %4
}

define { <4 x half>, <4 x half>, <4 x half> } @test_vld3_lane_f16(ptr, <4 x half>, <4 x half>, <4 x half>) {
; CHECK-LABEL: test_vld3_lane_f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $d2 killed $d2 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    @ kill: def $d1 killed $d1 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    @ kill: def $d0 killed $d0 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    vld3.16 {d0[3], d1[3], d2[3]}, [r0]
; CHECK-NEXT:    bx lr
entry:
  %4 = tail call { <4 x half>, <4 x half>, <4 x half> } @llvm.arm.neon.vld3lane.v4f16.p0(ptr %0, <4 x half> %1, <4 x half> %2, <4 x half> %3, i32 3, i32 2)
  ret { <4 x half>, <4 x half>, <4 x half> } %4
}
define { <8 x half>, <8 x half>, <8 x half>, <8 x half> } @test_vld4lane_v8f16_p0i8(ptr, <8 x half>, <8 x half>, <8 x half>, <8 x half>) {
; CHECK-LABEL: test_vld4lane_v8f16_p0i8:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $q3 killed $q3 killed $q0_q1_q2_q3 def $q0_q1_q2_q3
; CHECK-NEXT:    @ kill: def $q2 killed $q2 killed $q0_q1_q2_q3 def $q0_q1_q2_q3
; CHECK-NEXT:    @ kill: def $q1 killed $q1 killed $q0_q1_q2_q3 def $q0_q1_q2_q3
; CHECK-NEXT:    @ kill: def $q0 killed $q0 killed $q0_q1_q2_q3 def $q0_q1_q2_q3
; CHECK-NEXT:    vld4.16 {d1[3], d3[3], d5[3], d7[3]}, [r0]
; CHECK-NEXT:    bx lr
entry:
  %5 = tail call { <8 x half>, <8 x half>, <8 x half>, <8 x half> } @llvm.arm.neon.vld4lane.v8f16.p0(ptr %0, <8 x half> %1, <8 x half> %2, <8 x half> %3, <8 x half> %4, i32 7, i32 2)
  ret { <8 x half>, <8 x half>, <8 x half>, <8 x half> } %5
}
define { <4 x half>, <4 x half>, <4 x half>, <4 x half> } @test_vld4lane_v4f16_p0i8(ptr, <4 x half>, <4 x half>, <4 x half>, <4 x half>) {
; CHECK-LABEL: test_vld4lane_v4f16_p0i8:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $d3 killed $d3 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    @ kill: def $d2 killed $d2 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    @ kill: def $d1 killed $d1 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    @ kill: def $d0 killed $d0 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    vld4.16 {d0[3], d1[3], d2[3], d3[3]}, [r0]
; CHECK-NEXT:    bx lr
entry:
 %5 = tail call { <4 x half>, <4 x half>, <4 x half>, <4 x half> } @llvm.arm.neon.vld4lane.v4f16.p0(ptr %0, <4 x half> %1, <4 x half> %2, <4 x half> %3, <4 x half> %4, i32 3, i32 2)
 ret { <4 x half>, <4 x half>, <4 x half>, <4 x half> } %5
}
define void @test_vst2lane_p0i8_v8f16(ptr, <8 x half>, <8 x half>) {
; CHECK-LABEL: test_vst2lane_p0i8_v8f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $q1 killed $q1 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    @ kill: def $q0 killed $q0 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    vst2.16 {d0[0], d2[0]}, [r0]
; CHECK-NEXT:    bx lr
entry:
  tail call void @llvm.arm.neon.vst2lane.p0.v8f16(ptr %0, <8 x half> %1, <8 x half> %2, i32 0, i32 1)
  ret void
}
define void @test_vst2lane_p0i8_v4f16(ptr, <4 x half>, <4 x half>) {
; CHECK-LABEL: test_vst2lane_p0i8_v4f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $d1 killed $d1 killed $q0 def $q0
; CHECK-NEXT:    @ kill: def $d0 killed $d0 killed $q0 def $q0
; CHECK-NEXT:    vst2.16 {d0[0], d1[0]}, [r0:32]
; CHECK-NEXT:    bx lr
entry:
  tail call void @llvm.arm.neon.vst2lane.p0.v4f16(ptr %0, <4 x half> %1, <4 x half> %2, i32 0, i32 0)
  ret void
}
define void @test_vst3lane_p0i8_v8f16(ptr, <8 x half>, <8 x half>, <8 x half>) {
; CHECK-LABEL: test_vst3lane_p0i8_v8f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $q2 killed $q2 killed $q0_q1_q2_q3 def $q0_q1_q2_q3
; CHECK-NEXT:    @ kill: def $q1 killed $q1 killed $q0_q1_q2_q3 def $q0_q1_q2_q3
; CHECK-NEXT:    @ kill: def $q0 killed $q0 killed $q0_q1_q2_q3 def $q0_q1_q2_q3
; CHECK-NEXT:    vst3.16 {d0[0], d2[0], d4[0]}, [r0]
; CHECK-NEXT:    bx lr
entry:
  tail call void @llvm.arm.neon.vst3lane.p0.v8f16(ptr %0, <8 x half> %1, <8 x half> %2, <8 x half> %3, i32 0, i32 0)
  ret void
}
define void @test_vst3lane_p0i8_v4f16(ptr, <4 x half>, <4 x half>, <4 x half>) {
; CHECK-LABEL: test_vst3lane_p0i8_v4f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $d2 killed $d2 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    @ kill: def $d1 killed $d1 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    @ kill: def $d0 killed $d0 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    vst3.16 {d0[0], d1[0], d2[0]}, [r0]
; CHECK-NEXT:    bx lr
entry:
  tail call void @llvm.arm.neon.vst3lane.p0.v4f16(ptr %0, <4 x half> %1, <4 x half> %2, <4 x half> %3, i32 0, i32 0)
  ret void
}
define void @test_vst4lane_p0i8_v8f16(ptr, <8 x half>, <8 x half>, <8 x half>, <8 x half>) {
; CHECK-LABEL: test_vst4lane_p0i8_v8f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $q3 killed $q3 killed $q0_q1_q2_q3 def $q0_q1_q2_q3
; CHECK-NEXT:    @ kill: def $q2 killed $q2 killed $q0_q1_q2_q3 def $q0_q1_q2_q3
; CHECK-NEXT:    @ kill: def $q1 killed $q1 killed $q0_q1_q2_q3 def $q0_q1_q2_q3
; CHECK-NEXT:    @ kill: def $q0 killed $q0 killed $q0_q1_q2_q3 def $q0_q1_q2_q3
; CHECK-NEXT:    vst4.16 {d0[0], d2[0], d4[0], d6[0]}, [r0:64]
; CHECK-NEXT:    bx lr
entry:
  tail call void @llvm.arm.neon.vst4lane.p0.v8f16(ptr %0, <8 x half> %1, <8 x half> %2, <8 x half> %3, <8 x half> %4, i32 0, i32 0)
  ret void
}
define void @test_vst4lane_p0i8_v4f16(ptr, <4 x half>, <4 x half>, <4 x half>, <4 x half>) {
; CHECK-LABEL: test_vst4lane_p0i8_v4f16:
; CHECK:       @ %bb.0: @ %entry
; CHECK-NEXT:    @ kill: def $d3 killed $d3 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    @ kill: def $d2 killed $d2 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    @ kill: def $d1 killed $d1 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    @ kill: def $d0 killed $d0 killed $q0_q1 def $q0_q1
; CHECK-NEXT:    vst4.16 {d0[0], d1[0], d2[0], d3[0]}, [r0:64]
; CHECK-NEXT:    bx lr
entry:
  tail call void @llvm.arm.neon.vst4lane.p0.v4f16(ptr %0, <4 x half> %1, <4 x half> %2, <4 x half> %3, <4 x half> %4, i32 0, i32 0)
  ret void
}
