1 @ VFP with Neon-style syntax
8 .macro testvmov cond="" f32=".f32" f64=".f64"
12 vmov\cond\f32 s0,#0.25
21 @ Test VFP vmov variants. These can all be conditional.
25 .macro monadic op cond="" f32=".f32" f64=".f64"
36 .macro dyadic op cond="" f32=".f32" f64=".f64"
47 .macro dyadicz op cond="" f32=".f32" f64=".f64"
80 .macro cvtz cond="" s32=".s32" u32=".u32" f32=".f32" f64=".f64"
82 vcvtz\cond\s32\f32 s0,s1
83 vcvtz\cond\u32\f32 s0,s1
84 vcvtz\cond\s32\f64 s0,d1
85 vcvtz\cond\u32\f64 s0,d1
91 .macro cvt cond="" s32=".s32" u32=".u32" f32=".f32" f64=".f64"
93 vcvt\cond\s32\f32 s0,s1
94 vcvt\cond\u32\f32 s0,s1
95 vcvt\cond\f32\s32 s0,s1
96 vcvt\cond\f32\u32 s0,s1
98 vcvt\cond\f32\f64 s0,d1
99 vcvt\cond\f64\f32 d0,s1
100 vcvt\cond\s32\f64 s0,d1
101 vcvt\cond\u32\f64 s0,d1
103 vcvt\cond\f64\s32 d0,s1
104 vcvt\cond\f64\u32 d0,s1
110 .macro cvti cond="" s32=".s32" u32=".u32" f32=".f32" f64=".f64" s16=".s16" u16=".u16"
112 vcvt\cond\s32\f32 s0,s0,#1
113 vcvt\cond\u32\f32 s0,s0,#1
114 vcvt\cond\f32\s32 s0,s0,#1
115 vcvt\cond\f32\u32 s0,s0,#1
117 vcvt\cond\s32\f64 d0,d0,#1
118 vcvt\cond\u32\f64 d0,d0,#1
119 vcvt\cond\f64\s32 d0,d0,#1
120 vcvt\cond\f64\u32 d0,d0,#1
122 vcvt\cond\f32\s16 s0,s0,#1
123 vcvt\cond\f32\u16 s0,s0,#1
124 vcvt\cond\f64\s16 d0,d0,#1
125 vcvt\cond\f64\u16 d0,d0,#1
127 vcvt\cond\s16\f32 s0,s0,#1
128 vcvt\cond\u16\f32 s0,s0,#1
129 vcvt\cond\s16\f64 d0,d0,#1
130 vcvt\cond\u16\f64 d0,d0,#1
136 .macro multi op cond="" n="" ia="ia" db="db"
138 \op\n\cond r0,{s3-s6}
139 \op\ia\cond r0,{s3-s6}
140 \op\ia\cond r0!,{s3-s6}
141 \op\db\cond r0!,{s3-s6}
143 \op\n\cond r0,{d3-d6}
144 \op\ia\cond r0,{d3-d6}
145 \op\ia\cond r0!,{d3-d6}
146 \op\db\cond r0!,{d3-d6}
154 .macro single op cond=""