@@ -389,153 +389,23 @@ v_dot8_i32_i4 v0, v1, v2, v3
389389v_dot8_u32_u4 v0 , v1 , v2 , v3
390390
391391//
392- // Test op_sel/op_sel_hi.
392+ // Test op_sel/op_sel_hi: in VOP3P dot , op_sel must be 0 , op_sel_hi cannot appear
393393//
394394
395395// CHECK: encoding: [ 0x00 , 0x40 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
396396v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ]
397- // CHECK: encoding: [ 0x00 , 0x50 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
398- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 0 , 1 ]
399- // CHECK: encoding: [ 0x00 , 0x48 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
400- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 1 , 0 ]
401- // CHECK: encoding: [ 0x00 , 0x58 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
402- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 1 , 1 ]
403- // CHECK: encoding: [ 0x00 , 0x00 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x04 ]
404- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel_hi: [ 0 , 0 ]
405- // CHECK: encoding: [ 0x00 , 0x00 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x14 ]
406- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel_hi: [ 0 , 1 ]
407- // CHECK: encoding: [ 0x00 , 0x00 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x0c ]
408- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel_hi: [ 1 , 0 ]
409- // CHECK: encoding: [ 0x00 , 0x00 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
410- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel_hi: [ 1 , 1 ]
411- // CHECK: encoding: [ 0x00 , 0x00 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x04 ]
412- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ] op_sel_hi: [ 0 , 0 ]
413- // CHECK: encoding: [ 0x00 , 0x00 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x14 ]
414- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ] op_sel_hi: [ 0 , 1 ]
415- // CHECK: encoding: [ 0x00 , 0x00 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x0c ]
416- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ] op_sel_hi: [ 1 , 0 ]
417- // CHECK: encoding: [ 0x00 , 0x00 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
418- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ] op_sel_hi: [ 1 , 1 ]
419- // CHECK: encoding: [ 0x00 , 0x10 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x04 ]
420- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 0 , 1 ] op_sel_hi: [ 0 , 0 ]
421- // CHECK: encoding: [ 0x00 , 0x10 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x14 ]
422- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 0 , 1 ] op_sel_hi: [ 0 , 1 ]
423- // CHECK: encoding: [ 0x00 , 0x10 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x0c ]
424- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 0 , 1 ] op_sel_hi: [ 1 , 0 ]
425- // CHECK: encoding: [ 0x00 , 0x10 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
426- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 0 , 1 ] op_sel_hi: [ 1 , 1 ]
427- // CHECK: encoding: [ 0x00 , 0x08 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x04 ]
428- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 1 , 0 ] op_sel_hi: [ 0 , 0 ]
429- // CHECK: encoding: [ 0x00 , 0x08 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x14 ]
430- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 1 , 0 ] op_sel_hi: [ 0 , 1 ]
431- // CHECK: encoding: [ 0x00 , 0x08 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x0c ]
432- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 1 , 0 ] op_sel_hi: [ 1 , 0 ]
433- // CHECK: encoding: [ 0x00 , 0x08 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
434- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 1 , 0 ] op_sel_hi: [ 1 , 1 ]
435- // CHECK: encoding: [ 0x00 , 0x18 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x04 ]
436- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 1 , 1 ] op_sel_hi: [ 0 , 0 ]
437- // CHECK: encoding: [ 0x00 , 0x18 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x14 ]
438- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 1 , 1 ] op_sel_hi: [ 0 , 1 ]
439- // CHECK: encoding: [ 0x00 , 0x18 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x0c ]
440- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 1 , 1 ] op_sel_hi: [ 1 , 0 ]
441- // CHECK: encoding: [ 0x00 , 0x18 , 0xa3 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
442- v_dot2_f32_f16 v0 , v1 , v2 , v3 op_sel: [ 1 , 1 ] op_sel_hi: [ 1 , 1 ]
443397// CHECK: encoding: [ 0x00 , 0x40 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
444398v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ]
445- // CHECK: encoding: [ 0x00 , 0x50 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
446- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 0 , 1 ]
447- // CHECK: encoding: [ 0x00 , 0x48 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
448- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 1 , 0 ]
449- // CHECK: encoding: [ 0x00 , 0x58 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
450- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 1 , 1 ]
451- // CHECK: encoding: [ 0x00 , 0x00 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x04 ]
452- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel_hi: [ 0 , 0 ]
453- // CHECK: encoding: [ 0x00 , 0x00 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x14 ]
454- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel_hi: [ 0 , 1 ]
455- // CHECK: encoding: [ 0x00 , 0x00 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x0c ]
456- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel_hi: [ 1 , 0 ]
457- // CHECK: encoding: [ 0x00 , 0x00 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
458- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel_hi: [ 1 , 1 ]
459- // CHECK: encoding: [ 0x00 , 0x00 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x04 ]
460- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ] op_sel_hi: [ 0 , 0 ]
461- // CHECK: encoding: [ 0x00 , 0x00 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x14 ]
462- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ] op_sel_hi: [ 0 , 1 ]
463- // CHECK: encoding: [ 0x00 , 0x00 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x0c ]
464- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ] op_sel_hi: [ 1 , 0 ]
465- // CHECK: encoding: [ 0x00 , 0x00 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
466- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ] op_sel_hi: [ 1 , 1 ]
467- // CHECK: encoding: [ 0x00 , 0x10 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x04 ]
468- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 0 , 1 ] op_sel_hi: [ 0 , 0 ]
469- // CHECK: encoding: [ 0x00 , 0x10 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x14 ]
470- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 0 , 1 ] op_sel_hi: [ 0 , 1 ]
471- // CHECK: encoding: [ 0x00 , 0x10 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x0c ]
472- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 0 , 1 ] op_sel_hi: [ 1 , 0 ]
473- // CHECK: encoding: [ 0x00 , 0x10 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
474- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 0 , 1 ] op_sel_hi: [ 1 , 1 ]
475- // CHECK: encoding: [ 0x00 , 0x08 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x04 ]
476- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 1 , 0 ] op_sel_hi: [ 0 , 0 ]
477- // CHECK: encoding: [ 0x00 , 0x08 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x14 ]
478- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 1 , 0 ] op_sel_hi: [ 0 , 1 ]
479- // CHECK: encoding: [ 0x00 , 0x08 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x0c ]
480- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 1 , 0 ] op_sel_hi: [ 1 , 0 ]
481- // CHECK: encoding: [ 0x00 , 0x08 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
482- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 1 , 0 ] op_sel_hi: [ 1 , 1 ]
483- // CHECK: encoding: [ 0x00 , 0x18 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x04 ]
484- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 1 , 1 ] op_sel_hi: [ 0 , 0 ]
485- // CHECK: encoding: [ 0x00 , 0x18 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x14 ]
486- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 1 , 1 ] op_sel_hi: [ 0 , 1 ]
487- // CHECK: encoding: [ 0x00 , 0x18 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x0c ]
488- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 1 , 1 ] op_sel_hi: [ 1 , 0 ]
489- // CHECK: encoding: [ 0x00 , 0x18 , 0xa6 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
490- v_dot2_i32_i16 v0 , v1 , v2 , v3 op_sel: [ 1 , 1 ] op_sel_hi: [ 1 , 1 ]
491399// CHECK: encoding: [ 0x00 , 0x40 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
492400v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ]
493- // CHECK: encoding: [ 0x00 , 0x50 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
494- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 0 , 1 ]
495- // CHECK: encoding: [ 0x00 , 0x48 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
496- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 1 , 0 ]
497- // CHECK: encoding: [ 0x00 , 0x58 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
498- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 1 , 1 ]
499- // CHECK: encoding: [ 0x00 , 0x00 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x04 ]
500- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel_hi: [ 0 , 0 ]
501- // CHECK: encoding: [ 0x00 , 0x00 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x14 ]
502- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel_hi: [ 0 , 1 ]
503- // CHECK: encoding: [ 0x00 , 0x00 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x0c ]
504- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel_hi: [ 1 , 0 ]
505- // CHECK: encoding: [ 0x00 , 0x00 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
506- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel_hi: [ 1 , 1 ]
507- // CHECK: encoding: [ 0x00 , 0x00 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x04 ]
508- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ] op_sel_hi: [ 0 , 0 ]
509- // CHECK: encoding: [ 0x00 , 0x00 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x14 ]
510- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ] op_sel_hi: [ 0 , 1 ]
511- // CHECK: encoding: [ 0x00 , 0x00 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x0c ]
512- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ] op_sel_hi: [ 1 , 0 ]
513- // CHECK: encoding: [ 0x00 , 0x00 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
514- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ] op_sel_hi: [ 1 , 1 ]
515- // CHECK: encoding: [ 0x00 , 0x10 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x04 ]
516- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 0 , 1 ] op_sel_hi: [ 0 , 0 ]
517- // CHECK: encoding: [ 0x00 , 0x10 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x14 ]
518- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 0 , 1 ] op_sel_hi: [ 0 , 1 ]
519- // CHECK: encoding: [ 0x00 , 0x10 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x0c ]
520- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 0 , 1 ] op_sel_hi: [ 1 , 0 ]
521- // CHECK: encoding: [ 0x00 , 0x10 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
522- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 0 , 1 ] op_sel_hi: [ 1 , 1 ]
523- // CHECK: encoding: [ 0x00 , 0x08 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x04 ]
524- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 1 , 0 ] op_sel_hi: [ 0 , 0 ]
525- // CHECK: encoding: [ 0x00 , 0x08 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x14 ]
526- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 1 , 0 ] op_sel_hi: [ 0 , 1 ]
527- // CHECK: encoding: [ 0x00 , 0x08 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x0c ]
528- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 1 , 0 ] op_sel_hi: [ 1 , 0 ]
529- // CHECK: encoding: [ 0x00 , 0x08 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
530- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 1 , 0 ] op_sel_hi: [ 1 , 1 ]
531- // CHECK: encoding: [ 0x00 , 0x18 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x04 ]
532- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 1 , 1 ] op_sel_hi: [ 0 , 0 ]
533- // CHECK: encoding: [ 0x00 , 0x18 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x14 ]
534- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 1 , 1 ] op_sel_hi: [ 0 , 1 ]
535- // CHECK: encoding: [ 0x00 , 0x18 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x0c ]
536- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 1 , 1 ] op_sel_hi: [ 1 , 0 ]
537- // CHECK: encoding: [ 0x00 , 0x18 , 0xa7 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
538- v_dot2_u32_u16 v0 , v1 , v2 , v3 op_sel: [ 1 , 1 ] op_sel_hi: [ 1 , 1 ]
401+ // CHECK: encoding: [ 0x00 , 0x40 , 0xa8 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
402+ v_dot4_i32_i8 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ]
403+ // CHECK: encoding: [ 0x00 , 0x40 , 0xa9 , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
404+ v_dot4_u32_u8 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ]
405+ // CHECK: encoding: [ 0x00 , 0x40 , 0xaa , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
406+ v_dot8_i32_i4 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ]
407+ // CHECK: encoding: [ 0x00 , 0x40 , 0xab , 0xd3 , 0x01 , 0x05 , 0x0e , 0x1c ]
408+ v_dot8_u32_u4 v0 , v1 , v2 , v3 op_sel: [ 0 , 0 ]
539409
540410//
541411// Test clamp.
0 commit comments