Home | History | Annotate | Download | only in AMDGPU
      1 // RUN: llvm-mc -arch=amdgcn -mcpu=fiji -show-encoding %s | FileCheck %s --check-prefix=VI
      2 
      3 
      4 .globl global
      5 .globl gds
      6 
      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
     11 
     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,0xd8,0x02,0x00,0x00,0x00]
     15 
     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
     20 
     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
     25 
     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
     32 
     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]
     37 
     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]
     42