.macro cond op
.irp cond, eq, ne, gt, ge, lt, le
it \cond
\op\().s32 q0, q1, #1
.endr
.endm

.syntax unified
.thumb
vshr.s64 q0, q1, #1
vshr.i32 q0, q1, #1
vrshr.u64 q0, q1, #1
vrshr.i32 q0, q1, #1
vshr.s8 q0, q1, #9
vshr.u8 q0, q1, #9
vshr.s16 q0, q1, #17
vshr.u16 q0, q1, #17
vshr.s32 q0, q1, #33
vshr.u32 q0, q1, #33
cond vshr
cond vrshr
it eq
vshreq.s32 q0, q1, #1
vshreq.s32 q0, q1, #1
vpst
vshreq.s32 q0, q1, #1
vshrt.s32 q0, q1, #1
vpst
vshr.s32 q0, q1, #1
it eq
vrshreq.s32 q0, q1, #1
vrshreq.s32 q0, q1, #1
vpst
vrshreq.s32 q0, q1, #1
vrshrt.s32 q0, q1, #1
vpst
vrshr.s32 q0, q1, #1
