diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_sop1.s b/llvm/test/MC/AMDGPU/gfx11_asm_sop1.s --- a/llvm/test/MC/AMDGPU/gfx11_asm_sop1.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_sop1.s @@ -2964,11 +2964,569 @@ s_sendmsg_rtn_b32 s0, sendmsg(MSG_RTN_GET_TBA) // GFX11: encoding: [0x85,0x4c,0x80,0xbe] -s_ctz_i32_b32 s0, s104 -// GFX11: encoding: [0x68,0x08,0x80,0xbe] +s_ctz_i32_b32 s5, s1 +// GFX11: encoding: [0x01,0x08,0x85,0xbe] -s_ctz_i32_b64 s0, s[2:3] -// GFX11: encoding: [0x02,0x09,0x80,0xbe] +s_ctz_i32_b32 s5, s105 +// GFX11: encoding: [0x69,0x08,0x85,0xbe] -s_and_not1_saveexec_b64 s[104:105], s[102:103] -// GFX11: encoding: [0x66,0x31,0xe8,0xbe] +s_ctz_i32_b32 s5, vcc_lo +// GFX11: encoding: [0x6a,0x08,0x85,0xbe] + +s_ctz_i32_b32 s5, vcc_hi +// GFX11: encoding: [0x6b,0x08,0x85,0xbe] + +s_ctz_i32_b32 s5, ttmp15 +// GFX11: encoding: [0x7b,0x08,0x85,0xbe] + +s_ctz_i32_b32 s105, m0 +// GFX11: encoding: [0x7d,0x08,0xe9,0xbe] + +s_ctz_i32_b32 vcc_lo, exec_lo +// GFX11: encoding: [0x7e,0x08,0xea,0xbe] + +s_ctz_i32_b32 vcc_hi, exec_hi +// GFX11: encoding: [0x7f,0x08,0xeb,0xbe] + +s_ctz_i32_b32 ttmp15, null +// GFX11: encoding: [0x7c,0x08,0xfb,0xbe] + +s_ctz_i32_b32 m0, -1 +// GFX11: encoding: [0xc1,0x08,0xfd,0xbe] + +s_ctz_i32_b32 exec_lo, 0.5 +// GFX11: encoding: [0xf0,0x08,0xfe,0xbe] + +s_ctz_i32_b32 exec_hi, src_scc +// GFX11: encoding: [0xfd,0x08,0xff,0xbe] + +s_ctz_i32_b32 null, 0xaf123456 +// GFX11: encoding: [0xff,0x08,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_ctz_i32_b64 s5, s[2:3] +// GFX11: encoding: [0x02,0x09,0x85,0xbe] + +s_ctz_i32_b64 s5, s[104:105] +// GFX11: encoding: [0x68,0x09,0x85,0xbe] + +s_ctz_i32_b64 s105, vcc +// GFX11: encoding: [0x6a,0x09,0xe9,0xbe] + +s_ctz_i32_b64 vcc_lo, ttmp[14:15] +// GFX11: encoding: [0x7a,0x09,0xea,0xbe] + +s_ctz_i32_b64 vcc_hi, exec +// GFX11: encoding: [0x7e,0x09,0xeb,0xbe] + +s_ctz_i32_b64 ttmp15, null +// GFX11: encoding: [0x7c,0x09,0xfb,0xbe] + +s_ctz_i32_b64 m0, -1 +// GFX11: encoding: [0xc1,0x09,0xfd,0xbe] + +s_ctz_i32_b64 exec_lo, 0.5 +// GFX11: encoding: [0xf0,0x09,0xfe,0xbe] + +s_ctz_i32_b64 exec_hi, src_scc +// GFX11: encoding: [0xfd,0x09,0xff,0xbe] + +s_ctz_i32_b64 null, 0xaf123456 +// GFX11: encoding: [0xff,0x09,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_and_not1_saveexec_b64 s[10:11], s[2:3] +// GFX11: encoding: [0x02,0x31,0x8a,0xbe] + +s_and_not1_saveexec_b64 s[10:11], s[104:105] +// GFX11: encoding: [0x68,0x31,0x8a,0xbe] + +s_and_not1_saveexec_b64 s[10:11], vcc +// GFX11: encoding: [0x6a,0x31,0x8a,0xbe] + +s_and_not1_saveexec_b64 s[10:11], ttmp[14:15] +// GFX11: encoding: [0x7a,0x31,0x8a,0xbe] + +s_and_not1_saveexec_b64 s[10:11], null +// GFX11: encoding: [0x7c,0x31,0x8a,0xbe] + +s_and_not1_saveexec_b64 s[104:105], -1 +// GFX11: encoding: [0xc1,0x31,0xe8,0xbe] + +s_and_not1_saveexec_b64 vcc, 0.5 +// GFX11: encoding: [0xf0,0x31,0xea,0xbe] + +s_and_not1_saveexec_b64 ttmp[14:15], src_scc +// GFX11: encoding: [0xfd,0x31,0xfa,0xbe] + +s_and_not1_saveexec_b64 null, 0xaf123456 +// GFX11: encoding: [0xff,0x31,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_and_not0_saveexec_b32 s5, s1 +// GFX11: encoding: [0x01,0x2c,0x85,0xbe] + +s_and_not0_saveexec_b32 s5, s105 +// GFX11: encoding: [0x69,0x2c,0x85,0xbe] + +s_and_not0_saveexec_b32 s5, vcc_lo +// GFX11: encoding: [0x6a,0x2c,0x85,0xbe] + +s_and_not0_saveexec_b32 s5, vcc_hi +// GFX11: encoding: [0x6b,0x2c,0x85,0xbe] + +s_and_not0_saveexec_b32 s5, ttmp15 +// GFX11: encoding: [0x7b,0x2c,0x85,0xbe] + +s_and_not0_saveexec_b32 s5, exec_lo +// GFX11: encoding: [0x7e,0x2c,0x85,0xbe] + +s_and_not0_saveexec_b32 s105, null +// GFX11: encoding: [0x7c,0x2c,0xe9,0xbe] + +s_and_not0_saveexec_b32 vcc_lo, -1 +// GFX11: encoding: [0xc1,0x2c,0xea,0xbe] + +s_and_not0_saveexec_b32 vcc_hi, 0.5 +// GFX11: encoding: [0xf0,0x2c,0xeb,0xbe] + +s_and_not0_saveexec_b32 ttmp15, src_scc +// GFX11: encoding: [0xfd,0x2c,0xfb,0xbe] + +s_and_not0_saveexec_b32 null, 0xaf123456 +// GFX11: encoding: [0xff,0x2c,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_and_not0_saveexec_b64 s[10:11], s[2:3] +// GFX11: encoding: [0x02,0x2d,0x8a,0xbe] + +s_and_not0_saveexec_b64 s[10:11], s[104:105] +// GFX11: encoding: [0x68,0x2d,0x8a,0xbe] + +s_and_not0_saveexec_b64 s[10:11], vcc +// GFX11: encoding: [0x6a,0x2d,0x8a,0xbe] + +s_and_not0_saveexec_b64 s[10:11], ttmp[14:15] +// GFX11: encoding: [0x7a,0x2d,0x8a,0xbe] + +s_and_not0_saveexec_b64 s[10:11], null +// GFX11: encoding: [0x7c,0x2d,0x8a,0xbe] + +s_and_not0_saveexec_b64 s[104:105], -1 +// GFX11: encoding: [0xc1,0x2d,0xe8,0xbe] + +s_and_not0_saveexec_b64 vcc, 0.5 +// GFX11: encoding: [0xf0,0x2d,0xea,0xbe] + +s_and_not0_saveexec_b64 ttmp[14:15], src_scc +// GFX11: encoding: [0xfd,0x2d,0xfa,0xbe] + +s_and_not0_saveexec_b64 null, 0xaf123456 +// GFX11: encoding: [0xff,0x2d,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_and_not0_wrexec_b32 s5, s1 +// GFX11: encoding: [0x01,0x34,0x85,0xbe] + +s_and_not0_wrexec_b32 s5, s105 +// GFX11: encoding: [0x69,0x34,0x85,0xbe] + +s_and_not0_wrexec_b32 s5, vcc_lo +// GFX11: encoding: [0x6a,0x34,0x85,0xbe] + +s_and_not0_wrexec_b32 s5, vcc_hi +// GFX11: encoding: [0x6b,0x34,0x85,0xbe] + +s_and_not0_wrexec_b32 s5, ttmp15 +// GFX11: encoding: [0x7b,0x34,0x85,0xbe] + +s_and_not0_wrexec_b32 s5, exec_lo +// GFX11: encoding: [0x7e,0x34,0x85,0xbe] + +s_and_not0_wrexec_b32 s105, null +// GFX11: encoding: [0x7c,0x34,0xe9,0xbe] + +s_and_not0_wrexec_b32 vcc_lo, -1 +// GFX11: encoding: [0xc1,0x34,0xea,0xbe] + +s_and_not0_wrexec_b32 vcc_hi, 0.5 +// GFX11: encoding: [0xf0,0x34,0xeb,0xbe] + +s_and_not0_wrexec_b32 ttmp15, src_scc +// GFX11: encoding: [0xfd,0x34,0xfb,0xbe] + +s_and_not0_wrexec_b32 null, 0xaf123456 +// GFX11: encoding: [0xff,0x34,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_and_not0_wrexec_b64 s[10:11], s[2:3] +// GFX11: encoding: [0x02,0x35,0x8a,0xbe] + +s_and_not0_wrexec_b64 s[10:11], s[104:105] +// GFX11: encoding: [0x68,0x35,0x8a,0xbe] + +s_and_not0_wrexec_b64 s[10:11], vcc +// GFX11: encoding: [0x6a,0x35,0x8a,0xbe] + +s_and_not0_wrexec_b64 s[10:11], ttmp[14:15] +// GFX11: encoding: [0x7a,0x35,0x8a,0xbe] + +s_and_not0_wrexec_b64 s[10:11], null +// GFX11: encoding: [0x7c,0x35,0x8a,0xbe] + +s_and_not0_wrexec_b64 s[104:105], -1 +// GFX11: encoding: [0xc1,0x35,0xe8,0xbe] + +s_and_not0_wrexec_b64 vcc, 0.5 +// GFX11: encoding: [0xf0,0x35,0xea,0xbe] + +s_and_not0_wrexec_b64 ttmp[14:15], src_scc +// GFX11: encoding: [0xfd,0x35,0xfa,0xbe] + +s_and_not0_wrexec_b64 null, 0xaf123456 +// GFX11: encoding: [0xff,0x35,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_and_not1_saveexec_b32 s5, s1 +// GFX11: encoding: [0x01,0x30,0x85,0xbe] + +s_and_not1_saveexec_b32 s5, s105 +// GFX11: encoding: [0x69,0x30,0x85,0xbe] + +s_and_not1_saveexec_b32 s5, vcc_lo +// GFX11: encoding: [0x6a,0x30,0x85,0xbe] + +s_and_not1_saveexec_b32 s5, vcc_hi +// GFX11: encoding: [0x6b,0x30,0x85,0xbe] + +s_and_not1_saveexec_b32 s5, ttmp15 +// GFX11: encoding: [0x7b,0x30,0x85,0xbe] + +s_and_not1_saveexec_b32 s5, exec_lo +// GFX11: encoding: [0x7e,0x30,0x85,0xbe] + +s_and_not1_saveexec_b32 s105, null +// GFX11: encoding: [0x7c,0x30,0xe9,0xbe] + +s_and_not1_saveexec_b32 vcc_lo, -1 +// GFX11: encoding: [0xc1,0x30,0xea,0xbe] + +s_and_not1_saveexec_b32 vcc_hi, 0.5 +// GFX11: encoding: [0xf0,0x30,0xeb,0xbe] + +s_and_not1_saveexec_b32 ttmp15, src_scc +// GFX11: encoding: [0xfd,0x30,0xfb,0xbe] + +s_and_not1_saveexec_b32 null, 0xaf123456 +// GFX11: encoding: [0xff,0x30,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_and_not1_wrexec_b32 s5, s1 +// GFX11: encoding: [0x01,0x36,0x85,0xbe] + +s_and_not1_wrexec_b32 s5, s105 +// GFX11: encoding: [0x69,0x36,0x85,0xbe] + +s_and_not1_wrexec_b32 s5, vcc_lo +// GFX11: encoding: [0x6a,0x36,0x85,0xbe] + +s_and_not1_wrexec_b32 s5, vcc_hi +// GFX11: encoding: [0x6b,0x36,0x85,0xbe] + +s_and_not1_wrexec_b32 s5, ttmp15 +// GFX11: encoding: [0x7b,0x36,0x85,0xbe] + +s_and_not1_wrexec_b32 s5, exec_lo +// GFX11: encoding: [0x7e,0x36,0x85,0xbe] + +s_and_not1_wrexec_b32 s105, null +// GFX11: encoding: [0x7c,0x36,0xe9,0xbe] + +s_and_not1_wrexec_b32 vcc_lo, -1 +// GFX11: encoding: [0xc1,0x36,0xea,0xbe] + +s_and_not1_wrexec_b32 vcc_hi, 0.5 +// GFX11: encoding: [0xf0,0x36,0xeb,0xbe] + +s_and_not1_wrexec_b32 ttmp15, src_scc +// GFX11: encoding: [0xfd,0x36,0xfb,0xbe] + +s_and_not1_wrexec_b32 null, 0xaf123456 +// GFX11: encoding: [0xff,0x36,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_and_not1_wrexec_b64 s[10:11], s[2:3] +// GFX11: encoding: [0x02,0x37,0x8a,0xbe] + +s_and_not1_wrexec_b64 s[10:11], s[104:105] +// GFX11: encoding: [0x68,0x37,0x8a,0xbe] + +s_and_not1_wrexec_b64 s[10:11], vcc +// GFX11: encoding: [0x6a,0x37,0x8a,0xbe] + +s_and_not1_wrexec_b64 s[10:11], ttmp[14:15] +// GFX11: encoding: [0x7a,0x37,0x8a,0xbe] + +s_and_not1_wrexec_b64 s[10:11], null +// GFX11: encoding: [0x7c,0x37,0x8a,0xbe] + +s_and_not1_wrexec_b64 s[104:105], -1 +// GFX11: encoding: [0xc1,0x37,0xe8,0xbe] + +s_and_not1_wrexec_b64 vcc, 0.5 +// GFX11: encoding: [0xf0,0x37,0xea,0xbe] + +s_and_not1_wrexec_b64 ttmp[14:15], src_scc +// GFX11: encoding: [0xfd,0x37,0xfa,0xbe] + +s_and_not1_wrexec_b64 null, 0xaf123456 +// GFX11: encoding: [0xff,0x37,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_cls_i32 s5, s1 +// GFX11: encoding: [0x01,0x0c,0x85,0xbe] + +s_cls_i32 s5, s105 +// GFX11: encoding: [0x69,0x0c,0x85,0xbe] + +s_cls_i32 s5, vcc_lo +// GFX11: encoding: [0x6a,0x0c,0x85,0xbe] + +s_cls_i32 s5, vcc_hi +// GFX11: encoding: [0x6b,0x0c,0x85,0xbe] + +s_cls_i32 s5, ttmp15 +// GFX11: encoding: [0x7b,0x0c,0x85,0xbe] + +s_cls_i32 s105, m0 +// GFX11: encoding: [0x7d,0x0c,0xe9,0xbe] + +s_cls_i32 vcc_lo, exec_lo +// GFX11: encoding: [0x7e,0x0c,0xea,0xbe] + +s_cls_i32 vcc_hi, exec_hi +// GFX11: encoding: [0x7f,0x0c,0xeb,0xbe] + +s_cls_i32 ttmp15, null +// GFX11: encoding: [0x7c,0x0c,0xfb,0xbe] + +s_cls_i32 m0, -1 +// GFX11: encoding: [0xc1,0x0c,0xfd,0xbe] + +s_cls_i32 exec_lo, 0.5 +// GFX11: encoding: [0xf0,0x0c,0xfe,0xbe] + +s_cls_i32 exec_hi, src_scc +// GFX11: encoding: [0xfd,0x0c,0xff,0xbe] + +s_cls_i32 null, 0xaf123456 +// GFX11: encoding: [0xff,0x0c,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_cls_i32_i64 s5, s[2:3] +// GFX11: encoding: [0x02,0x0d,0x85,0xbe] + +s_cls_i32_i64 s5, s[104:105] +// GFX11: encoding: [0x68,0x0d,0x85,0xbe] + +s_cls_i32_i64 s105, vcc +// GFX11: encoding: [0x6a,0x0d,0xe9,0xbe] + +s_cls_i32_i64 vcc_lo, ttmp[14:15] +// GFX11: encoding: [0x7a,0x0d,0xea,0xbe] + +s_cls_i32_i64 vcc_hi, exec +// GFX11: encoding: [0x7e,0x0d,0xeb,0xbe] + +s_cls_i32_i64 ttmp15, null +// GFX11: encoding: [0x7c,0x0d,0xfb,0xbe] + +s_cls_i32_i64 m0, -1 +// GFX11: encoding: [0xc1,0x0d,0xfd,0xbe] + +s_cls_i32_i64 exec_lo, 0.5 +// GFX11: encoding: [0xf0,0x0d,0xfe,0xbe] + +s_cls_i32_i64 exec_hi, src_scc +// GFX11: encoding: [0xfd,0x0d,0xff,0xbe] + +s_cls_i32_i64 null, 0xaf123456 +// GFX11: encoding: [0xff,0x0d,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_clz_i32_u32 s5, s1 +// GFX11: encoding: [0x01,0x0a,0x85,0xbe] + +s_clz_i32_u32 s5, s105 +// GFX11: encoding: [0x69,0x0a,0x85,0xbe] + +s_clz_i32_u32 s5, vcc_lo +// GFX11: encoding: [0x6a,0x0a,0x85,0xbe] + +s_clz_i32_u32 s5, vcc_hi +// GFX11: encoding: [0x6b,0x0a,0x85,0xbe] + +s_clz_i32_u32 s5, ttmp15 +// GFX11: encoding: [0x7b,0x0a,0x85,0xbe] + +s_clz_i32_u32 s105, m0 +// GFX11: encoding: [0x7d,0x0a,0xe9,0xbe] + +s_clz_i32_u32 vcc_lo, exec_lo +// GFX11: encoding: [0x7e,0x0a,0xea,0xbe] + +s_clz_i32_u32 vcc_hi, exec_hi +// GFX11: encoding: [0x7f,0x0a,0xeb,0xbe] + +s_clz_i32_u32 ttmp15, null +// GFX11: encoding: [0x7c,0x0a,0xfb,0xbe] + +s_clz_i32_u32 m0, -1 +// GFX11: encoding: [0xc1,0x0a,0xfd,0xbe] + +s_clz_i32_u32 exec_lo, 0.5 +// GFX11: encoding: [0xf0,0x0a,0xfe,0xbe] + +s_clz_i32_u32 exec_hi, src_scc +// GFX11: encoding: [0xfd,0x0a,0xff,0xbe] + +s_clz_i32_u32 null, 0xaf123456 +// GFX11: encoding: [0xff,0x0a,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_clz_i32_u64 s5, s[2:3] +// GFX11: encoding: [0x02,0x0b,0x85,0xbe] + +s_clz_i32_u64 s5, s[104:105] +// GFX11: encoding: [0x68,0x0b,0x85,0xbe] + +s_clz_i32_u64 s105, vcc +// GFX11: encoding: [0x6a,0x0b,0xe9,0xbe] + +s_clz_i32_u64 vcc_lo, ttmp[14:15] +// GFX11: encoding: [0x7a,0x0b,0xea,0xbe] + +s_clz_i32_u64 vcc_hi, exec +// GFX11: encoding: [0x7e,0x0b,0xeb,0xbe] + +s_clz_i32_u64 ttmp15, null +// GFX11: encoding: [0x7c,0x0b,0xfb,0xbe] + +s_clz_i32_u64 m0, -1 +// GFX11: encoding: [0xc1,0x0b,0xfd,0xbe] + +s_clz_i32_u64 exec_lo, 0.5 +// GFX11: encoding: [0xf0,0x0b,0xfe,0xbe] + +s_clz_i32_u64 exec_hi, src_scc +// GFX11: encoding: [0xfd,0x0b,0xff,0xbe] + +s_clz_i32_u64 null, 0xaf123456 +// GFX11: encoding: [0xff,0x0b,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_or_not0_saveexec_b32 s5, s1 +// GFX11: encoding: [0x01,0x2e,0x85,0xbe] + +s_or_not0_saveexec_b32 s5, s105 +// GFX11: encoding: [0x69,0x2e,0x85,0xbe] + +s_or_not0_saveexec_b32 s5, vcc_lo +// GFX11: encoding: [0x6a,0x2e,0x85,0xbe] + +s_or_not0_saveexec_b32 s5, vcc_hi +// GFX11: encoding: [0x6b,0x2e,0x85,0xbe] + +s_or_not0_saveexec_b32 s5, ttmp15 +// GFX11: encoding: [0x7b,0x2e,0x85,0xbe] + +s_or_not0_saveexec_b32 s5, exec_lo +// GFX11: encoding: [0x7e,0x2e,0x85,0xbe] + +s_or_not0_saveexec_b32 s105, null +// GFX11: encoding: [0x7c,0x2e,0xe9,0xbe] + +s_or_not0_saveexec_b32 vcc_lo, -1 +// GFX11: encoding: [0xc1,0x2e,0xea,0xbe] + +s_or_not0_saveexec_b32 vcc_hi, 0.5 +// GFX11: encoding: [0xf0,0x2e,0xeb,0xbe] + +s_or_not0_saveexec_b32 ttmp15, src_scc +// GFX11: encoding: [0xfd,0x2e,0xfb,0xbe] + +s_or_not0_saveexec_b32 null, 0xaf123456 +// GFX11: encoding: [0xff,0x2e,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_or_not0_saveexec_b64 s[10:11], s[2:3] +// GFX11: encoding: [0x02,0x2f,0x8a,0xbe] + +s_or_not0_saveexec_b64 s[10:11], s[104:105] +// GFX11: encoding: [0x68,0x2f,0x8a,0xbe] + +s_or_not0_saveexec_b64 s[10:11], vcc +// GFX11: encoding: [0x6a,0x2f,0x8a,0xbe] + +s_or_not0_saveexec_b64 s[10:11], ttmp[14:15] +// GFX11: encoding: [0x7a,0x2f,0x8a,0xbe] + +s_or_not0_saveexec_b64 s[10:11], null +// GFX11: encoding: [0x7c,0x2f,0x8a,0xbe] + +s_or_not0_saveexec_b64 s[104:105], -1 +// GFX11: encoding: [0xc1,0x2f,0xe8,0xbe] + +s_or_not0_saveexec_b64 vcc, 0.5 +// GFX11: encoding: [0xf0,0x2f,0xea,0xbe] + +s_or_not0_saveexec_b64 ttmp[14:15], src_scc +// GFX11: encoding: [0xfd,0x2f,0xfa,0xbe] + +s_or_not0_saveexec_b64 null, 0xaf123456 +// GFX11: encoding: [0xff,0x2f,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_or_not1_saveexec_b32 s5, s1 +// GFX11: encoding: [0x01,0x32,0x85,0xbe] + +s_or_not1_saveexec_b32 s5, s105 +// GFX11: encoding: [0x69,0x32,0x85,0xbe] + +s_or_not1_saveexec_b32 s5, vcc_lo +// GFX11: encoding: [0x6a,0x32,0x85,0xbe] + +s_or_not1_saveexec_b32 s5, vcc_hi +// GFX11: encoding: [0x6b,0x32,0x85,0xbe] + +s_or_not1_saveexec_b32 s5, ttmp15 +// GFX11: encoding: [0x7b,0x32,0x85,0xbe] + +s_or_not1_saveexec_b32 s5, exec_lo +// GFX11: encoding: [0x7e,0x32,0x85,0xbe] + +s_or_not1_saveexec_b32 s105, null +// GFX11: encoding: [0x7c,0x32,0xe9,0xbe] + +s_or_not1_saveexec_b32 vcc_lo, -1 +// GFX11: encoding: [0xc1,0x32,0xea,0xbe] + +s_or_not1_saveexec_b32 vcc_hi, 0.5 +// GFX11: encoding: [0xf0,0x32,0xeb,0xbe] + +s_or_not1_saveexec_b32 ttmp15, src_scc +// GFX11: encoding: [0xfd,0x32,0xfb,0xbe] + +s_or_not1_saveexec_b32 null, 0xaf123456 +// GFX11: encoding: [0xff,0x32,0xfc,0xbe,0x56,0x34,0x12,0xaf] + +s_or_not1_saveexec_b64 s[10:11], s[2:3] +// GFX11: encoding: [0x02,0x33,0x8a,0xbe] + +s_or_not1_saveexec_b64 s[10:11], s[104:105] +// GFX11: encoding: [0x68,0x33,0x8a,0xbe] + +s_or_not1_saveexec_b64 s[10:11], vcc +// GFX11: encoding: [0x6a,0x33,0x8a,0xbe] + +s_or_not1_saveexec_b64 s[10:11], ttmp[14:15] +// GFX11: encoding: [0x7a,0x33,0x8a,0xbe] + +s_or_not1_saveexec_b64 s[10:11], null +// GFX11: encoding: [0x7c,0x33,0x8a,0xbe] + +s_or_not1_saveexec_b64 s[104:105], -1 +// GFX11: encoding: [0xc1,0x33,0xe8,0xbe] + +s_or_not1_saveexec_b64 vcc, 0.5 +// GFX11: encoding: [0xf0,0x33,0xea,0xbe] + +s_or_not1_saveexec_b64 ttmp[14:15], src_scc +// GFX11: encoding: [0xfd,0x33,0xfa,0xbe] + +s_or_not1_saveexec_b64 null, 0xaf123456 +// GFX11: encoding: [0xff,0x33,0xfc,0xbe,0x56,0x34,0x12,0xaf] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_sop2.s b/llvm/test/MC/AMDGPU/gfx11_asm_sop2.s --- a/llvm/test/MC/AMDGPU/gfx11_asm_sop2.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_sop2.s @@ -4977,8 +4977,179 @@ s_mul_hi_i32 s0, s1, 0xaf123456 // GFX11: encoding: [0x01,0xff,0x00,0x97,0x56,0x34,0x12,0xaf] -s_or_not1_b32 s0, s104, s2 -// GFX11: encoding: [0x68,0x02,0x00,0x92] +s_or_not1_b32 s5, s1, s2 +// GFX11: encoding: [0x01,0x02,0x05,0x92] + +s_or_not1_b32 s5, s105, s105 +// GFX11: encoding: [0x69,0x69,0x05,0x92] + +s_or_not1_b32 s5, vcc_lo, ttmp15 +// GFX11: encoding: [0x6a,0x7b,0x05,0x92] + +s_or_not1_b32 s5, vcc_hi, 0xaf123456 +// GFX11: encoding: [0x6b,0xff,0x05,0x92,0x56,0x34,0x12,0xaf] + +s_or_not1_b32 s5, ttmp15, src_scc +// GFX11: encoding: [0x7b,0xfd,0x05,0x92] + +s_or_not1_b32 s105, m0, 0.5 +// GFX11: encoding: [0x7d,0xf0,0x69,0x92] + +s_or_not1_b32 vcc_lo, exec_lo, -1 +// GFX11: encoding: [0x7e,0xc1,0x6a,0x92] + +s_or_not1_b32 vcc_hi, exec_hi, null +// GFX11: encoding: [0x7f,0x7c,0x6b,0x92] + +s_or_not1_b32 ttmp15, null, exec_lo +// GFX11: encoding: [0x7c,0x7e,0x7b,0x92] + +s_or_not1_b32 m0, -1, exec_hi +// GFX11: encoding: [0xc1,0x7f,0x7d,0x92] + +s_or_not1_b32 exec_lo, 0.5, m0 +// GFX11: encoding: [0xf0,0x7d,0x7e,0x92] + +s_or_not1_b32 exec_hi, src_scc, vcc_lo +// GFX11: encoding: [0xfd,0x6a,0x7f,0x92] + +s_or_not1_b32 null, 0xaf123456, vcc_hi +// GFX11: encoding: [0xff,0x6b,0x7c,0x92,0x56,0x34,0x12,0xaf] + +s_pack_hl_b32_b16 s5, s1, s2 +// GFX11: encoding: [0x01,0x02,0x85,0x9a] + +s_pack_hl_b32_b16 s5, s105, s105 +// GFX11: encoding: [0x69,0x69,0x85,0x9a] + +s_pack_hl_b32_b16 s5, vcc_lo, ttmp15 +// GFX11: encoding: [0x6a,0x7b,0x85,0x9a] + +s_pack_hl_b32_b16 s5, vcc_hi, 0xfe0b +// GFX11: encoding: [0x6b,0xff,0x85,0x9a,0x0b,0xfe,0x00,0x00] + +s_pack_hl_b32_b16 s5, ttmp15, src_scc +// GFX11: encoding: [0x7b,0xfd,0x85,0x9a] + +s_pack_hl_b32_b16 s105, m0, 0.5 +// GFX11: encoding: [0x7d,0xf0,0xe9,0x9a] + +s_pack_hl_b32_b16 vcc_lo, exec_lo, -1 +// GFX11: encoding: [0x7e,0xc1,0xea,0x9a] + +s_pack_hl_b32_b16 vcc_hi, exec_hi, null +// GFX11: encoding: [0x7f,0x7c,0xeb,0x9a] + +s_pack_hl_b32_b16 ttmp15, null, exec_lo +// GFX11: encoding: [0x7c,0x7e,0xfb,0x9a] + +s_pack_hl_b32_b16 m0, -1, exec_hi +// GFX11: encoding: [0xc1,0x7f,0xfd,0x9a] + +s_pack_hl_b32_b16 exec_lo, 0.5, m0 +// GFX11: encoding: [0xf0,0x7d,0xfe,0x9a] + +s_pack_hl_b32_b16 exec_hi, src_scc, vcc_lo +// GFX11: encoding: [0xfd,0x6a,0xff,0x9a] + +s_pack_hl_b32_b16 null, 0xaf123456, vcc_hi +// GFX11: encoding: [0xff,0x6b,0xfc,0x9a,0x56,0x34,0x12,0xaf] + +s_and_not1_b32 s5, s1, s2 +// GFX11: encoding: [0x01,0x02,0x05,0x91] + +s_and_not1_b32 s5, s105, s105 +// GFX11: encoding: [0x69,0x69,0x05,0x91] + +s_and_not1_b32 s5, vcc_lo, ttmp15 +// GFX11: encoding: [0x6a,0x7b,0x05,0x91] + +s_and_not1_b32 s5, vcc_hi, 0xaf123456 +// GFX11: encoding: [0x6b,0xff,0x05,0x91,0x56,0x34,0x12,0xaf] + +s_and_not1_b32 s5, ttmp15, src_scc +// GFX11: encoding: [0x7b,0xfd,0x05,0x91] + +s_and_not1_b32 s105, m0, 0.5 +// GFX11: encoding: [0x7d,0xf0,0x69,0x91] + +s_and_not1_b32 vcc_lo, exec_lo, -1 +// GFX11: encoding: [0x7e,0xc1,0x6a,0x91] + +s_and_not1_b32 vcc_hi, exec_hi, null +// GFX11: encoding: [0x7f,0x7c,0x6b,0x91] + +s_and_not1_b32 ttmp15, null, exec_lo +// GFX11: encoding: [0x7c,0x7e,0x7b,0x91] + +s_and_not1_b32 m0, -1, exec_hi +// GFX11: encoding: [0xc1,0x7f,0x7d,0x91] + +s_and_not1_b32 exec_lo, 0.5, m0 +// GFX11: encoding: [0xf0,0x7d,0x7e,0x91] + +s_and_not1_b32 exec_hi, src_scc, vcc_lo +// GFX11: encoding: [0xfd,0x6a,0x7f,0x91] + +s_and_not1_b32 null, 0xaf123456, vcc_hi +// GFX11: encoding: [0xff,0x6b,0x7c,0x91,0x56,0x34,0x12,0xaf] + +s_and_not1_b64 s[10:11], s[2:3], s[4:5] +// GFX11: encoding: [0x02,0x04,0x8a,0x91] + +s_and_not1_b64 s[10:11], s[104:105], s[104:105] +// GFX11: encoding: [0x68,0x68,0x8a,0x91] + +s_and_not1_b64 s[10:11], vcc, ttmp[14:15] +// GFX11: encoding: [0x6a,0x7a,0x8a,0x91] + +s_and_not1_b64 s[10:11], ttmp[14:15], 0xaf123456 +// GFX11: encoding: [0x7a,0xff,0x8a,0x91,0x56,0x34,0x12,0xaf] + +s_and_not1_b64 s[10:11], exec, src_scc +// GFX11: encoding: [0x7e,0xfd,0x8a,0x91] + +s_and_not1_b64 s[104:105], null, 0.5 +// GFX11: encoding: [0x7c,0xf0,0xe8,0x91] + +s_and_not1_b64 vcc, -1, -1 +// GFX11: encoding: [0xc1,0xc1,0xea,0x91] + +s_and_not1_b64 ttmp[14:15], 0.5, null +// GFX11: encoding: [0xf0,0x7c,0xfa,0x91] + +s_and_not1_b64 exec, src_scc, exec +// GFX11: encoding: [0xfd,0x7e,0xfe,0x91] + +s_and_not1_b64 null, 0xaf123456, vcc +// GFX11: encoding: [0xff,0x6a,0xfc,0x91,0x56,0x34,0x12,0xaf] + +s_or_not1_b64 s[10:11], s[2:3], s[4:5] +// GFX11: encoding: [0x02,0x04,0x8a,0x92] + +s_or_not1_b64 s[10:11], s[104:105], s[104:105] +// GFX11: encoding: [0x68,0x68,0x8a,0x92] + +s_or_not1_b64 s[10:11], vcc, ttmp[14:15] +// GFX11: encoding: [0x6a,0x7a,0x8a,0x92] + +s_or_not1_b64 s[10:11], ttmp[14:15], 0xaf123456 +// GFX11: encoding: [0x7a,0xff,0x8a,0x92,0x56,0x34,0x12,0xaf] + +s_or_not1_b64 s[10:11], exec, src_scc +// GFX11: encoding: [0x7e,0xfd,0x8a,0x92] + +s_or_not1_b64 s[104:105], null, 0.5 +// GFX11: encoding: [0x7c,0xf0,0xe8,0x92] + +s_or_not1_b64 vcc, -1, -1 +// GFX11: encoding: [0xc1,0xc1,0xea,0x92] + +s_or_not1_b64 ttmp[14:15], 0.5, null +// GFX11: encoding: [0xf0,0x7c,0xfa,0x92] + +s_or_not1_b64 exec, src_scc, exec +// GFX11: encoding: [0xfd,0x7e,0xfe,0x92] -s_pack_hl_b32_b16 vcc_lo, s1, s2 -// GFX11: encoding: [0x01,0x02,0xea,0x9a] +s_or_not1_b64 null, 0xaf123456, vcc +// GFX11: encoding: [0xff,0x6a,0xfc,0x92,0x56,0x34,0x12,0xaf] diff --git a/llvm/test/MC/AMDGPU/gfx11_asm_sopp.s b/llvm/test/MC/AMDGPU/gfx11_asm_sopp.s --- a/llvm/test/MC/AMDGPU/gfx11_asm_sopp.s +++ b/llvm/test/MC/AMDGPU/gfx11_asm_sopp.s @@ -112,7 +112,7 @@ // GFX11: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_3) ; encoding: [0x91,0x01,0x87,0xbf] //===----------------------------------------------------------------------===// -// +// s_waitcnt_depctr //===----------------------------------------------------------------------===// s_waitcnt_depctr 0xfffe @@ -121,6 +121,79 @@ s_waitcnt_depctr 0 // GFX11: s_waitcnt_depctr depctr_hold_cnt(0) depctr_sa_sdst(0) depctr_va_vdst(0) depctr_va_sdst(0) depctr_va_ssrc(0) depctr_va_vcc(0) depctr_vm_vsrc(0) ; encoding: [0x00,0x00,0x88,0xbf] +s_waitcnt_depctr depctr_hold_cnt(0) +// GFX11: s_waitcnt_depctr depctr_hold_cnt(0) ; encoding: [0x1f,0xff,0x88,0xbf] + +s_waitcnt_depctr depctr_hold_cnt(1) +// GFX11: s_waitcnt_depctr depctr_hold_cnt(1) depctr_sa_sdst(1) depctr_va_vdst(15) depctr_va_sdst(7) depctr_va_ssrc(1) depctr_va_vcc(1) depctr_vm_vsrc(7) ; encoding: [0x9f,0xff,0x88,0xbf] + +s_waitcnt_depctr depctr_sa_sdst(0) +// GFX11: s_waitcnt_depctr depctr_sa_sdst(0) ; encoding: [0x9e,0xff,0x88,0xbf] + +s_waitcnt_depctr depctr_sa_sdst(1) +// GFX11: s_waitcnt_depctr depctr_hold_cnt(1) depctr_sa_sdst(1) depctr_va_vdst(15) depctr_va_sdst(7) depctr_va_ssrc(1) depctr_va_vcc(1) depctr_vm_vsrc(7) ; encoding: [0x9f,0xff,0x88,0xbf] + +s_waitcnt_depctr depctr_va_vdst(0) +// GFX11: s_waitcnt_depctr depctr_va_vdst(0) ; encoding: [0x9f,0x0f,0x88,0xbf] + +s_waitcnt_depctr depctr_va_vdst(1) +// GFX11: s_waitcnt_depctr depctr_va_vdst(1) ; encoding: [0x9f,0x1f,0x88,0xbf] + +s_waitcnt_depctr depctr_va_vdst(14) +// GFX11: s_waitcnt_depctr depctr_va_vdst(14) ; encoding: [0x9f,0xef,0x88,0xbf] + +s_waitcnt_depctr depctr_va_vdst(15) +// GFX11: s_waitcnt_depctr depctr_hold_cnt(1) depctr_sa_sdst(1) depctr_va_vdst(15) depctr_va_sdst(7) depctr_va_ssrc(1) depctr_va_vcc(1) depctr_vm_vsrc(7) ; encoding: [0x9f,0xff,0x88,0xbf] + +s_waitcnt_depctr depctr_va_sdst(0) +// GFX11: s_waitcnt_depctr depctr_va_sdst(0) ; encoding: [0x9f,0xf1,0x88,0xbf] + +s_waitcnt_depctr depctr_va_sdst(1) +// GFX11: s_waitcnt_depctr depctr_va_sdst(1) ; encoding: [0x9f,0xf3,0x88,0xbf] + +s_waitcnt_depctr depctr_va_sdst(6) +// GFX11: s_waitcnt_depctr depctr_va_sdst(6) ; encoding: [0x9f,0xfd,0x88,0xbf] + +s_waitcnt_depctr depctr_va_sdst(7) +// GFX11: s_waitcnt_depctr depctr_hold_cnt(1) depctr_sa_sdst(1) depctr_va_vdst(15) depctr_va_sdst(7) depctr_va_ssrc(1) depctr_va_vcc(1) depctr_vm_vsrc(7) ; encoding: [0x9f,0xff,0x88,0xbf] + +s_waitcnt_depctr depctr_va_ssrc(0) +// GFX11: s_waitcnt_depctr depctr_va_ssrc(0) ; encoding: [0x9f,0xfe,0x88,0xbf] + +s_waitcnt_depctr depctr_va_ssrc(1) +// GFX11: s_waitcnt_depctr depctr_hold_cnt(1) depctr_sa_sdst(1) depctr_va_vdst(15) depctr_va_sdst(7) depctr_va_ssrc(1) depctr_va_vcc(1) depctr_vm_vsrc(7) ; encoding: [0x9f,0xff,0x88,0xbf] + +s_waitcnt_depctr depctr_va_vcc(0) +// GFX11: s_waitcnt_depctr depctr_va_vcc(0) ; encoding: [0x9d,0xff,0x88,0xbf] + +s_waitcnt_depctr depctr_va_vcc(1) +// GFX11: s_waitcnt_depctr depctr_hold_cnt(1) depctr_sa_sdst(1) depctr_va_vdst(15) depctr_va_sdst(7) depctr_va_ssrc(1) depctr_va_vcc(1) depctr_vm_vsrc(7) ; encoding: [0x9f,0xff,0x88,0xbf] + +s_waitcnt_depctr depctr_vm_vsrc(0) +// GFX11: s_waitcnt_depctr depctr_vm_vsrc(0) ; encoding: [0x83,0xff,0x88,0xbf] + +s_waitcnt_depctr depctr_vm_vsrc(1) +// GFX11: s_waitcnt_depctr depctr_vm_vsrc(1) ; encoding: [0x87,0xff,0x88,0xbf] + +s_waitcnt_depctr depctr_vm_vsrc(6) +// GFX11: s_waitcnt_depctr depctr_vm_vsrc(6) ; encoding: [0x9b,0xff,0x88,0xbf] + +s_waitcnt_depctr depctr_vm_vsrc(7) +// GFX11: s_waitcnt_depctr depctr_hold_cnt(1) depctr_sa_sdst(1) depctr_va_vdst(15) depctr_va_sdst(7) depctr_va_ssrc(1) depctr_va_vcc(1) depctr_vm_vsrc(7) ; encoding: [0x9f,0xff,0x88,0xbf] + +s_waitcnt_depctr depctr_hold_cnt(0) depctr_sa_sdst(0) depctr_va_vdst(0) depctr_va_sdst(0) depctr_va_ssrc(0) depctr_va_vcc(0) depctr_vm_vsrc(0) +// GFX11: s_waitcnt_depctr depctr_hold_cnt(0) depctr_sa_sdst(0) depctr_va_vdst(0) depctr_va_sdst(0) depctr_va_ssrc(0) depctr_va_vcc(0) depctr_vm_vsrc(0) ; encoding: [0x00,0x00,0x88,0xbf] + +s_waitcnt_depctr depctr_hold_cnt(1) & depctr_sa_sdst(1) & depctr_va_vdst(1) & depctr_va_sdst(1) & depctr_va_ssrc(1) & depctr_va_vcc(1) & depctr_vm_vsrc(1) +// GFX11: s_waitcnt_depctr depctr_va_vdst(1) depctr_va_sdst(1) depctr_vm_vsrc(1) ; encoding: [0x87,0x13,0x88,0xbf] + +s_waitcnt_depctr depctr_hold_cnt(1), depctr_sa_sdst(1), depctr_va_vdst(14), depctr_va_sdst(6), depctr_va_ssrc(1), depctr_va_vcc(1), depctr_vm_vsrc(6) +// GFX11: s_waitcnt_depctr depctr_va_vdst(14) depctr_va_sdst(6) depctr_vm_vsrc(6) ; encoding: [0x9b,0xed,0x88,0xbf] + +//===----------------------------------------------------------------------===// +// +//===----------------------------------------------------------------------===// + s_wait_idle // GFX11: s_wait_idle ; encoding: [0x00,0x00,0x8a,0xbf] @@ -339,3 +412,9 @@ s_set_inst_prefetch_distance 0xc1d1 // GFX11: s_set_inst_prefetch_distance 0xc1d1 ; encoding: [0xd1,0xc1,0x84,0xbf] + +s_wait_event 0x3141 +// GFX11: s_wait_event 0x3141 ; encoding: [0x41,0x31,0x8b,0xbf] + +s_wait_event 0xc1d1 +// GFX11: s_wait_event 0xc1d1 ; encoding: [0xd1,0xc1,0x8b,0xbf]