.macro cond op | |
.irp cond, eq, ne, gt, ge, lt, le | |
it \cond | |
\op\().i32 q0, q1, #1 | |
.endr | |
.endm | |
.syntax unified | |
.thumb | |
vshrnt.i64 q0, q1, #1 | |
vshrnb.i64 q0, q1, #1 | |
vrshrnt.i64 q0, q1, #1 | |
vrshrnb.i64 q0, q1, #1 | |
vshrnt.i16 q0, q1, #0 | |
vshrnt.i16 q0, q1, #9 | |
vshrnt.i32 q0, q1, #0 | |
vshrnt.i32 q0, q1, #17 | |
vshrnb.i16 q0, q1, #0 | |
vshrnb.i16 q0, q1, #9 | |
vshrnb.i32 q0, q1, #0 | |
vshrnb.i32 q0, q1, #17 | |
cond vshrnt | |
cond vshrnb | |
cond vrshrnt | |
cond vrshrnb | |
it eq | |
vshrnteq.i32 q0, q1, #1 | |
vshrnteq.i32 q0, q1, #1 | |
vpst | |
vshrnteq.i32 q0, q1, #1 | |
vshrntt.i32 q0, q1, #1 | |
vpst | |
vshrnt.i32 q0, q1, #1 | |
it eq | |
vshrnbeq.i32 q0, q1, #1 | |
vshrnbeq.i32 q0, q1, #1 | |
vpst | |
vshrnbeq.i32 q0, q1, #1 | |
vshrnbt.i32 q0, q1, #1 | |
vpst | |
vshrnb.i32 q0, q1, #1 | |
it eq | |
vrshrnteq.i32 q0, q1, #1 | |
vrshrnteq.i32 q0, q1, #1 | |
vpst | |
vrshrnteq.i32 q0, q1, #1 | |
vrshrntt.i32 q0, q1, #1 | |
vpst | |
vrshrnt.i32 q0, q1, #1 | |
it eq | |
vrshrnbeq.i32 q0, q1, #1 | |
vrshrnbeq.i32 q0, q1, #1 | |
vpst | |
vrshrnbeq.i32 q0, q1, #1 | |
vrshrnbt.i32 q0, q1, #1 | |
vpst | |
vrshrnb.i32 q0, q1, #1 |