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,0xd9,0x00,0x02,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 
     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]
     45 
     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
     52 
     53 t=1
     54 s_sub_u32 s0, s0, -t
     55 // VI: s_sub_u32 s0, s0, -1            ; encoding: [0x00,0xc1,0x80,0x80]
     56 
     57 t=-1
     58 s_sub_u32 s0, s0, -t
     59 // VI: s_sub_u32 s0, s0, 1             ; encoding: [0x00,0x81,0x80,0x80]
     60