@@ -577,40 +577,40 @@ define amdgpu_kernel void @add_inline_imm_64_v2f16(ptr addrspace(1) %out, <2 x h
577577}
578578
579579; GCN-LABEL: {{^}}mul_inline_imm_0.5_v2i16:
580- ; GFX9: s_mov_b32 [[K:s[0-9]+]], 0x38003800
581- ; GFX9: v_pk_mul_lo_u16 v0, v0, [[K]]
580+ ; GFX9: s_movk_i32 [[K:s[0-9]+]], 0x3800
581+ ; GFX9: v_pk_mul_lo_u16 v0, v0, [[K]] op_sel_hi:[1,0]
582582
583- ; GFX10: v_pk_mul_lo_u16 v0, 0x38003800 , v0 ; encoding: [0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0xff,0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x00,0x38,0x00,0x38 ]
583+ ; GFX10: v_pk_mul_lo_u16 v0, 0x3800 , v0 op_sel_hi:[0,1] ; encoding: [0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0xff,0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x00,0x38,0x00,0x00 ]
584584define <2 x i16 > @mul_inline_imm_0.5_v2i16 (<2 x i16 > %x ) {
585585 %y = mul <2 x i16 > %x , bitcast (<2 x half > <half 0 .5 , half 0 .5 > to <2 x i16 >)
586586 ret <2 x i16 > %y
587587}
588588
589589; GCN-LABEL: {{^}}mul_inline_imm_neg_0.5_v2i16:
590- ; GFX9: s_mov_b32 [[K:s[0-9]+]], 0xb800b800
591- ; GFX9: v_pk_mul_lo_u16 v0, v0, [[K]]
590+ ; GFX9: s_movk_i32 [[K:s[0-9]+]], 0xb800
591+ ; GFX9: v_pk_mul_lo_u16 v0, v0, [[K]] op_sel_hi:[1,0]
592592
593- ; GFX10: v_pk_mul_lo_u16 v0, 0xb800b800 , v0 ; encoding: [0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0xff,0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x00,0xb8,0x00,0xb8 ]
593+ ; GFX10: v_pk_mul_lo_u16 v0, 0xffffb800 , v0 op_sel_hi:[0,1] ; encoding: [0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0xff,0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x00,0xb8,0xff,0xff ]
594594define <2 x i16 > @mul_inline_imm_neg_0.5_v2i16 (<2 x i16 > %x ) {
595595 %y = mul <2 x i16 > %x , bitcast (<2 x half > <half -0 .5 , half -0 .5 > to <2 x i16 >)
596596 ret <2 x i16 > %y
597597}
598598
599599; GCN-LABEL: {{^}}mul_inline_imm_1.0_v2i16:
600- ; GFX9: s_mov_b32 [[K:s[0-9]+]], 0x3c003c00
601- ; GFX9: v_pk_mul_lo_u16 v0, v0, [[K]]
600+ ; GFX9: s_movk_i32 [[K:s[0-9]+]], 0x3c00
601+ ; GFX9: v_pk_mul_lo_u16 v0, v0, [[K]] op_sel_hi:[1,0]
602602
603- ; GFX10: v_pk_mul_lo_u16 v0, 0x3c003c00 , v0 ; encoding: [0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0xff,0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x00,0x3c,0x00,0x3c ]
603+ ; GFX10: v_pk_mul_lo_u16 v0, 0x3c00 , v0 op_sel_hi:[0,1] ; encoding: [0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0xff,0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x00,0x3c,0x00,0x00 ]
604604define <2 x i16 > @mul_inline_imm_1.0_v2i16 (<2 x i16 > %x ) {
605605 %y = mul <2 x i16 > %x , bitcast (<2 x half > <half 1 .0 , half 1 .0 > to <2 x i16 >)
606606 ret <2 x i16 > %y
607607}
608608
609609; GCN-LABEL: {{^}}mul_inline_imm_neg_1.0_v2i16:
610- ; GFX9: s_mov_b32 [[K:s[0-9]+]], 0xbc00bc00
611- ; GFX9: v_pk_mul_lo_u16 v0, v0, [[K]]
610+ ; GFX9: s_movk_i32 [[K:s[0-9]+]], 0xbc00
611+ ; GFX9: v_pk_mul_lo_u16 v0, v0, [[K]] op_sel_hi:[1,0]
612612
613- ; GFX10: v_pk_mul_lo_u16 v0, 0xbc00bc00 , v0 ; encoding: [0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0xff,0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x00,0xbc,0x00,0xbc ]
613+ ; GFX10: v_pk_mul_lo_u16 v0, 0xffffbc00 , v0 op_sel_hi:[0,1] ; encoding: [0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0xff,0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x00,0xbc,0xff,0xff ]
614614define <2 x i16 > @mul_inline_imm_neg_1.0_v2i16 (<2 x i16 > %x ) {
615615 %y = mul <2 x i16 > %x , bitcast (<2 x half > <half -1 .0 , half -1 .0 > to <2 x i16 >)
616616 ret <2 x i16 > %y
@@ -635,31 +635,31 @@ define <2 x i16> @shl_inline_imm_neg_2.0_v2i16(<2 x i16> %x) {
635635}
636636
637637; GCN-LABEL: {{^}}mul_inline_imm_4.0_v2i16:
638- ; GFX9: s_mov_b32 [[K:s[0-9]+]], 0x44004400
639- ; GFX9: v_pk_mul_lo_u16 v0, v0, [[K]]
638+ ; GFX9: s_movk_i32 [[K:s[0-9]+]], 0x4400
639+ ; GFX9: v_pk_mul_lo_u16 v0, v0, [[K]] op_sel_hi:[1,0]
640640
641- ; GFX10: v_pk_mul_lo_u16 v0, 0x44004400 , v0 ; encoding: [0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0xff,0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x00,0x44,0x00,0x44 ]
641+ ; GFX10: v_pk_mul_lo_u16 v0, 0x4400 , v0 op_sel_hi:[0,1] ; encoding: [0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0xff,0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x00,0x44,0x00,0x00 ]
642642define <2 x i16 > @mul_inline_imm_4.0_v2i16 (<2 x i16 > %x ) {
643643 %y = mul <2 x i16 > %x , bitcast (<2 x half > <half 4 .0 , half 4 .0 > to <2 x i16 >)
644644 ret <2 x i16 > %y
645645
646646}
647647
648648; GCN-LABEL: {{^}}mul_inline_imm_neg_4.0_v2i16:
649- ; GFX9: s_mov_b32 [[K:s[0-9]+]], 0xc400c400
650- ; GFX9: v_pk_mul_lo_u16 v0, v0, [[K]]
649+ ; GFX9: s_movk_i32 [[K:s[0-9]+]], 0xc400
650+ ; GFX9: v_pk_mul_lo_u16 v0, v0, [[K]] op_sel_hi:[1,0]
651651
652- ; GFX10: v_pk_mul_lo_u16 v0, 0xc400c400 , v0 ; encoding: [0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0xff,0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x00,0xc4,0x00,0xc4 ]
652+ ; GFX10: v_pk_mul_lo_u16 v0, 0xffffc400 , v0 op_sel_hi:[0,1] ; encoding: [0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0xff,0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x00,0xc4,0xff,0xff ]
653653define <2 x i16 > @mul_inline_imm_neg_4.0_v2i16 (<2 x i16 > %x ) {
654654 %y = mul <2 x i16 > %x , bitcast (<2 x half > <half -4 .0 , half -4 .0 > to <2 x i16 >)
655655 ret <2 x i16 > %y
656656}
657657
658658; GCN-LABEL: {{^}}mul_inline_imm_inv2pi_v2i16:
659- ; GFX9: s_mov_b32 [[K:s[0-9]+]], 0x31183118
660- ; GFX9: v_pk_mul_lo_u16 v0, v0, [[K]]
659+ ; GFX9: s_movk_i32 [[K:s[0-9]+]], 0x3118
660+ ; GFX9: v_pk_mul_lo_u16 v0, v0, [[K]] op_sel_hi:[1,0]
661661
662- ; GFX10: v_pk_mul_lo_u16 v0, 0x31183118 , v0 ; encoding: [0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0xff,0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x18,0x31,0x18,0x31 ]
662+ ; GFX10: v_pk_mul_lo_u16 v0, 0x3118 , v0 op_sel_hi:[0,1] ; encoding: [0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0xff,0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x{{[0-9a-f]+}},0x18,0x31,0x00,0x00 ]
663663define <2 x i16 > @mul_inline_imm_inv2pi_v2i16 (<2 x i16 > %x ) {
664664 %y = mul <2 x i16 > %x , bitcast (<2 x half > <half 0xH3118, half 0xH3118> to <2 x i16 >)
665665 ret <2 x i16 > %y
0 commit comments