# Check for illegal conditional Neon instructions in ARM mode. The instructions # which overlap with VFP are the tricky cases, so test those. .include "itblock.s" .syntax unified .text func: itblock 4 eq vmoveq q0,q1 vmoveq d0,d1 vmoveq.i32 q0,#0 vmoveq.i32 d0,#0 @ Following four *can* be conditional. itblock 4 eq vmoveq.32 d0[1], r2 vmoveq d0,r1,r2 vmoveq.32 r2,d1[0] vmoveq r0,r1,d2 .macro dyadic_eq op eq="eq" f32=".f32" itblock 2 eq \op\eq\f32 d0,d1,d2 \op\eq\f32 q0,q1,q2 .endm dyadic_eq vmul dyadic_eq vmla dyadic_eq vmls dyadic_eq vadd dyadic_eq vsub .macro monadic_eq op eq="eq" f32=".f32" itblock 2 eq \op\eq\f32 d0,d1 \op\eq\f32 q0,q1 .endm monadic_eq vabs monadic_eq vneg .macro cvt to from dot="." itblock 2 eq vcvteq\dot\to\dot\from d0,d1 vcvteq\dot\to\dot\from q0,q1 .endm cvt s32 f32 cvt u32 f32 cvt f32 s32 cvt f32 u32 itblock 4 eq vdupeq.32 d0,r1 vdupeq.32 q0,r1 vdupeq.32 d0,d1[0] vdupeq.32 q0,d1[1]