• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# RUN: llvm-mc -arch=amdgcn -mcpu=gfx1010 -disassemble -show-encoding %s | FileCheck -check-prefix=GFX10 %s
2
3#===----------------------------------------------------------------------===//
4# Inline constants
5#===----------------------------------------------------------------------===//
6
7# GFX10: v_pk_add_f16 v1, 0, v2          ; encoding: [0x01,0x00,0x0f,0xcc,0x80,0x04,0x02,0x18]
80x01,0x00,0x0f,0xcc,0x80,0x04,0x02,0x18
9
10# GFX10: v_pk_add_f16 v1, v2, 0          ; encoding: [0x01,0x00,0x0f,0xcc,0x02,0x01,0x01,0x18]
110x01,0x00,0x0f,0xcc,0x02,0x01,0x01,0x18
12
13# GFX10: v_pk_add_f16 v1, 1.0, v2        ; encoding: [0x01,0x00,0x0f,0xcc,0xf2,0x04,0x02,0x18]
140x01,0x00,0x0f,0xcc,0xf2,0x04,0x02,0x18
15
16# GFX10: v_pk_add_f16 v1, -1.0, v2       ; encoding: [0x01,0x00,0x0f,0xcc,0xf3,0x04,0x02,0x18]
170x01,0x00,0x0f,0xcc,0xf3,0x04,0x02,0x18
18
19# GFX10: v_pk_add_f16 v1, -0.5, v2       ; encoding: [0x01,0x00,0x0f,0xcc,0xf1,0x04,0x02,0x18]
200x01,0x00,0x0f,0xcc,0xf1,0x04,0x02,0x18
21
22# GFX10: v_pk_add_f16 v1, 0.5, v2        ; encoding: [0x01,0x00,0x0f,0xcc,0xf0,0x04,0x02,0x18]
230x01,0x00,0x0f,0xcc,0xf0,0x04,0x02,0x18
24
25# GFX10: v_pk_add_f16 v1, 2.0, v2        ; encoding: [0x01,0x00,0x0f,0xcc,0xf4,0x04,0x02,0x18]
260x01,0x00,0x0f,0xcc,0xf4,0x04,0x02,0x18
27
28# GFX10: v_pk_add_f16 v1, -2.0, v2       ; encoding: [0x01,0x00,0x0f,0xcc,0xf5,0x04,0x02,0x18]
290x01,0x00,0x0f,0xcc,0xf5,0x04,0x02,0x18
30
31# GFX10: v_pk_add_f16 v1, 4.0, v2        ; encoding: [0x01,0x00,0x0f,0xcc,0xf6,0x04,0x02,0x18]
320x01,0x00,0x0f,0xcc,0xf6,0x04,0x02,0x18
33
34# GFX10: v_pk_add_f16 v1, -4.0, v2       ; encoding: [0x01,0x00,0x0f,0xcc,0xf7,0x04,0x02,0x18]
350x01,0x00,0x0f,0xcc,0xf7,0x04,0x02,0x18
36
37# GFX10: v_pk_add_f16 v1, 0.15915494, v2 ; encoding: [0x01,0x00,0x0f,0xcc,0xf8,0x04,0x02,0x18]
380x01,0x00,0x0f,0xcc,0xf8,0x04,0x02,0x18
39
40# GFX10: v_pk_add_f16 v1, -1, v2         ; encoding: [0x01,0x00,0x0f,0xcc,0xc1,0x04,0x02,0x18]
410x01,0x00,0x0f,0xcc,0xc1,0x04,0x02,0x18
42
43# GFX10: v_pk_add_f16 v1, -2, v2         ; encoding: [0x01,0x00,0x0f,0xcc,0xc2,0x04,0x02,0x18]
440x01,0x00,0x0f,0xcc,0xc2,0x04,0x02,0x18
45
46# GFX10: v_pk_add_f16 v1, -3, v2         ; encoding: [0x01,0x00,0x0f,0xcc,0xc3,0x04,0x02,0x18]
470x01,0x00,0x0f,0xcc,0xc3,0x04,0x02,0x18
48
49# GFX10: v_pk_add_f16 v1, -16, v2        ; encoding: [0x01,0x00,0x0f,0xcc,0xd0,0x04,0x02,0x18]
500x01,0x00,0x0f,0xcc,0xd0,0x04,0x02,0x18
51
52# GFX10: v_pk_add_f16 v1, 1, v2          ; encoding: [0x01,0x00,0x0f,0xcc,0x81,0x04,0x02,0x18]
530x01,0x00,0x0f,0xcc,0x81,0x04,0x02,0x18
54
55# GFX10: v_pk_add_f16 v1, 2, v2          ; encoding: [0x01,0x00,0x0f,0xcc,0x82,0x04,0x02,0x18]
560x01,0x00,0x0f,0xcc,0x82,0x04,0x02,0x18
57
58# GFX10: v_pk_add_f16 v1, 3, v2          ; encoding: [0x01,0x00,0x0f,0xcc,0x83,0x04,0x02,0x18]
590x01,0x00,0x0f,0xcc,0x83,0x04,0x02,0x18
60
61# GFX10: v_pk_add_f16 v1, 4, v2          ; encoding: [0x01,0x00,0x0f,0xcc,0x84,0x04,0x02,0x18]
620x01,0x00,0x0f,0xcc,0x84,0x04,0x02,0x18
63
64# GFX10: v_pk_add_f16 v1, 15, v2         ; encoding: [0x01,0x00,0x0f,0xcc,0x8f,0x04,0x02,0x18]
650x01,0x00,0x0f,0xcc,0x8f,0x04,0x02,0x18
66
67# GFX10: v_pk_add_f16 v1, 16, v2         ; encoding: [0x01,0x00,0x0f,0xcc,0x90,0x04,0x02,0x18]
680x01,0x00,0x0f,0xcc,0x90,0x04,0x02,0x18
69
70# GFX10: v_pk_add_f16 v1, 63, v2         ; encoding: [0x01,0x00,0x0f,0xcc,0xbf,0x04,0x02,0x18]
710x01,0x00,0x0f,0xcc,0xbf,0x04,0x02,0x18
72
73# GFX10: v_pk_add_f16 v1, 64, v2         ; encoding: [0x01,0x00,0x0f,0xcc,0xc0,0x04,0x02,0x18]
740x01,0x00,0x0f,0xcc,0xc0,0x04,0x02,0x18
75
76# GFX10: v_pk_fma_f16 v5, 1.0, 2.0, 4.0  ; encoding: [0x05,0x40,0x0e,0xcc,0xf2,0xe8,0xd9,0x1b]
770x05,0x40,0x0e,0xcc,0xf2,0xe8,0xd9,0x1b
78
79# GFX10: v_pk_fma_f16 v5, -1, -2, -3     ; encoding: [0x05,0x40,0x0e,0xcc,0xc1,0x84,0x0d,0x1b]
800x05,0x40,0x0e,0xcc,0xc1,0x84,0x0d,0x1b
81
82# GFX10: v_pk_mad_i16 v5, 0x3c00, 0x4000, 0x4400  ; encoding: [0x05,0x40,0x00,0xcc,0xff,0xfe,0xfd,0x1b,0x00,0x3c,0x00,0x00]
830x05,0x40,0x00,0xcc,0xf2,0xe8,0xd9,0x1b
84
85# GFX10: v_pk_mad_u16 v5, -1, -2, -3     ; encoding: [0x05,0x40,0x09,0xcc,0xc1,0x84,0x0d,0x1b]
860x05,0x40,0x09,0xcc,0xc1,0x84,0x0d,0x1b
87
88# GFX10: v_pk_ashrrev_i16 v5, 1, 16      ; encoding: [0x05,0x00,0x06,0xcc,0x81,0x20,0x01,0x18]
890x05,0x00,0x06,0xcc,0x81,0x20,0x01,0x18
90
91#===----------------------------------------------------------------------===//
92# 32-bit literals
93#===----------------------------------------------------------------------===//
94
95# GFX10: v_pk_add_f16 v5, v1, 0x12345678 ; encoding: [0x05,0x00,0x0f,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12]
960x05,0x00,0x0f,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12
97
98# GFX10: v_pk_add_f16 v5, 0x12345678, v2 ; encoding: [0x05,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12]
990x05,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12
100
101# GFX10: v_pk_add_f16 v5, 0xffffff00, v2 ; encoding: [0x05,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x00,0xff,0xff,0xff]
1020x05,0x00,0x0f,0xcc,0xff,0x04,0x02,0x18,0x00,0xff,0xff,0xff
103
104# GFX10: v_pk_add_f16 v5, v1, 0x100 ; encoding: [0x05,0x00,0x0f,0xcc,0x01,0xff,0x01,0x18,0x00,0x01,0x00,0x00]
1050x05,0x00,0x0f,0xcc,0x01,0xff,0x01,0x18,0x00,0x01,0x00,0x00
106
107# GFX10: v_pk_add_u16 v5, v1, 0x12345678 ; encoding: [0x05,0x00,0x0a,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12]
1080x05,0x00,0x0a,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12
109
110# GFX10: v_pk_add_u16 v5, 0x12345678, v2 ; encoding: [0x05,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12]
1110x05,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12
112
113# GFX10: v_pk_add_u16 v5, 0xffffff00, v2 ; encoding: [0x05,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x00,0xff,0xff,0xff]
1140x05,0x00,0x0a,0xcc,0xff,0x04,0x02,0x18,0x00,0xff,0xff,0xff
115
116# GFX10: v_pk_add_u16 v5, v1, 0x100 ; encoding: [0x05,0x00,0x0a,0xcc,0x01,0xff,0x01,0x18,0x00,0x01,0x00,0x00]
1170x05,0x00,0x0a,0xcc,0x01,0xff,0x01,0x18,0x00,0x01,0x00,0x00
118
119# GFX10: v_pk_fma_f16 v5, 0xaf123456, v2, v3 ; encoding: [0x05,0x40,0x0e,0xcc,0xff,0x04,0x0e,0x1c,0x56,0x34,0x12,0xaf]
1200x05,0x40,0x0e,0xcc,0xff,0x04,0x0e,0x1c,0x56,0x34,0x12,0xaf
121
122# GFX10: v_pk_fma_f16 v5, v1, 0xaf123456, v3 ; encoding: [0x05,0x40,0x0e,0xcc,0x01,0xff,0x0d,0x1c,0x56,0x34,0x12,0xaf]
1230x05,0x40,0x0e,0xcc,0x01,0xff,0x0d,0x1c,0x56,0x34,0x12,0xaf
124
125# GFX10: v_pk_fma_f16 v5, v1, v2, 0xaf123456 ; encoding: [0x05,0x40,0x0e,0xcc,0x01,0x05,0xfe,0x1b,0x56,0x34,0x12,0xaf]
1260x05,0x40,0x0e,0xcc,0x01,0x05,0xfe,0x1b,0x56,0x34,0x12,0xaf
127
128# GFX10: v_pk_mad_i16 v5, 0xaf123456, v2, v3 ; encoding: [0x05,0x40,0x00,0xcc,0xff,0x04,0x0e,0x1c,0x56,0x34,0x12,0xaf]
1290x05,0x40,0x00,0xcc,0xff,0x04,0x0e,0x1c,0x56,0x34,0x12,0xaf
130
131# GFX10: v_pk_mad_i16 v5, v1, 0xaf123456, v3 ; encoding: [0x05,0x40,0x00,0xcc,0x01,0xff,0x0d,0x1c,0x56,0x34,0x12,0xaf]
1320x05,0x40,0x00,0xcc,0x01,0xff,0x0d,0x1c,0x56,0x34,0x12,0xaf
133
134# GFX10: v_pk_mad_i16 v5, v1, v2, 0xaf123456 ; encoding: [0x05,0x40,0x00,0xcc,0x01,0x05,0xfe,0x1b,0x56,0x34,0x12,0xaf]
1350x05,0x40,0x00,0xcc,0x01,0x05,0xfe,0x1b,0x56,0x34,0x12,0xaf
136
137# GFX10: v_pk_ashrrev_i16 v5, 0x12345678, v2 ; encoding: [0x05,0x00,0x06,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12]
1380x05,0x00,0x06,0xcc,0xff,0x04,0x02,0x18,0x78,0x56,0x34,0x12
139
140# GFX10: v_pk_ashrrev_i16 v5, v1, 0x12345678 ; encoding: [0x05,0x00,0x06,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12]
1410x05,0x00,0x06,0xcc,0x01,0xff,0x01,0x18,0x78,0x56,0x34,0x12
142
143#===----------------------------------------------------------------------===//
144# Packed VOP2
145#===----------------------------------------------------------------------===//
146
147# FIXME: v_pk_fmac_f16 cannot be promoted to VOP3 so '_e32' suffix is not valid
148# GFX10: v_pk_fmac_f16_e32 v5, 0x12345678, v2 ; encoding: [0xff,0x04,0x0a,0x78,0x78,0x56,0x34,0x12]
1490xff,0x04,0x0a,0x78,0x78,0x56,0x34,0x12
150