blob: 84953319c53ac2cc2bcf29726e37fef481bf8c2b [file] [log] [blame]
Matt Arsenaultd6adfb42015-09-24 19:52:21 +00001// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=SI -check-prefix=SICI %s
2// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=CI -check-prefix=SICI %s
Valery Pykhtinc0a77c52016-03-23 04:27:26 +00003// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga -show-encoding %s | FileCheck -check-prefix=GCN -check-prefix=VI %s
Matt Arsenaultd6adfb42015-09-24 19:52:21 +00004
5// RUN: not llvm-mc -arch=amdgcn -mcpu=tahiti %s 2>&1 | FileCheck -check-prefix=NOSI %s
6// RUN: not llvm-mc -arch=amdgcn -mcpu=bonaire %s 2>&1 | FileCheck -check-prefix=NOCI %s
7// RUN: not llvm-mc -arch=amdgcn -mcpu=tonga %s 2>&1 | FileCheck -check-prefix=NOVI %s
Tom Stellardd7e6f132015-04-08 01:09:26 +00008
9//===----------------------------------------------------------------------===//
10// Test for different operand combinations
11//===----------------------------------------------------------------------===//
12
13//===----------------------------------------------------------------------===//
14// load - immediate offset only
15//===----------------------------------------------------------------------===//
16
17buffer_load_dword v1, s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +000018// SICI: buffer_load_dword v1, s[4:7], s1 ; encoding: [0x00,0x00,0x30,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000019// VI: buffer_load_dword v1, s[4:7], s1 ; encoding: [0x00,0x00,0x50,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000020
21buffer_load_dword v1, s[4:7], s1 offset:4
Matt Arsenaultc1167672015-09-24 19:52:15 +000022// SICI: buffer_load_dword v1, s[4:7], s1 offset:4 ; encoding: [0x04,0x00,0x30,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000023// VI: buffer_load_dword v1, s[4:7], s1 offset:4 ; encoding: [0x04,0x00,0x50,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000024
25buffer_load_dword v1, s[4:7], s1 offset:4 glc
Matt Arsenaultc1167672015-09-24 19:52:15 +000026// SICI: buffer_load_dword v1, s[4:7], s1 offset:4 glc ; encoding: [0x04,0x40,0x30,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000027// VI: buffer_load_dword v1, s[4:7], s1 offset:4 glc ; encoding: [0x04,0x40,0x50,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000028
29buffer_load_dword v1, s[4:7], s1 offset:4 slc
Matt Arsenaultc1167672015-09-24 19:52:15 +000030// SICI: buffer_load_dword v1, s[4:7], s1 offset:4 slc ; encoding: [0x04,0x00,0x30,0xe0,0x00,0x01,0x41,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000031// VI: buffer_load_dword v1, s[4:7], s1 offset:4 slc ; encoding: [0x04,0x00,0x52,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000032
33buffer_load_dword v1, s[4:7], s1 offset:4 tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +000034// SICI: buffer_load_dword v1, s[4:7], s1 offset:4 tfe ; encoding: [0x04,0x00,0x30,0xe0,0x00,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000035// VI: buffer_load_dword v1, s[4:7], s1 offset:4 tfe ; encoding: [0x04,0x00,0x50,0xe0,0x00,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000036
Nikolay Haustovea8febd2016-03-01 08:34:43 +000037buffer_load_dword v1, s[4:7], s1 glc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +000038// SICI: buffer_load_dword v1, s[4:7], s1 glc tfe ; encoding: [0x00,0x40,0x30,0xe0,0x00,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000039// VI: buffer_load_dword v1, s[4:7], s1 glc tfe ; encoding: [0x00,0x40,0x50,0xe0,0x00,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000040
Nikolay Haustovea8febd2016-03-01 08:34:43 +000041buffer_load_dword v1, s[4:7], s1 offset:4 glc slc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +000042// SICI: buffer_load_dword v1, s[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x30,0xe0,0x00,0x01,0xc1,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000043// VI: buffer_load_dword v1, s[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x52,0xe0,0x00,0x01,0x81,0x01]
44
Tom Stellardd7e6f132015-04-08 01:09:26 +000045
46//===----------------------------------------------------------------------===//
47// load - vgpr offset
48//===----------------------------------------------------------------------===//
49
50buffer_load_dword v1, v2, s[4:7], s1 offen
Matt Arsenaultc1167672015-09-24 19:52:15 +000051// SICI: buffer_load_dword v1, v2, s[4:7], s1 offen ; encoding: [0x00,0x10,0x30,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000052// VI: buffer_load_dword v1, v2, s[4:7], s1 offen ; encoding: [0x00,0x10,0x50,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000053
54buffer_load_dword v1, v2, s[4:7], s1 offen offset:4
Matt Arsenaultc1167672015-09-24 19:52:15 +000055// SICI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 ; encoding: [0x04,0x10,0x30,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000056// VI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 ; encoding: [0x04,0x10,0x50,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000057
58buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc
Matt Arsenaultc1167672015-09-24 19:52:15 +000059// SICI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc ; encoding: [0x04,0x50,0x30,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000060// VI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc ; encoding: [0x04,0x50,0x50,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000061
62buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 slc
Matt Arsenaultc1167672015-09-24 19:52:15 +000063// SICI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 slc ; encoding: [0x04,0x10,0x30,0xe0,0x02,0x01,0x41,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000064// VI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 slc ; encoding: [0x04,0x10,0x52,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000065
66buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +000067// SICI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 tfe ; encoding: [0x04,0x10,0x30,0xe0,0x02,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000068// VI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 tfe ; encoding: [0x04,0x10,0x50,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000069
Nikolay Haustovea8febd2016-03-01 08:34:43 +000070buffer_load_dword v1, v2, s[4:7], s1 offen glc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +000071// SICI: buffer_load_dword v1, v2, s[4:7], s1 offen glc tfe ; encoding: [0x00,0x50,0x30,0xe0,0x02,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000072// VI: buffer_load_dword v1, v2, s[4:7], s1 offen glc tfe ; encoding: [0x00,0x50,0x50,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000073
Nikolay Haustovea8febd2016-03-01 08:34:43 +000074buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +000075// SICI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x30,0xe0,0x02,0x01,0xc1,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000076// VI: buffer_load_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x52,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000077
78//===----------------------------------------------------------------------===//
79// load - vgpr index
80//===----------------------------------------------------------------------===//
81
82buffer_load_dword v1, v2, s[4:7], s1 idxen
Matt Arsenaultc1167672015-09-24 19:52:15 +000083// SICI: buffer_load_dword v1, v2, s[4:7], s1 idxen ; encoding: [0x00,0x20,0x30,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000084// VI: buffer_load_dword v1, v2, s[4:7], s1 idxen ; encoding: [0x00,0x20,0x50,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000085
86buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4
Matt Arsenaultc1167672015-09-24 19:52:15 +000087// SICI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 ; encoding: [0x04,0x20,0x30,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000088// VI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 ; encoding: [0x04,0x20,0x50,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000089
90buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc
Matt Arsenaultc1167672015-09-24 19:52:15 +000091// SICI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc ; encoding: [0x04,0x60,0x30,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000092// VI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc ; encoding: [0x04,0x60,0x50,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000093
94buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 slc
Matt Arsenaultc1167672015-09-24 19:52:15 +000095// SICI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 slc ; encoding: [0x04,0x20,0x30,0xe0,0x02,0x01,0x41,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +000096// VI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 slc ; encoding: [0x04,0x20,0x52,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +000097
98buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +000099// SICI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 tfe ; encoding: [0x04,0x20,0x30,0xe0,0x02,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000100// VI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 tfe ; encoding: [0x04,0x20,0x50,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000101
Nikolay Haustovea8febd2016-03-01 08:34:43 +0000102buffer_load_dword v1, v2, s[4:7], s1 idxen glc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000103// SICI: buffer_load_dword v1, v2, s[4:7], s1 idxen glc tfe ; encoding: [0x00,0x60,0x30,0xe0,0x02,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000104// VI: buffer_load_dword v1, v2, s[4:7], s1 idxen glc tfe ; encoding: [0x00,0x60,0x50,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000105
Nikolay Haustovea8febd2016-03-01 08:34:43 +0000106buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000107// SICI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x30,0xe0,0x02,0x01,0xc1,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000108// VI: buffer_load_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x52,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000109
110//===----------------------------------------------------------------------===//
111// load - vgpr index and offset
112//===----------------------------------------------------------------------===//
113
114buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen
Matt Arsenaultc1167672015-09-24 19:52:15 +0000115// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen ; encoding: [0x00,0x30,0x30,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000116// VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen ; encoding: [0x00,0x30,0x50,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000117
118buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4
Matt Arsenaultc1167672015-09-24 19:52:15 +0000119// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 ; encoding: [0x04,0x30,0x30,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000120// VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 ; encoding: [0x04,0x30,0x50,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000121
122buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc
Matt Arsenaultc1167672015-09-24 19:52:15 +0000123// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc ; encoding: [0x04,0x70,0x30,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000124// VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc ; encoding: [0x04,0x70,0x50,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000125
126buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 slc
Matt Arsenaultc1167672015-09-24 19:52:15 +0000127// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 slc ; encoding: [0x04,0x30,0x30,0xe0,0x02,0x01,0x41,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000128// VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 slc ; encoding: [0x04,0x30,0x52,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000129
130buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000131// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 tfe ; encoding: [0x04,0x30,0x30,0xe0,0x02,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000132// VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 tfe ; encoding: [0x04,0x30,0x50,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000133
Nikolay Haustovea8febd2016-03-01 08:34:43 +0000134buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000135// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe ; encoding: [0x00,0x70,0x30,0xe0,0x02,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000136// VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe ; encoding: [0x00,0x70,0x50,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000137
Nikolay Haustovea8febd2016-03-01 08:34:43 +0000138buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000139// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x30,0xe0,0x02,0x01,0xc1,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000140// VI: buffer_load_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x52,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000141
142//===----------------------------------------------------------------------===//
143// load - addr64
144//===----------------------------------------------------------------------===//
145
146buffer_load_dword v1, v[2:3], s[4:7], s1 addr64
Matt Arsenaultc1167672015-09-24 19:52:15 +0000147// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 ; encoding: [0x00,0x80,0x30,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000148// NOVI: error: instruction not supported on this GPU
Tom Stellardd7e6f132015-04-08 01:09:26 +0000149
150buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4
Matt Arsenaultc1167672015-09-24 19:52:15 +0000151// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 ; encoding: [0x04,0x80,0x30,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000152// NOVI: error: instruction not supported on this GPU
Tom Stellardd7e6f132015-04-08 01:09:26 +0000153
154buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc
Matt Arsenaultc1167672015-09-24 19:52:15 +0000155// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc ; encoding: [0x04,0xc0,0x30,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000156// NOVI: error: instruction not supported on this GPU
Tom Stellardd7e6f132015-04-08 01:09:26 +0000157
158buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 slc
Matt Arsenaultc1167672015-09-24 19:52:15 +0000159// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 slc ; encoding: [0x04,0x80,0x30,0xe0,0x02,0x01,0x41,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000160// NOVI: error: instruction not supported on this GPU
Tom Stellardd7e6f132015-04-08 01:09:26 +0000161
162buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000163// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 tfe ; encoding: [0x04,0x80,0x30,0xe0,0x02,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000164// NOVI: error: instruction not supported on this GPU
Tom Stellardd7e6f132015-04-08 01:09:26 +0000165
Nikolay Haustovea8febd2016-03-01 08:34:43 +0000166buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 glc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000167// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 glc tfe ; encoding: [0x00,0xc0,0x30,0xe0,0x02,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000168// NOVI: error: instruction not supported on this GPU
Tom Stellardd7e6f132015-04-08 01:09:26 +0000169
Nikolay Haustovea8febd2016-03-01 08:34:43 +0000170buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc slc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000171// SICI: buffer_load_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc slc tfe ; encoding: [0x04,0xc0,0x30,0xe0,0x02,0x01,0xc1,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000172// NOVI: error: instruction not supported on this GPU
Tom Stellardd7e6f132015-04-08 01:09:26 +0000173
174//===----------------------------------------------------------------------===//
175// store - immediate offset only
176//===----------------------------------------------------------------------===//
177
178buffer_store_dword v1, s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000179// SICI: buffer_store_dword v1, s[4:7], s1 ; encoding: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000180// VI: buffer_store_dword v1, s[4:7], s1 ; encoding: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000181
182buffer_store_dword v1, s[4:7], s1 offset:4
Matt Arsenaultc1167672015-09-24 19:52:15 +0000183// SICI: buffer_store_dword v1, s[4:7], s1 offset:4 ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000184// VI: buffer_store_dword v1, s[4:7], s1 offset:4 ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000185
186buffer_store_dword v1, s[4:7], s1 offset:4 glc
Matt Arsenaultc1167672015-09-24 19:52:15 +0000187// SICI: buffer_store_dword v1, s[4:7], s1 offset:4 glc ; encoding: [0x04,0x40,0x70,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000188// VI: buffer_store_dword v1, s[4:7], s1 offset:4 glc ; encoding: [0x04,0x40,0x70,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000189
190buffer_store_dword v1, s[4:7], s1 offset:4 slc
Matt Arsenaultc1167672015-09-24 19:52:15 +0000191// SICI: buffer_store_dword v1, s[4:7], s1 offset:4 slc ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x41,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000192// VI: buffer_store_dword v1, s[4:7], s1 offset:4 slc ; encoding: [0x04,0x00,0x72,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000193
194buffer_store_dword v1, s[4:7], s1 offset:4 tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000195// SICI: buffer_store_dword v1, s[4:7], s1 offset:4 tfe ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000196// VI: buffer_store_dword v1, s[4:7], s1 offset:4 tfe ; encoding: [0x04,0x00,0x70,0xe0,0x00,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000197
Nikolay Haustovea8febd2016-03-01 08:34:43 +0000198buffer_store_dword v1, s[4:7], s1 glc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000199// SICI: buffer_store_dword v1, s[4:7], s1 glc tfe ; encoding: [0x00,0x40,0x70,0xe0,0x00,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000200// VI: buffer_store_dword v1, s[4:7], s1 glc tfe ; encoding: [0x00,0x40,0x70,0xe0,0x00,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000201
Nikolay Haustovea8febd2016-03-01 08:34:43 +0000202buffer_store_dword v1, s[4:7], s1 offset:4 glc slc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000203// SICI: buffer_store_dword v1, s[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x70,0xe0,0x00,0x01,0xc1,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000204// VI: buffer_store_dword v1, s[4:7], s1 offset:4 glc slc tfe ; encoding: [0x04,0x40,0x72,0xe0,0x00,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000205
206//===----------------------------------------------------------------------===//
207// store - vgpr offset
208//===----------------------------------------------------------------------===//
209
210buffer_store_dword v1, v2, s[4:7], s1 offen
Matt Arsenaultc1167672015-09-24 19:52:15 +0000211// SICI: buffer_store_dword v1, v2, s[4:7], s1 offen ; encoding: [0x00,0x10,0x70,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000212// VI: buffer_store_dword v1, v2, s[4:7], s1 offen ; encoding: [0x00,0x10,0x70,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000213
214buffer_store_dword v1, v2, s[4:7], s1 offen offset:4
Matt Arsenaultc1167672015-09-24 19:52:15 +0000215// SICI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 ; encoding: [0x04,0x10,0x70,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000216// VI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 ; encoding: [0x04,0x10,0x70,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000217
218buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc
Matt Arsenaultc1167672015-09-24 19:52:15 +0000219// SICI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc ; encoding: [0x04,0x50,0x70,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000220// VI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc ; encoding: [0x04,0x50,0x70,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000221
222buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 slc
Matt Arsenaultc1167672015-09-24 19:52:15 +0000223// SICI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 slc ; encoding: [0x04,0x10,0x70,0xe0,0x02,0x01,0x41,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000224// VI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 slc ; encoding: [0x04,0x10,0x72,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000225
226buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000227// SICI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 tfe ; encoding: [0x04,0x10,0x70,0xe0,0x02,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000228// VI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 tfe ; encoding: [0x04,0x10,0x70,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000229
Nikolay Haustovea8febd2016-03-01 08:34:43 +0000230buffer_store_dword v1, v2, s[4:7], s1 offen glc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000231// SICI: buffer_store_dword v1, v2, s[4:7], s1 offen glc tfe ; encoding: [0x00,0x50,0x70,0xe0,0x02,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000232// VI: buffer_store_dword v1, v2, s[4:7], s1 offen glc tfe ; encoding: [0x00,0x50,0x70,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000233
Nikolay Haustovea8febd2016-03-01 08:34:43 +0000234buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000235// SICI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x70,0xe0,0x02,0x01,0xc1,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000236// VI: buffer_store_dword v1, v2, s[4:7], s1 offen offset:4 glc slc tfe ; encoding: [0x04,0x50,0x72,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000237
238//===----------------------------------------------------------------------===//
239// store - vgpr index
240//===----------------------------------------------------------------------===//
241
242buffer_store_dword v1, v2, s[4:7], s1 idxen
Matt Arsenaultc1167672015-09-24 19:52:15 +0000243// SICI: buffer_store_dword v1, v2, s[4:7], s1 idxen ; encoding: [0x00,0x20,0x70,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000244// VI: buffer_store_dword v1, v2, s[4:7], s1 idxen ; encoding: [0x00,0x20,0x70,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000245
246buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4
Matt Arsenaultc1167672015-09-24 19:52:15 +0000247// SICI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 ; encoding: [0x04,0x20,0x70,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000248// VI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 ; encoding: [0x04,0x20,0x70,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000249
250buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc
Matt Arsenaultc1167672015-09-24 19:52:15 +0000251// SICI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc ; encoding: [0x04,0x60,0x70,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000252// VI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc ; encoding: [0x04,0x60,0x70,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000253
254buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 slc
Matt Arsenaultc1167672015-09-24 19:52:15 +0000255// SICI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 slc ; encoding: [0x04,0x20,0x70,0xe0,0x02,0x01,0x41,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000256// VI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 slc ; encoding: [0x04,0x20,0x72,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000257
258buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000259// SICI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 tfe ; encoding: [0x04,0x20,0x70,0xe0,0x02,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000260// VI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 tfe ; encoding: [0x04,0x20,0x70,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000261
Nikolay Haustovea8febd2016-03-01 08:34:43 +0000262buffer_store_dword v1, v2, s[4:7], s1 idxen glc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000263// SICI: buffer_store_dword v1, v2, s[4:7], s1 idxen glc tfe ; encoding: [0x00,0x60,0x70,0xe0,0x02,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000264// VI: buffer_store_dword v1, v2, s[4:7], s1 idxen glc tfe ; encoding: [0x00,0x60,0x70,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000265
Nikolay Haustovea8febd2016-03-01 08:34:43 +0000266buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000267// SICI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x70,0xe0,0x02,0x01,0xc1,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000268// VI: buffer_store_dword v1, v2, s[4:7], s1 idxen offset:4 glc slc tfe ; encoding: [0x04,0x60,0x72,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000269
270//===----------------------------------------------------------------------===//
271// store - vgpr index and offset
272//===----------------------------------------------------------------------===//
273
274buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen
Matt Arsenaultc1167672015-09-24 19:52:15 +0000275// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen ; encoding: [0x00,0x30,0x70,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000276// VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen ; encoding: [0x00,0x30,0x70,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000277
278buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4
Matt Arsenaultc1167672015-09-24 19:52:15 +0000279// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 ; encoding: [0x04,0x30,0x70,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000280// VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 ; encoding: [0x04,0x30,0x70,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000281
282buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc
Matt Arsenaultc1167672015-09-24 19:52:15 +0000283// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc ; encoding: [0x04,0x70,0x70,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000284// VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc ; encoding: [0x04,0x70,0x70,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000285
286buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 slc
Matt Arsenaultc1167672015-09-24 19:52:15 +0000287// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 slc ; encoding: [0x04,0x30,0x70,0xe0,0x02,0x01,0x41,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000288// VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 slc ; encoding: [0x04,0x30,0x72,0xe0,0x02,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000289
290buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000291// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 tfe ; encoding: [0x04,0x30,0x70,0xe0,0x02,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000292// VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 tfe ; encoding: [0x04,0x30,0x70,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000293
Nikolay Haustovea8febd2016-03-01 08:34:43 +0000294buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000295// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe ; encoding: [0x00,0x70,0x70,0xe0,0x02,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000296// VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen glc tfe ; encoding: [0x00,0x70,0x70,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000297
Nikolay Haustovea8febd2016-03-01 08:34:43 +0000298buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000299// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x70,0xe0,0x02,0x01,0xc1,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000300// VI: buffer_store_dword v1, v[2:3], s[4:7], s1 idxen offen offset:4 glc slc tfe ; encoding: [0x04,0x70,0x72,0xe0,0x02,0x01,0x81,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000301
302//===----------------------------------------------------------------------===//
303// store - addr64
304//===----------------------------------------------------------------------===//
305
306buffer_store_dword v1, v[2:3], s[4:7], s1 addr64
Matt Arsenaultc1167672015-09-24 19:52:15 +0000307// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 ; encoding: [0x00,0x80,0x70,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000308// NOVI: error: instruction not supported on this GPU
Tom Stellardd7e6f132015-04-08 01:09:26 +0000309
310buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4
Matt Arsenaultc1167672015-09-24 19:52:15 +0000311// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 ; encoding: [0x04,0x80,0x70,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000312// NOVI: error: instruction not supported on this GPU
Tom Stellardd7e6f132015-04-08 01:09:26 +0000313
314buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc
Matt Arsenaultc1167672015-09-24 19:52:15 +0000315// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc ; encoding: [0x04,0xc0,0x70,0xe0,0x02,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000316// NOVI: error: instruction not supported on this GPU
Tom Stellardd7e6f132015-04-08 01:09:26 +0000317
318buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 slc
Matt Arsenaultc1167672015-09-24 19:52:15 +0000319// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 slc ; encoding: [0x04,0x80,0x70,0xe0,0x02,0x01,0x41,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000320// NOVI: error: instruction not supported on this GPU
Tom Stellardd7e6f132015-04-08 01:09:26 +0000321
322buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000323// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 tfe ; encoding: [0x04,0x80,0x70,0xe0,0x02,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000324// NOVI: error: instruction not supported on this GPU
Tom Stellardd7e6f132015-04-08 01:09:26 +0000325
Nikolay Haustovea8febd2016-03-01 08:34:43 +0000326buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 glc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000327// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 glc tfe ; encoding: [0x00,0xc0,0x70,0xe0,0x02,0x01,0x81,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000328// NOVI: error: instruction not supported on this GPU
Tom Stellardd7e6f132015-04-08 01:09:26 +0000329
Nikolay Haustovea8febd2016-03-01 08:34:43 +0000330buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc slc tfe
Matt Arsenaultc1167672015-09-24 19:52:15 +0000331// SICI: buffer_store_dword v1, v[2:3], s[4:7], s1 addr64 offset:4 glc slc tfe ; encoding: [0x04,0xc0,0x70,0xe0,0x02,0x01,0xc1,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000332// NOVI: error: instruction not supported on this GPU
Tom Stellardd7e6f132015-04-08 01:09:26 +0000333
334//===----------------------------------------------------------------------===//
335// Instructions
336//===----------------------------------------------------------------------===//
337
338buffer_load_format_x v1, s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000339// SICI: buffer_load_format_x v1, s[4:7], s1 ; encoding: [0x00,0x00,0x00,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000340// VI: buffer_load_format_x v1, s[4:7], s1 ; encoding: [0x00,0x00,0x00,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000341
342buffer_load_format_xy v[1:2], s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000343// SICI: buffer_load_format_xy v[1:2], s[4:7], s1 ; encoding: [0x00,0x00,0x04,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000344// VI: buffer_load_format_xy v[1:2], s[4:7], s1 ; encoding: [0x00,0x00,0x04,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000345
346buffer_load_format_xyz v[1:3], s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000347// SICI: buffer_load_format_xyz v[1:3], s[4:7], s1 ; encoding: [0x00,0x00,0x08,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000348// VI: buffer_load_format_xyz v[1:3], s[4:7], s1 ; encoding: [0x00,0x00,0x08,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000349
350buffer_load_format_xyzw v[1:4], s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000351// SICI: buffer_load_format_xyzw v[1:4], s[4:7], s1 ; encoding: [0x00,0x00,0x0c,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000352// VI: buffer_load_format_xyzw v[1:4], s[4:7], s1 ; encoding: [0x00,0x00,0x0c,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000353
354buffer_store_format_x v1, s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000355// SICI: buffer_store_format_x v1, s[4:7], s1 ; encoding: [0x00,0x00,0x10,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000356// VI: buffer_store_format_x v1, s[4:7], s1 ; encoding: [0x00,0x00,0x10,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000357
358buffer_store_format_xy v[1:2], s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000359// SICI: buffer_store_format_xy v[1:2], s[4:7], s1 ; encoding: [0x00,0x00,0x14,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000360// VI: buffer_store_format_xy v[1:2], s[4:7], s1 ; encoding: [0x00,0x00,0x14,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000361
362buffer_store_format_xyz v[1:3], s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000363// SICI: buffer_store_format_xyz v[1:3], s[4:7], s1 ; encoding: [0x00,0x00,0x18,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000364// VI: buffer_store_format_xyz v[1:3], s[4:7], s1 ; encoding: [0x00,0x00,0x18,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000365
366buffer_store_format_xyzw v[1:4], s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000367// SICI: buffer_store_format_xyzw v[1:4], s[4:7], s1 ; encoding: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000368// VI: buffer_store_format_xyzw v[1:4], s[4:7], s1 ; encoding: [0x00,0x00,0x1c,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000369
370buffer_load_ubyte v1, s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000371// SICI: buffer_load_ubyte v1, s[4:7], s1 ; encoding: [0x00,0x00,0x20,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000372// VI: buffer_load_ubyte v1, s[4:7], s1 ; encoding: [0x00,0x00,0x40,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000373
374buffer_load_sbyte v1, s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000375// SICI: buffer_load_sbyte v1, s[4:7], s1 ; encoding: [0x00,0x00,0x24,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000376// VI: buffer_load_sbyte v1, s[4:7], s1 ; encoding: [0x00,0x00,0x44,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000377
378buffer_load_ushort v1, s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000379// SICI: buffer_load_ushort v1, s[4:7], s1 ; encoding: [0x00,0x00,0x28,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000380// VI: buffer_load_ushort v1, s[4:7], s1 ; encoding: [0x00,0x00,0x48,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000381
382buffer_load_sshort v1, s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000383// SICI: buffer_load_sshort v1, s[4:7], s1 ; encoding: [0x00,0x00,0x2c,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000384// VI: buffer_load_sshort v1, s[4:7], s1 ; encoding: [0x00,0x00,0x4c,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000385
386buffer_load_dword v1, s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000387// SICI: buffer_load_dword v1, s[4:7], s1 ; encoding: [0x00,0x00,0x30,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000388// VI: buffer_load_dword v1, s[4:7], s1 ; encoding: [0x00,0x00,0x50,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000389
390buffer_load_dwordx2 v[1:2], s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000391// SICI: buffer_load_dwordx2 v[1:2], s[4:7], s1 ; encoding: [0x00,0x00,0x34,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000392// VI: buffer_load_dwordx2 v[1:2], s[4:7], s1 ; encoding: [0x00,0x00,0x54,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000393
394buffer_load_dwordx4 v[1:4], s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000395// SICI: buffer_load_dwordx4 v[1:4], s[4:7], s1 ; encoding: [0x00,0x00,0x38,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000396// VI: buffer_load_dwordx4 v[1:4], s[4:7], s1 ; encoding: [0x00,0x00,0x5c,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000397
398buffer_store_byte v1, s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000399// SICI: buffer_store_byte v1, s[4:7], s1 ; encoding: [0x00,0x00,0x60,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000400// VI: buffer_store_byte v1, s[4:7], s1 ; encoding: [0x00,0x00,0x60,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000401
402buffer_store_short v1, s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000403// SICI: buffer_store_short v1, s[4:7], s1 ; encoding: [0x00,0x00,0x68,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000404// VI: buffer_store_short v1, s[4:7], s1 ; encoding: [0x00,0x00,0x68,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000405
406buffer_store_dword v1 s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000407// SICI: buffer_store_dword v1, s[4:7], s1 ; encoding: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000408// VI: buffer_store_dword v1, s[4:7], s1 ; encoding: [0x00,0x00,0x70,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000409
410buffer_store_dwordx2 v[1:2], s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000411// SICI: buffer_store_dwordx2 v[1:2], s[4:7], s1 ; encoding: [0x00,0x00,0x74,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000412// VI: buffer_store_dwordx2 v[1:2], s[4:7], s1 ; encoding: [0x00,0x00,0x74,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000413
414buffer_store_dwordx4 v[1:4], s[4:7], s1
Matt Arsenaultc1167672015-09-24 19:52:15 +0000415// SICI: buffer_store_dwordx4 v[1:4], s[4:7], s1 ; encoding: [0x00,0x00,0x78,0xe0,0x00,0x01,0x01,0x01]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000416// VI: buffer_store_dwordx4 v[1:4], s[4:7], s1 ; encoding: [0x00,0x00,0x7c,0xe0,0x00,0x01,0x01,0x01]
Tom Stellardd7e6f132015-04-08 01:09:26 +0000417
Matt Arsenaultd6adfb42015-09-24 19:52:21 +0000418//===----------------------------------------------------------------------===//
419// Cache invalidation
420//===----------------------------------------------------------------------===//
421
422buffer_wbinvl1
423// SICI: buffer_wbinvl1 ; encoding: [0x00,0x00,0xc4,0xe1,0x00,0x00,0x00,0x00]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000424// VI: buffer_wbinvl1 ; encoding: [0x00,0x00,0xf8,0xe0,0x00,0x00,0x00,0x00]
Matt Arsenaultd6adfb42015-09-24 19:52:21 +0000425
426buffer_wbinvl1_sc
427// SI: buffer_wbinvl1_sc ; encoding: [0x00,0x00,0xc0,0xe1,0x00,0x00,0x00,0x00]
428// NOCI: error: instruction not supported on this GPU
429// NOVI: error: instruction not supported on this GPU
430
431buffer_wbinvl1_vol
432// CI: buffer_wbinvl1_vol ; encoding: [0x00,0x00,0xc0,0xe1,0x00,0x00,0x00,0x00]
Valery Pykhtinc0a77c52016-03-23 04:27:26 +0000433// VI: buffer_wbinvl1_vol ; encoding: [0x00,0x00,0xfc,0xe0,0x00,0x00,0x00,0x00]
Matt Arsenaultd6adfb42015-09-24 19:52:21 +0000434// NOSI: error: instruction not supported on this GPU
435
Tom Stellardd7e6f132015-04-08 01:09:26 +0000436// TODO: Atomics