1// RUN: not llvm-mc -arch=amdgcn -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=SICI %s 2// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=VI --check-prefix=GFX89 %s 3// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=GFX89 --check-prefix=GFX9 %s 4// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 -show-encoding %s | FileCheck --check-prefix=GCN --check-prefix=GFX10 %s 5 6// RUN: not llvm-mc -arch=amdgcn %s 2>&1 | FileCheck --check-prefix=NOSICI --check-prefix=NOSICIVI --implicit-check-not=error: %s 7// RUN: not llvm-mc -arch=amdgcn -mcpu=fiji %s 2>&1 | FileCheck --check-prefix=NOVI --check-prefix=NOSICIVI --check-prefix=NOGFX89 --implicit-check-not=error: %s 8// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck --check-prefix=NOGFX9 --check-prefix=NOGFX89 --implicit-check-not=error: %s 9// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1010 2>&1 %s | FileCheck --check-prefix=GFX10-ERR --implicit-check-not=error: %s 10 11s_mov_b32 s1, s2 12// SICI: s_mov_b32 s1, s2 ; encoding: [0x02,0x03,0x81,0xbe] 13// GFX89: s_mov_b32 s1, s2 ; encoding: [0x02,0x00,0x81,0xbe] 14// GFX10: s_mov_b32 s1, s2 ; encoding: [0x02,0x03,0x81,0xbe] 15 16s_mov_b32 s1, 1 17// SICI: s_mov_b32 s1, 1 ; encoding: [0x81,0x03,0x81,0xbe] 18// GFX89: s_mov_b32 s1, 1 ; encoding: [0x81,0x00,0x81,0xbe] 19// GFX10: s_mov_b32 s1, 1 ; encoding: [0x81,0x03,0x81,0xbe] 20 21s_mov_b32 s1, 100 22// SICI: s_mov_b32 s1, 0x64 ; encoding: [0xff,0x03,0x81,0xbe,0x64,0x00,0x00,0x00] 23// GFX89: s_mov_b32 s1, 0x64 ; encoding: [0xff,0x00,0x81,0xbe,0x64,0x00,0x00,0x00] 24// GFX10: s_mov_b32 s1, 0x64 ; encoding: [0xff,0x03,0x81,0xbe,0x64,0x00,0x00,0x00] 25 26// Literal constant sign bit 27s_mov_b32 s1, 0x80000000 28// SICI: s_mov_b32 s1, 0x80000000 ; encoding: [0xff,0x03,0x81,0xbe,0x00,0x00,0x00,0x80] 29// GFX89: s_mov_b32 s1, 0x80000000 ; encoding: [0xff,0x00,0x81,0xbe,0x00,0x00,0x00,0x80] 30// GFX10: s_mov_b32 s1, 0x80000000 ; encoding: [0xff,0x03,0x81,0xbe,0x00,0x00,0x00,0x80] 31 32// Negative 32-bit constant 33s_mov_b32 s0, 0xfe5163ab 34// SICI: s_mov_b32 s0, 0xfe5163ab ; encoding: [0xff,0x03,0x80,0xbe,0xab,0x63,0x51,0xfe] 35// GFX89: s_mov_b32 s0, 0xfe5163ab ; encoding: [0xff,0x00,0x80,0xbe,0xab,0x63,0x51,0xfe] 36// GFX10: s_mov_b32 s0, 0xfe5163ab ; encoding: [0xff,0x03,0x80,0xbe,0xab,0x63,0x51,0xfe] 37 38s_mov_b64 s[2:3], s[4:5] 39// SICI: s_mov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x04,0x82,0xbe] 40// GFX89: s_mov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x01,0x82,0xbe] 41// GFX10: s_mov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x04,0x82,0xbe] 42 43s_mov_b64 null, s[4:5] 44// GFX10: s_mov_b64 null, s[4:5] ; encoding: [0x04,0x04,0xfd,0xbe] 45// NOSICIVI: error: 'null' operand is not supported on this GPU 46// NOGFX9: error: 'null' operand is not supported on this GPU 47 48s_mov_b64 s[2:3], 0xffffffffffffffff 49// SICI: s_mov_b64 s[2:3], -1 ; encoding: [0xc1,0x04,0x82,0xbe] 50// GFX89: s_mov_b64 s[2:3], -1 ; encoding: [0xc1,0x01,0x82,0xbe] 51// GFX10: s_mov_b64 s[2:3], -1 ; encoding: [0xc1,0x04,0x82,0xbe] 52 53s_mov_b64 s[2:3], 0xffffffff 54// SICI: s_mov_b64 s[2:3], 0xffffffff ; encoding: [0xff,0x04,0x82,0xbe,0xff,0xff,0xff,0xff] 55// GFX89: s_mov_b64 s[2:3], 0xffffffff ; encoding: [0xff,0x01,0x82,0xbe,0xff,0xff,0xff,0xff] 56// GFX10: s_mov_b64 s[2:3], 0xffffffff ; encoding: [0xff,0x04,0x82,0xbe,0xff,0xff,0xff,0xff] 57 58s_mov_b64 s[0:1], 0x80000000 59// SICI: s_mov_b64 s[0:1], 0x80000000 ; encoding: [0xff,0x04,0x80,0xbe,0x00,0x00,0x00,0x80] 60// GFX89: s_mov_b64 s[0:1], 0x80000000 ; encoding: [0xff,0x01,0x80,0xbe,0x00,0x00,0x00,0x80] 61// GFX10: s_mov_b64 s[0:1], 0x80000000 ; encoding: [0xff,0x04,0x80,0xbe,0x00,0x00,0x00,0x80] 62 63s_mov_b64 s[102:103], -1 64// SICI: s_mov_b64 s[102:103], -1 ; encoding: [0xc1,0x04,0xe6,0xbe] 65// NOGFX89: error: register not available on this GPU 66// GFX10: s_mov_b64 s[102:103], -1 ; encoding: [0xc1,0x04,0xe6,0xbe] 67 68s_cmov_b32 s1, 200 69// SICI: s_cmov_b32 s1, 0xc8 ; encoding: [0xff,0x05,0x81,0xbe,0xc8,0x00,0x00,0x00] 70// GFX89: s_cmov_b32 s1, 0xc8 ; encoding: [0xff,0x02,0x81,0xbe,0xc8,0x00,0x00,0x00] 71// GFX10: s_cmov_b32 s1, 0xc8 ; encoding: [0xff,0x05,0x81,0xbe,0xc8,0x00,0x00,0x00] 72 73s_cmov_b32 s1, 1.0 74// SICI: s_cmov_b32 s1, 1.0 ; encoding: [0xf2,0x05,0x81,0xbe] 75// GFX89: s_cmov_b32 s1, 1.0 ; encoding: [0xf2,0x02,0x81,0xbe] 76// GFX10: s_cmov_b32 s1, 1.0 ; encoding: [0xf2,0x05,0x81,0xbe] 77 78s_cmov_b32 s1, s2 79// SICI: s_cmov_b32 s1, s2 ; encoding: [0x02,0x05,0x81,0xbe] 80// GFX89: s_cmov_b32 s1, s2 ; encoding: [0x02,0x02,0x81,0xbe] 81// GFX10: s_cmov_b32 s1, s2 ; encoding: [0x02,0x05,0x81,0xbe] 82 83//s_cmov_b64 s[2:3], 1.0 84//GCN-FIXME: s_cmov_b64 s[2:3], 1.0 ; encoding: [0xf2,0x05,0x82,0xb3] 85 86s_cmov_b64 s[2:3], s[4:5] 87// SICI: s_cmov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x06,0x82,0xbe] 88// GFX89: s_cmov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x03,0x82,0xbe] 89// GFX10: s_cmov_b64 s[2:3], s[4:5] ; encoding: [0x04,0x06,0x82,0xbe] 90 91s_not_b32 s1, s2 92// SICI: s_not_b32 s1, s2 ; encoding: [0x02,0x07,0x81,0xbe] 93// GFX89: s_not_b32 s1, s2 ; encoding: [0x02,0x04,0x81,0xbe] 94// GFX10: s_not_b32 s1, s2 ; encoding: [0x02,0x07,0x81,0xbe] 95 96s_not_b64 s[2:3], s[4:5] 97// SICI: s_not_b64 s[2:3], s[4:5] ; encoding: [0x04,0x08,0x82,0xbe] 98// GFX89: s_not_b64 s[2:3], s[4:5] ; encoding: [0x04,0x05,0x82,0xbe] 99// GFX10: s_not_b64 s[2:3], s[4:5] ; encoding: [0x04,0x08,0x82,0xbe] 100 101s_wqm_b32 s1, s2 102// SICI: s_wqm_b32 s1, s2 ; encoding: [0x02,0x09,0x81,0xbe] 103// GFX89: s_wqm_b32 s1, s2 ; encoding: [0x02,0x06,0x81,0xbe] 104// GFX10: s_wqm_b32 s1, s2 ; encoding: [0x02,0x09,0x81,0xbe] 105 106s_wqm_b64 s[2:3], s[4:5] 107// SICI: s_wqm_b64 s[2:3], s[4:5] ; encoding: [0x04,0x0a,0x82,0xbe] 108// GFX89: s_wqm_b64 s[2:3], s[4:5] ; encoding: [0x04,0x07,0x82,0xbe] 109// GFX10: s_wqm_b64 s[2:3], s[4:5] ; encoding: [0x04,0x0a,0x82,0xbe] 110 111s_brev_b32 s1, s2 112// SICI: s_brev_b32 s1, s2 ; encoding: [0x02,0x0b,0x81,0xbe] 113// GFX89: s_brev_b32 s1, s2 ; encoding: [0x02,0x08,0x81,0xbe] 114// GFX10: s_brev_b32 s1, s2 ; encoding: [0x02,0x0b,0x81,0xbe] 115 116s_brev_b64 s[2:3], s[4:5] 117// SICI: s_brev_b64 s[2:3], s[4:5] ; encoding: [0x04,0x0c,0x82,0xbe] 118// GFX89: s_brev_b64 s[2:3], s[4:5] ; encoding: [0x04,0x09,0x82,0xbe] 119// GFX10: s_brev_b64 s[2:3], s[4:5] ; encoding: [0x04,0x0c,0x82,0xbe] 120 121s_bcnt0_i32_b32 s1, s2 122// SICI: s_bcnt0_i32_b32 s1, s2 ; encoding: [0x02,0x0d,0x81,0xbe] 123// GFX89: s_bcnt0_i32_b32 s1, s2 ; encoding: [0x02,0x0a,0x81,0xbe] 124// GFX10: s_bcnt0_i32_b32 s1, s2 ; encoding: [0x02,0x0d,0x81,0xbe] 125 126s_bcnt0_i32_b64 s1, s[2:3] 127// SICI: s_bcnt0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0e,0x81,0xbe] 128// GFX89: s_bcnt0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0b,0x81,0xbe] 129// GFX10: s_bcnt0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0e,0x81,0xbe] 130 131s_bcnt1_i32_b32 s1, s2 132// SICI: s_bcnt1_i32_b32 s1, s2 ; encoding: [0x02,0x0f,0x81,0xbe] 133// GFX89: s_bcnt1_i32_b32 s1, s2 ; encoding: [0x02,0x0c,0x81,0xbe] 134// GFX10: s_bcnt1_i32_b32 s1, s2 ; encoding: [0x02,0x0f,0x81,0xbe] 135 136s_bcnt1_i32_b64 s1, s[2:3] 137// SICI: s_bcnt1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x10,0x81,0xbe] 138// GFX89: s_bcnt1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0d,0x81,0xbe] 139// GFX10: s_bcnt1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x10,0x81,0xbe] 140 141s_ff0_i32_b32 s1, s2 142// SICI: s_ff0_i32_b32 s1, s2 ; encoding: [0x02,0x11,0x81,0xbe] 143// GFX89: s_ff0_i32_b32 s1, s2 ; encoding: [0x02,0x0e,0x81,0xbe] 144// GFX10: s_ff0_i32_b32 s1, s2 ; encoding: [0x02,0x11,0x81,0xbe] 145 146s_ff0_i32_b64 s1, s[2:3] 147// SICI: s_ff0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x12,0x81,0xbe] 148// GFX89: s_ff0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x0f,0x81,0xbe] 149// GFX10: s_ff0_i32_b64 s1, s[2:3] ; encoding: [0x02,0x12,0x81,0xbe] 150 151s_ff1_i32_b32 s1, s2 152// SICI: s_ff1_i32_b32 s1, s2 ; encoding: [0x02,0x13,0x81,0xbe] 153// GFX89: s_ff1_i32_b32 s1, s2 ; encoding: [0x02,0x10,0x81,0xbe] 154// GFX10: s_ff1_i32_b32 s1, s2 ; encoding: [0x02,0x13,0x81,0xbe] 155 156s_ff1_i32_b64 s1, s[2:3] 157// SICI: s_ff1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x14,0x81,0xbe] 158// GFX89: s_ff1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x11,0x81,0xbe] 159// GFX10: s_ff1_i32_b64 s1, s[2:3] ; encoding: [0x02,0x14,0x81,0xbe] 160 161s_flbit_i32_b32 s1, s2 162// SICI: s_flbit_i32_b32 s1, s2 ; encoding: [0x02,0x15,0x81,0xbe] 163// GFX89: s_flbit_i32_b32 s1, s2 ; encoding: [0x02,0x12,0x81,0xbe] 164// GFX10: s_flbit_i32_b32 s1, s2 ; encoding: [0x02,0x15,0x81,0xbe] 165 166s_flbit_i32_b64 s1, s[2:3] 167// SICI: s_flbit_i32_b64 s1, s[2:3] ; encoding: [0x02,0x16,0x81,0xbe] 168// GFX89: s_flbit_i32_b64 s1, s[2:3] ; encoding: [0x02,0x13,0x81,0xbe] 169// GFX10: s_flbit_i32_b64 s1, s[2:3] ; encoding: [0x02,0x16,0x81,0xbe] 170 171s_flbit_i32 s1, s2 172// SICI: s_flbit_i32 s1, s2 ; encoding: [0x02,0x17,0x81,0xbe] 173// GFX89: s_flbit_i32 s1, s2 ; encoding: [0x02,0x14,0x81,0xbe] 174// GFX10: s_flbit_i32 s1, s2 ; encoding: [0x02,0x17,0x81,0xbe] 175 176s_flbit_i32_i64 s1, s[2:3] 177// SICI: s_flbit_i32_i64 s1, s[2:3] ; encoding: [0x02,0x18,0x81,0xbe] 178// GFX89: s_flbit_i32_i64 s1, s[2:3] ; encoding: [0x02,0x15,0x81,0xbe] 179// GFX10: s_flbit_i32_i64 s1, s[2:3] ; encoding: [0x02,0x18,0x81,0xbe] 180 181s_sext_i32_i8 s1, s2 182// SICI: s_sext_i32_i8 s1, s2 ; encoding: [0x02,0x19,0x81,0xbe] 183// GFX89: s_sext_i32_i8 s1, s2 ; encoding: [0x02,0x16,0x81,0xbe] 184// GFX10: s_sext_i32_i8 s1, s2 ; encoding: [0x02,0x19,0x81,0xbe] 185 186s_sext_i32_i16 s1, s2 187// SICI: s_sext_i32_i16 s1, s2 ; encoding: [0x02,0x1a,0x81,0xbe] 188// GFX89: s_sext_i32_i16 s1, s2 ; encoding: [0x02,0x17,0x81,0xbe] 189// GFX10: s_sext_i32_i16 s1, s2 ; encoding: [0x02,0x1a,0x81,0xbe] 190 191s_bitset0_b32 s1, s2 192// SICI: s_bitset0_b32 s1, s2 ; encoding: [0x02,0x1b,0x81,0xbe] 193// GFX89: s_bitset0_b32 s1, s2 ; encoding: [0x02,0x18,0x81,0xbe] 194// GFX10: s_bitset0_b32 s1, s2 ; encoding: [0x02,0x1b,0x81,0xbe] 195 196s_bitset0_b64 s[2:3], s4 197// SICI: s_bitset0_b64 s[2:3], s4 ; encoding: [0x04,0x1c,0x82,0xbe] 198// GFX89: s_bitset0_b64 s[2:3], s4 ; encoding: [0x04,0x19,0x82,0xbe] 199// GFX10: s_bitset0_b64 s[2:3], s4 ; encoding: [0x04,0x1c,0x82,0xbe] 200 201s_bitset1_b32 s1, s2 202// SICI: s_bitset1_b32 s1, s2 ; encoding: [0x02,0x1d,0x81,0xbe] 203// GFX89: s_bitset1_b32 s1, s2 ; encoding: [0x02,0x1a,0x81,0xbe] 204// GFX10: s_bitset1_b32 s1, s2 ; encoding: [0x02,0x1d,0x81,0xbe] 205 206s_bitset1_b64 s[2:3], s4 207// SICI: s_bitset1_b64 s[2:3], s4 ; encoding: [0x04,0x1e,0x82,0xbe] 208// GFX89: s_bitset1_b64 s[2:3], s4 ; encoding: [0x04,0x1b,0x82,0xbe] 209// GFX10: s_bitset1_b64 s[2:3], s4 ; encoding: [0x04,0x1e,0x82,0xbe] 210 211s_getpc_b64 s[2:3] 212// SICI: s_getpc_b64 s[2:3] ; encoding: [0x00,0x1f,0x82,0xbe] 213// GFX89: s_getpc_b64 s[2:3] ; encoding: [0x00,0x1c,0x82,0xbe] 214// GFX10: s_getpc_b64 s[2:3] ; encoding: [0x00,0x1f,0x82,0xbe] 215 216s_setpc_b64 s[4:5] 217// SICI: s_setpc_b64 s[4:5] ; encoding: [0x04,0x20,0x80,0xbe] 218// GFX89: s_setpc_b64 s[4:5] ; encoding: [0x04,0x1d,0x80,0xbe] 219// GFX10: s_setpc_b64 s[4:5] ; encoding: [0x04,0x20,0x80,0xbe] 220 221s_swappc_b64 s[2:3], s[4:5] 222// SICI: s_swappc_b64 s[2:3], s[4:5] ; encoding: [0x04,0x21,0x82,0xbe] 223// GFX89: s_swappc_b64 s[2:3], s[4:5] ; encoding: [0x04,0x1e,0x82,0xbe] 224// GFX10: s_swappc_b64 s[2:3], s[4:5] ; encoding: [0x04,0x21,0x82,0xbe] 225 226s_rfe_b64 s[4:5] 227// SICI: s_rfe_b64 s[4:5] ; encoding: [0x04,0x22,0x80,0xbe] 228// GFX89: s_rfe_b64 s[4:5] ; encoding: [0x04,0x1f,0x80,0xbe] 229// GFX10: s_rfe_b64 s[4:5] ; encoding: [0x04,0x22,0x80,0xbe] 230 231s_and_saveexec_b64 s[2:3], s[4:5] 232// SICI: s_and_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x24,0x82,0xbe] 233// GFX89: s_and_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x20,0x82,0xbe] 234// GFX10: s_and_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x24,0x82,0xbe] 235 236s_or_saveexec_b64 s[2:3], s[4:5] 237// SICI: s_or_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x25,0x82,0xbe] 238// GFX89: s_or_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x21,0x82,0xbe] 239// GFX10: s_or_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x25,0x82,0xbe] 240 241s_xor_saveexec_b64 s[2:3], s[4:5] 242// SICI: s_xor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x26,0x82,0xbe] 243// GFX89: s_xor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x22,0x82,0xbe] 244// GFX10: s_xor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x26,0x82,0xbe] 245 246s_andn2_saveexec_b64 s[2:3], s[4:5] 247// SICI: s_andn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x27,0x82,0xbe] 248// GFX89: s_andn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x23,0x82,0xbe] 249// GFX10: s_andn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x27,0x82,0xbe] 250 251s_orn2_saveexec_b64 s[2:3], s[4:5] 252// SICI: s_orn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x28,0x82,0xbe] 253// GFX89: s_orn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x24,0x82,0xbe] 254// GFX10: s_orn2_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x28,0x82,0xbe] 255 256s_nand_saveexec_b64 s[2:3], s[4:5] 257// SICI: s_nand_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x29,0x82,0xbe] 258// GFX89: s_nand_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x25,0x82,0xbe] 259// GFX10: s_nand_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x29,0x82,0xbe] 260 261s_nor_saveexec_b64 s[2:3], s[4:5] 262// SICI: s_nor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2a,0x82,0xbe] 263// GFX89: s_nor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x26,0x82,0xbe] 264// GFX10: s_nor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2a,0x82,0xbe] 265 266s_xnor_saveexec_b64 s[2:3], s[4:5] 267// SICI: s_xnor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2b,0x82,0xbe] 268// GFX89: s_xnor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x27,0x82,0xbe] 269// GFX10: s_xnor_saveexec_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2b,0x82,0xbe] 270 271s_quadmask_b32 s1, s2 272// SICI: s_quadmask_b32 s1, s2 ; encoding: [0x02,0x2c,0x81,0xbe] 273// GFX89: s_quadmask_b32 s1, s2 ; encoding: [0x02,0x28,0x81,0xbe] 274// GFX10: s_quadmask_b32 s1, s2 ; encoding: [0x02,0x2c,0x81,0xbe] 275 276s_quadmask_b64 s[2:3], s[4:5] 277// SICI: s_quadmask_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2d,0x82,0xbe] 278// GFX89: s_quadmask_b64 s[2:3], s[4:5] ; encoding: [0x04,0x29,0x82,0xbe] 279// GFX10: s_quadmask_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2d,0x82,0xbe] 280 281s_movrels_b32 s1, s2 282// SICI: s_movrels_b32 s1, s2 ; encoding: [0x02,0x2e,0x81,0xbe] 283// GFX89: s_movrels_b32 s1, s2 ; encoding: [0x02,0x2a,0x81,0xbe] 284// GFX10: s_movrels_b32 s1, s2 ; encoding: [0x02,0x2e,0x81,0xbe] 285 286s_movrels_b64 s[2:3], s[4:5] 287// SICI: s_movrels_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2f,0x82,0xbe] 288// GFX89: s_movrels_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2b,0x82,0xbe] 289// GFX10: s_movrels_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2f,0x82,0xbe] 290 291s_movreld_b32 s1, s2 292// SICI: s_movreld_b32 s1, s2 ; encoding: [0x02,0x30,0x81,0xbe] 293// GFX89: s_movreld_b32 s1, s2 ; encoding: [0x02,0x2c,0x81,0xbe] 294// GFX10: s_movreld_b32 s1, s2 ; encoding: [0x02,0x30,0x81,0xbe] 295 296s_movreld_b64 s[2:3], s[4:5] 297// SICI: s_movreld_b64 s[2:3], s[4:5] ; encoding: [0x04,0x31,0x82,0xbe] 298// GFX89: s_movreld_b64 s[2:3], s[4:5] ; encoding: [0x04,0x2d,0x82,0xbe] 299// GFX10: s_movreld_b64 s[2:3], s[4:5] ; encoding: [0x04,0x31,0x82,0xbe] 300 301s_cbranch_join s4 302// SICI: s_cbranch_join s4 ; encoding: [0x04,0x32,0x80,0xbe] 303// GFX89: s_cbranch_join s4 ; encoding: [0x04,0x2e,0x80,0xbe] 304// GFX10-ERR: error: instruction not supported on this GPU 305 306s_cbranch_join 1 307// NOSICI: error: invalid operand for instruction 308// NOGFX89: error: invalid operand for instruction 309// GFX10-ERR: error: instruction not supported on this GPU 310 311s_cbranch_join 100 312// NOSICI: error: invalid operand for instruction 313// NOGFX89: error: invalid operand for instruction 314// GFX10-ERR: error: instruction not supported on this GPU 315 316s_abs_i32 s1, s2 317// SICI: s_abs_i32 s1, s2 ; encoding: [0x02,0x34,0x81,0xbe] 318// GFX89: s_abs_i32 s1, s2 ; encoding: [0x02,0x30,0x81,0xbe] 319// GFX10: s_abs_i32 s1, s2 ; encoding: [0x02,0x34,0x81,0xbe] 320 321s_set_gpr_idx_idx s0 322// GFX89: s_set_gpr_idx_idx s0 ; encoding: [0x00,0x32,0x80,0xbe] 323// NOSICI: error: instruction not supported on this GPU 324// GFX10-ERR: error: instruction not supported on this GPU 325 326s_andn1_saveexec_b64 s[100:101], s[2:3] 327// GFX9: s_andn1_saveexec_b64 s[100:101], s[2:3] ; encoding: [0x02,0x33,0xe4,0xbe] 328// NOSICIVI: error: instruction not supported on this GPU 329// GFX10: s_andn1_saveexec_b64 s[100:101], s[2:3] ; encoding: [0x02,0x37,0xe4,0xbe] 330 331s_andn1_saveexec_b64 s[10:11], s[4:5] 332// GFX9: s_andn1_saveexec_b64 s[10:11], s[4:5] ; encoding: [0x04,0x33,0x8a,0xbe] 333// NOSICIVI: error: instruction not supported on this GPU 334// GFX10: s_andn1_saveexec_b64 s[10:11], s[4:5] ; encoding: [0x04,0x37,0x8a,0xbe] 335 336s_andn1_saveexec_b64 s[10:11], -1 337// GFX9: s_andn1_saveexec_b64 s[10:11], -1 ; encoding: [0xc1,0x33,0x8a,0xbe] 338// NOSICIVI: error: instruction not supported on this GPU 339// GFX10: s_andn1_saveexec_b64 s[10:11], -1 ; encoding: [0xc1,0x37,0x8a,0xbe] 340 341s_andn1_saveexec_b64 s[10:11], 0xaf123456 342// GFX9: s_andn1_saveexec_b64 s[10:11], 0xaf123456 ; encoding: [0xff,0x33,0x8a,0xbe,0x56,0x34,0x12,0xaf] 343// NOSICIVI: error: instruction not supported on this GPU 344// GFX10: s_andn1_saveexec_b64 s[10:11], 0xaf123456 ; encoding: [0xff,0x37,0x8a,0xbe,0x56,0x34,0x12,0xaf] 345 346s_andn1_wrexec_b64 s[10:11], s[2:3] 347// GFX9: s_andn1_wrexec_b64 s[10:11], s[2:3] ; encoding: [0x02,0x35,0x8a,0xbe] 348// NOSICIVI: error: instruction not supported on this GPU 349// GFX10: s_andn1_wrexec_b64 s[10:11], s[2:3] ; encoding: [0x02,0x39,0x8a,0xbe] 350 351s_andn2_wrexec_b64 s[12:13], s[2:3] 352// GFX9: s_andn2_wrexec_b64 s[12:13], s[2:3] ; encoding: [0x02,0x36,0x8c,0xbe] 353// NOSICIVI: error: instruction not supported on this GPU 354// GFX10: s_andn2_wrexec_b64 s[12:13], s[2:3] ; encoding: [0x02,0x3a,0x8c,0xbe] 355 356s_orn1_saveexec_b64 s[10:11], 0 357// GFX9: s_orn1_saveexec_b64 s[10:11], 0 ; encoding: [0x80,0x34,0x8a,0xbe] 358// NOSICIVI: error: instruction not supported on this GPU 359// GFX10: s_orn1_saveexec_b64 s[10:11], 0 ; encoding: [0x80,0x38,0x8a,0xbe] 360 361s_bitreplicate_b64_b32 s[10:11], s101 362// GFX9: s_bitreplicate_b64_b32 s[10:11], s101 ; encoding: [0x65,0x37,0x8a,0xbe] 363// NOSICIVI: error: instruction not supported on this GPU 364// GFX10: s_bitreplicate_b64_b32 s[10:11], s101 ; encoding: [0x65,0x3b,0x8a,0xbe] 365 366s_bitreplicate_b64_b32 s[10:11], -1 367// GFX9: s_bitreplicate_b64_b32 s[10:11], -1 ; encoding: [0xc1,0x37,0x8a,0xbe] 368// NOSICIVI: error: instruction not supported on this GPU 369// GFX10: s_bitreplicate_b64_b32 s[10:11], -1 ; encoding: [0xc1,0x3b,0x8a,0xbe] 370 371s_bitreplicate_b64_b32 s[10:11], 0x3f717273 372// GFX9: s_bitreplicate_b64_b32 s[10:11], 0x3f717273 ; encoding: [0xff,0x37,0x8a,0xbe,0x73,0x72,0x71,0x3f] 373// NOSICIVI: error: instruction not supported on this GPU 374// GFX10: s_bitreplicate_b64_b32 s[10:11], 0x3f717273 ; encoding: [0xff,0x3b,0x8a,0xbe,0x73,0x72,0x71,0x3f] 375