1// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=SICI %s 2// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=SICI -check-prefix=CI %s 3// RUN: not llvm-mc -arch=amdgcn -mcpu=kaveri -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=SICI %s 4// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=VI -check-prefix=GFX89 %s 5// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=GFX89 -check-prefix=GFX9 %s 6// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1012 -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=GFX10 -check-prefix=GFX1012 %s 7// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1030 -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=GFX10 %s 8// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=NOSICI -check-prefix=NOSICIVI -check-prefix=NOSICIGFX10 -check-prefix=NOSICIVIGFX10 -check-prefix=NOSICIGFX1030 -check-prefix=NOSICIVIGFX1030 --implicit-check-not=error: %s 9// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck -check-prefix=NOSICI -check-prefix=NOSICIVI -check-prefix=NOSICIGFX10 -check-prefix=NOSICIVIGFX10 -check-prefix=NOSICIGFX1030 -check-prefix=NOSICIVIGFX1030 --implicit-check-not=error: %s 10// RUN: not llvm-mc -arch=amdgcn -mcpu=kaveri %s 2>&1 | FileCheck -check-prefix=NOSICI -check-prefix=NOSICIVI -check-prefix=NOSICIGFX10 -check-prefix=NOSICIVIGFX10 -check-prefix=NOSICIGFX1030 -check-prefix=NOSICIVIGFX1030 --implicit-check-not=error: %s 11// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=NOSICIVI -check-prefix=NOVI -check-prefix=NOSICIVIGFX10 -check-prefix=NOSICIVIGFX1030 --implicit-check-not=error: %s 12// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx900 %s 2>&1 | FileCheck -check-prefix=NOGFX9 -check-prefix=NOGFX9GFX1012 --implicit-check-not=error: %s 13// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1012 %s 2>&1 | FileCheck -check-prefix=NOSICIGFX10 -check-prefix=NOGFX9 -check-prefix=NOGFX9GFX1012 --implicit-check-not=error: %s 14// RUN: not llvm-mc -arch=amdgcn -mcpu=gfx1030 %s 2>&1 | FileCheck -check-prefix=NOSICIGFX1030 -check-prefix=NOSICIVIGFX10 -check-prefix=NOSICIVIGFX1030 -check-prefix=NOSICIGFX10 -check-prefix=NOGFX9 -check-prefix=NOGFX1030 --implicit-check-not=error: %s 15 16s_dcache_wb 17// GFX89: s_dcache_wb ; encoding: [0x00,0x00,0x84,0xc0,0x00,0x00,0x00,0x00] 18// GFX1012: s_dcache_wb ; encoding: [0x00,0x00,0x84,0xf4,0x00,0x00,0x00,0x00] 19// NOSICIGFX1030: error: instruction not supported on this GPU 20 21s_dcache_wb_vol 22// GFX89: s_dcache_wb_vol ; encoding: [0x00,0x00,0x8c,0xc0,0x00,0x00,0x00,0x00] 23// NOSICIGFX10: error: instruction not supported on this GPU 24 25s_atc_probe 0x7, s[4:5], s0 26// GFX89: s_atc_probe 7, s[4:5], s0 ; encoding: [0xc2,0x01,0x98,0xc0,0x00,0x00,0x00,0x00] 27// GFX10: s_atc_probe 7, s[4:5], s0 ; encoding: [0xc2,0x01,0x98,0xf4,0x00,0x00,0x00,0x00] 28// NOSICI: error: instruction not supported on this GPU 29 30s_atc_probe 0x0, s[4:5], 0x0 31// GFX89: s_atc_probe 0, s[4:5], 0x0 ; encoding: [0x02,0x00,0x9a,0xc0,0x00,0x00,0x00,0x00] 32// GFX10: s_atc_probe 0, s[4:5], 0x0 ; encoding: [0x02,0x00,0x98,0xf4,0x00,0x00,0x00,0xfa] 33// NOSICI: error: instruction not supported on this GPU 34 35s_atc_probe_buffer 0x1, s[8:11], s0 36// GFX89: s_atc_probe_buffer 1, s[8:11], s0 ; encoding: [0x44,0x00,0x9c,0xc0,0x00,0x00,0x00,0x00] 37// GFX10: s_atc_probe_buffer 1, s[8:11], s0 ; encoding: [0x44,0x00,0x9c,0xf4,0x00,0x00,0x00,0x00] 38// NOSICI: error: instruction not supported on this GPU 39 40s_atc_probe_buffer 0x0, s[8:11], s101 41// GFX89: s_atc_probe_buffer 0, s[8:11], s101 ; encoding: [0x04,0x00,0x9c,0xc0,0x65,0x00,0x00,0x00] 42// GFX10: s_atc_probe_buffer 0, s[8:11], s101 ; encoding: [0x04,0x00,0x9c,0xf4,0x00,0x00,0x00,0xca] 43// NOSICI: error: instruction not supported on this GPU 44 45s_memrealtime s[4:5] 46// GFX89: s_memrealtime s[4:5] ; encoding: [0x00,0x01,0x94,0xc0,0x00,0x00,0x00,0x00] 47// GFX10: s_memrealtime s[4:5] ; encoding: [0x00,0x01,0x94,0xf4,0x00,0x00,0x00,0x00] 48// NOSICI: error: instruction not supported on this GPU 49 50s_memrealtime tba 51// VI: s_memrealtime tba ; encoding: [0x00,0x1b,0x94,0xc0,0x00,0x00,0x00,0x00] 52// NOSICI: error: instruction not supported on this GPU 53// NOGFX9: error: register not available on this GPU 54 55s_memrealtime tma 56// VI: s_memrealtime tma ; encoding: [0x80,0x1b,0x94,0xc0,0x00,0x00,0x00,0x00] 57// NOSICI: error: instruction not supported on this GPU 58// NOGFX9: error: register not available on this GPU 59 60s_memrealtime ttmp[0:1] 61// VI: s_memrealtime ttmp[0:1] ; encoding: [0x00,0x1c,0x94,0xc0,0x00,0x00,0x00,0x00] 62// GFX9: s_memrealtime ttmp[0:1] ; encoding: [0x00,0x1b,0x94,0xc0,0x00,0x00,0x00,0x00] 63// GFX10: s_memrealtime ttmp[0:1] ; encoding: [0x00,0x1b,0x94,0xf4,0x00,0x00,0x00,0x00] 64// NOSICI: error: instruction not supported on this GPU 65 66// FIXME: Should error about instruction on GPU 67s_store_dword s1, s[2:3], 0xfc 68// GFX89: s_store_dword s1, s[2:3], 0xfc ; encoding: [0x41,0x00,0x42,0xc0,0xfc,0x00,0x00,0x00] 69// GFX1012: s_store_dword s1, s[2:3], 0xfc ; encoding: [0x41,0x00,0x40,0xf4,0xfc,0x00,0x00,0xfa] 70// NOSICIGFX1030: error: instruction not supported on this GPU 71 72s_store_dword s1, s[2:3], 0xfc glc 73// GFX89: s_store_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x43,0xc0,0xfc,0x00,0x00,0x00] 74// GFX1012: s_store_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x41,0xf4,0xfc,0x00,0x00,0xfa] 75// NOSICIGFX1030: error: instruction not supported on this GPU 76 77s_store_dword s1, s[2:3], s4 78// GFX89: s_store_dword s1, s[2:3], s4 ; encoding: [0x41,0x00,0x40,0xc0,0x04,0x00,0x00,0x00] 79// GFX1012: s_store_dword s1, s[2:3], s4 ; encoding: [0x41,0x00,0x40,0xf4,0x00,0x00,0x00,0x08] 80// NOSICIGFX1030: error: instruction not supported on this GPU 81 82s_store_dword s1, s[2:3], s4 glc 83// GFX89: s_store_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x41,0xc0,0x04,0x00,0x00,0x00] 84// GFX1012: s_store_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x41,0xf4,0x00,0x00,0x00,0x08] 85// NOSICIGFX1030: error: instruction not supported on this GPU 86 87s_store_dword tba_lo, s[2:3], s4 88// VI: s_store_dword tba_lo, s[2:3], s4 ; encoding: [0x01,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00] 89// NOSICI: error: instruction not supported on this GPU 90// NOGFX9GFX1012: error: register not available on this GPU 91// NOGFX1030: error: instruction not supported on this GPU 92 93s_store_dword tba_hi, s[2:3], s4 94// VI: s_store_dword tba_hi, s[2:3], s4 ; encoding: [0x41,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00] 95// NOSICI: error: instruction not supported on this GPU 96// NOGFX9GFX1012: error: register not available on this GPU 97// NOGFX1030: error: instruction not supported on this GPU 98 99s_store_dword tma_lo, s[2:3], s4 100// VI: s_store_dword tma_lo, s[2:3], s4 ; encoding: [0x81,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00] 101// NOSICI: error: instruction not supported on this GPU 102// NOGFX9GFX1012: error: register not available on this GPU 103// NOGFX1030: error: instruction not supported on this GPU 104 105s_store_dword tma_hi, s[2:3], s4 106// VI: s_store_dword tma_hi, s[2:3], s4 ; encoding: [0xc1,0x1b,0x40,0xc0,0x04,0x00,0x00,0x00] 107// NOSICI: error: instruction not supported on this GPU 108// NOGFX9GFX1012: error: register not available on this GPU 109// NOGFX1030: error: instruction not supported on this GPU 110 111// FIXME: Should error on SI instead of silently ignoring glc 112s_load_dword s1, s[2:3], 0xfc glc 113// GFX89: s_load_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x03,0xc0,0xfc,0x00,0x00,0x00] 114// GFX10: s_load_dword s1, s[2:3], 0xfc glc ; encoding: [0x41,0x00,0x01,0xf4,0xfc,0x00,0x00,0xfa] 115// SICI: s_load_dword s1, s[2:3], 0xfc glc ; encoding: [0xfc,0x83,0x00,0xc0 116 117s_load_dword s1, s[2:3], s4 glc 118// GFX89: s_load_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x01,0xc0,0x04,0x00,0x00,0x00] 119// GFX10: s_load_dword s1, s[2:3], s4 glc ; encoding: [0x41,0x00,0x01,0xf4,0x00,0x00,0x00,0x08] 120// SICI: s_load_dword s1, s[2:3], s4 glc ; encoding: [0x04,0x82,0x00,0xc0] 121 122s_buffer_store_dword s10, s[92:95], m0 123// GFX89: s_buffer_store_dword s10, s[92:95], m0 ; encoding: [0xae,0x02,0x60,0xc0,0x7c,0x00,0x00,0x00] 124// NOSICIGFX1030: error: instruction not supported on this GPU 125// GFX1012: s_buffer_store_dword s10, s[92:95], m0 ; encoding: [0xae,0x02,0x60,0xf4,0x00,0x00,0x00,0xf8] 126 127s_buffer_store_dword tba_lo, s[92:95], m0 128// VI: s_buffer_store_dword tba_lo, s[92:95], m0 ; encoding: [0x2e,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00] 129// NOSICI: error: instruction not supported on this GPU 130// NOGFX9GFX1012: error: register not available on this GPU 131// NOGFX1030: error: instruction not supported on this GPU 132 133s_buffer_store_dword tba_hi, s[92:95], m0 134// VI: s_buffer_store_dword tba_hi, s[92:95], m0 ; encoding: [0x6e,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00] 135// NOSICI: error: instruction not supported on this GPU 136// NOGFX9GFX1012: error: register not available on this GPU 137// NOGFX1030: error: instruction not supported on this GPU 138 139s_buffer_store_dword tma_lo, s[92:95], m0 140// VI: s_buffer_store_dword tma_lo, s[92:95], m0 ; encoding: [0xae,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00] 141// NOSICI: error: instruction not supported on this GPU 142// NOGFX9GFX1012: error: register not available on this GPU 143// NOGFX1030: error: instruction not supported on this GPU 144 145s_buffer_store_dword tma_hi, s[92:95], m0 146// VI: s_buffer_store_dword tma_hi, s[92:95], m0 ; encoding: [0xee,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00] 147// NOSICI: error: instruction not supported on this GPU 148// NOGFX9GFX1012: error: register not available on this GPU 149// NOGFX1030: error: instruction not supported on this GPU 150 151s_buffer_store_dword ttmp0, s[92:95], m0 152// VI: s_buffer_store_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1c,0x60,0xc0,0x7c,0x00,0x00,0x00] 153// GFX9: s_buffer_store_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1b,0x60,0xc0,0x7c,0x00,0x00,0x00] 154// NOSICIGFX1030: error: instruction not supported on this GPU 155// GFX1012: s_buffer_store_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1b,0x60,0xf4,0x00,0x00,0x00,0xf8] 156 157s_buffer_store_dwordx2 s[10:11], s[92:95], m0 158// GFX89: s_buffer_store_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0xae,0x02,0x64,0xc0,0x7c,0x00,0x00,0x00] 159// NOSICIGFX1030: error: instruction not supported on this GPU 160// GFX1012: s_buffer_store_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0xae,0x02,0x64,0xf4,0x00,0x00,0x00,0xf8] 161 162s_buffer_store_dwordx4 s[8:11], s[92:95], m0 glc 163// GFX89: s_buffer_store_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x2e,0x02,0x69,0xc0,0x7c,0x00,0x00,0x00] 164// NOSICIGFX1030: error: instruction not supported on this GPU 165// GFX1012: s_buffer_store_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x2e,0x02,0x69,0xf4,0x00,0x00,0x00,0xf8] 166 167s_buffer_store_dwordx2 tba, s[92:95], m0 glc 168// VI: s_buffer_store_dwordx2 tba, s[92:95], m0 glc ; encoding: [0x2e,0x1b,0x65,0xc0,0x7c,0x00,0x00,0x00] 169// NOSICI: error: instruction not supported on this GPU 170// NOGFX9GFX1012: error: register not available on this GPU 171// NOGFX1030: error: instruction not supported on this GPU 172 173s_buffer_load_dword s10, s[92:95], m0 174// GFX89: s_buffer_load_dword s10, s[92:95], m0 ; encoding: [0xae,0x02,0x20,0xc0,0x7c,0x00,0x00,0x00] 175// SICI: s_buffer_load_dword s10, s[92:95], m0 ; encoding: [0x7c,0x5c,0x05,0xc2] 176// GFX10: s_buffer_load_dword s10, s[92:95], m0 ; encoding: [0xae,0x02,0x20,0xf4,0x00,0x00,0x00,0xf8] 177 178s_buffer_load_dword tba_lo, s[92:95], m0 179// VI: s_buffer_load_dword tba_lo, s[92:95], m0 ; encoding: [0x2e,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00] 180// SICI: s_buffer_load_dword tba_lo, s[92:95], m0 ; encoding: [0x7c,0x5c,0x36,0xc2] 181// NOGFX9: error: register not available on this GPU 182 183s_buffer_load_dword tba_hi, s[92:95], m0 184// VI: s_buffer_load_dword tba_hi, s[92:95], m0 ; encoding: [0x6e,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00] 185// SICI: s_buffer_load_dword tba_hi, s[92:95], m0 ; encoding: [0x7c,0xdc,0x36,0xc2] 186// NOGFX9: error: register not available on this GPU 187 188s_buffer_load_dword tma_lo, s[92:95], m0 189// VI: s_buffer_load_dword tma_lo, s[92:95], m0 ; encoding: [0xae,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00] 190// SICI: s_buffer_load_dword tma_lo, s[92:95], m0 ; encoding: [0x7c,0x5c,0x37,0xc2] 191// NOGFX9: error: register not available on this GPU 192 193s_buffer_load_dword tma_hi, s[92:95], m0 194// VI: s_buffer_load_dword tma_hi, s[92:95], m0 ; encoding: [0xee,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00] 195// SICI: s_buffer_load_dword tma_hi, s[92:95], m0 ; encoding: [0x7c,0xdc,0x37,0xc2] 196// NOGFX9: error: register not available on this GPU 197 198s_buffer_load_dword ttmp0, s[92:95], m0 199// VI: s_buffer_load_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1c,0x20,0xc0,0x7c,0x00,0x00,0x00] 200// GFX9: s_buffer_load_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1b,0x20,0xc0,0x7c,0x00,0x00,0x00] 201// SICI: s_buffer_load_dword ttmp0, s[92:95], m0 ; encoding: [0x7c,0x5c,0x38,0xc2] 202// GFX10: s_buffer_load_dword ttmp0, s[92:95], m0 ; encoding: [0x2e,0x1b,0x20,0xf4,0x00,0x00,0x00,0xf8] 203 204s_buffer_load_dwordx2 s[10:11], s[92:95], m0 205// GFX89: s_buffer_load_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0xae,0x02,0x24,0xc0,0x7c,0x00,0x00,0x00] 206// SICI: s_buffer_load_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0x7c,0x5c,0x45,0xc2] 207// GFX10: s_buffer_load_dwordx2 s[10:11], s[92:95], m0 ; encoding: [0xae,0x02,0x24,0xf4,0x00,0x00,0x00,0xf8] 208 209s_buffer_load_dwordx2 tba, s[92:95], m0 210// VI: s_buffer_load_dwordx2 tba, s[92:95], m0 ; encoding: [0x2e,0x1b,0x24,0xc0,0x7c,0x00,0x00,0x00] 211// SICI: s_buffer_load_dwordx2 tba, s[92:95], m0 ; encoding: [0x7c,0x5c,0x76,0xc2] 212// NOGFX9: error: register not available on this GPU 213 214s_buffer_load_dwordx2 tma, s[92:95], m0 215// VI: s_buffer_load_dwordx2 tma, s[92:95], m0 ; encoding: [0xae,0x1b,0x24,0xc0,0x7c,0x00,0x00,0x00] 216// SICI: s_buffer_load_dwordx2 tma, s[92:95], m0 ; encoding: [0x7c,0x5c,0x77,0xc2] 217// NOGFX9: error: register not available on this GPU 218 219s_buffer_load_dwordx2 ttmp[0:1], s[92:95], m0 220// VI: s_buffer_load_dwordx2 ttmp[0:1], s[92:95], m0 ; encoding: [0x2e,0x1c,0x24,0xc0,0x7c,0x00,0x00,0x00] 221// GFX9: s_buffer_load_dwordx2 ttmp[0:1], s[92:95], m0 ; encoding: [0x2e,0x1b,0x24,0xc0,0x7c,0x00,0x00,0x00] 222// SICI: s_buffer_load_dwordx2 ttmp[0:1], s[92:95], m0 ; encoding: [0x7c,0x5c,0x78,0xc2] 223// GFX10: s_buffer_load_dwordx2 ttmp[0:1], s[92:95], m0 ; encoding: [0x2e,0x1b,0x24,0xf4,0x00,0x00,0x00,0xf8] 224 225// FIXME: Should error on SI instead of silently ignoring glc 226s_buffer_load_dwordx4 s[8:11], s[92:95], m0 glc 227// GFX89: s_buffer_load_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x2e,0x02,0x29,0xc0,0x7c,0x00,0x00,0x00] 228// GFX10: s_buffer_load_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x2e,0x02,0x29,0xf4,0x00,0x00,0x00,0xf8] 229// SICI: s_buffer_load_dwordx4 s[8:11], s[92:95], m0 glc ; encoding: [0x7c,0x5c,0x84,0xc2] 230 231//===----------------------------------------------------------------------===// 232// s_scratch instructions 233//===----------------------------------------------------------------------===// 234 235s_scratch_load_dword s5, s[2:3], s101 236// GFX9: s_scratch_load_dword s5, s[2:3], s101 ; encoding: [0x41,0x01,0x14,0xc0,0x65,0x00,0x00,0x00] 237// GFX1012: s_scratch_load_dword s5, s[2:3], s101 ; encoding: [0x41,0x01,0x14,0xf4,0x00,0x00,0x00,0xca] 238// NOSICIVIGFX1030: error: instruction not supported on this GPU 239 240s_scratch_load_dword s5, s[2:3], s0 glc 241// GFX9: s_scratch_load_dword s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x15,0xc0,0x00,0x00,0x00,0x00] 242// GFX1012: s_scratch_load_dword s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x15,0xf4,0x00,0x00,0x00,0x00] 243// NOSICIVIGFX1030: error: instruction not supported on this GPU 244 245s_scratch_load_dwordx2 s[100:101], s[2:3], s0 246// GFX9: s_scratch_load_dwordx2 s[100:101], s[2:3], s0 ; encoding: [0x01,0x19,0x18,0xc0,0x00,0x00,0x00,0x00] 247// GFX1012: s_scratch_load_dwordx2 s[100:101], s[2:3], s0 ; encoding: [0x01,0x19,0x18,0xf4,0x00,0x00,0x00,0x00] 248// NOSICIVIGFX1030: error: instruction not supported on this GPU 249 250s_scratch_load_dwordx2 s[10:11], s[2:3], 0x1 glc 251// GFX9: s_scratch_load_dwordx2 s[10:11], s[2:3], 0x1 glc ; encoding: [0x81,0x02,0x1b,0xc0,0x01,0x00,0x00,0x00] 252// GFX1012: s_scratch_load_dwordx2 s[10:11], s[2:3], 0x1 glc ; encoding: [0x81,0x02,0x19,0xf4,0x01,0x00,0x00,0xfa] 253// NOSICIVIGFX1030: error: instruction not supported on this GPU 254 255s_scratch_load_dwordx4 s[20:23], s[4:5], s0 256// GFX9: s_scratch_load_dwordx4 s[20:23], s[4:5], s0 ; encoding: [0x02,0x05,0x1c,0xc0,0x00,0x00,0x00,0x00] 257// GFX1012: s_scratch_load_dwordx4 s[20:23], s[4:5], s0 ; encoding: [0x02,0x05,0x1c,0xf4,0x00,0x00,0x00,0x00] 258// NOSICIVIGFX1030: error: instruction not supported on this GPU 259 260s_scratch_store_dword s101, s[4:5], s0 261// GFX9: s_scratch_store_dword s101, s[4:5], s0 ; encoding: [0x42,0x19,0x54,0xc0,0x00,0x00,0x00,0x00] 262// GFX1012: s_scratch_store_dword s101, s[4:5], s0 ; encoding: [0x42,0x19,0x54,0xf4,0x00,0x00,0x00,0x00] 263// NOSICIVIGFX1030: error: instruction not supported on this GPU 264 265s_scratch_store_dword s1, s[4:5], 0x123 glc 266// GFX9: s_scratch_store_dword s1, s[4:5], 0x123 glc ; encoding: [0x42,0x00,0x57,0xc0,0x23,0x01,0x00,0x00] 267// GFX1012: s_scratch_store_dword s1, s[4:5], 0x123 glc ; encoding: [0x42,0x00,0x55,0xf4,0x23,0x01,0x00,0xfa] 268// NOSICIVIGFX1030: error: instruction not supported on this GPU 269 270s_scratch_store_dwordx2 s[2:3], s[4:5], s101 glc 271// GFX9: s_scratch_store_dwordx2 s[2:3], s[4:5], s101 glc ; encoding: [0x82,0x00,0x59,0xc0,0x65,0x00,0x00,0x00] 272// GFX1012: s_scratch_store_dwordx2 s[2:3], s[4:5], s101 glc ; encoding: [0x82,0x00,0x59,0xf4,0x00,0x00,0x00,0xca] 273// NOSICIVIGFX1030: error: instruction not supported on this GPU 274 275s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc 276// GFX9: s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc ; encoding: [0x02,0x01,0x5d,0xc0,0x00,0x00,0x00,0x00] 277// GFX1012: s_scratch_store_dwordx4 s[4:7], s[4:5], s0 glc ; encoding: [0x02,0x01,0x5d,0xf4,0x00,0x00,0x00,0x00] 278// NOSICIVIGFX1030: error: instruction not supported on this GPU 279 280//===----------------------------------------------------------------------===// 281// s_dcache_discard instructions 282//===----------------------------------------------------------------------===// 283 284s_dcache_discard s[2:3], s0 285// GFX9: s_dcache_discard s[2:3], s0 ; encoding: [0x01,0x00,0xa0,0xc0,0x00,0x00,0x00,0x00] 286// GFX1012: s_dcache_discard s[2:3], s0 ; encoding: [0x01,0x00,0xa0,0xf4,0x00,0x00,0x00,0x00] 287// NOSICIVIGFX1030: error: instruction not supported on this GPU 288 289s_dcache_discard s[2:3], 0x0 290// GFX9: s_dcache_discard s[2:3], 0x0 ; encoding: [0x01,0x00,0xa2,0xc0,0x00,0x00,0x00,0x00] 291// GFX1012: s_dcache_discard s[2:3], 0x0 ; encoding: [0x01,0x00,0xa0,0xf4,0x00,0x00,0x00,0xfa] 292// NOSICIVIGFX1030: error: instruction not supported on this GPU 293 294s_dcache_discard_x2 s[2:3], s101 295// GFX9: s_dcache_discard_x2 s[2:3], s101 ; encoding: [0x01,0x00,0xa4,0xc0,0x65,0x00,0x00,0x00] 296// GFX1012: s_dcache_discard_x2 s[2:3], s101 ; encoding: [0x01,0x00,0xa4,0xf4,0x00,0x00,0x00,0xca] 297// NOSICIVIGFX1030: error: instruction not supported on this GPU 298 299s_dcache_discard_x2 s[2:3], 0x0 300// GFX9: s_dcache_discard_x2 s[2:3], 0x0 ; encoding: [0x01,0x00,0xa6,0xc0,0x00,0x00,0x00,0x00] 301// GFX1012: s_dcache_discard_x2 s[2:3], 0x0 ; encoding: [0x01,0x00,0xa4,0xf4,0x00,0x00,0x00,0xfa] 302// NOSICIVIGFX1030: error: instruction not supported on this GPU 303 304//===----------------------------------------------------------------------===// 305// s_atomic instructions 306//===----------------------------------------------------------------------===// 307 308s_atomic_add s5, s[2:3], s101 309// GFX9: s_atomic_add s5, s[2:3], s101 ; encoding: [0x41,0x01,0x08,0xc2,0x65,0x00,0x00,0x00] 310// GFX1012: s_atomic_add s5, s[2:3], s101 ; encoding: [0x41,0x01,0x08,0xf6,0x00,0x00,0x00,0xca] 311// NOSICIVIGFX1030: error: instruction not supported on this GPU 312 313s_atomic_add s5, s[2:3], 0x0 314// GFX9: s_atomic_add s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x0a,0xc2,0x00,0x00,0x00,0x00] 315// GFX1012: s_atomic_add s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x08,0xf6,0x00,0x00,0x00,0xfa] 316// NOSICIVIGFX1030: error: instruction not supported on this GPU 317 318s_atomic_add s5, s[2:3], s0 glc 319// GFX9: s_atomic_add s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x09,0xc2,0x00,0x00,0x00,0x00] 320// GFX1012: s_atomic_add s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x09,0xf6,0x00,0x00,0x00,0x00] 321// NOSICIVIGFX1030: error: instruction not supported on this GPU 322 323s_atomic_add_x2 s[10:11], s[2:3], s101 324// GFX9: s_atomic_add_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x88,0xc2,0x65,0x00,0x00,0x00] 325// GFX1012: s_atomic_add_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x88,0xf6,0x00,0x00,0x00,0xca] 326// NOSICIVIGFX1030: error: instruction not supported on this GPU 327 328s_atomic_and s5, s[2:3], s101 329// GFX9: s_atomic_and s5, s[2:3], s101 ; encoding: [0x41,0x01,0x20,0xc2,0x65,0x00,0x00,0x00] 330// GFX1012: s_atomic_and s5, s[2:3], s101 ; encoding: [0x41,0x01,0x20,0xf6,0x00,0x00,0x00,0xca] 331// NOSICIVIGFX1030: error: instruction not supported on this GPU 332 333s_atomic_and_x2 s[10:11], s[2:3], 0x0 334// GFX9: s_atomic_and_x2 s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0xa2,0xc2,0x00,0x00,0x00,0x00] 335// GFX1012: s_atomic_and_x2 s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0xa0,0xf6,0x00,0x00,0x00,0xfa] 336// NOSICIVIGFX1030: error: instruction not supported on this GPU 337 338s_atomic_cmpswap s[10:11], s[2:3], s101 339// GFX9: s_atomic_cmpswap s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x04,0xc2,0x65,0x00,0x00,0x00] 340// GFX1012: s_atomic_cmpswap s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x04,0xf6,0x00,0x00,0x00,0xca] 341// NOSICIVIGFX1030: error: instruction not supported on this GPU 342 343s_atomic_cmpswap s[10:11], s[2:3], 0x0 344// GFX9: s_atomic_cmpswap s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0x06,0xc2,0x00,0x00,0x00,0x00] 345// GFX1012: s_atomic_cmpswap s[10:11], s[2:3], 0x0 ; encoding: [0x81,0x02,0x04,0xf6,0x00,0x00,0x00,0xfa] 346// NOSICIVIGFX1030: error: instruction not supported on this GPU 347 348s_atomic_cmpswap s[10:11], s[2:3], s0 glc 349// GFX9: s_atomic_cmpswap s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x05,0xc2,0x00,0x00,0x00,0x00] 350// GFX1012: s_atomic_cmpswap s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x05,0xf6,0x00,0x00,0x00,0x00] 351// NOSICIVIGFX1030: error: instruction not supported on this GPU 352 353s_atomic_cmpswap_x2 s[20:23], s[2:3], s101 354// GFX9: s_atomic_cmpswap_x2 s[20:23], s[2:3], s101 ; encoding: [0x01,0x05,0x84,0xc2,0x65,0x00,0x00,0x00] 355// GFX1012: s_atomic_cmpswap_x2 s[20:23], s[2:3], s101 ; encoding: [0x01,0x05,0x84,0xf6,0x00,0x00,0x00,0xca] 356// NOSICIVIGFX1030: error: instruction not supported on this GPU 357 358s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0 359// GFX9: s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0 ; encoding: [0x01,0x05,0x86,0xc2,0x00,0x00,0x00,0x00] 360// GFX1012: s_atomic_cmpswap_x2 s[20:23], s[2:3], 0x0 ; encoding: [0x01,0x05,0x84,0xf6,0x00,0x00,0x00,0xfa] 361// NOSICIVIGFX1030: error: instruction not supported on this GPU 362 363s_atomic_cmpswap_x2 s[20:23], s[2:3], s0 glc 364// GFX9: s_atomic_cmpswap_x2 s[20:23], s[2:3], s0 glc ; encoding: [0x01,0x05,0x85,0xc2,0x00,0x00,0x00,0x00] 365// GFX1012: s_atomic_cmpswap_x2 s[20:23], s[2:3], s0 glc ; encoding: [0x01,0x05,0x85,0xf6,0x00,0x00,0x00,0x00] 366// NOSICIVIGFX1030: error: instruction not supported on this GPU 367 368s_atomic_dec s5, s[2:3], s0 glc 369// GFX9: s_atomic_dec s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x31,0xc2,0x00,0x00,0x00,0x00] 370// GFX1012: s_atomic_dec s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x31,0xf6,0x00,0x00,0x00,0x00] 371// NOSICIVIGFX1030: error: instruction not supported on this GPU 372 373s_atomic_dec_x2 s[10:11], s[2:3], s101 374// GFX9: s_atomic_dec_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xb0,0xc2,0x65,0x00,0x00,0x00] 375// GFX1012: s_atomic_dec_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xb0,0xf6,0x00,0x00,0x00,0xca] 376// NOSICIVIGFX1030: error: instruction not supported on this GPU 377 378s_atomic_inc s5, s[2:3], s0 glc 379// GFX9: s_atomic_inc s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x2d,0xc2,0x00,0x00,0x00,0x00] 380// GFX1012: s_atomic_inc s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x2d,0xf6,0x00,0x00,0x00,0x00] 381// NOSICIVIGFX1030: error: instruction not supported on this GPU 382 383s_atomic_inc_x2 s[10:11], s[2:3], s101 384// GFX9: s_atomic_inc_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xac,0xc2,0x65,0x00,0x00,0x00] 385// GFX1012: s_atomic_inc_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0xac,0xf6,0x00,0x00,0x00,0xca] 386// NOSICIVIGFX1030: error: instruction not supported on this GPU 387 388s_atomic_or s5, s[2:3], 0x0 389// GFX9: s_atomic_or s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x26,0xc2,0x00,0x00,0x00,0x00] 390// GFX1012: s_atomic_or s5, s[2:3], 0x0 ; encoding: [0x41,0x01,0x24,0xf6,0x00,0x00,0x00,0xfa] 391// NOSICIVIGFX1030: error: instruction not supported on this GPU 392 393s_atomic_or_x2 s[10:11], s[2:3], s0 glc 394// GFX9: s_atomic_or_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa5,0xc2,0x00,0x00,0x00,0x00] 395// GFX1012: s_atomic_or_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa5,0xf6,0x00,0x00,0x00,0x00] 396// NOSICIVIGFX1030: error: instruction not supported on this GPU 397 398s_atomic_smax s5, s[2:3], s101 399// GFX9: s_atomic_smax s5, s[2:3], s101 ; encoding: [0x41,0x01,0x18,0xc2,0x65,0x00,0x00,0x00] 400// GFX1012: s_atomic_smax s5, s[2:3], s101 ; encoding: [0x41,0x01,0x18,0xf6,0x00,0x00,0x00,0xca] 401// NOSICIVIGFX1030: error: instruction not supported on this GPU 402 403s_atomic_smax_x2 s[10:11], s[2:3], s0 glc 404// GFX9: s_atomic_smax_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x99,0xc2,0x00,0x00,0x00,0x00] 405// GFX1012: s_atomic_smax_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x99,0xf6,0x00,0x00,0x00,0x00] 406// NOSICIVIGFX1030: error: instruction not supported on this GPU 407 408s_atomic_smin s5, s[2:3], s101 409// GFX9: s_atomic_smin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x10,0xc2,0x65,0x00,0x00,0x00] 410// GFX1012: s_atomic_smin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x10,0xf6,0x00,0x00,0x00,0xca] 411// NOSICIVIGFX1030: error: instruction not supported on this GPU 412 413s_atomic_smin_x2 s[10:11], s[2:3], s0 glc 414// GFX9: s_atomic_smin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x91,0xc2,0x00,0x00,0x00,0x00] 415// GFX1012: s_atomic_smin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x91,0xf6,0x00,0x00,0x00,0x00] 416// NOSICIVIGFX1030: error: instruction not supported on this GPU 417 418s_atomic_sub s5, s[2:3], s101 419// GFX9: s_atomic_sub s5, s[2:3], s101 ; encoding: [0x41,0x01,0x0c,0xc2,0x65,0x00,0x00,0x00] 420// GFX1012: s_atomic_sub s5, s[2:3], s101 ; encoding: [0x41,0x01,0x0c,0xf6,0x00,0x00,0x00,0xca] 421// NOSICIVIGFX1030: error: instruction not supported on this GPU 422 423s_atomic_sub_x2 s[10:11], s[2:3], s0 glc 424// GFX9: s_atomic_sub_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x8d,0xc2,0x00,0x00,0x00,0x00] 425// GFX1012: s_atomic_sub_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x8d,0xf6,0x00,0x00,0x00,0x00] 426// NOSICIVIGFX1030: error: instruction not supported on this GPU 427 428s_atomic_swap s5, s[2:3], s101 429// GFX9: s_atomic_swap s5, s[2:3], s101 ; encoding: [0x41,0x01,0x00,0xc2,0x65,0x00,0x00,0x00] 430// GFX1012: s_atomic_swap s5, s[2:3], s101 ; encoding: [0x41,0x01,0x00,0xf6,0x00,0x00,0x00,0xca] 431// NOSICIVIGFX1030: error: instruction not supported on this GPU 432 433s_atomic_swap_x2 s[10:11], s[2:3], s0 glc 434// GFX9: s_atomic_swap_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x81,0xc2,0x00,0x00,0x00,0x00] 435// GFX1012: s_atomic_swap_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x81,0xf6,0x00,0x00,0x00,0x00] 436// NOSICIVIGFX1030: error: instruction not supported on this GPU 437 438s_atomic_umax s5, s[2:3], s0 glc 439// GFX9: s_atomic_umax s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x1d,0xc2,0x00,0x00,0x00,0x00] 440// GFX1012: s_atomic_umax s5, s[2:3], s0 glc ; encoding: [0x41,0x01,0x1d,0xf6,0x00,0x00,0x00,0x00] 441// NOSICIVIGFX1030: error: instruction not supported on this GPU 442 443s_atomic_umax_x2 s[10:11], s[2:3], s101 444// GFX9: s_atomic_umax_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x9c,0xc2,0x65,0x00,0x00,0x00] 445// GFX1012: s_atomic_umax_x2 s[10:11], s[2:3], s101 ; encoding: [0x81,0x02,0x9c,0xf6,0x00,0x00,0x00,0xca] 446// NOSICIVIGFX1030: error: instruction not supported on this GPU 447 448s_atomic_umin s5, s[2:3], s101 449// GFX9: s_atomic_umin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x14,0xc2,0x65,0x00,0x00,0x00] 450// GFX1012: s_atomic_umin s5, s[2:3], s101 ; encoding: [0x41,0x01,0x14,0xf6,0x00,0x00,0x00,0xca] 451// NOSICIVIGFX1030: error: instruction not supported on this GPU 452 453s_atomic_umin_x2 s[10:11], s[2:3], s0 glc 454// GFX9: s_atomic_umin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x95,0xc2,0x00,0x00,0x00,0x00] 455// GFX1012: s_atomic_umin_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0x95,0xf6,0x00,0x00,0x00,0x00] 456// NOSICIVIGFX1030: error: instruction not supported on this GPU 457 458s_atomic_xor s5, s[2:3], s101 459// GFX9: s_atomic_xor s5, s[2:3], s101 ; encoding: [0x41,0x01,0x28,0xc2,0x65,0x00,0x00,0x00] 460// GFX1012: s_atomic_xor s5, s[2:3], s101 ; encoding: [0x41,0x01,0x28,0xf6,0x00,0x00,0x00,0xca] 461// NOSICIVIGFX1030: error: instruction not supported on this GPU 462 463s_atomic_xor_x2 s[10:11], s[2:3], s0 glc 464// GFX9: s_atomic_xor_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa9,0xc2,0x00,0x00,0x00,0x00] 465// GFX1012: s_atomic_xor_x2 s[10:11], s[2:3], s0 glc ; encoding: [0x81,0x02,0xa9,0xf6,0x00,0x00,0x00,0x00] 466// NOSICIVIGFX1030: error: instruction not supported on this GPU 467 468//===----------------------------------------------------------------------===// 469// s_buffer_atomic instructions 470//===----------------------------------------------------------------------===// 471 472s_buffer_atomic_add s5, s[4:7], s101 473// GFX9: s_buffer_atomic_add s5, s[4:7], s101 ; encoding: [0x42,0x01,0x08,0xc1,0x65,0x00,0x00,0x00] 474// GFX1012: s_buffer_atomic_add s5, s[4:7], s101 ; encoding: [0x42,0x01,0x08,0xf5,0x00,0x00,0x00,0xca] 475// NOSICIVIGFX1030: error: instruction not supported on this GPU 476 477s_buffer_atomic_add s5, s[4:7], 0x0 478// GFX9: s_buffer_atomic_add s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x0a,0xc1,0x00,0x00,0x00,0x00] 479// GFX1012: s_buffer_atomic_add s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x08,0xf5,0x00,0x00,0x00,0xfa] 480// NOSICIVIGFX1030: error: instruction not supported on this GPU 481 482s_buffer_atomic_add s5, s[4:7], s0 glc 483// GFX9: s_buffer_atomic_add s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x09,0xc1,0x00,0x00,0x00,0x00] 484// GFX1012: s_buffer_atomic_add s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x09,0xf5,0x00,0x00,0x00,0x00] 485// NOSICIVIGFX1030: error: instruction not supported on this GPU 486 487s_buffer_atomic_add_x2 s[10:11], s[4:7], s0 488// GFX9: s_buffer_atomic_add_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x88,0xc1,0x00,0x00,0x00,0x00] 489// GFX1012: s_buffer_atomic_add_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x88,0xf5,0x00,0x00,0x00,0x00] 490// NOSICIVIGFX1030: error: instruction not supported on this GPU 491 492s_buffer_atomic_and s101, s[4:7], s0 493// GFX9: s_buffer_atomic_and s101, s[4:7], s0 ; encoding: [0x42,0x19,0x20,0xc1,0x00,0x00,0x00,0x00] 494// GFX1012: s_buffer_atomic_and s101, s[4:7], s0 ; encoding: [0x42,0x19,0x20,0xf5,0x00,0x00,0x00,0x00] 495// NOSICIVIGFX1030: error: instruction not supported on this GPU 496 497s_buffer_atomic_and_x2 s[10:11], s[8:11], s0 498// GFX9: s_buffer_atomic_and_x2 s[10:11], s[8:11], s0 ; encoding: [0x84,0x02,0xa0,0xc1,0x00,0x00,0x00,0x00] 499// GFX1012: s_buffer_atomic_and_x2 s[10:11], s[8:11], s0 ; encoding: [0x84,0x02,0xa0,0xf5,0x00,0x00,0x00,0x00] 500// NOSICIVIGFX1030: error: instruction not supported on this GPU 501 502s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 503// GFX9: s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x04,0xc1,0x00,0x00,0x00,0x00] 504// GFX1012: s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x04,0xf5,0x00,0x00,0x00,0x00] 505// NOSICIVIGFX1030: error: instruction not supported on this GPU 506 507s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0 508// GFX9: s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0x06,0xc1,0x00,0x00,0x00,0x00] 509// GFX1012: s_buffer_atomic_cmpswap s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0x04,0xf5,0x00,0x00,0x00,0xfa] 510// NOSICIVIGFX1030: error: instruction not supported on this GPU 511 512s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 glc 513// GFX9: s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x05,0xc1,0x00,0x00,0x00,0x00] 514// GFX1012: s_buffer_atomic_cmpswap s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x05,0xf5,0x00,0x00,0x00,0x00] 515// NOSICIVIGFX1030: error: instruction not supported on this GPU 516 517s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s101 518// GFX9: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s101 ; encoding: [0x02,0x05,0x84,0xc1,0x65,0x00,0x00,0x00] 519// GFX1012: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s101 ; encoding: [0x02,0x05,0x84,0xf5,0x00,0x00,0x00,0xca] 520// NOSICIVIGFX1030: error: instruction not supported on this GPU 521 522s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0 523// GFX9: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0 ; encoding: [0x02,0x05,0x86,0xc1,0x00,0x00,0x00,0x00] 524// GFX1012: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], 0x0 ; encoding: [0x02,0x05,0x84,0xf5,0x00,0x00,0x00,0xfa] 525// NOSICIVIGFX1030: error: instruction not supported on this GPU 526 527s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s0 glc 528// GFX9: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s0 glc ; encoding: [0x02,0x05,0x85,0xc1,0x00,0x00,0x00,0x00] 529// GFX1012: s_buffer_atomic_cmpswap_x2 s[20:23], s[4:7], s0 glc ; encoding: [0x02,0x05,0x85,0xf5,0x00,0x00,0x00,0x00] 530// NOSICIVIGFX1030: error: instruction not supported on this GPU 531 532s_buffer_atomic_dec s5, s[4:7], s0 533// GFX9: s_buffer_atomic_dec s5, s[4:7], s0 ; encoding: [0x42,0x01,0x30,0xc1,0x00,0x00,0x00,0x00] 534// GFX1012: s_buffer_atomic_dec s5, s[4:7], s0 ; encoding: [0x42,0x01,0x30,0xf5,0x00,0x00,0x00,0x00] 535// NOSICIVIGFX1030: error: instruction not supported on this GPU 536 537s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 glc 538// GFX9: s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xb1,0xc1,0x00,0x00,0x00,0x00] 539// GFX1012: s_buffer_atomic_dec_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xb1,0xf5,0x00,0x00,0x00,0x00] 540// NOSICIVIGFX1030: error: instruction not supported on this GPU 541 542s_buffer_atomic_inc s101, s[4:7], s0 543// GFX9: s_buffer_atomic_inc s101, s[4:7], s0 ; encoding: [0x42,0x19,0x2c,0xc1,0x00,0x00,0x00,0x00] 544// GFX1012: s_buffer_atomic_inc s101, s[4:7], s0 ; encoding: [0x42,0x19,0x2c,0xf5,0x00,0x00,0x00,0x00] 545// NOSICIVIGFX1030: error: instruction not supported on this GPU 546 547s_buffer_atomic_inc_x2 s[10:11], s[4:7], 0x0 548// GFX9: s_buffer_atomic_inc_x2 s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0xae,0xc1,0x00,0x00,0x00,0x00] 549// GFX1012: s_buffer_atomic_inc_x2 s[10:11], s[4:7], 0x0 ; encoding: [0x82,0x02,0xac,0xf5,0x00,0x00,0x00,0xfa] 550// NOSICIVIGFX1030: error: instruction not supported on this GPU 551 552s_buffer_atomic_or s5, s[8:11], s0 553// GFX9: s_buffer_atomic_or s5, s[8:11], s0 ; encoding: [0x44,0x01,0x24,0xc1,0x00,0x00,0x00,0x00] 554// GFX1012: s_buffer_atomic_or s5, s[8:11], s0 ; encoding: [0x44,0x01,0x24,0xf5,0x00,0x00,0x00,0x00] 555// NOSICIVIGFX1030: error: instruction not supported on this GPU 556 557s_buffer_atomic_or_x2 s[10:11], s[96:99], s0 558// GFX9: s_buffer_atomic_or_x2 s[10:11], s[96:99], s0 ; encoding: [0xb0,0x02,0xa4,0xc1,0x00,0x00,0x00,0x00] 559// GFX1012: s_buffer_atomic_or_x2 s[10:11], s[96:99], s0 ; encoding: [0xb0,0x02,0xa4,0xf5,0x00,0x00,0x00,0x00] 560// NOSICIVIGFX1030: error: instruction not supported on this GPU 561 562s_buffer_atomic_smax s5, s[4:7], s101 563// GFX9: s_buffer_atomic_smax s5, s[4:7], s101 ; encoding: [0x42,0x01,0x18,0xc1,0x65,0x00,0x00,0x00] 564// GFX1012: s_buffer_atomic_smax s5, s[4:7], s101 ; encoding: [0x42,0x01,0x18,0xf5,0x00,0x00,0x00,0xca] 565// NOSICIVIGFX1030: error: instruction not supported on this GPU 566 567s_buffer_atomic_smax_x2 s[100:101], s[4:7], s0 568// GFX9: s_buffer_atomic_smax_x2 s[100:101], s[4:7], s0 ; encoding: [0x02,0x19,0x98,0xc1,0x00,0x00,0x00,0x00] 569// GFX1012: s_buffer_atomic_smax_x2 s[100:101], s[4:7], s0 ; encoding: [0x02,0x19,0x98,0xf5,0x00,0x00,0x00,0x00] 570// NOSICIVIGFX1030: error: instruction not supported on this GPU 571 572s_buffer_atomic_smin s5, s[4:7], 0x0 573// GFX9: s_buffer_atomic_smin s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x12,0xc1,0x00,0x00,0x00,0x00] 574// GFX1012: s_buffer_atomic_smin s5, s[4:7], 0x0 ; encoding: [0x42,0x01,0x10,0xf5,0x00,0x00,0x00,0xfa] 575// NOSICIVIGFX1030: error: instruction not supported on this GPU 576 577s_buffer_atomic_smin_x2 s[12:13], s[4:7], s0 578// GFX9: s_buffer_atomic_smin_x2 s[12:13], s[4:7], s0 ; encoding: [0x02,0x03,0x90,0xc1,0x00,0x00,0x00,0x00] 579// GFX1012: s_buffer_atomic_smin_x2 s[12:13], s[4:7], s0 ; encoding: [0x02,0x03,0x90,0xf5,0x00,0x00,0x00,0x00] 580// NOSICIVIGFX1030: error: instruction not supported on this GPU 581 582s_buffer_atomic_sub s5, s[4:7], s0 glc 583// GFX9: s_buffer_atomic_sub s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x0d,0xc1,0x00,0x00,0x00,0x00] 584// GFX1012: s_buffer_atomic_sub s5, s[4:7], s0 glc ; encoding: [0x42,0x01,0x0d,0xf5,0x00,0x00,0x00,0x00] 585// NOSICIVIGFX1030: error: instruction not supported on this GPU 586 587s_buffer_atomic_sub_x2 s[10:11], s[4:7], s0 588// GFX9: s_buffer_atomic_sub_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x8c,0xc1,0x00,0x00,0x00,0x00] 589// GFX1012: s_buffer_atomic_sub_x2 s[10:11], s[4:7], s0 ; encoding: [0x82,0x02,0x8c,0xf5,0x00,0x00,0x00,0x00] 590// NOSICIVIGFX1030: error: instruction not supported on this GPU 591 592s_buffer_atomic_swap s5, s[4:7], s0 593// GFX9: s_buffer_atomic_swap s5, s[4:7], s0 ; encoding: [0x42,0x01,0x00,0xc1,0x00,0x00,0x00,0x00] 594// GFX1012: s_buffer_atomic_swap s5, s[4:7], s0 ; encoding: [0x42,0x01,0x00,0xf5,0x00,0x00,0x00,0x00] 595// NOSICIVIGFX1030: error: instruction not supported on this GPU 596 597s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc 598// GFX9: s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x81,0xc1,0x00,0x00,0x00,0x00] 599// GFX1012: s_buffer_atomic_swap_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x81,0xf5,0x00,0x00,0x00,0x00] 600// NOSICIVIGFX1030: error: instruction not supported on this GPU 601 602s_buffer_atomic_umax s5, s[4:7], s0 603// GFX9: s_buffer_atomic_umax s5, s[4:7], s0 ; encoding: [0x42,0x01,0x1c,0xc1,0x00,0x00,0x00,0x00] 604// GFX1012: s_buffer_atomic_umax s5, s[4:7], s0 ; encoding: [0x42,0x01,0x1c,0xf5,0x00,0x00,0x00,0x00] 605// NOSICIVIGFX1030: error: instruction not supported on this GPU 606 607s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 glc 608// GFX9: s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x9d,0xc1,0x00,0x00,0x00,0x00] 609// GFX1012: s_buffer_atomic_umax_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x9d,0xf5,0x00,0x00,0x00,0x00] 610// NOSICIVIGFX1030: error: instruction not supported on this GPU 611 612s_buffer_atomic_umin s5, s[4:7], s0 613// GFX9: s_buffer_atomic_umin s5, s[4:7], s0 ; encoding: [0x42,0x01,0x14,0xc1,0x00,0x00,0x00,0x00] 614// GFX1012: s_buffer_atomic_umin s5, s[4:7], s0 ; encoding: [0x42,0x01,0x14,0xf5,0x00,0x00,0x00,0x00] 615// NOSICIVIGFX1030: error: instruction not supported on this GPU 616 617s_buffer_atomic_umin_x2 s[10:11], s[4:7], s0 glc 618// GFX9: s_buffer_atomic_umin_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x95,0xc1,0x00,0x00,0x00,0x00] 619// GFX1012: s_buffer_atomic_umin_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0x95,0xf5,0x00,0x00,0x00,0x00] 620// NOSICIVIGFX1030: error: instruction not supported on this GPU 621 622s_buffer_atomic_xor s5, s[4:7], s0 623// GFX9: s_buffer_atomic_xor s5, s[4:7], s0 ; encoding: [0x42,0x01,0x28,0xc1,0x00,0x00,0x00,0x00] 624// GFX1012: s_buffer_atomic_xor s5, s[4:7], s0 ; encoding: [0x42,0x01,0x28,0xf5,0x00,0x00,0x00,0x00] 625// NOSICIVIGFX1030: error: instruction not supported on this GPU 626 627s_buffer_atomic_xor_x2 s[10:11], s[4:7], s0 glc 628// GFX9: s_buffer_atomic_xor_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xa9,0xc1,0x00,0x00,0x00,0x00] 629// GFX1012: s_buffer_atomic_xor_x2 s[10:11], s[4:7], s0 glc ; encoding: [0x82,0x02,0xa9,0xf5,0x00,0x00,0x00,0x00] 630// NOSICIVIGFX1030: error: instruction not supported on this GPU 631 632//===----------------------------------------------------------------------===// 633// Unsigned 20-bit offsets (VI+) 634//===----------------------------------------------------------------------===// 635 636s_atc_probe 0x7, s[4:5], 0xFFFFF 637// NOSICI: error: instruction not supported on this GPU 638// GFX89: s_atc_probe 7, s[4:5], 0xfffff ; encoding: [0xc2,0x01,0x9a,0xc0,0xff,0xff,0x0f,0x00] 639// GFX10: s_atc_probe 7, s[4:5], 0xfffff ; encoding: [0xc2,0x01,0x98,0xf4,0xff,0xff,0x0f,0xfa] 640 641s_atc_probe_buffer 0x1, s[8:11], 0xFFFFF 642// NOSICI: error: instruction not supported on this GPU 643// GFX89: s_atc_probe_buffer 1, s[8:11], 0xfffff ; encoding: [0x44,0x00,0x9e,0xc0,0xff,0xff,0x0f,0x00] 644// GFX10: s_atc_probe_buffer 1, s[8:11], 0xfffff ; encoding: [0x44,0x00,0x9c,0xf4,0xff,0xff,0x0f,0xfa] 645 646s_store_dword s1, s[2:3], 0xFFFFF 647// NOSICIGFX1030: error: instruction not supported on this GPU 648// GFX89: s_store_dword s1, s[2:3], 0xfffff ; encoding: [0x41,0x00,0x42,0xc0,0xff,0xff,0x0f,0x00] 649// GFX1012: s_store_dword s1, s[2:3], 0xfffff ; encoding: [0x41,0x00,0x40,0xf4,0xff,0xff,0x0f,0xfa] 650 651s_buffer_store_dword s10, s[92:95], 0xFFFFF 652// NOSICIGFX1030: error: instruction not supported on this GPU 653// GFX89: s_buffer_store_dword s10, s[92:95], 0xfffff ; encoding: [0xae,0x02,0x62,0xc0,0xff,0xff,0x0f,0x00] 654// GFX1012: s_buffer_store_dword s10, s[92:95], 0xfffff ; encoding: [0xae,0x02,0x60,0xf4,0xff,0xff,0x0f,0xfa] 655 656s_atomic_swap s5, s[2:3], 0xFFFFF 657// NOSICIVIGFX1030: error: instruction not supported on this GPU 658// GFX1012: s_atomic_swap s5, s[2:3], 0xfffff ; encoding: [0x41,0x01,0x00,0xf6,0xff,0xff,0x0f,0xfa] 659// GFX9: s_atomic_swap s5, s[2:3], 0xfffff ; encoding: [0x41,0x01,0x02,0xc2,0xff,0xff,0x0f,0x00] 660 661s_buffer_atomic_swap s5, s[4:7], 0xFFFFF 662// NOSICIVIGFX1030: error: instruction not supported on this GPU 663// GFX1012: s_buffer_atomic_swap s5, s[4:7], 0xfffff ; encoding: [0x42,0x01,0x00,0xf5,0xff,0xff,0x0f,0xfa] 664// GFX9: s_buffer_atomic_swap s5, s[4:7], 0xfffff ; encoding: [0x42,0x01,0x02,0xc1,0xff,0xff,0x0f,0x00] 665 666s_atc_probe 0x7, s[4:5], 0x1FFFFF 667// NOSICI: error: instruction not supported on this GPU 668// NOGFX9: error: expected a 21-bit signed offset 669// NOVI: error: expected a 20-bit unsigned offset 670 671s_atc_probe_buffer 0x1, s[8:11], 0x1FFFFF 672// NOSICI: error: instruction not supported on this GPU 673// NOGFX9: error: expected a 20-bit unsigned offset 674// NOVI: error: expected a 20-bit unsigned offset 675 676s_store_dword s1, s[2:3], 0x1FFFFF 677// NOSICIGFX1030: error: instruction not supported on this GPU 678// NOGFX9GFX1012: error: expected a 21-bit signed offset 679// NOVI: error: expected a 20-bit unsigned offset 680 681s_buffer_store_dword s10, s[92:95], 0x1FFFFF 682// NOSICIGFX1030: error: instruction not supported on this GPU 683// NOGFX9GFX1012: error: expected a 20-bit unsigned offset 684// NOVI: error: expected a 20-bit unsigned offset 685 686s_atomic_swap s5, s[2:3], 0x1FFFFF 687// NOSICIVIGFX1030: error: instruction not supported on this GPU 688// NOGFX9GFX1012: error: expected a 21-bit signed offset 689 690s_buffer_atomic_swap s5, s[4:7], 0x1FFFFF 691// NOSICIVIGFX1030: error: instruction not supported on this GPU 692// NOGFX9GFX1012: error: expected a 20-bit unsigned offset 693 694//===----------------------------------------------------------------------===// 695// Signed offsets (gfx9+) 696//===----------------------------------------------------------------------===// 697 698s_atc_probe 0x7, s[4:5], -1 699// NOVI: error: expected a 20-bit unsigned offset 700// GFX9: s_atc_probe 7, s[4:5], -0x1 ; encoding: [0xc2,0x01,0x9a,0xc0,0xff,0xff,0x1f,0x00] 701// GFX10: s_atc_probe 7, s[4:5], -0x1 ; encoding: [0xc2,0x01,0x98,0xf4,0xff,0xff,0x1f,0xfa] 702// NOSICI: error: instruction not supported on this GPU 703 704s_atc_probe_buffer 0x1, s[8:11], -1 705// NOVI: error: expected a 20-bit unsigned offset 706// NOSICI: error: instruction not supported on this GPU 707// NOGFX9: error: expected a 20-bit unsigned offset 708 709s_store_dword s1, s[2:3], -1 710// NOVI: error: expected a 20-bit unsigned offset 711// GFX9: s_store_dword s1, s[2:3], -0x1 ; encoding: [0x41,0x00,0x42,0xc0,0xff,0xff,0x1f,0x00] 712// GFX1012: s_store_dword s1, s[2:3], -0x1 ; encoding: [0x41,0x00,0x40,0xf4,0xff,0xff,0x1f,0xfa] 713// NOSICIGFX1030: error: instruction not supported on this GPU 714 715s_buffer_store_dword s10, s[92:95], -1 716// NOVI: error: expected a 20-bit unsigned offset 717// NOSICIGFX1030: error: instruction not supported on this GPU 718// NOGFX9GFX1012: error: expected a 20-bit unsigned offset 719 720s_load_dword s1, s[2:3], -1 721// NOVI: error: expected a 20-bit unsigned offset 722// GFX9: s_load_dword s1, s[2:3], -0x1 ; encoding: [0x41,0x00,0x02,0xc0,0xff,0xff,0x1f,0x00] 723// GFX10: s_load_dword s1, s[2:3], -0x1 ; encoding: [0x41,0x00,0x00,0xf4,0xff,0xff,0x1f,0xfa] 724// NOSICI: error: operands are not valid for this GPU or mode 725 726s_buffer_load_dword s10, s[92:95], -1 727// NOVI: error: expected a 20-bit unsigned offset 728// NOSICI: error: operands are not valid for this GPU or mode 729// NOGFX9: error: expected a 20-bit unsigned offset 730 731s_atomic_swap s5, s[2:3], -1 732// NOVI: error: instruction not supported on this GPU 733// GFX9: s_atomic_swap s5, s[2:3], -0x1 ; encoding: [0x41,0x01,0x02,0xc2,0xff,0xff,0x1f,0x00] 734// GFX1012: s_atomic_swap s5, s[2:3], -0x1 ; encoding: [0x41,0x01,0x00,0xf6,0xff,0xff,0x1f,0xfa] 735// NOSICIGFX1030: error: instruction not supported on this GPU 736 737s_buffer_atomic_swap s5, s[4:7], -1 738// NOVI: error: instruction not supported on this GPU 739// NOSICIGFX1030: error: instruction not supported on this GPU 740// NOGFX9GFX1012: error: expected a 20-bit unsigned offset 741 742s_atc_probe 0x7, s[4:5], 0xFFFFFFFFFFF00000 743// NOSICI: error: instruction not supported on this GPU 744// GFX10: s_atc_probe 7, s[4:5], -0x100000 ; encoding: [0xc2,0x01,0x98,0xf4,0x00,0x00,0x10,0xfa] 745// GFX9: s_atc_probe 7, s[4:5], -0x100000 ; encoding: [0xc2,0x01,0x9a,0xc0,0x00,0x00,0x10,0x00] 746// NOVI: error: expected a 20-bit unsigned offset 747 748s_atc_probe_buffer 0x1, s[8:11], 0xFFFFFFFFFFF00000 749// NOSICI: error: instruction not supported on this GPU 750// NOGFX9: error: expected a 20-bit unsigned offset 751// NOVI: error: expected a 20-bit unsigned offset 752 753s_store_dword s1, s[2:3], 0xFFFFFFFFFFF00000 754// NOSICIGFX1030: error: instruction not supported on this GPU 755// GFX1012: s_store_dword s1, s[2:3], -0x100000 ; encoding: [0x41,0x00,0x40,0xf4,0x00,0x00,0x10,0xfa] 756// GFX9: s_store_dword s1, s[2:3], -0x100000 ; encoding: [0x41,0x00,0x42,0xc0,0x00,0x00,0x10,0x00] 757// NOVI: error: expected a 20-bit unsigned offset 758 759s_buffer_store_dword s10, s[92:95], 0xFFFFFFFFFFF00000 760// NOSICIGFX1030: error: instruction not supported on this GPU 761// NOGFX9GFX1012: error: expected a 20-bit unsigned offset 762// NOVI: error: expected a 20-bit unsigned offset 763 764s_load_dword s1, s[2:3], 0xFFFFFFFFFFF00000 765// NOSICI: error: operands are not valid for this GPU or mode 766// GFX10: s_load_dword s1, s[2:3], -0x100000 ; encoding: [0x41,0x00,0x00,0xf4,0x00,0x00,0x10,0xfa] 767// GFX9: s_load_dword s1, s[2:3], -0x100000 ; encoding: [0x41,0x00,0x02,0xc0,0x00,0x00,0x10,0x00] 768// NOVI: error: expected a 20-bit unsigned offset 769 770s_buffer_load_dword s10, s[92:95], 0xFFFFFFFFFFF00000 771// NOSICI: error: operands are not valid for this GPU or mode 772// NOGFX9: error: expected a 20-bit unsigned offset 773// NOVI: error: expected a 20-bit unsigned offset 774 775s_atomic_swap s5, s[2:3], 0xFFFFFFFFFFF00000 776// NOSICIVIGFX1030: error: instruction not supported on this GPU 777// GFX1012: s_atomic_swap s5, s[2:3], -0x100000 ; encoding: [0x41,0x01,0x00,0xf6,0x00,0x00,0x10,0xfa] 778// GFX9: s_atomic_swap s5, s[2:3], -0x100000 ; encoding: [0x41,0x01,0x02,0xc2,0x00,0x00,0x10,0x00] 779 780s_buffer_atomic_swap s5, s[4:7], 0xFFFFFFFFFFF00000 781// NOSICIVIGFX1030: error: instruction not supported on this GPU 782// NOGFX9GFX1012: error: expected a 20-bit unsigned offset 783