1// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck %s 2// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck %s 3 4//===----------------------------------------------------------------------===// 5// Edge Cases 6//===----------------------------------------------------------------------===// 7 8s_nop 0 // CHECK: s_nop 0 ; encoding: [0x00,0x00,0x80,0xbf] 9s_nop 0xffff // CHECK: s_nop 0xffff ; encoding: [0xff,0xff,0x80,0xbf] 10 11//===----------------------------------------------------------------------===// 12// Instructions 13//===----------------------------------------------------------------------===// 14 15 s_nop 1 // CHECK: s_nop 1 ; encoding: [0x01,0x00,0x80,0xbf] 16 s_endpgm // CHECK: s_endpgm ; encoding: [0x00,0x00,0x81,0xbf] 17 s_branch 2 // CHECK: s_branch 2 ; encoding: [0x02,0x00,0x82,0xbf] 18 s_cbranch_scc0 3 // CHECK: s_cbranch_scc0 3 ; encoding: [0x03,0x00,0x84,0xbf] 19 s_cbranch_scc1 4 // CHECK: s_cbranch_scc1 4 ; encoding: [0x04,0x00,0x85,0xbf] 20 s_cbranch_vccz 5 // CHECK: s_cbranch_vccz 5 ; encoding: [0x05,0x00,0x86,0xbf] 21 s_cbranch_vccnz 6 // CHECK: s_cbranch_vccnz 6 ; encoding: [0x06,0x00,0x87,0xbf] 22 s_cbranch_execz 7 // CHECK: s_cbranch_execz 7 ; encoding: [0x07,0x00,0x88,0xbf] 23 s_cbranch_execnz 8 // CHECK: s_cbranch_execnz 8 ; encoding: [0x08,0x00,0x89,0xbf] 24 s_barrier // CHECK: s_barrier ; encoding: [0x00,0x00,0x8a,0xbf] 25 26//===----------------------------------------------------------------------===// 27// s_waitcnt 28//===----------------------------------------------------------------------===// 29 30 s_waitcnt 0 31 // CHECK: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf] 32 33 s_waitcnt vmcnt(0) & expcnt(0) & lgkmcnt(0) 34 // CHECK: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf] 35 36 s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) 37 // CHECK: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf] 38 39 s_waitcnt vmcnt(0), expcnt(0), lgkmcnt(0) 40 // CHECK: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf] 41 42 s_waitcnt vmcnt(1) 43 // CHECK: s_waitcnt vmcnt(1) ; encoding: [0x71,0x07,0x8c,0xbf] 44 45 s_waitcnt expcnt(2) 46 // CHECK: s_waitcnt expcnt(2) ; encoding: [0x2f,0x07,0x8c,0xbf] 47 48 s_waitcnt lgkmcnt(3) 49 // CHECK: s_waitcnt lgkmcnt(3) ; encoding: [0x7f,0x03,0x8c,0xbf] 50 51 s_waitcnt vmcnt(0), expcnt(0) 52 // CHECK: s_waitcnt vmcnt(0) expcnt(0) ; encoding: [0x00,0x07,0x8c,0xbf] 53 54 55 s_sethalt 9 // CHECK: s_sethalt 9 ; encoding: [0x09,0x00,0x8d,0xbf] 56 s_sleep 10 // CHECK: s_sleep 10 ; encoding: [0x0a,0x00,0x8e,0xbf] 57 s_setprio 1 // CHECK: s_setprio 1 ; encoding: [0x01,0x00,0x8f,0xbf] 58 s_sendmsg 2 // CHECK: s_sendmsg Gs(nop), [m0] ; encoding: [0x02,0x00,0x90,0xbf] 59 s_sendmsghalt 3 // CHECK: s_sendmsghalt 3 ; encoding: [0x03,0x00,0x91,0xbf] 60 s_trap 4 // CHECK: s_trap 4 ; encoding: [0x04,0x00,0x92,0xbf] 61 s_icache_inv // CHECK: s_icache_inv ; encoding: [0x00,0x00,0x93,0xbf] 62 s_incperflevel 5 // CHECK: s_incperflevel 5 ; encoding: [0x05,0x00,0x94,0xbf] 63 s_decperflevel 6 // CHECK: s_decperflevel 6 ; encoding: [0x06,0x00,0x95,0xbf] 64 s_ttracedata // CHECK: s_ttracedata ; encoding: [0x00,0x00,0x96,0xbf] 65