@@ -404,28 +404,34 @@ class SimdOpCheckARM : public SimdOpCheckTest {
404404 check (arm32 ? " vmlal.s8" : " smlal" , 8 * w, i16_1 + i16 (i8_2) * 2 );
405405 check (arm32 ? " vmlal.u8" : " umlal" , 8 * w, u16_1 + u16 (u8_2) * u8_3);
406406 check (arm32 ? " vmlal.u8" : " umlal" , 8 * w, u16_1 + u16 (u8_2) * 2 );
407+ check (arm32 ? " vmlal.u8" : " umlal" , 8 * w, i16_1 + i16 (u8_2) * 2 );
407408 check (arm32 ? " vmlal.s16" : " smlal" , 4 * w, i32_1 + i32 (i16_2) * i16_3);
408409 check (arm32 ? " vmlal.s16" : " smlal" , 4 * w, i32_1 + i32 (i16_2) * 2 );
409410 check (arm32 ? " vmlal.u16" : " umlal" , 4 * w, u32_1 + u32 (u16_2) * u16_3);
410411 check (arm32 ? " vmlal.u16" : " umlal" , 4 * w, u32_1 + u32 (u16_2) * 2 );
412+ check (arm32 ? " vmlal.u16" : " umlal" , 4 * w, i32_1 + i32 (u16_2) * 2 );
411413 check (arm32 ? " vmlal.s32" : " smlal" , 2 * w, i64_1 + i64 (i32_2) * i32_3);
412414 check (arm32 ? " vmlal.s32" : " smlal" , 2 * w, i64_1 + i64 (i32_2) * 2 );
413415 check (arm32 ? " vmlal.u32" : " umlal" , 2 * w, u64_1 + u64 (u32_2) * u32_3);
414416 check (arm32 ? " vmlal.u32" : " umlal" , 2 * w, u64_1 + u64 (u32_2) * 2 );
417+ check (arm32 ? " vmlal.u32" : " umlal" , 2 * w, i64_1 + i64 (u32_2) * 2 );
415418
416419 // VMLSL I - Multiply Subtract Long
417420 check (arm32 ? " vmlsl.s8" : " smlsl" , 8 * w, i16_1 - i16 (i8_2) * i8_3);
418421 check (arm32 ? " vmlsl.s8" : " smlsl" , 8 * w, i16_1 - i16 (i8_2) * 2 );
419422 check (arm32 ? " vmlsl.u8" : " umlsl" , 8 * w, u16_1 - u16 (u8_2) * u8_3);
420423 check (arm32 ? " vmlsl.u8" : " umlsl" , 8 * w, u16_1 - u16 (u8_2) * 2 );
424+ check (arm32 ? " vmlsl.u8" : " umlsl" , 8 * w, i16_1 - i16 (u8_2) * 2 );
421425 check (arm32 ? " vmlsl.s16" : " smlsl" , 4 * w, i32_1 - i32 (i16_2) * i16_3);
422426 check (arm32 ? " vmlsl.s16" : " smlsl" , 4 * w, i32_1 - i32 (i16_2) * 2 );
423427 check (arm32 ? " vmlsl.u16" : " umlsl" , 4 * w, u32_1 - u32 (u16_2) * u16_3);
424428 check (arm32 ? " vmlsl.u16" : " umlsl" , 4 * w, u32_1 - u32 (u16_2) * 2 );
429+ check (arm32 ? " vmlsl.u16" : " umlsl" , 4 * w, i32_1 - i32 (u16_2) * 2 );
425430 check (arm32 ? " vmlsl.s32" : " smlsl" , 2 * w, i64_1 - i64 (i32_2) * i32_3);
426431 check (arm32 ? " vmlsl.s32" : " smlsl" , 2 * w, i64_1 - i64 (i32_2) * 2 );
427432 check (arm32 ? " vmlsl.u32" : " umlsl" , 2 * w, u64_1 - u64 (u32_2) * u32_3);
428433 check (arm32 ? " vmlsl.u32" : " umlsl" , 2 * w, u64_1 - u64 (u32_2) * 2 );
434+ check (arm32 ? " vmlsl.u32" : " umlsl" , 2 * w, i64_1 - i64 (u32_2) * 2 );
429435
430436 // VMOV X F, D Move Register or Immediate
431437 // This is for loading immediates, which we won't do in the inner loop anyway
0 commit comments