@@ -237,6 +237,7 @@ void test_svluti4_lane_zt_x2(svuint8_t zn_u8) __arm_streaming __arm_shared_za __
237
237
svluti4_lane_zt_f32_x2 (0 , zn_u8, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
238
238
}
239
239
240
+ <<<<<<< HEAD
240
241
void test_bfmlslb_bad_lane (svfloat32_t zda, svbfloat16_t zn, svbfloat16_t zm) __arm_streaming_compatible {
241
242
svbfmlslb_lane_f32 (zda, zn, zm, 8 ); // expected-error {{argument value 8 is outside the valid range [0, 7]}}
242
243
svbfmlslt_lane_f32 (zda, zn, zm, 8 ); // expected-error {{argument value 8 is outside the valid range [0, 7]}}
@@ -285,3 +286,68 @@ void test_multiply_add_sub_long(uint32_t base, svint8_t s8, svuint8_t u8,
285
286
svusmla_lane_za32_u8_vg4x2 (base, u8x2, s8, 16 ); // expected-error {{argument value 16 is outside the valid range [0, 15]}}
286
287
svusmla_lane_za32_u8_vg4x4 (base, u8x4, s8, 16 ); // expected-error {{argument value 16 is outside the valid range [0, 15]}}
287
288
}
289
+
290
+ void test_vertical_dot_product (uint32_t base, svint16x2_t s16x2, svuint16x2_t u16x2,
291
+ svint8x4_t s8x4, svuint8x4_t u8x4,
292
+ svint16x4_t s16x4, svuint16x4_t u16x4,
293
+ svfloat16x2_t f16x2, svbfloat16x2_t bf16x2,
294
+ svint16_t s16, svuint16_t u16 ,
295
+ svint8_t s8, svuint8_t u8 ,
296
+ svfloat16_t f16 , svbfloat16_t b16) __arm_streaming __arm_shared_za {
297
+ // Test lane indices.
298
+ svvdot_lane_za32_s16_vg1x2 (base, s16x2, s16, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
299
+ svvdot_lane_za32_u16_vg1x2 (base, u16x2, u16 , 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
300
+ svvdot_lane_za32_s8_vg1x4 (base, s8x4, s8, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
301
+ svvdot_lane_za32_u8_vg1x4 (base, u8x4, u8 , 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
302
+ svvdot_lane_za64_s16_vg1x4 (base, s16x4, s16, 2 ); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
303
+ svvdot_lane_za64_u16_vg1x4 (base, u16x4, u16 , 2 ); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
304
+ svvdot_lane_za32_f16_vg1x2 (base, f16x2, f16 , 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
305
+ svvdot_lane_za32_bf16_vg1x2 (base, bf16x2, b16, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
306
+ svsuvdot_lane_za32_s8_vg1x4 (base, s8x4, s8, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
307
+ svusvdot_lane_za32_u8_vg1x4 (base, u8x4, u8 , 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
308
+ }
309
+
310
+ void test_fdot_za32_bad_lane (uint32_t slice_base, svfloat16_t z_f16,
311
+ svfloat16x2_t z_f16x2, svfloat16x4_t z_f16x4,
312
+ svbfloat16_t z_bf16, svbfloat16x2_t z_bf16x2,
313
+ svbfloat16x4_t z_bf16x4) __arm_streaming __arm_shared_za {
314
+ // 16-bit float
315
+ svdot_lane_za32_f16_vg1x2 (slice_base, z_f16x2, z_f16, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
316
+ svdot_lane_za32_f16_vg1x4 (slice_base, z_f16x4, z_f16, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
317
+
318
+ // 16-bit binary float
319
+ svdot_lane_za32_bf16_vg1x2 (slice_base, z_bf16x2, z_bf16, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
320
+ svdot_lane_za32_bf16_vg1x4 (slice_base, z_bf16x4, z_bf16, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
321
+ }
322
+
323
+ void test_svdot_multi_za32_bad_lane (uint32_t slice_base, svuint16_t z_u16,
324
+ svuint16x2_t z_u16x2, svuint16x4_t z_u16x4,
325
+ svint16_t z_s16, svint16x2_t z_s16x2,
326
+ svint16x4_t z_s16x4, svuint8_t z_u8,
327
+ svuint8x2_t z_u8x2, svuint8x4_t z_u8x4,
328
+ svint8_t z_s8, svint8x2_t z_s8x2,
329
+ svint8x4_t z_s8x4) __arm_streaming __arm_shared_za {
330
+ // Multi, indexed (unsigned)
331
+ svdot_lane_za32_u16_vg1x2 (slice_base, z_u16x2, z_u16, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
332
+ svdot_lane_za32_u16_vg1x4 (slice_base, z_u16x4, z_u16, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
333
+ svdot_lane_za32_u8_vg1x2 (slice_base, z_u8x2, z_u8, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
334
+ svdot_lane_za32_u8_vg1x4 (slice_base, z_u8x4, z_u8, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
335
+ svdot_lane_za64_u16_vg1x2 (slice_base, z_u16x2, z_u16, 2 ); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
336
+ svdot_lane_za64_u16_vg1x4 (slice_base, z_u16x4, z_u16, 2 ); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
337
+
338
+ // Multi, indexed (signed)
339
+ svdot_lane_za32_s16_vg1x2 (slice_base, z_s16x2, z_s16, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
340
+ svdot_lane_za32_s16_vg1x4 (slice_base, z_s16x4, z_s16, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
341
+ svdot_lane_za32_s8_vg1x2 (slice_base, z_s8x2, z_s8, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
342
+ svdot_lane_za32_s8_vg1x4 (slice_base, z_s8x4, z_s8, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
343
+ svdot_lane_za64_s16_vg1x2 (slice_base, z_s16x2, z_s16, 2 ); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
344
+ svdot_lane_za64_s16_vg1x4 (slice_base, z_s16x4, z_s16, 2 ); // expected-error {{argument value 2 is outside the valid range [0, 1]}}
345
+
346
+ // Multi, indexed (unsigned by signed)
347
+ svusdot_lane_za32_u8_vg1x2 (slice_base, z_u8x2, z_s8, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
348
+ svusdot_lane_za32_u8_vg1x4 (slice_base, z_u8x4, z_s8, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
349
+
350
+ // Multi, indexed (unsigned by signed)
351
+ svsudot_lane_za32_s8_vg1x2 (slice_base, z_s8x2, z_u8, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
352
+ svsudot_lane_za32_s8_vg1x4 (slice_base, z_s8x4, z_u8, 4 ); // expected-error {{argument value 4 is outside the valid range [0, 3]}}
353
+ }
0 commit comments