1 // RUN
: llvm-mc
-arch
=amdgcn
-mcpu
=fiji
-show-encoding
%s | FileCheck
%s
--check-prefix
=VI
7 // Parse
a global expression
9 // VI
: s_mov_b32 s0
, global ; encoding
: [0xff,0x00,0x80,0xbe,A,A,A,A]
10 // VI-NEXT
: ; fixup
A - offset
: 4, value
: global
, kind
: FK_PCRel_4
12 // Use
a token with the same name as
a global
14 // VI
: ds_gws_init v2 gds ; encoding
: [0x00,0x00,0x33,0xd9,0x00,0x02,0x00,0x00]
16 // Use
a global with the same name as
a token
18 // VI
: s_mov_b32 s0
, gds ; encoding
: [0xff,0x00,0x80,0xbe,A,A,A,A]
19 // VI-NEXT
: ; fixup
A - offset
: 4, value
: gds
, kind
: FK_PCRel_4
21 // Use
a binary expression
23 // VI
: s_mov_b32 s0
, gds+
4 ; encoding
: [0xff,0x00,0x80,0xbe,A,A,A,A]
24 // VI-NEXT
: ; fixup
A - offset
: 4, value
: gds+
4, kind
: FK_PCRel_4
26 // Consecutive instructions with no blank line in between to make sure we
27 // don
't call Lex() too many times.
28 s_add_u32 s0, s0, global+4
30 // VI: s_add_u32 s0, s0, global+4
31 // VI: s_addc_u32 s1, s1, 0
33 // Use a computed expression that results in an inline immediate.
36 // VI: s_mov_b32 s0, 6 ; encoding: [0x86,0x00,0x80,0xbe]
38 // Use a computed expression that results in a non-inline immediate.
41 // VI: s_mov_b32 s0, 514 ; encoding: [0xff,0x00,0x80,0xbe,0x02,0x02,0x00,0x00]
43 v_mul_f32 v0, foo+2, v2
44 // VI: v_mul_f32_e32 v0, 514, v2 ; encoding: [0xff,0x04,0x00,0x0a,0x02,0x02,0x00,0x00]
49 s_sub_u32 vcc_lo, vcc_lo, (BB2+4)-BB1
50 // VI: s_sub_u32 vcc_lo, vcc_lo, (BB2+4)-BB1 ; encoding: [0x6a,0xff,0xea,0x80,A,A,A,A]
51 // VI-NEXT: ; fixup A - offset: 4, value: (BB2+4)-BB1, kind: FK_Data_4
55 // VI: s_sub_u32 s0, s0, -1 ; encoding: [0x00,0xc1,0x80,0x80]
59 // VI: s_sub_u32 s0, s0, 1 ; encoding: [0x00,0x81,0x80,0x80]