1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -arch=amdgcn -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s 2*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -arch=amdgcn -mcpu=SI -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s 3*9880d681SAndroid Build Coastguard Worker// RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=VI %s 4*9880d681SAndroid Build Coastguard Worker 5*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 6*9880d681SAndroid Build Coastguard Worker// Instructions 7*9880d681SAndroid Build Coastguard Worker//===----------------------------------------------------------------------===// 8*9880d681SAndroid Build Coastguard Worker 9*9880d681SAndroid Build Coastguard Workers_movk_i32 s2, 0x6 10*9880d681SAndroid Build Coastguard Worker// GCN: s_movk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb0] 11*9880d681SAndroid Build Coastguard Worker 12*9880d681SAndroid Build Coastguard Workers_cmovk_i32 s2, 0x6 13*9880d681SAndroid Build Coastguard Worker// SICI: s_cmovk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb1] 14*9880d681SAndroid Build Coastguard Worker// VI: s_cmovk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb0] 15*9880d681SAndroid Build Coastguard Worker 16*9880d681SAndroid Build Coastguard Workers_cmpk_eq_i32 s2, 0x6 17*9880d681SAndroid Build Coastguard Worker// SICI: s_cmpk_eq_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb1] 18*9880d681SAndroid Build Coastguard Worker// VI: s_cmpk_eq_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb1] 19*9880d681SAndroid Build Coastguard Worker 20*9880d681SAndroid Build Coastguard Workers_cmpk_lg_i32 s2, 0x6 21*9880d681SAndroid Build Coastguard Worker// SICI: s_cmpk_lg_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb2] 22*9880d681SAndroid Build Coastguard Worker// VI: s_cmpk_lg_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb1] 23*9880d681SAndroid Build Coastguard Worker 24*9880d681SAndroid Build Coastguard Workers_cmpk_gt_i32 s2, 0x6 25*9880d681SAndroid Build Coastguard Worker// SICI: s_cmpk_gt_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb2] 26*9880d681SAndroid Build Coastguard Worker// VI: s_cmpk_gt_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb2] 27*9880d681SAndroid Build Coastguard Worker 28*9880d681SAndroid Build Coastguard Workers_cmpk_ge_i32 s2, 0x6 29*9880d681SAndroid Build Coastguard Worker// SICI: s_cmpk_ge_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb3] 30*9880d681SAndroid Build Coastguard Worker// VI: s_cmpk_ge_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb2] 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Workers_cmpk_lt_i32 s2, 0x6 33*9880d681SAndroid Build Coastguard Worker// SICI: s_cmpk_lt_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb3] 34*9880d681SAndroid Build Coastguard Worker// VI: s_cmpk_lt_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb3] 35*9880d681SAndroid Build Coastguard Worker 36*9880d681SAndroid Build Coastguard Workers_cmpk_le_i32 s2, 0x6 37*9880d681SAndroid Build Coastguard Worker// SICI: s_cmpk_le_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb4] 38*9880d681SAndroid Build Coastguard Worker// VI: s_cmpk_le_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb3] 39*9880d681SAndroid Build Coastguard Worker 40*9880d681SAndroid Build Coastguard Workers_cmpk_eq_u32 s2, 0x6 41*9880d681SAndroid Build Coastguard Worker// SICI: s_cmpk_eq_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb4] 42*9880d681SAndroid Build Coastguard Worker// VI: s_cmpk_eq_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb4] 43*9880d681SAndroid Build Coastguard Worker 44*9880d681SAndroid Build Coastguard Workers_cmpk_lg_u32 s2, 0x6 45*9880d681SAndroid Build Coastguard Worker// SICI: s_cmpk_lg_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb5] 46*9880d681SAndroid Build Coastguard Worker// VI: s_cmpk_lg_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb4] 47*9880d681SAndroid Build Coastguard Worker 48*9880d681SAndroid Build Coastguard Workers_cmpk_gt_u32 s2, 0x6 49*9880d681SAndroid Build Coastguard Worker// SICI: s_cmpk_gt_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb5] 50*9880d681SAndroid Build Coastguard Worker// VI: s_cmpk_gt_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb5] 51*9880d681SAndroid Build Coastguard Worker 52*9880d681SAndroid Build Coastguard Workers_cmpk_ge_u32 s2, 0x6 53*9880d681SAndroid Build Coastguard Worker// SICI: s_cmpk_ge_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb6] 54*9880d681SAndroid Build Coastguard Worker// VI: s_cmpk_ge_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb5] 55*9880d681SAndroid Build Coastguard Worker 56*9880d681SAndroid Build Coastguard Workers_cmpk_lt_u32 s2, 0x6 57*9880d681SAndroid Build Coastguard Worker// SICI: s_cmpk_lt_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb6] 58*9880d681SAndroid Build Coastguard Worker// VI: s_cmpk_lt_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb6] 59*9880d681SAndroid Build Coastguard Worker 60*9880d681SAndroid Build Coastguard Workers_cmpk_le_u32 s2, 0x6 61*9880d681SAndroid Build Coastguard Worker// SICI: s_cmpk_le_u32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb7] 62*9880d681SAndroid Build Coastguard Worker// VI: s_cmpk_le_u32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb6] 63*9880d681SAndroid Build Coastguard Worker 64*9880d681SAndroid Build Coastguard Workers_addk_i32 s2, 0x6 65*9880d681SAndroid Build Coastguard Worker// SICI: s_addk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb7] 66*9880d681SAndroid Build Coastguard Worker// VI: s_addk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb7] 67*9880d681SAndroid Build Coastguard Worker 68*9880d681SAndroid Build Coastguard Workers_mulk_i32 s2, 0x6 69*9880d681SAndroid Build Coastguard Worker// SICI: s_mulk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x02,0xb8] 70*9880d681SAndroid Build Coastguard Worker// VI: s_mulk_i32 s2, 0x6 ; encoding: [0x06,0x00,0x82,0xb7] 71*9880d681SAndroid Build Coastguard Worker 72*9880d681SAndroid Build Coastguard Workers_cbranch_i_fork s[2:3], 0x6 73*9880d681SAndroid Build Coastguard Worker// SICI: s_cbranch_i_fork s[2:3], 0x6 ; encoding: [0x06,0x00,0x82,0xb8] 74*9880d681SAndroid Build Coastguard Worker// VI: s_cbranch_i_fork s[2:3], 0x6 ; encoding: [0x06,0x00,0x02,0xb8] 75*9880d681SAndroid Build Coastguard Worker 76*9880d681SAndroid Build Coastguard Worker// raw number mapped to known HW register 77*9880d681SAndroid Build Coastguard Workers_getreg_b32 s2, 0x6 78*9880d681SAndroid Build Coastguard Worker// SICI: s_getreg_b32 s2, hwreg(HW_REG_LDS_ALLOC, 0, 1) ; encoding: [0x06,0x00,0x02,0xb9] 79*9880d681SAndroid Build Coastguard Worker// VI: s_getreg_b32 s2, hwreg(HW_REG_LDS_ALLOC, 0, 1) ; encoding: [0x06,0x00,0x82,0xb8] 80*9880d681SAndroid Build Coastguard Worker 81*9880d681SAndroid Build Coastguard Worker// HW register identifier, non-default offset/width 82*9880d681SAndroid Build Coastguard Workers_getreg_b32 s2, hwreg(HW_REG_GPR_ALLOC, 1, 31) 83*9880d681SAndroid Build Coastguard Worker// SICI: s_getreg_b32 s2, hwreg(HW_REG_GPR_ALLOC, 1, 31) ; encoding: [0x45,0xf0,0x02,0xb9] 84*9880d681SAndroid Build Coastguard Worker// VI: s_getreg_b32 s2, hwreg(HW_REG_GPR_ALLOC, 1, 31) ; encoding: [0x45,0xf0,0x82,0xb8] 85*9880d681SAndroid Build Coastguard Worker 86*9880d681SAndroid Build Coastguard Worker// HW register code of unknown HW register, non-default offset/width 87*9880d681SAndroid Build Coastguard Workers_getreg_b32 s2, hwreg(51, 1, 31) 88*9880d681SAndroid Build Coastguard Worker// SICI: s_getreg_b32 s2, hwreg(51, 1, 31) ; encoding: [0x73,0xf0,0x02,0xb9] 89*9880d681SAndroid Build Coastguard Worker// VI: s_getreg_b32 s2, hwreg(51, 1, 31) ; encoding: [0x73,0xf0,0x82,0xb8] 90*9880d681SAndroid Build Coastguard Worker 91*9880d681SAndroid Build Coastguard Worker// HW register code of unknown HW register, default offset/width 92*9880d681SAndroid Build Coastguard Workers_getreg_b32 s2, hwreg(51) 93*9880d681SAndroid Build Coastguard Worker// SICI: s_getreg_b32 s2, hwreg(51) ; encoding: [0x33,0xf8,0x02,0xb9] 94*9880d681SAndroid Build Coastguard Worker// VI: s_getreg_b32 s2, hwreg(51) ; encoding: [0x33,0xf8,0x82,0xb8] 95*9880d681SAndroid Build Coastguard Worker 96*9880d681SAndroid Build Coastguard Worker// raw number mapped to known HW register 97*9880d681SAndroid Build Coastguard Workers_setreg_b32 0x6, s2 98*9880d681SAndroid Build Coastguard Worker// SICI: s_setreg_b32 hwreg(HW_REG_LDS_ALLOC, 0, 1), s2 ; encoding: [0x06,0x00,0x82,0xb9] 99*9880d681SAndroid Build Coastguard Worker// VI: s_setreg_b32 hwreg(HW_REG_LDS_ALLOC, 0, 1), s2 ; encoding: [0x06,0x00,0x02,0xb9] 100*9880d681SAndroid Build Coastguard Worker 101*9880d681SAndroid Build Coastguard Worker// raw number mapped to unknown HW register 102*9880d681SAndroid Build Coastguard Workers_setreg_b32 0x33, s2 103*9880d681SAndroid Build Coastguard Worker// SICI: s_setreg_b32 hwreg(51, 0, 1), s2 ; encoding: [0x33,0x00,0x82,0xb9] 104*9880d681SAndroid Build Coastguard Worker// VI: s_setreg_b32 hwreg(51, 0, 1), s2 ; encoding: [0x33,0x00,0x02,0xb9] 105*9880d681SAndroid Build Coastguard Worker 106*9880d681SAndroid Build Coastguard Worker// raw number mapped to known HW register, default offset/width 107*9880d681SAndroid Build Coastguard Workers_setreg_b32 0xf803, s2 108*9880d681SAndroid Build Coastguard Worker// SICI: s_setreg_b32 hwreg(HW_REG_TRAPSTS), s2 ; encoding: [0x03,0xf8,0x82,0xb9] 109*9880d681SAndroid Build Coastguard Worker// VI: s_setreg_b32 hwreg(HW_REG_TRAPSTS), s2 ; encoding: [0x03,0xf8,0x02,0xb9] 110*9880d681SAndroid Build Coastguard Worker 111*9880d681SAndroid Build Coastguard Worker// HW register identifier, default offset/width implied 112*9880d681SAndroid Build Coastguard Workers_setreg_b32 hwreg(HW_REG_HW_ID), s2 113*9880d681SAndroid Build Coastguard Worker// SICI: s_setreg_b32 hwreg(HW_REG_HW_ID), s2 ; encoding: [0x04,0xf8,0x82,0xb9] 114*9880d681SAndroid Build Coastguard Worker// VI: s_setreg_b32 hwreg(HW_REG_HW_ID), s2 ; encoding: [0x04,0xf8,0x02,0xb9] 115*9880d681SAndroid Build Coastguard Worker 116*9880d681SAndroid Build Coastguard Worker// HW register identifier, non-default offset/width 117*9880d681SAndroid Build Coastguard Workers_setreg_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), s2 118*9880d681SAndroid Build Coastguard Worker// SICI: s_setreg_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), s2 ; encoding: [0x45,0xf0,0x82,0xb9] 119*9880d681SAndroid Build Coastguard Worker// VI: s_setreg_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), s2 ; encoding: [0x45,0xf0,0x02,0xb9] 120*9880d681SAndroid Build Coastguard Worker 121*9880d681SAndroid Build Coastguard Worker// HW register code, non-default offset/width 122*9880d681SAndroid Build Coastguard Workers_setreg_b32 hwreg(5, 1, 31), s2 123*9880d681SAndroid Build Coastguard Worker// SICI: s_setreg_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), s2 ; encoding: [0x45,0xf0,0x82,0xb9] 124*9880d681SAndroid Build Coastguard Worker// VI: s_setreg_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), s2 ; encoding: [0x45,0xf0,0x02,0xb9] 125*9880d681SAndroid Build Coastguard Worker 126*9880d681SAndroid Build Coastguard Worker// raw number mapped to known HW register 127*9880d681SAndroid Build Coastguard Workers_setreg_imm32_b32 0x6, 0xff 128*9880d681SAndroid Build Coastguard Worker// SICI: s_setreg_imm32_b32 hwreg(HW_REG_LDS_ALLOC, 0, 1), 0xff ; encoding: [0x06,0x00,0x80,0xba,0xff,0x00,0x00,0x00] 129*9880d681SAndroid Build Coastguard Worker// VI: s_setreg_imm32_b32 hwreg(HW_REG_LDS_ALLOC, 0, 1), 0xff ; encoding: [0x06,0x00,0x00,0xba,0xff,0x00,0x00,0x00] 130*9880d681SAndroid Build Coastguard Worker 131*9880d681SAndroid Build Coastguard Worker// HW register identifier, non-default offset/width 132*9880d681SAndroid Build Coastguard Workers_setreg_imm32_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), 0xff 133*9880d681SAndroid Build Coastguard Worker// SICI: s_setreg_imm32_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), 0xff ; encoding: [0x45,0xf0,0x80,0xba,0xff,0x00,0x00,0x00] 134*9880d681SAndroid Build Coastguard Worker// VI: s_setreg_imm32_b32 hwreg(HW_REG_GPR_ALLOC, 1, 31), 0xff ; encoding: [0x45,0xf0,0x00,0xba,0xff,0x00,0x00,0x00] 135