Index: llvm/test/MC/AMDGPU/gfx11_asm_vop3.s =================================================================== --- llvm/test/MC/AMDGPU/gfx11_asm_vop3.s +++ llvm/test/MC/AMDGPU/gfx11_asm_vop3.s @@ -6215,12 +6215,32 @@ v_mad_i32_i24 v255, 0xaf123456, vcc_hi, null clamp // GFX11: encoding: [0xff,0x80,0x0a,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +v_mad_i64_i32 v[5:6], s6, v1, s2, s[6:7] +// W32: encoding: [0x05,0x06,0xff,0xd6,0x01,0x05,0x18,0x00] +// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + +v_mad_i64_i32 v[5:6], s6, v255, ttmp15, s[6:7] +// W32: encoding: [0x05,0x06,0xff,0xd6,0xff,0xf7,0x18,0x00] +// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + +v_mad_i64_i32 v[5:6], s6, s1, v2, s[6:7] +// W32: encoding: [0x05,0x06,0xff,0xd6,0x01,0x04,0x1a,0x00] +// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + v_mad_i64_i32 v[5:6], s6, s105, s105, s[6:7] // W32: encoding: [0x05,0x06,0xff,0xd6,0x69,0xd2,0x18,0x00] // W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction -v_mad_i64_i32 v[5:6], s6, ttmp15, ttmp15, s[104:105] -// W32: encoding: [0x05,0x06,0xff,0xd6,0x7b,0xf6,0xa0,0x01] +v_mad_i64_i32 v[5:6], s6, vcc_lo, v255, s[104:105] +// W32: encoding: [0x05,0x06,0xff,0xd6,0x6a,0xfe,0xa3,0x01] +// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + +v_mad_i64_i32 v[5:6], s6, vcc_hi, 0xaf123456, v[3:4] +// W32: encoding: [0x05,0x06,0xff,0xd6,0x6b,0xfe,0x0d,0x04,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + +v_mad_i64_i32 v[5:6], s6, ttmp15, src_scc, v[254:255] +// W32: encoding: [0x05,0x06,0xff,0xd6,0x7b,0xfa,0xf9,0x07] // W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction v_mad_i64_i32 v[5:6], s6, m0, 0.5, ttmp[14:15] @@ -6251,12 +6271,32 @@ // W32: encoding: [0x05,0x7b,0xff,0xd6,0xfd,0xd4,0xf4,0x03] // W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +v_mad_i64_i32 v[5:6], s[12:13], v1, s2, s[6:7] +// W64: encoding: [0x05,0x0c,0xff,0xd6,0x01,0x05,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + +v_mad_i64_i32 v[5:6], s[12:13], v255, ttmp15, s[6:7] +// W64: encoding: [0x05,0x0c,0xff,0xd6,0xff,0xf7,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + +v_mad_i64_i32 v[5:6], s[12:13], s1, v2, s[6:7] +// W64: encoding: [0x05,0x0c,0xff,0xd6,0x01,0x04,0x1a,0x00] +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + v_mad_i64_i32 v[5:6], s[12:13], s105, s105, s[6:7] // W64: encoding: [0x05,0x0c,0xff,0xd6,0x69,0xd2,0x18,0x00] // W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction -v_mad_i64_i32 v[5:6], s[12:13], ttmp15, ttmp15, s[104:105] -// W64: encoding: [0x05,0x0c,0xff,0xd6,0x7b,0xf6,0xa0,0x01] +v_mad_i64_i32 v[5:6], s[12:13], vcc_lo, v255, s[104:105] +// W64: encoding: [0x05,0x0c,0xff,0xd6,0x6a,0xfe,0xa3,0x01] +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + +v_mad_i64_i32 v[5:6], s[12:13], vcc_hi, 0xaf123456, v[3:4] +// W64: encoding: [0x05,0x0c,0xff,0xd6,0x6b,0xfe,0x0d,0x04,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + +v_mad_i64_i32 v[5:6], s[12:13], ttmp15, src_scc, v[254:255] +// W64: encoding: [0x05,0x0c,0xff,0xd6,0x7b,0xfa,0xf9,0x07] // W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction v_mad_i64_i32 v[5:6], s[12:13], m0, 0.5, ttmp[14:15] @@ -6425,12 +6465,32 @@ v_mad_u32_u24 v255, 0xaf123456, vcc_hi, null clamp // GFX11: encoding: [0xff,0x80,0x0b,0xd6,0xff,0xd6,0xf0,0x01,0x56,0x34,0x12,0xaf] +v_mad_u64_u32 v[5:6], s6, v1, s2, s[6:7] +// W32: encoding: [0x05,0x06,0xfe,0xd6,0x01,0x05,0x18,0x00] +// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + +v_mad_u64_u32 v[5:6], s6, v255, ttmp15, s[6:7] +// W32: encoding: [0x05,0x06,0xfe,0xd6,0xff,0xf7,0x18,0x00] +// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + +v_mad_u64_u32 v[5:6], s6, s1, v2, s[6:7] +// W32: encoding: [0x05,0x06,0xfe,0xd6,0x01,0x04,0x1a,0x00] +// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + v_mad_u64_u32 v[5:6], s6, s105, s105, s[6:7] // W32: encoding: [0x05,0x06,0xfe,0xd6,0x69,0xd2,0x18,0x00] // W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction -v_mad_u64_u32 v[5:6], s6, ttmp15, ttmp15, s[104:105] -// W32: encoding: [0x05,0x06,0xfe,0xd6,0x7b,0xf6,0xa0,0x01] +v_mad_u64_u32 v[5:6], s6, vcc_lo, v255, s[104:105] +// W32: encoding: [0x05,0x06,0xfe,0xd6,0x6a,0xfe,0xa3,0x01] +// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + +v_mad_u64_u32 v[5:6], s6, vcc_hi, 0xaf123456, v[3:4] +// W32: encoding: [0x05,0x06,0xfe,0xd6,0x6b,0xfe,0x0d,0x04,0x56,0x34,0x12,0xaf] +// W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + +v_mad_u64_u32 v[5:6], s6, ttmp15, src_scc, v[254:255] +// W32: encoding: [0x05,0x06,0xfe,0xd6,0x7b,0xfa,0xf9,0x07] // W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction v_mad_u64_u32 v[5:6], s6, m0, 0.5, ttmp[14:15] @@ -6461,12 +6521,32 @@ // W32: encoding: [0x05,0x7b,0xfe,0xd6,0xfd,0xd4,0xf4,0x03] // W64-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction +v_mad_u64_u32 v[5:6], s[12:13], v1, s2, s[6:7] +// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x01,0x05,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + +v_mad_u64_u32 v[5:6], s[12:13], v255, ttmp15, s[6:7] +// W64: encoding: [0x05,0x0c,0xfe,0xd6,0xff,0xf7,0x18,0x00] +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + +v_mad_u64_u32 v[5:6], s[12:13], s1, v2, s[6:7] +// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x01,0x04,0x1a,0x00] +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + v_mad_u64_u32 v[5:6], s[12:13], s105, s105, s[6:7] // W64: encoding: [0x05,0x0c,0xfe,0xd6,0x69,0xd2,0x18,0x00] // W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction -v_mad_u64_u32 v[5:6], s[12:13], ttmp15, ttmp15, s[104:105] -// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x7b,0xf6,0xa0,0x01] +v_mad_u64_u32 v[5:6], s[12:13], vcc_lo, v255, s[104:105] +// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x6a,0xfe,0xa3,0x01] +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + +v_mad_u64_u32 v[5:6], s[12:13], vcc_hi, 0xaf123456, v[3:4] +// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x6b,0xfe,0x0d,0x04,0x56,0x34,0x12,0xaf] +// W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction + +v_mad_u64_u32 v[5:6], s[12:13], ttmp15, src_scc, v[254:255] +// W64: encoding: [0x05,0x0c,0xfe,0xd6,0x7b,0xfa,0xf9,0x07] // W32-ERR: :[[@LINE-2]]:{{[0-9]+}}: error: invalid operand for instruction v_mad_u64_u32 v[5:6], s[12:13], m0, 0.5, ttmp[14:15]