Konstantin Zhuravlyov
603a43fcd5
AMDGPU: Add disasm tests for deep learning instructions + fix v_fmac_f32 disasm
...
Differential Revision: https://reviews.llvm.org/D46853
llvm-svn: 332377
2018-05-15 17:39:13 +00:00
Matt Arsenault
0084adc516
AMDGPU: Add Vega12 and Vega20
...
Changes by
Matt Arsenault
Konstantin Zhuravlyov
llvm-svn: 331215
2018-04-30 19:08:16 +00:00
Dmitry Preobrazhensky
4c45e6ff0e
[AMDGPU][MC][VI][GFX9] Added support of SDWA/DPP for v_cndmask_b32
...
See bug 36356: https://bugs.llvm.org/show_bug.cgi?id=36356
Differential Revision: https://reviews.llvm.org/D45446
Reviewers: artem.tamazov, arsenm, timcorringham
llvm-svn: 330123
2018-04-16 12:41:38 +00:00
Dmitry Preobrazhensky
fc715551a3
[AMDGPU][MC][GFX9] Added v_screen_partition_4se_b32
...
See bug 36845: https://bugs.llvm.org/show_bug.cgi?id=36845
Differential Revision: https://reviews.llvm.org/D45443
Reviewers: artem.tamazov, arsenm, timcorringham
llvm-svn: 329801
2018-04-11 13:13:30 +00:00
Dmitry Preobrazhensky
2f8e146ad3
[AMDGPU][MC][GFX9] Added instructions s_mul_hi_*32, s_lshl*_add_u32
...
See bugs
36841: https://bugs.llvm.org/show_bug.cgi?id=36841
36842: https://bugs.llvm.org/show_bug.cgi?id=36842
Differential Revision: https://reviews.llvm.org/D45251
Reviewers: artem.tamazov, arsenm, timcorringham
llvm-svn: 329562
2018-04-09 13:10:33 +00:00
Dmitry Preobrazhensky
ae31223ba7
[AMDGPU][MC][GFX9] Added s_call_b64
...
See bug 36843: https://bugs.llvm.org/show_bug.cgi?id=36843
Differential Revision: https://reviews.llvm.org/D45268
Reviewers: artem.tamazov, arsenm, timcorringham
llvm-svn: 329440
2018-04-06 18:24:49 +00:00
Dmitry Preobrazhensky
306b1a0119
[AMDGPU][MC][GFX9] Added instruction s_endpgm_ordered_ps_done
...
See bug 36844: https://bugs.llvm.org/show_bug.cgi?id=36844
Differential Revision: https://reviews.llvm.org/D45313
Reviewers: artem.tamazov, arsenm, timcorringham
llvm-svn: 329430
2018-04-06 17:25:00 +00:00
Dmitry Preobrazhensky
f20aff565d
[AMDGPU][MC][GFX9] Added instructions *saveexec*, *wrexec* and *bitreplicate*
...
See bug 36840: https://bugs.llvm.org/show_bug.cgi?id=36840
Differential Revision: https://reviews.llvm.org/D45250
Reviewers: artem.tamazov, arsenm, timcorringham
llvm-svn: 329419
2018-04-06 16:35:11 +00:00
Dmitry Preobrazhensky
59399ae4cc
[AMDGPU][MC][VI][GFX9] Added s_atc_probe* instructions
...
See bug 36839: https://bugs.llvm.org/show_bug.cgi?id=36839
Differential Revision: https://reviews.llvm.org/D45249
Reviewers: artem.tamazov, arsenm, timcorringham
llvm-svn: 329408
2018-04-06 15:48:39 +00:00
Dmitry Preobrazhensky
4732d876ee
[AMDGPU][MC][GFX9] Added s_dcache_discard* instructions
...
See bug 36838: https://bugs.llvm.org/show_bug.cgi?id=36838
Differential Revision: https://reviews.llvm.org/D45247
Reviewers: artem.tamazov, arsenm, timcorringham
llvm-svn: 329397
2018-04-06 15:08:42 +00:00
Dmitry Preobrazhensky
b181c7312e
[AMDGPU][MC][GFX9] Added instructions v_cvt_norm_*16_f16, v_sat_pk_u8_i16
...
See bug 36847: https://bugs.llvm.org/show_bug.cgi?id=36847
Differential Revision: https://reviews.llvm.org/D45097
Reviewers: artem.tamazov, arsenm, timcorringham
llvm-svn: 328988
2018-04-02 17:09:20 +00:00
Dmitry Preobrazhensky
6bad04ecf5
[AMDGPU][MC][GFX9] Added s_atomic_* and s_buffer_atomic_* instructions
...
Fixed a bug which caused Tablegen crash.
See bug 36837: https://bugs.llvm.org/show_bug.cgi?id=36837
Differential Revision: https://reviews.llvm.org/D45085
Reviewers: artem.tamazov, arsenm, timcorringham
llvm-svn: 328983
2018-04-02 16:10:25 +00:00
Nico Weber
f492f58182
Revert r328975, it makes TableGen assert on the bots.
...
llvm-svn: 328978
2018-04-02 14:20:23 +00:00
Dmitry Preobrazhensky
32c450ae6a
[AMDGPU][MC][GFX9] Added s_atomic_* and s_buffer_atomic_* instructions
...
See bug 36837: https://bugs.llvm.org/show_bug.cgi?id=36837
Differential Revision: https://reviews.llvm.org/D45085
Reviewers: artem.tamazov, arsenm, timcorringham
llvm-svn: 328975
2018-04-02 13:52:23 +00:00
Dmitry Preobrazhensky
622bde8bc7
[AMDGPU][MC] Added ds_add_src2_f32
...
See bug 36833: https://bugs.llvm.org/show_bug.cgi?id=36833
Differential Revision: https://reviews.llvm.org/D44779
Reviewers: arsenm, artem.tamazov, timcorringham
llvm-svn: 328713
2018-03-28 16:21:56 +00:00
Dmitry Preobrazhensky
2456ac696a
[AMDGPU][MC] Added PCK variants of image load/store instructions
...
See bug 36834: https://bugs.llvm.org/show_bug.cgi?id=36834
Differential Revision: https://reviews.llvm.org/D44795
Reviewers: artem.tamazov, arsenm, timcorringham, nhaehnle
llvm-svn: 328710
2018-03-28 15:44:16 +00:00
Dmitry Preobrazhensky
a917e88585
[AMDGPU][MC][GFX9] Added buffer_*_format_d16_hi_x
...
See bug 36835: https://bugs.llvm.org/show_bug.cgi?id=36835
Differential Revision: https://reviews.llvm.org/D44825
Reviewers: artem.tamazov, arsenm, timcorringham
llvm-svn: 328707
2018-03-28 14:53:13 +00:00
Dmitry Preobrazhensky
dd2b929ffb
[AMDGPU][MC][GFX9] Added s_scratch* instructions
...
See bug 36836: https://bugs.llvm.org/show_bug.cgi?id=36836
Differential Revision: https://reviews.llvm.org/D44832
Reviewers: artem.tamazov, arsenm, timcorringham
llvm-svn: 328704
2018-03-28 14:08:03 +00:00
Dmitry Preobrazhensky
4c8f4234b6
[AMDGPU][MC][GFX8][GFX9][DISASSEMBLER] Added "_e32" suffix to 32-bit VINTRP opcodes
...
See bug 36751: https://bugs.llvm.org/show_bug.cgi?id=36751
Differential Revision: https://reviews.llvm.org/D44529
Reviewers: artem.tamazov, arsenm
llvm-svn: 327723
2018-03-16 16:38:04 +00:00
Dmitry Preobrazhensky
9c1a6e7e24
[AMDGPU][MC] Corrected default values for unused SDWA operands
...
See bug 36355: https://bugs.llvm.org/show_bug.cgi?id=36355
Differential Revision: https://reviews.llvm.org/D44481
Reviewers: artem.tamazov, arsenm
llvm-svn: 327720
2018-03-16 15:40:27 +00:00
Dmitry Preobrazhensky
d98c97b4f9
[AMDGPU][MC][GFX8] Added BUFFER_STORE_LDS_DWORD Instruction
...
See bug 36558: https://bugs.llvm.org/show_bug.cgi?id=36558
Differential Revision: https://reviews.llvm.org/D43950
Reviewers: artem.tamazov, arsenm
llvm-svn: 327299
2018-03-12 17:29:24 +00:00
Dmitry Preobrazhensky
da4a7c01bf
[AMDGPU][MC] Corrected GATHER4 opcodes
...
See bug 36252: https://bugs.llvm.org/show_bug.cgi?id=36252
Differential Revision: https://reviews.llvm.org/D43874
Reviewers: artem.tamazov, arsenm
llvm-svn: 327278
2018-03-12 15:03:34 +00:00
Dmitry Preobrazhensky
d6e1a9404d
[AMDGPU][MC] Added lds support for MUBUF instructions
...
See bug 28234: https://bugs.llvm.org/show_bug.cgi?id=28234
Differential Revision: https://reviews.llvm.org/D43472
Reviewers: vpykhtin, artem.tamazov, arsenm
llvm-svn: 325676
2018-02-21 13:13:48 +00:00
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
Matt Arsenault
ebfba7027e
AMDGPU: Change vintrp printing
...
llvm-svn: 289664
2016-12-14 16:36:12 +00:00
Matt Arsenault
4bd7236193
AMDGPU: Fix handling of 16-bit immediates
...
Since 32-bit instructions with 32-bit input immediate behavior
are used to materialize 16-bit constants in 32-bit registers
for 16-bit instructions, determining the legality based
on the size is incorrect. Change operands to have the size
specified in the type.
Also adds a workaround for a disassembler bug that
produces an immediate MCOperand for an operand that
is supposed to be OPERAND_REGISTER.
The assembler appears to accept out of bounds immediates and
truncates them, but this seems to be an issue for 32-bit
already.
llvm-svn: 289306
2016-12-10 00:39:12 +00:00
Matt Arsenault
f0c862594b
AMDGPU: Fix vintrp disassembly
...
llvm-svn: 289292
2016-12-10 00:29:55 +00:00
Matt Arsenault
618b330dd0
AMDGPU: Change vintrp printing to better match sc
...
Some of the immediates need to be printed differently
eventually.
llvm-svn: 289291
2016-12-10 00:23:12 +00:00
Matt Arsenault
ac066f354a
AMDGPU: Fix operand name for v_interp_*
...
Other VOP instructions call the output vdst
llvm-svn: 288856
2016-12-06 22:29:43 +00:00
Sam Kolton
83102d99ce
[AMDGPU] Disassembler: fix s_buffer_store_dword instructions
...
Summary: s_buffer_store_dword instructions sdata operand was called sdst in encoding. This caused disassembler to fail.
Reviewers: tstellarAMD, vpykhtin, artem.tamazov
Subscribers: arsenm, nhaehnle, rampitec
Differential Revision: https://reviews.llvm.org/D27100
llvm-svn: 288657
2016-12-05 09:58:51 +00:00
Konstantin Zhuravlyov
f86e4b7266
[AMDGPU] Add f16 support (VI+)
...
Differential Revision: https://reviews.llvm.org/D25975
llvm-svn: 286753
2016-11-13 07:01:11 +00:00
Artem Tamazov
54bfd548aa
[AMDGPU][MC][gfx8] Support 20-bit immediate offset in SMEM instructions.
...
Fixes Bug 30808.
Note that passing subtarget information to predicates seems too complicated, so gfx8-specific def smrd_offset_20 introduced.
Old gfx6/7-specific def renamed to smrd_offset_8 for clarity.
Lit tests updated.
Differential Revision: https://reviews.llvm.org/D26085
llvm-svn: 285590
2016-10-31 16:07:39 +00:00
Artem Tamazov
751985a757
[AMDGPU][mc] Fix ds_min/max[_rtn]_f32 - extra source operand removed.
...
Fixes Bug 28215. Lit tests updated.
Differential Revision: https://reviews.llvm.org/D25837
llvm-svn: 284825
2016-10-21 14:49:22 +00:00
Artem Tamazov
73f1ab28cd
[AMDGPU][mc] Add support for buffer_load_dwordx3, buffer_store_dwordx3.
...
Partially fixes Bug 28232.
Lit tests added.
Differential Revision: https://reviews.llvm.org/D25367
llvm-svn: 283567
2016-10-07 15:53:16 +00:00
Valery Pykhtin
c761675ef4
[AMDGPU] fix failure on printing of non-existing instruction operands.
...
Differential revision: https://reviews.llvm.org/D23323
llvm-svn: 278665
2016-08-15 10:56:48 +00:00
Valery Pykhtin
82c73bee2b
Revert "[AMDGPU] fix failure on printing of non-existing instruction operands."
...
This reverts revision 278333, newly added test failed.
llvm-svn: 278336
2016-08-11 14:22:05 +00:00
Valery Pykhtin
3048ff6ec3
[AMDGPU] fix failure on printing of non-existing instruction operands.
...
Differential revision: https://reviews.llvm.org/D23323
llvm-svn: 278333
2016-08-11 13:49:46 +00:00
Valery Pykhtin
902db3101b
[AMDGPU] refactor DS instruction definitions. NFC.
...
Differential revision: https://reviews.llvm.org/D22522
llvm-svn: 277344
2016-08-01 14:21:30 +00:00
Valery Pykhtin
68853ab2c5
[AMDGPU] fix ds_swizzle_b32 opcode for VI (bz 28371)
...
Differential Revision: http://reviews.llvm.org/D22049
llvm-svn: 274852
2016-07-08 15:12:46 +00:00
Sam Kolton
c9bdcb75c4
[AMDGPU] Disassembler: Support for sdwa instructions
...
Reviewers: vpykhtin, tstellarAMD
Subscribers: arsenm, kzhuravl
Differential Revision: http://reviews.llvm.org/D21129
llvm-svn: 272255
2016-06-09 11:04:45 +00:00
Artem Tamazov
135487767b
[AMDGPU][llvm-mc] v_cndmask_b32: src2 is mandatory; do not enforce VOP2 when src2 == VCC.
...
Another step for unification llvm assembler/disassembler with sp3.
Besides, CodeGen output is a bit improved, thus changes in CodeGen tests.
Assembler/Disassembler tests updated/added.
Differential Revision: http://reviews.llvm.org/D20796
llvm-svn: 271900
2016-06-06 15:23:43 +00:00
Artem Tamazov
212a251c8d
[AMDGPU][llvm-mc] Disassembler: support for TTMP/TBA/TMA registers.
...
Differential Revision: http://reviews.llvm.org/D20476
llvm-svn: 270552
2016-05-24 12:05:16 +00:00
Artem Tamazov
8ce1f7177b
[AMDGPU][llvm-mc] Fixes to support buffer atomics.
...
Fixes for MUBUF_Atomic instructions to make operand list valid:
- For RTN insns, make a copy of $vdata_in operand as $vdata.
- Do not add operand for GLC, it is hardcoded and comes as a token.
Workaround to avoid adding multiple default optional operands.
Tests added.
Differential Revision: http://reviews.llvm.org/D20257
llvm-svn: 270049
2016-05-19 12:22:39 +00:00
Artem Tamazov
ebe71ce36a
[AMDGPU][llvm-mc] Add support for sendmsg(...) syntax.
...
Added support for sendmsg(MSG[, OP[, STREAM_ID]]) syntax
in s_sendmsg and s_sendmsghalt instructions.
The syntax matches the SP3 assembler/disassembler rules.
That is why implicit inputs (like M0 and EXEC) are not printed
to disassembly output anymore.
sendmsg(...) allows only known message types and attributes,
even if literals are used instead of symbolic names.
However, raw literal (without "sendmsg") still can be used,
and that allows for any 16-bit value.
Tests updated/added.
Differential Revision: http://reviews.llvm.org/D19596
llvm-svn: 268762
2016-05-06 17:48:48 +00:00
Nikolay Haustov
4f672a34ed
AMDGPU/SI: Assembler: Unify parsing/printing of operands.
...
Summary:
The goal is for each operand type to have its own parse function and
at the same time share common code for tracking state as different
instruction types share operand types (e.g. glc/glc_flat, etc).
Introduce parseAMDGPUOperand which can parse any optional operand.
DPP and Clamp/OMod have custom handling for now. Sam also suggested
to have class hierarchy for operand types instead of table. This
can be done in separate change.
Remove parseVOP3OptionalOps, parseDS*OptionalOps, parseFlatOptionalOps,
parseMubufOptionalOps, parseDPPOptionalOps.
Reduce number of definitions of AsmOperand's and MatchClasses' by using common base class.
Rename AsmMatcher/InstPrinter methods accordingly.
Print immediate type when printing parsed immediate operand.
Use 'off' if offset/index register is unused instead of skipping it to make it more readable (also agreed with SP3).
Update tests.
Reviewers: tstellarAMD, SamWot, artem.tamazov
Subscribers: qcolombet, arsenm, llvm-commits
Differential Revision: http://reviews.llvm.org/D19584
llvm-svn: 268015
2016-04-29 09:02:30 +00:00
Artem Tamazov
5cd55b1784
[AMDGPU][llvm-mc] s_getreg/setreg* - Support symbolic names of hardware registers.
...
Possibility to specify code of hardware register kept.
Disassemble to symbolic name, if name is known.
Tests updated/added.
Differential Revision: http://reviews.llvm.org/D19335
llvm-svn: 267724
2016-04-27 15:17:03 +00:00
Artem Tamazov
d6468666b5
[AMDGPU][llvm-mc] s_getreg/setreg* - Add hwreg(...) syntax.
...
Added hwreg(reg[,offset,width]) syntax.
Default offset = 0, default width = 32.
Possibility to specify 16-bit immediate kept.
Added out-of-range checks.
Disassembling is always to hwreg(...) format.
Tests updated/added.
Differential Revision: http://reviews.llvm.org/D19329
llvm-svn: 267410
2016-04-25 14:13:51 +00:00
Artem Tamazov
e2762423c2
[AMDGPU][llvm-mc] s_setreg* - Fix order of operands
...
Order should match the sp3 syntax, where destination (simm16 denoting the hwreg) is coming first.
Differential Revision: http://reviews.llvm.org/D19161
llvm-svn: 266617
2016-04-18 14:54:26 +00:00
Valery Pykhtin
f5cf6fba3f
[AMDGPU] Add some VI disassembler tests missing from previous autogeneration due to different filecheck prefix. NFC.
...
llvm-svn: 265769
2016-04-08 05:42:20 +00:00
Valery Pykhtin
e23b6deb01
[AMDGPU] fix readlane/readfirstlane src vgpr operand type.
...
For VGPR_32 operand disassembler expects a VGPR register encoded as 0..255 (enum8 src operand).
readfirstlane/readline actually has enum9 operand and this change fixes VGPR_32 to VS_32 (enum9 encoding).
Differential Revision: http://reviews.llvm.org/D18696
llvm-svn: 265670
2016-04-07 13:41:51 +00:00
Valery Pykhtin
5b3559c1ec
[AMDGPU] fix MADAK/MADMK instructions operand namings to match encoding fields.
...
$vsrc1 -> $src1, $k -> $imm
Differential Revision: http://reviews.llvm.org/D18659
llvm-svn: 265141
2016-04-01 13:13:12 +00:00