1 @ VFP with Neon-style syntax
7 .macro testvmov cond="" f32=".f32" f64=".f64"
11 vmov\cond\f32 s0,#0.25
20 @ Test VFP vmov variants. These can all be conditional.
24 .macro monadic op cond="" f32=".f32" f64=".f64"
35 .macro dyadic op cond="" f32=".f32" f64=".f64"
46 .macro dyadicz op cond="" f32=".f32" f64=".f64"
79 .macro cvtz cond="" s32=".s32" u32=".u32" f32=".f32" f64=".f64"
81 vcvtz\cond\s32\f32 s0,s1
82 vcvtz\cond\u32\f32 s0,s1
83 vcvtz\cond\s32\f64 s0,d1
84 vcvtz\cond\u32\f64 s0,d1
90 .macro cvt cond="" s32=".s32" u32=".u32" f32=".f32" f64=".f64"
92 vcvt\cond\s32\f32 s0,s1
93 vcvt\cond\u32\f32 s0,s1
94 vcvt\cond\f32\s32 s0,s1
95 vcvt\cond\f32\u32 s0,s1
97 vcvt\cond\f32\f64 s0,d1
98 vcvt\cond\f64\f32 d0,s1
99 vcvt\cond\s32\f64 s0,d1
100 vcvt\cond\u32\f64 s0,d1
102 vcvt\cond\f64\s32 d0,s1
103 vcvt\cond\f64\u32 d0,s1
109 .macro cvti cond="" s32=".s32" u32=".u32" f32=".f32" f64=".f64" s16=".s16" u16=".u16"
111 vcvt\cond\s32\f32 s0,s0,#1
112 vcvt\cond\u32\f32 s0,s0,#1
113 vcvt\cond\f32\s32 s0,s0,#1
114 vcvt\cond\f32\u32 s0,s0,#1
116 vcvt\cond\s32\f64 d0,d0,#1
117 vcvt\cond\u32\f64 d0,d0,#1
118 vcvt\cond\f64\s32 d0,d0,#1
119 vcvt\cond\f64\u32 d0,d0,#1
121 vcvt\cond\f32\s16 s0,s0,#1
122 vcvt\cond\f32\u16 s0,s0,#1
123 vcvt\cond\f64\s16 d0,d0,#1
124 vcvt\cond\f64\u16 d0,d0,#1
126 vcvt\cond\s16\f32 s0,s0,#1
127 vcvt\cond\u16\f32 s0,s0,#1
128 vcvt\cond\s16\f64 d0,d0,#1
129 vcvt\cond\u16\f64 d0,d0,#1
135 .macro multi op cond="" n="" ia="ia" db="db"
137 \op\n\cond r0,{s3-s6}
138 \op\ia\cond r0,{s3-s6}
139 \op\ia\cond r0!,{s3-s6}
140 \op\db\cond r0!,{s3-s6}
142 \op\n\cond r0,{d3-d6}
143 \op\ia\cond r0,{d3-d6}
144 \op\ia\cond r0!,{d3-d6}
145 \op\db\cond r0!,{d3-d6}
153 .macro single op cond=""