Dmitry Preobrazhensky
0a1ff464e1
[AMDGPU][MC] Corrected dst/data size for MIMG opcodes with d16 modifier
...
See bug 36154: https://bugs.llvm.org/show_bug.cgi?id=36154
Differential Revision: https://reviews.llvm.org/D42847
Reviewers: cfang, artem.tamazov, arsenm
llvm-svn: 324237
2018-02-05 14:18:53 +00:00
Changpeng Fang
0905870f93
AMDGPU/SI: Add decoding in the GFX80_UNPACKED decoding namespace.
...
Reviewer:
Dmitry (dp).
Differential Revision:
https://reviews.llvm.org/D42596
llvm-svn: 323785
2018-01-30 16:42:40 +00:00
Dmitry Preobrazhensky
4f321aef74
[AMDGPU][MC] Corrected parsing of image opcode modifiers r128 and d16
...
See bugs 36092, 36093:
https://bugs.llvm.org/show_bug.cgi?id=36092
https://bugs.llvm.org/show_bug.cgi?id=36093
Differential Revision: https://reviews.llvm.org/D42583
Reviewers: vpykhtin, artem.tamazov, arsenm
llvm-svn: 323651
2018-01-29 14:20:42 +00:00
Dmitry Preobrazhensky
0b4eb1ead1
[AMDGPU][MC] Added support of 64-bit image atomics
...
See bug 35998: https://bugs.llvm.org/show_bug.cgi?id=35998
Differential Revision: https://reviews.llvm.org/D42469
Reviewers: vpykhtin, artem.tamazov, arsenm
llvm-svn: 323534
2018-01-26 15:43:29 +00:00
Dmitry Preobrazhensky
6cb42e7622
[AMDGPU][MC] Enabled disassembler for image atomic operations
...
See bug 35988: https://bugs.llvm.org/show_bug.cgi?id=35988
Differential Revision: https://reviews.llvm.org/D42186
Reviewers: vpykhtin, artem.tamazov, arsenm
llvm-svn: 323527
2018-01-26 14:07:38 +00:00
Dmitry Preobrazhensky
6b65f7c380
[AMDGPU][MC][GFX9] Enable inline constants for SDWA operands
...
See bug 35771: https://bugs.llvm.org/show_bug.cgi?id=35771
Differential Revision: https://reviews.llvm.org/D42058
Reviewers: vpykhtin, artem.tamazov, arsenm
llvm-svn: 322655
2018-01-17 14:00:48 +00:00
Dmitry Preobrazhensky
3afbd825a3
[AMDGPU][MC][GFX8][GFX9] Added XNACK_MASK support
...
See bug 35764: https://bugs.llvm.org/show_bug.cgi?id=35764
Differential Revision: https://reviews.llvm.org/D41614
Reviewers: vpykhtin, artem.tamazov, arsenm
llvm-svn: 322189
2018-01-10 14:22:19 +00:00
Dmitry Preobrazhensky
414e05383f
[AMDGPU][MC] Incorrect parsing of flat/global atomic modifiers
...
See bug 35730: https://bugs.llvm.org/show_bug.cgi?id=35730
Differential Revision: https://reviews.llvm.org/D41598
Reviewers: vpykhtin, artem.tamazov, arsenm
llvm-svn: 321552
2017-12-29 13:55:11 +00:00
Dmitry Preobrazhensky
c5b0c172f6
[AMDGPU][MC] Corrected parsing of optional operands for ds_swizzle_b32
...
See bug 35645: https://bugs.llvm.org/show_bug.cgi?id=35645
Reviewers: artem.tamazov, arsenm
Differential Revision: https://reviews.llvm.org/D41186
llvm-svn: 321367
2017-12-22 17:13:28 +00:00
Dmitry Preobrazhensky
2713495318
[AMDGPU][MC] Added support of 256- and 512-bit tuples of ttmp registers
...
See bug 35561: https://bugs.llvm.org/show_bug.cgi?id=35561
This patch also affects implementation of SGPR and VGPR registers though changes are cosmetic.
Reviewers: artem.tamazov, arsenm
Differential Revision: https://reviews.llvm.org/D41437
llvm-svn: 321359
2017-12-22 15:18:06 +00:00
Matt Arsenault
cad7fa857c
AMDGPU: Partially fix disassembly of MIMG instructions
...
Stores failed to decode at all since they didn't have a
DecoderNamespace set. Loads worked, but did not change
the register width displayed to match the numbmer of
enabled channels.
The number of printed registers for vaddr is still wrong,
but I don't think that's encoded in the instruction so
there's not much we can do about that.
Image atomics are still broken. MIMG is the same
encoding for SI/VI, but the image atomic classes
are split up into encoding specific versions unlike
every other MIMG instruction. They have isAsmParserOnly
set on them for some reason. dmask is also special for
these, so we probably should not have it as an explicit
operand as it is now.
llvm-svn: 320614
2017-12-13 21:07:51 +00:00
Dmitry Preobrazhensky
ac2b02643b
[AMDGPU][MC][GFX9] Corrected encoding of ttmp registers, disabled tba/tma
...
See bugs 35494 and 35559:
https://bugs.llvm.org/show_bug.cgi?id=35494
https://bugs.llvm.org/show_bug.cgi?id=35559
Reviewers: vpykhtin, artem.tamazov, arsenm
Differential Revision: https://reviews.llvm.org/D41007
llvm-svn: 320375
2017-12-11 15:23:20 +00:00
Konstantin Zhuravlyov
c40d9f2e5d
AMDGPU/GCN: Bring processors in sync with AMDGPUUsage
...
- Add gfx704
- Change bonaire to gfx704
- Remove gfx804
- Remove gfx901
- Remove gfx903
Differential Revision: https://reviews.llvm.org/D40046
llvm-svn: 320194
2017-12-08 20:52:28 +00:00
Dmitry Preobrazhensky
16608e67d3
[AMDGPU][MC][DISASSEMBLER][GFX9] Corrected decoding of GLOBAL/SCRATCH opcodes
...
See bug 35433: https://bugs.llvm.org/show_bug.cgi?id=35433
Differential Revision: https://reviews.llvm.org/D40493
Reviewers: artem.tamazov, SamWot, arsenm
llvm-svn: 319050
2017-11-27 17:14:35 +00:00
Dmitry Preobrazhensky
0e8924a5c7
[AMDGPU][MC][GFX9] Added v_interp_p2_f16 and v_interp_p2_legacy_f16
...
See bug 33629: https://bugs.llvm.org//show_bug.cgi?id=33629
Reviewers: artem.tamazov, SamWot, arsenm
Differential Revision: https://reviews.llvm.org/D39488
llvm-svn: 318955
2017-11-24 15:37:14 +00:00
Dmitry Preobrazhensky
c492500e7e
[AMDGPU][mc][tests] Updated generated lit tests for GFX8/9
...
Summary:
Added tests to better cover features introduced by commit rL318675.
See http://llvm.org/viewvc/llvm-project?view=revision&revision=318675
llvm-svn: 318841
2017-11-22 15:47:27 +00:00
Sam Kolton
c27e3b6f03
[AMDGPU] SDWA: remove omod src operand for VOP2b instructions
...
Summary: VOP2b instructions (v_subbrev_u32, v_add_i32 ...) shouldn't support OMod operand in SDWA encoding
Reviewers: rampitec, dp
Subscribers: arsenm, kzhuravl, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye
Differential Revision: https://reviews.llvm.org/D40172
llvm-svn: 318761
2017-11-21 14:11:59 +00:00
Dmitry Preobrazhensky
a0342dc9eb
[AMDGPU][MC][GFX8][GFX9] Corrected names of integer v_{add/addc/sub/subrev/subb/subbrev}
...
See bug 34765: https://bugs.llvm.org//show_bug.cgi?id=34765
Reviewers: tamazov, SamWot, arsenm, vpykhtin
Differential Revision: https://reviews.llvm.org/D40088
llvm-svn: 318675
2017-11-20 18:24:21 +00:00
Dmitry Preobrazhensky
682a654758
[AMDGPU][MC][GFX9][disassembler] Corrected decoding of op_sel_hi for v_mad_mix*
...
See bug 35148: https://bugs.llvm.org//show_bug.cgi?id=35148
Reviewers: tamazov, SamWot, arsenm
Differential Revision: https://reviews.llvm.org/D39492
llvm-svn: 318526
2017-11-17 15:15:40 +00:00
Dmitry Preobrazhensky
b865ef534a
[AMDGPU][MC][GFX9] Added op_sel support for v_mad_*16, v_fma_f16, v_div_fixup_f16
...
This change implements features postponed in https://reviews.llvm.org/D35424 because of a dependency on https://reviews.llvm.org/D36322
Reviewers: SamWot, artem.tamazov, arsenm
Differential Revision: https://reviews.llvm.org/D36694
llvm-svn: 311011
2017-08-16 15:16:32 +00:00
Dmitry Preobrazhensky
ff64aa514b
[AMDGPU][MC][GFX9] Added integer clamping support for VOP3 opcodes
...
See Bug 34152: https://bugs.llvm.org//show_bug.cgi?id=34152
Reviewers: SamWot, artem.tamazov, arsenm
Differential Revision: https://reviews.llvm.org/D36674
llvm-svn: 311006
2017-08-16 13:51:56 +00:00
Dmitry Preobrazhensky
1e32550de6
[AMDGPU][MC][GFX9] Added 16-bit renamed and "_legacy" VALU opcodes
...
See Bug 33629: https://bugs.llvm.org//show_bug.cgi?id=33629
Reviewers: vpykhtin, SamWot, arsenm
Differential Revision: https://reviews.llvm.org/D36322
llvm-svn: 310497
2017-08-09 17:10:47 +00:00
Dmitry Preobrazhensky
50805a0b83
[AMDGPU][MC] Corrected VOP3 version of v_interp_* instructions for VI
...
See bug 32621: https://bugs.llvm.org//show_bug.cgi?id=32621
Reviewers: vpykhtin, SamWot, arsenm
Differential Revision: https://reviews.llvm.org/D35902
llvm-svn: 310251
2017-08-07 13:14:12 +00:00
Dmitry Preobrazhensky
abf2839478
[AMDGPU][MC][GFX9] Added support of VOP3 'op_sel' modifier
...
See bug 33591: https://bugs.llvm.org//show_bug.cgi?id=33591
Reviewers: vpykhtin, artem.tamazov, SamWot, arsenm
Differential Revision: https://reviews.llvm.org/D35424
llvm-svn: 308740
2017-07-21 13:54:11 +00:00
Dmitry Preobrazhensky
30fc523984
[AMDGPU][MC] Corrected disassembler for proper decoding of v_mqsad_u32_u8
...
See Bug 33639: https://bugs.llvm.org//show_bug.cgi?id=33639
Reviewers: vpykhtin, artem.tamazov
Differential Revision: https://reviews.llvm.org/D34892
llvm-svn: 308303
2017-07-18 13:12:48 +00:00
Dmitry Preobrazhensky
095ec3da81
[AMDGPU][MC] Added missing VOP3P opcodes
...
Added support of the following opcodes:
v_pk_sub_u16
v_pk_mad_i16
v_pk_mad_u16
See Bug 33593: https://bugs.llvm.org//show_bug.cgi?id=33593
Reviewers: vpykhtin, artem.tamazov, arsenm
Differential Revision: https://reviews.llvm.org/D34890
llvm-svn: 308281
2017-07-18 09:24:10 +00:00
David Stuttard
70e8bc1bf3
[AMDGPU] Add intrinsics for tbuffer load and store
...
Intrinsic already existed for llvm.SI.tbuffer.store
Needed tbuffer.load and also re-implementing the intrinsic as llvm.amdgcn.tbuffer.*
Added CodeGen tests for the 2 new variants added.
Left the original llvm.SI.tbuffer.store implementation to avoid issues with existing code
Subscribers: arsenm, kzhuravl, wdng, nhaehnle, yaxunl, tony-tye, tpr
Differential Revision: https://reviews.llvm.org/D30687
llvm-svn: 306031
2017-06-22 16:29:22 +00:00
Dmitry Preobrazhensky
851a3d9f05
[AMDGPU][MC][GFX9] Corrected VOP3P relevant code to fix disassembler failures
...
See Bug 33509: https://bugs.llvm.org//show_bug.cgi?id=33509
Reviewers: Sam Kolton, Artem Tamazov, Valery Pykhtin
Differential Revision: https://reviews.llvm.org/D34360
llvm-svn: 305923
2017-06-21 16:00:54 +00:00
Artem Tamazov
314eafb73d
[AMDGPU][mc][tests][NFC] Bulk ISA tests: Massive update. Add Gfx9 dasm tests.
...
A new Gfx9 dasm test added with approx 29000 cases.
Existing tests extended by (approx.):
* Gfx7 asm: 5000 test cases
* Gfx8 asm: 5000 test cases
* Gfx9 asm: 14400 test cases
* Gfx8 dasm: 5200 test cases
llvm-svn: 305702
2017-06-19 15:55:02 +00:00
Dmitry Preobrazhensky
793c592652
[AMDGPU][MC] New syntax for ds_swizzle_b32 offset
...
See Bug 28601: https://bugs.llvm.org//show_bug.cgi?id=28601
Reviewers: artem.tamazov, vpykhtin
Differential Revision: https://reviews.llvm.org/D33542
llvm-svn: 304309
2017-05-31 16:26:47 +00:00
Sam Kolton
363f47a2c7
[AMDGPU] SDWA: add disassembler support for GFX9
...
Summary: Added decoder methods and tests
Reviewers: vpykhtin, artem.tamazov, dp
Subscribers: arsenm, kzhuravl, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye
Differential Revision: https://reviews.llvm.org/D33545
llvm-svn: 303999
2017-05-26 15:52:00 +00:00
Dmitry Preobrazhensky
ce941c9c38
[AMDGPU][MC] Corrected disassembler to decode instructions with 2 literals
...
See bug 32922: https://bugs.llvm.org//show_bug.cgi?id=32922
Reviewers: artem.tamazov, vpykhtin
Differential Revision: https://reviews.llvm.org/D32912
llvm-svn: 303428
2017-05-19 14:27:52 +00:00
Dmitry Preobrazhensky
9321e8fcec
[AMDGPU][MC] Fixed bugs in export instruction
...
See Bugs 33019, 33056:
https://bugs.llvm.org//show_bug.cgi?id=33019
https://bugs.llvm.org//show_bug.cgi?id=33056
Reviewers: artem.tamazov, vpykhtin
Differential Revision: https://reviews.llvm.org/D33288
llvm-svn: 303423
2017-05-19 13:36:09 +00:00
Dmitry Preobrazhensky
167f8b69e3
[AMDGPU][MC] Corrected several VI opcodes to avoid printing _e64
...
See bug 32936: https://bugs.llvm.org//show_bug.cgi?id=32936
Reviewers: artem.tamazov, vpykhtin
Differential Revision: https://reviews.llvm.org/D33123
llvm-svn: 303070
2017-05-15 14:28:23 +00:00
Dmitry Preobrazhensky
03852a9dca
[AMDGPU][MC] Removed V_MQSAD_U16_U8
...
This instruction does not really exist
See Bug 33018: https://bugs.llvm.org//show_bug.cgi?id=33018
Reviewers: vpykhtin, artem.tamazov
Differential Revision: https://reviews.llvm.org/D33126
llvm-svn: 303055
2017-05-15 12:37:03 +00:00
Matt Arsenault
47ccafe787
AMDGPU: Remove tfe bit from flat instruction definitions
...
We don't use it and it was removed in gfx9, and the encoding
bit repurposed.
Additionally actually using it requires changing the output register
class, which wasn't done anyway.
llvm-svn: 302814
2017-05-11 17:38:33 +00:00
Dmitry Preobrazhensky
da61a7f9ef
[AMDGPU][MC] Corrected v_madak/madmk to avoid printing "_e32" in disassembler output
...
See bug 32927: https://bugs.llvm.org//show_bug.cgi?id=32927
Reviewers: vpykhtin, artem.tamazov, arsenm
Differential Revision: https://reviews.llvm.org/D32913
llvm-svn: 302648
2017-05-10 13:00:28 +00:00
Artem Tamazov
d6656b945e
[AMDGPU][mc][tests][NFC] Bulk ISA tests: update for Gfx7/Gfx8, add for Gfx9.
...
llvm-svn: 301247
2017-04-24 20:42:27 +00:00
Dmitry Preobrazhensky
12194e9bec
[AMDGPU][MC] Corrected src0 size for s_cbranch_join
...
Fix for bug 28159: https://bugs.llvm.org//show_bug.cgi?id=28159
Reviewers: vpykhtin, arsenm
Differential Revision: https://reviews.llvm.org/D31595
llvm-svn: 300055
2017-04-12 12:40:19 +00:00
Matt Arsenault
678e111e11
AMDGPU: Fix crash when disassembling VOP3 mac
...
The unused dummy src2_modifiers is missing, so it crashes
when trying to print it.
I tried to fully remove src2_modifiers, but there are some
irritations in the places where it is converted to mad since
it starts to require modifying use lists while iterating over
them.
llvm-svn: 299861
2017-04-10 17:58:06 +00:00
Dmitry Preobrazhensky
e5147247b8
[AMDGPU][MC] Fix for Bug 28211 + LIT tests
...
- corrected DS_GWS_* opcodes (see VI_Shader_Programming#16.pdf for detailed description)
- address operand is not used
- several opcodes have data operand
- all opcodes have offset modifier
- DS_AND_SRC2_B32: corrected typo in mnemo
- DS_WRAP_RTN_F32 replaced with DS_WRAP_RTN_B32
- added CI/VI opcodes:
- DS_CONDXCHG32_RTN_B64
- DS_GWS_SEMA_RELEASE_ALL
- added VI opcodes:
- DS_CONSUME
- DS_APPEND
- DS_ORDERED_COUNT
Differential Revision: https://reviews.llvm.org/D31707
llvm-svn: 299767
2017-04-07 13:07:13 +00:00
Dmitry Preobrazhensky
40af9c35d3
[AMDGPU][MC] Fix for Bugs 28200, 28202 + LIT tests
...
Fixed several related issues with VOP3 fp modifiers.
Reviewers: artem.tamazov
Differential Revision: https://reviews.llvm.org/D30821
llvm-svn: 298255
2017-03-20 14:50:35 +00:00
Matt Arsenault
4d263f6f18
AMDGPU: Add definition for v_swap_b32
...
This is somewhat tricky because there are two
pairs of tied operands, and it isn't allowed to be
VOP3 encoded.
llvm-svn: 296519
2017-02-28 21:09:04 +00:00
Matt Arsenault
a3b3b489fb
AMDGPU: Fix disassembly of aperture registers
...
llvm-svn: 295555
2017-02-18 18:41:41 +00:00
Matt Arsenault
d122abead4
AMDGPU: Replace assert with report_fatal_error
...
Also use a more refined condition.
llvm-svn: 295239
2017-02-15 21:50:34 +00:00
Artem Tamazov
61eb79d7a7
Reapply [AMDGPU][mc][tests][NFC] Add coverage/smoke tests for Gfx7 and Gfx8.
...
llvm-svn: 293552
2017-01-30 21:59:21 +00:00
Ivan Krasin
34e89ad0a4
Revert [AMDGPU][mc][tests][NFC] Add coverage/smoke tests for Gfx7 and Gfx8.
...
Reason: broke ASAN bots with a global buffer overflow.
http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/2291
Each test contains 20-30K test cases but takes only several (from 4 to 10)
seconds to complete on average machine. The tests cover the majority of
AMDGPU Gfx7/Gfx8 instructions, including many dark corners, and intended
to quickly find out if something is broken.
llvm-svn: 292974
2017-01-24 19:58:59 +00:00
Artem Tamazov
819da50d12
[AMDGPU][mc][tests][NFC] Add coverage/smoke tests for Gfx7 and Gfx8.
...
Each test contains 20-30K test cases but takes only several (from 4 to 10)
seconds to complete on average machine. The tests cover the majority of
AMDGPU Gfx7/Gfx8 instructions, including many dark corners, and intended
to quickly find out if something is broken.
llvm-svn: 292922
2017-01-24 12:22:01 +00:00
Sam Kolton
a6792a39c4
[AMDGPU] Disassembler: fix for disaasembling v_mac_f32/16_dpp/sdwa
...
Summary: Real instruction should copy constraints from real instruction. This allows auto-generated disassembler to correctly process tied operands.
Reviewers: nhaustov, vpykhtin, tstellarAMD
Subscribers: arsenm, kzhuravl, wdng, nhaehnle, yaxunl, tony-tye
Differential Revision: https://reviews.llvm.org/D27847
llvm-svn: 290336
2016-12-22 11:30:48 +00:00
Matt Arsenault
55e7d65b12
AMDGPU: Fix name for v_ashrrev_i16
...
llvm-svn: 289967
2016-12-16 17:40:11 +00:00