AVX-512: fixed comressed displacement - by Robert Khazanov
[oota-llvm.git] / test / MC / X86 / avx512-encodings.s
1 // RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=knl --show-encoding %s | FileCheck %s
2
3 // CHECK: vaddpd -8192(%rdx), %zmm27, %zmm8
4 // CHECK:  encoding: [0x62,0x71,0xa5,0x40,0x58,0x42,0x80]
5           vaddpd -8192(%rdx), %zmm27, %zmm8
6
7 // CHECK: vaddpd -1024(%rdx){1to8}, %zmm27, %zmm8
8 // CHECK:  encoding: [0x62,0x71,0xa5,0x50,0x58,0x42,0x80]
9           vaddpd -1024(%rdx){1to8}, %zmm27, %zmm8
10
11 // CHECK: vaddps -8192(%rdx), %zmm13, %zmm18
12 // CHECK:  encoding: [0x62,0xe1,0x14,0x48,0x58,0x52,0x80]
13           vaddps -8192(%rdx), %zmm13, %zmm18
14
15 // CHECK: vaddps -512(%rdx){1to16}, %zmm13, %zmm18
16 // CHECK:  encoding: [0x62,0xe1,0x14,0x58,0x58,0x52,0x80]
17           vaddps -512(%rdx){1to16}, %zmm13, %zmm18
18
19 // CHECK: vdivpd -8192(%rdx), %zmm6, %zmm18
20 // CHECK:  encoding: [0x62,0xe1,0xcd,0x48,0x5e,0x52,0x80]
21           vdivpd -8192(%rdx), %zmm6, %zmm18
22
23 // CHECK: vdivpd -1024(%rdx){1to8}, %zmm6, %zmm18
24 // CHECK:  encoding: [0x62,0xe1,0xcd,0x58,0x5e,0x52,0x80]
25           vdivpd -1024(%rdx){1to8}, %zmm6, %zmm18
26
27 // CHECK: vdivps -8192(%rdx), %zmm23, %zmm23
28 // CHECK:  encoding: [0x62,0xe1,0x44,0x40,0x5e,0x7a,0x80]
29           vdivps -8192(%rdx), %zmm23, %zmm23
30
31 // CHECK: vdivps -512(%rdx){1to16}, %zmm23, %zmm23
32 // CHECK:  encoding: [0x62,0xe1,0x44,0x50,0x5e,0x7a,0x80]
33           vdivps -512(%rdx){1to16}, %zmm23, %zmm23
34
35 // CHECK: vmaxpd -8192(%rdx), %zmm28, %zmm30
36 // CHECK:  encoding: [0x62,0x61,0x9d,0x40,0x5f,0x72,0x80]
37           vmaxpd -8192(%rdx), %zmm28, %zmm30
38
39 // CHECK: vmaxpd -1024(%rdx){1to8}, %zmm28, %zmm30
40 // CHECK:  encoding: [0x62,0x61,0x9d,0x50,0x5f,0x72,0x80]
41           vmaxpd -1024(%rdx){1to8}, %zmm28, %zmm30
42
43 // CHECK: vmaxps -8192(%rdx), %zmm6, %zmm25
44 // CHECK:  encoding: [0x62,0x61,0x4c,0x48,0x5f,0x4a,0x80]
45           vmaxps -8192(%rdx), %zmm6, %zmm25
46
47 // CHECK: vmaxps -512(%rdx){1to16}, %zmm6, %zmm25
48 // CHECK:  encoding: [0x62,0x61,0x4c,0x58,0x5f,0x4a,0x80]
49           vmaxps -512(%rdx){1to16}, %zmm6, %zmm25
50
51 // CHECK: vminpd -8192(%rdx), %zmm6, %zmm6
52 // CHECK:  encoding: [0x62,0xf1,0xcd,0x48,0x5d,0x72,0x80]
53           vminpd -8192(%rdx), %zmm6, %zmm6
54
55 // CHECK: vminpd -1024(%rdx){1to8}, %zmm6, %zmm6
56 // CHECK:  encoding: [0x62,0xf1,0xcd,0x58,0x5d,0x72,0x80]
57           vminpd -1024(%rdx){1to8}, %zmm6, %zmm6
58
59 // CHECK: vminps -8192(%rdx), %zmm3, %zmm3
60 // CHECK:  encoding: [0x62,0xf1,0x64,0x48,0x5d,0x5a,0x80]
61           vminps -8192(%rdx), %zmm3, %zmm3
62
63 // CHECK: vminps -512(%rdx){1to16}, %zmm3, %zmm3
64 // CHECK:  encoding: [0x62,0xf1,0x64,0x58,0x5d,0x5a,0x80]
65           vminps -512(%rdx){1to16}, %zmm3, %zmm3
66
67 // CHECK: vmulpd -8192(%rdx), %zmm4, %zmm24
68 // CHECK:  encoding: [0x62,0x61,0xdd,0x48,0x59,0x42,0x80]
69           vmulpd -8192(%rdx), %zmm4, %zmm24
70
71 // CHECK: vmulpd -1024(%rdx){1to8}, %zmm4, %zmm24
72 // CHECK:  encoding: [0x62,0x61,0xdd,0x58,0x59,0x42,0x80]
73           vmulpd -1024(%rdx){1to8}, %zmm4, %zmm24
74
75 // CHECK: vmulps -8192(%rdx), %zmm6, %zmm3
76 // CHECK:  encoding: [0x62,0xf1,0x4c,0x48,0x59,0x5a,0x80]
77           vmulps -8192(%rdx), %zmm6, %zmm3
78
79 // CHECK: vmulps -512(%rdx){1to16}, %zmm6, %zmm3
80 // CHECK:  encoding: [0x62,0xf1,0x4c,0x58,0x59,0x5a,0x80]
81           vmulps -512(%rdx){1to16}, %zmm6, %zmm3
82
83 // CHECK: vsubpd -8192(%rdx), %zmm12, %zmm9
84 // CHECK:  encoding: [0x62,0x71,0x9d,0x48,0x5c,0x4a,0x80]
85           vsubpd -8192(%rdx), %zmm12, %zmm9
86
87 // CHECK: vsubpd -1024(%rdx){1to8}, %zmm12, %zmm9
88 // CHECK:  encoding: [0x62,0x71,0x9d,0x58,0x5c,0x4a,0x80]
89           vsubpd -1024(%rdx){1to8}, %zmm12, %zmm9
90
91 // CHECK: vsubps -8192(%rdx), %zmm27, %zmm14
92 // CHECK:  encoding: [0x62,0x71,0x24,0x40,0x5c,0x72,0x80]
93           vsubps -8192(%rdx), %zmm27, %zmm14
94
95 // CHECK: vsubps -512(%rdx){1to16}, %zmm27, %zmm14
96 // CHECK:  encoding: [0x62,0x71,0x24,0x50,0x5c,0x72,0x80]
97           vsubps -512(%rdx){1to16}, %zmm27, %zmm14
98
99 // CHECK: vinserti32x4
100 // CHECK: encoding: [0x62,0xa3,0x55,0x48,0x38,0xcd,0x01]
101 vinserti32x4  $1, %xmm21, %zmm5, %zmm17
102
103 // CHECK: vinserti32x4
104 // CHECK: encoding: [0x62,0xe3,0x1d,0x40,0x38,0x4f,0x10,0x01]
105 vinserti32x4  $1, 256(%rdi), %zmm28, %zmm17
106
107 // CHECK: vextracti32x4
108 // CHECK: encoding: [0x62,0x33,0x7d,0x48,0x39,0xc9,0x01]
109 vextracti32x4  $1, %zmm9, %xmm17
110
111 // CHECK: vextracti64x4
112 // CHECK: encoding: [0x62,0x33,0xfd,0x48,0x3b,0xc9,0x01]
113 vextracti64x4  $1, %zmm9, %ymm17
114
115 // CHECK: vextracti64x4
116 // CHECK: encoding: [0x62,0x73,0xfd,0x48,0x3b,0x4f,0x10,0x01]
117 vextracti64x4  $1, %zmm9, 512(%rdi)
118
119 // CHECK: vpsrad
120 // CHECK: encoding: [0x62,0xb1,0x35,0x40,0x72,0xe1,0x02]
121 vpsrad $2, %zmm17, %zmm25
122
123 // CHECK: vpsrad
124 // CHECK: encoding: [0x62,0xf1,0x35,0x40,0x72,0x64,0xb7,0x08,0x02]
125 vpsrad $2, 512(%rdi, %rsi, 4), %zmm25
126
127 // CHECK: vpsrad
128 // CHECK: encoding: [0x62,0x21,0x1d,0x48,0xe2,0xc9]
129 vpsrad %xmm17, %zmm12, %zmm25
130
131 // CHECK: vpsrad
132 // CHECK: encoding: [0x62,0x61,0x1d,0x48,0xe2,0x4c,0xb7,0x20]
133 vpsrad 512(%rdi, %rsi, 4), %zmm12, %zmm25
134
135 // CHECK: vpbroadcastd {{.*}} {%k1} {z}
136 // CHECK: encoding: [0x62,0xf2,0x7d,0xc9,0x58,0xc8]
137 vpbroadcastd  %xmm0, %zmm1 {%k1} {z}
138
139 // CHECK: vmovdqu64 {{.*}} {%k3}
140 // CHECK: encoding: [0x62,0xf1,0xfe,0x4b,0x6f,0xc8]
141 vmovdqu64 %zmm0, %zmm1 {%k3}
142
143 // CHECK: vmovd
144 // CHECK: encoding: [0x62,0xe1,0x7d,0x08,0x7e,0x74,0x24,0xeb]
145 vmovd %xmm22, -84(%rsp)
146
147 // CHECK: vextractps
148 // CHECK: encoding: [0x62,0xe3,0x7d,0x08,0x17,0x61,0x1f,0x02]
149 vextractps      $2, %xmm20, 124(%rcx)
150
151 // CHECK: vaddpd {{.*}}{1to8}
152 // CHECK: encoding: [0x62,0x61,0xdd,0x50,0x58,0x74,0xf7,0x40]
153 vaddpd 512(%rdi, %rsi, 8) {1to8}, %zmm20, %zmm30
154
155 // CHECK: vaddps {{.*}}{1to16}
156 // CHECK: encoding: [0x62,0x61,0x5c,0x50,0x58,0xb4,0xf7,0x00,0x02,0x00,0x00]
157 vaddps 512(%rdi, %rsi, 8) {1to16}, %zmm20, %zmm30