Revert r354244 "[DAGCombiner] Eliminate dead stores to stack."
[llvm-complete.git] / test / MC / AMDGPU / expressions.s
blobdf589c1274e38978d9626790ac5a8123abb04391
1 // RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck %s --check-prefix=VI
4 .globl global
5 .globl gds
7 // Parse a global expression
8 s_mov_b32 s0, global
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
13 ds_gws_init v2 gds
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
17 s_mov_b32 s0, gds
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
22 s_mov_b32 s0, gds+4
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
29 s_addc_u32 s1, s1, 0
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.
34 .set foo, 4
35 s_mov_b32 s0, foo+2
36 // VI: s_mov_b32 s0, 6 ; encoding: [0x86,0x00,0x80,0xbe]
38 // Use a computed expression that results in a non-inline immediate.
39 .set foo, 512
40 s_mov_b32 s0, foo+2
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]
46 BB1:
47 v_nop_e64
48 BB2:
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
53 t=1
54 s_sub_u32 s0, s0, -t
55 // VI: s_sub_u32 s0, s0, -1 ; encoding: [0x00,0xc1,0x80,0x80]
57 t=-1
58 s_sub_u32 s0, s0, -t
59 // VI: s_sub_u32 s0, s0, 1 ; encoding: [0x00,0x81,0x80,0x80]