# RUN: llvm-mc -triple=amdgcn -mcpu=gfx1250 -disassemble -show-encoding < %s | FileCheck %s -strict-whitespace --check-prefix=GFX1250

# Test that VOPD3 instructions with non-zero bits in unused operand fields
# are disassembled correctly.

# v_dual_mov_b32 as OpX: vsrc1X (byte 6) and vsrc2X (byte 7) are unused.
# Baseline (all-zero unused fields):
#   v_dual_mov_b32 v255, -1 :: v_dual_fmac_f32 v7, src_scc, v4
#   encoding: [0xc1,0x00,0x20,0xcf,0xfd,0x00,0x00,0x00,0xff,0x04,0x00,0x07]
# With non-zero vsrc1X=0x42 (byte 6) and vsrc2X=0x37 (byte 7):
0xc1,0x00,0x20,0xcf,0xfd,0x00,0x42,0x37,0xff,0x04,0x00,0x07
# GFX1250: v_dual_mov_b32 v255, -1 :: v_dual_fmac_f32 v7, src_scc, v4 ; encoding: [0xc1,0x00,0x20,0xcf,0xfd,0x00,0x00,0x00,0xff,0x04,0x00,0x07]

# v_dual_fmac_f32 as OpX: vsrc2X (byte 7) is unused (src2 is tied to dst).
# Baseline:
#   v_dual_fmac_f32 v255, -1, v4 :: v_dual_add_f32 v7, src_scc, v5
#   encoding: [0xc1,0x40,0x00,0xcf,0xfd,0x00,0x04,0x00,0xff,0x05,0x00,0x07]
# With non-zero vsrc2X=0xab (byte 7):
0xc1,0x40,0x00,0xcf,0xfd,0x00,0x04,0xab,0xff,0x05,0x00,0x07
# GFX1250: v_dual_fmac_f32 v255, -1, v4 :: v_dual_add_f32 v7, src_scc, v5 ; encoding: [0xc1,0x40,0x00,0xcf,0xfd,0x00,0x04,0x00,0xff,0x05,0x00,0x07]

# v_dual_mov_b32 as OpY: vsrc1Y (byte 9) and vsrc2Y (byte 10) are unused.
# Baseline:
#   v_dual_add_f32 v255, -1, v4 :: v_dual_mov_b32 v7, src_scc
#   encoding: [0xc1,0x80,0x10,0xcf,0xfd,0x00,0x04,0x00,0xff,0x00,0x00,0x07]
# With non-zero vsrc1Y=0x42 (byte 9) and vsrc2Y=0x37 (byte 10):
0xc1,0x80,0x10,0xcf,0xfd,0x00,0x04,0x00,0xff,0x42,0x37,0x07
# GFX1250: v_dual_add_f32 v255, -1, v4 :: v_dual_mov_b32 v7, src_scc ; encoding: [0xc1,0x80,0x10,0xcf,0xfd,0x00,0x04,0x00,0xff,0x00,0x00,0x07]

# v_dual_fmac_f32 as OpY: vsrc2Y (byte 10) is unused (src2 is tied to dst).
# Baseline:
#   v_dual_add_f32 v255, -1, v4 :: v_dual_fmac_f32 v7, src_scc, v5
#   encoding: [0xc1,0x00,0x10,0xcf,0xfd,0x00,0x04,0x00,0xff,0x05,0x00,0x07]
# With non-zero vsrc2Y=0xab (byte 10):
0xc1,0x00,0x10,0xcf,0xfd,0x00,0x04,0x00,0xff,0x05,0xab,0x07
# GFX1250: v_dual_add_f32 v255, -1, v4 :: v_dual_fmac_f32 v7, src_scc, v5 ; encoding: [0xc1,0x00,0x10,0xcf,0xfd,0x00,0x04,0x00,0xff,0x05,0x00,0x07]
