llvm/llvm/test/MC/Disassembler/AMDGPU/gfx12_dasm_sopp.txt

# RUN: llvm-mc -triple=amdgcn -mcpu=gfx1200 -disassemble -show-encoding < %s | FileCheck -strict-whitespace -check-prefixes=GFX12 %s

# GFX12: s_wait_alu 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]
0x00,0x00,0x88,0xbf

# GFX12: s_wait_alu 0xfffe                       ; encoding: [0xfe,0xff,0x88,0xbf]
0xfe,0xff,0x88,0xbf

# GFX12: s_wait_loadcnt 0x1234                   ; encoding: [0x34,0x12,0xc0,0xbf]
0x34,0x12,0xc0,0xbf

# GFX12: s_wait_loadcnt 0xc1d1                   ; encoding: [0xd1,0xc1,0xc0,0xbf]
0xd1,0xc1,0xc0,0xbf

# GFX12: s_wait_storecnt 0x1234                  ; encoding: [0x34,0x12,0xc1,0xbf]
0x34,0x12,0xc1,0xbf

# GFX12: s_wait_storecnt 0xc1d1                  ; encoding: [0xd1,0xc1,0xc1,0xbf]
0xd1,0xc1,0xc1,0xbf

# GFX12: s_wait_samplecnt 0x1234                 ; encoding: [0x34,0x12,0xc2,0xbf]
0x34,0x12,0xc2,0xbf

# GFX12: s_wait_samplecnt 0xc1d1                 ; encoding: [0xd1,0xc1,0xc2,0xbf]
0xd1,0xc1,0xc2,0xbf

# GFX12: s_wait_bvhcnt 0x1234                    ; encoding: [0x34,0x12,0xc3,0xbf]
0x34,0x12,0xc3,0xbf

# GFX12: s_wait_bvhcnt 0xc1d1                    ; encoding: [0xd1,0xc1,0xc3,0xbf]
0xd1,0xc1,0xc3,0xbf

# GFX12: s_wait_expcnt 0x1234                    ; encoding: [0x34,0x12,0xc4,0xbf]
0x34,0x12,0xc4,0xbf

# GFX12: s_wait_expcnt 0xc1d1                    ; encoding: [0xd1,0xc1,0xc4,0xbf]
0xd1,0xc1,0xc4,0xbf

# GFX12: s_wait_dscnt 0x1234                     ; encoding: [0x34,0x12,0xc6,0xbf]
0x34,0x12,0xc6,0xbf

# GFX12: s_wait_dscnt 0xc1d1                     ; encoding: [0xd1,0xc1,0xc6,0xbf]
0xd1,0xc1,0xc6,0xbf

# GFX12: s_wait_kmcnt 0x1234                     ; encoding: [0x34,0x12,0xc7,0xbf]
0x34,0x12,0xc7,0xbf

# GFX12: s_wait_kmcnt 0xc1d1                     ; encoding: [0xd1,0xc1,0xc7,0xbf]
0xd1,0xc1,0xc7,0xbf

# GFX12: s_wait_loadcnt_dscnt 0x1234             ; encoding: [0x34,0x12,0xc8,0xbf]
0x34,0x12,0xc8,0xbf

# GFX12: s_wait_loadcnt_dscnt 0xc1d1             ; encoding: [0xd1,0xc1,0xc8,0xbf]
0xd1,0xc1,0xc8,0xbf

# GFX12: s_wait_storecnt_dscnt 0x1234            ; encoding: [0x34,0x12,0xc9,0xbf]
0x34,0x12,0xc9,0xbf

# GFX12: s_wait_storecnt_dscnt 0xc1d1            ; encoding: [0xd1,0xc1,0xc9,0xbf]
0xd1,0xc1,0xc9,0xbf

# GFX12: s_singleuse_vdst 0x0                    ; encoding: [0x00,0x00,0x93,0xbf]
0x00,0x00,0x93,0xbf

# GFX12: s_singleuse_vdst 0xffff                 ; encoding: [0xff,0xff,0x93,0xbf]
0xff,0xff,0x93,0xbf

# GFX12: s_singleuse_vdst 0x1234                 ; encoding: [0x34,0x12,0x93,0xbf]
0x34,0x12,0x93,0xbf

# GFX12: s_barrier_wait 0xffff                   ; encoding: [0xff,0xff,0x94,0xbf]
0xff,0xff,0x94,0xbf

# GFX12: s_barrier_wait 1                        ; encoding: [0x01,0x00,0x94,0xbf]
0x01,0x00,0x94,0xbf

# GFX12: s_barrier_leave                         ; encoding: [0x00,0x00,0x95,0xbf]
0x00,0x00,0x95,0xbf

# GFX12: s_branch 0                              ; encoding: [0x00,0x00,0xa0,0xbf]
0x00,0x00,0xa0,0xbf

# GFX12: s_branch 4660                           ; encoding: [0x34,0x12,0xa0,0xbf]
0x34,0x12,0xa0,0xbf

# GFX12: s_cbranch_execnz 0                      ; encoding: [0x00,0x00,0xa6,0xbf]
0x00,0x00,0xa6,0xbf

# GFX12: s_cbranch_execnz 4660                   ; encoding: [0x34,0x12,0xa6,0xbf]
0x34,0x12,0xa6,0xbf

# GFX12: s_cbranch_execz 0                       ; encoding: [0x00,0x00,0xa5,0xbf]
0x00,0x00,0xa5,0xbf

# GFX12: s_cbranch_execz 4660                    ; encoding: [0x34,0x12,0xa5,0xbf]
0x34,0x12,0xa5,0xbf

# GFX12: s_cbranch_scc0 0                        ; encoding: [0x00,0x00,0xa1,0xbf]
0x00,0x00,0xa1,0xbf

# GFX12: s_cbranch_scc0 4660                     ; encoding: [0x34,0x12,0xa1,0xbf]
0x34,0x12,0xa1,0xbf

# GFX12: s_cbranch_scc1 0                        ; encoding: [0x00,0x00,0xa2,0xbf]
0x00,0x00,0xa2,0xbf

# GFX12: s_cbranch_scc1 4660                     ; encoding: [0x34,0x12,0xa2,0xbf]
0x34,0x12,0xa2,0xbf

# GFX12: s_cbranch_vccnz 0                       ; encoding: [0x00,0x00,0xa4,0xbf]
0x00,0x00,0xa4,0xbf

# GFX12: s_cbranch_vccnz 4660                    ; encoding: [0x34,0x12,0xa4,0xbf]
0x34,0x12,0xa4,0xbf

# GFX12: s_cbranch_vccz 0                        ; encoding: [0x00,0x00,0xa3,0xbf]
0x00,0x00,0xa3,0xbf

# GFX12: s_cbranch_vccz 4660                     ; encoding: [0x34,0x12,0xa3,0xbf]
0x34,0x12,0xa3,0xbf

# GFX12: s_clause 0x0                            ; encoding: [0x00,0x00,0x85,0xbf]
0x00,0x00,0x85,0xbf

# GFX12: s_clause 0x1234                         ; encoding: [0x34,0x12,0x85,0xbf]
0x34,0x12,0x85,0xbf

# GFX12: s_clause 0xc1d1                         ; encoding: [0xd1,0xc1,0x85,0xbf]
0xd1,0xc1,0x85,0xbf

# GFX12: s_code_end                              ; encoding: [0x00,0x00,0x9f,0xbf]
0x00,0x00,0x9f,0xbf

# GFX12: s_decperflevel 0                        ; encoding: [0x00,0x00,0xb9,0xbf]
0x00,0x00,0xb9,0xbf

# GFX12: s_decperflevel 0x1234                   ; encoding: [0x34,0x12,0xb9,0xbf]
0x34,0x12,0xb9,0xbf

# GFX12: s_decperflevel 0xc1d1                   ; encoding: [0xd1,0xc1,0xb9,0xbf]
0xd1,0xc1,0xb9,0xbf

# GFX12: s_delay_alu 0                           ; encoding: [0x00,0x00,0x87,0xbf]
0x00,0x00,0x87,0xbf

# GFX12: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_1) ; encoding: [0x91,0x00,0x87,0xbf]
0x91,0x00,0x87,0xbf

# GFX12: s_delay_alu instid0(VALU_DEP_1)         ; encoding: [0x01,0x00,0x87,0xbf]
0x01,0x00,0x87,0xbf

# GFX12: s_delay_alu instid0(VALU_DEP_1) | instid1(SALU_CYCLE_1) ; encoding: [0x81,0x04,0x87,0xbf]
0x81,0x04,0x87,0xbf

# GFX12: s_delay_alu instid0(VALU_DEP_1) | instskip(NEXT) | instid1(VALU_DEP_3) ; encoding: [0x91,0x01,0x87,0xbf]
0x91,0x01,0x87,0xbf

# GFX12: s_delay_alu instid1(SALU_CYCLE_2)       ; encoding: [0x00,0x05,0x87,0xbf]
0x00,0x05,0x87,0xbf

# GFX12: s_delay_alu instid1(SALU_CYCLE_3)       ; encoding: [0x80,0x05,0x87,0xbf]
0x80,0x05,0x87,0xbf

# GFX12: s_delay_alu instid0(/* invalid instid value */) | instskip(/* invalid instskip value */) | instid1(/* invalid instid value */) ; encoding: [0xff,0x07,0x87,0xbf]
0xff,0x07,0x87,0xbf

# GFX12: s_denorm_mode 0                         ; encoding: [0x00,0x00,0x92,0xbf]
0x00,0x00,0x92,0xbf

# GFX12: s_denorm_mode 0x1234                    ; encoding: [0x34,0x12,0x92,0xbf]
0x34,0x12,0x92,0xbf

# GFX12: s_denorm_mode 0xc1d1                    ; encoding: [0xd1,0xc1,0x92,0xbf]
0xd1,0xc1,0x92,0xbf

# GFX12: s_endpgm                                ; encoding: [0x00,0x00,0xb0,0xbf]
0x00,0x00,0xb0,0xbf

# GFX12: s_endpgm 1                              ; encoding: [0x01,0x00,0xb0,0xbf]
0x01,0x00,0xb0,0xbf

# GFX12: s_endpgm 65535                          ; encoding: [0xff,0xff,0xb0,0xbf]
0xff,0xff,0xb0,0xbf

# GFX12: s_endpgm_saved                          ; encoding: [0x00,0x00,0xb1,0xbf]
0x00,0x00,0xb1,0xbf

# GFX12: s_icache_inv                            ; encoding: [0x00,0x00,0xbc,0xbf]
0x00,0x00,0xbc,0xbf

# GFX12: s_incperflevel 0                        ; encoding: [0x00,0x00,0xb8,0xbf]
0x00,0x00,0xb8,0xbf

# GFX12: s_incperflevel 0x1234                   ; encoding: [0x34,0x12,0xb8,0xbf]
0x34,0x12,0xb8,0xbf

# GFX12: s_incperflevel 0xc1d1                   ; encoding: [0xd1,0xc1,0xb8,0xbf]
0xd1,0xc1,0xb8,0xbf

# GFX12: s_nop 0                                 ; encoding: [0x00,0x00,0x80,0xbf]
0x00,0x00,0x80,0xbf

# GFX12: s_nop 0x1234                            ; encoding: [0x34,0x12,0x80,0xbf]
0x34,0x12,0x80,0xbf

# GFX12: s_nop 0xc1d1                            ; encoding: [0xd1,0xc1,0x80,0xbf]
0xd1,0xc1,0x80,0xbf

# GFX12: s_round_mode 0x0                        ; encoding: [0x00,0x00,0x91,0xbf]
0x00,0x00,0x91,0xbf

# GFX12: s_round_mode 0x1234                     ; encoding: [0x34,0x12,0x91,0xbf]
0x34,0x12,0x91,0xbf

# GFX12: s_round_mode 0xc1d1                     ; encoding: [0xd1,0xc1,0x91,0xbf]
0xd1,0xc1,0x91,0xbf

# GFX12: s_sendmsg 4660                          ; encoding: [0x34,0x12,0xb6,0xbf]
0x34,0x12,0xb6,0xbf

# GFX12: s_sendmsg 49617                         ; encoding: [0xd1,0xc1,0xb6,0xbf]
0xd1,0xc1,0xb6,0xbf

# GFX12: s_sendmsghalt 4660                      ; encoding: [0x34,0x12,0xb7,0xbf]
0x34,0x12,0xb7,0xbf

# GFX12: s_sendmsghalt 49617                     ; encoding: [0xd1,0xc1,0xb7,0xbf]
0xd1,0xc1,0xb7,0xbf

# GFX12: s_sendmsghalt sendmsg(0, 0, 0)          ; encoding: [0x00,0x00,0xb7,0xbf]
0x00,0x00,0xb7,0xbf

# GFX12: s_sendmsg sendmsg(0, 0, 0)              ; encoding: [0x00,0x00,0xb6,0xbf]
0x00,0x00,0xb6,0xbf

# GFX12: s_sendmsg sendmsg(MSG_RTN_GET_DOORBELL) ; encoding: [0x80,0x00,0xb6,0xbf]
0x80,0x00,0xb6,0xbf

# GFX12: s_sendmsg sendmsg(MSG_RTN_GET_DDID)     ; encoding: [0x81,0x00,0xb6,0xbf]
0x81,0x00,0xb6,0xbf

# GFX12: s_sendmsg sendmsg(MSG_RTN_GET_TMA)      ; encoding: [0x82,0x00,0xb6,0xbf]
0x82,0x00,0xb6,0xbf

# GFX12: s_sendmsg sendmsg(MSG_RTN_GET_REALTIME) ; encoding: [0x83,0x00,0xb6,0xbf]
0x83,0x00,0xb6,0xbf

# GFX12: s_sendmsg sendmsg(MSG_RTN_SAVE_WAVE)    ; encoding: [0x84,0x00,0xb6,0xbf]
0x84,0x00,0xb6,0xbf

# GFX12: s_sendmsg sendmsg(MSG_RTN_GET_TBA)      ; encoding: [0x85,0x00,0xb6,0xbf]
0x85,0x00,0xb6,0xbf

# GFX12: s_sethalt 0                             ; encoding: [0x00,0x00,0x82,0xbf]
0x00,0x00,0x82,0xbf

# GFX12: s_sethalt 0x1234                        ; encoding: [0x34,0x12,0x82,0xbf]
0x34,0x12,0x82,0xbf

# GFX12: s_sethalt 0xc1d1                        ; encoding: [0xd1,0xc1,0x82,0xbf]
0xd1,0xc1,0x82,0xbf

# GFX12: s_setkill 0                             ; encoding: [0x00,0x00,0x81,0xbf]
0x00,0x00,0x81,0xbf

# GFX12: s_setkill 0x1234                        ; encoding: [0x34,0x12,0x81,0xbf]
0x34,0x12,0x81,0xbf

# GFX12: s_setkill 0xc1d1                        ; encoding: [0xd1,0xc1,0x81,0xbf]
0xd1,0xc1,0x81,0xbf

# GFX12: s_setprio 0                             ; encoding: [0x00,0x00,0xb5,0xbf]
0x00,0x00,0xb5,0xbf

# GFX12: s_setprio 0x1234                        ; encoding: [0x34,0x12,0xb5,0xbf]
0x34,0x12,0xb5,0xbf

# GFX12: s_setprio 0xc1d1                        ; encoding: [0xd1,0xc1,0xb5,0xbf]
0xd1,0xc1,0xb5,0xbf

# GFX12: s_sleep 0                               ; encoding: [0x00,0x00,0x83,0xbf]
0x00,0x00,0x83,0xbf

# GFX12: s_sleep 0x1234                          ; encoding: [0x34,0x12,0x83,0xbf]
0x34,0x12,0x83,0xbf

# GFX12: s_sleep 0xc1d1                          ; encoding: [0xd1,0xc1,0x83,0xbf]
0xd1,0xc1,0x83,0xbf

# GFX12: s_trap 0                                ; encoding: [0x00,0x00,0x90,0xbf]
0x00,0x00,0x90,0xbf

# GFX12: s_trap 0x1234                           ; encoding: [0x34,0x12,0x90,0xbf]
0x34,0x12,0x90,0xbf

# GFX12: s_trap 0xc1d1                           ; encoding: [0xd1,0xc1,0x90,0xbf]
0xd1,0xc1,0x90,0xbf

# GFX12: s_ttracedata                            ; encoding: [0x00,0x00,0xba,0xbf]
0x00,0x00,0xba,0xbf

# GFX12: s_ttracedata_imm 0x0                    ; encoding: [0x00,0x00,0xbb,0xbf]
0x00,0x00,0xbb,0xbf

# GFX12: s_ttracedata_imm 0x1234                 ; encoding: [0x34,0x12,0xbb,0xbf]
0x34,0x12,0xbb,0xbf

# GFX12: s_ttracedata_imm 0xc1d1                 ; encoding: [0xd1,0xc1,0xbb,0xbf]
0xd1,0xc1,0xbb,0xbf

# GFX12: s_wait_idle                             ; encoding: [0x00,0x00,0x8a,0xbf]
0x00,0x00,0x8a,0xbf

# GFX12: s_wakeup                                ; encoding: [0x00,0x00,0xb4,0xbf]
0x00,0x00,0xb4,0xbf

# GFX12: s_wait_event 0x3141                     ; encoding: [0x41,0x31,0x8b,0xbf]
0x41,0x31,0x8b,0xbf

# GFX12: s_wait_event 0xc1d1                     ; encoding: [0xd1,0xc1,0x8b,0xbf]
0xd1,0xc1,0x8b,0xbf