.macro cond, op
.irp cond, eq, ne, gt, ge, lt, le
it \cond
\op\().s16 r0, q1
.endr
.endm

.syntax unified
.thumb
vmaxv.u64 r0, q1
vmaxv.f16 r0, q1
vminv.s64 r0, q1
vminv.f32 r0, q1
vmaxav.u16 r0, q1
vmaxav.f32 r0, q1
vminav.u32 r0, q1
vminav.f16 r0, q1
vmaxv.s32 sp, q1
vmaxav.s32 pc, q1
vminv.s32 pc, q1
vminav.s32 sp, q1
cond vmaxv
cond vmaxav
cond vminv
cond vminav
it eq
vmaxveq.s32 r0, q1
vmaxveq.s32 r0, q1
vpst
vmaxveq.s32 r0, q1
vmaxvt.s32 r0, q1
vpst
vmaxv.s32 r0, q1
it eq
vmaxaveq.s32 r0, q1
vmaxaveq.s32 r0, q1
vpst
vmaxaveq.s32 r0, q1
vmaxavt.s32 r0, q1
vpst
vmaxav.s32 r0, q1
it eq
vminveq.s32 r0, q1
vminveq.s32 r0, q1
vpst
vminveq.s32 r0, q1
vminvt.s32 r0, q1
vpst
vminv.s32 r0, q1
it eq
vminaveq.s32 r0, q1
vminaveq.s32 r0, q1
vpst
vminaveq.s32 r0, q1
vminavt.s32 r0, q1
vpst
vminav.s32 r0, q1
