@@ -2269,21 +2269,23 @@ void mvnw(Register Rd, Register Rm,
2269
2269
#define INSN (NAME, opc, opc2, accepted ) \
2270
2270
void NAME (FloatRegister Vd, SIMD_Arrangement T, FloatRegister Vn) { \
2271
2271
guarantee (T != T1Q && T != T1D, " incorrect arrangement" ); \
2272
- if (accepted < 2 ) guarantee (T != T2S && T != T2D, " incorrect arrangement" ); \
2273
- if (accepted == 0 ) guarantee (T == T8B || T == T16B, " incorrect arrangement" ); \
2272
+ if (accepted < 3 ) guarantee (T != T2D, " incorrect arrangement" ); \
2273
+ if (accepted < 2 ) guarantee (T != T2S, " incorrect arrangement" ); \
2274
+ if (accepted < 1 ) guarantee (T == T8B || T == T16B, " incorrect arrangement" ); \
2274
2275
starti; \
2275
2276
f (0 , 31 ), f ((int )T & 1 , 30 ), f (opc, 29 ), f (0b01110 , 28 , 24 ); \
2276
2277
f ((int )T >> 1 , 23 , 22 ), f (opc2, 21 , 10 ); \
2277
2278
rf (Vn, 5 ), rf (Vd, 0 ); \
2278
2279
}
2279
2280
2280
2281
INSN (absr, 0 , 0b100000101110 , 1 ); // accepted arrangements: T8B, T16B, T4H, T8H, T4S
2281
- INSN (negr, 1 , 0b100000101110 , 2 ); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S, T2D
2282
+ INSN (negr, 1 , 0b100000101110 , 3 ); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S, T2D
2282
2283
INSN (notr, 1 , 0b100000010110 , 0 ); // accepted arrangements: T8B, T16B
2283
2284
INSN (addv, 0 , 0b110001101110 , 1 ); // accepted arrangements: T8B, T16B, T4H, T8H, T4S
2284
2285
INSN (cls, 0 , 0b100000010010 , 1 ); // accepted arrangements: T8B, T16B, T4H, T8H, T4S
2285
2286
INSN (clz, 1 , 0b100000010010 , 1 ); // accepted arrangements: T8B, T16B, T4H, T8H, T4S
2286
2287
INSN (cnt, 0 , 0b100000010110 , 0 ); // accepted arrangements: T8B, T16B
2288
+ INSN (uaddlp, 1 , 0b100000001010 , 2 ); // accepted arrangements: T8B, T16B, T4H, T8H, T2S, T4S
2287
2289
INSN (uaddlv, 1 , 0b110000001110 , 1 ); // accepted arrangements: T8B, T16B, T4H, T8H, T4S
2288
2290
2289
2291
#undef INSN
0 commit comments