1# Check i386 AVX2 instructions 2 3 .allow_index_reg 4 .text 5_start: 6 7# Tests for op mem256, mask, ymm 8# Tests for op ymm, mask, mem256 9 vpmaskmovd (%ecx),%ymm4,%ymm6 10 vpmaskmovd %ymm4,%ymm6,(%ecx) 11 vpmaskmovq (%ecx),%ymm4,%ymm6 12 vpmaskmovq %ymm4,%ymm6,(%ecx) 13 14# Tests for op imm8, ymm/mem256, ymm 15 vpermpd $7,%ymm6,%ymm2 16 vpermpd $7,(%ecx),%ymm6 17 vpermq $7,%ymm6,%ymm2 18 vpermq $7,(%ecx),%ymm6 19 20# Tests for op ymm/mem256, ymm, ymm 21 vpermd %ymm4,%ymm6,%ymm2 22 vpermd (%ecx),%ymm6,%ymm2 23 vpermps %ymm4,%ymm6,%ymm2 24 vpermps (%ecx),%ymm6,%ymm2 25 vpsllvd %ymm4,%ymm6,%ymm2 26 vpsllvd (%ecx),%ymm6,%ymm2 27 vpsllvq %ymm4,%ymm6,%ymm2 28 vpsllvq (%ecx),%ymm6,%ymm2 29 vpsravd %ymm4,%ymm6,%ymm2 30 vpsravd (%ecx),%ymm6,%ymm2 31 vpsrlvd %ymm4,%ymm6,%ymm2 32 vpsrlvd (%ecx),%ymm6,%ymm2 33 vpsrlvq %ymm4,%ymm6,%ymm2 34 vpsrlvq (%ecx),%ymm6,%ymm2 35 36# Tests for op mem256, ymm 37 vmovntdqa (%ecx),%ymm4 38 39# Tests for op ymm, xmm 40 vbroadcastsd %xmm4,%ymm6 41 vbroadcastss %xmm4,%ymm6 42 43# Tests for op imm8, ymm/mem256, ymm, ymm 44 vpblendd $7,%ymm4,%ymm6,%ymm2 45 vpblendd $7,(%ecx),%ymm6,%ymm2 46 vperm2i128 $7,%ymm4,%ymm6,%ymm2 47 vperm2i128 $7,(%ecx),%ymm6,%ymm2 48 49# Tests for op imm8, xmm/mem128, ymm, ymm 50 vinserti128 $7,%xmm4,%ymm4,%ymm6 51 vinserti128 $7,(%ecx),%ymm4,%ymm6 52 53# Tests for op mem128, ymm 54 vbroadcasti128 (%ecx),%ymm4 55 56# Tests for op xmm/mem128, xmm, xmm 57 vpsllvd %xmm4,%xmm6,%xmm2 58 vpsllvd (%ecx),%xmm6,%xmm7 59 vpsllvq %xmm4,%xmm6,%xmm2 60 vpsllvq (%ecx),%xmm6,%xmm7 61 vpsravd %xmm4,%xmm6,%xmm2 62 vpsravd (%ecx),%xmm6,%xmm7 63 vpsrlvd %xmm4,%xmm6,%xmm2 64 vpsrlvd (%ecx),%xmm6,%xmm7 65 vpsrlvq %xmm4,%xmm6,%xmm2 66 vpsrlvq (%ecx),%xmm6,%xmm7 67 68# Tests for op mem128, xmm, xmm 69 vpmaskmovd (%ecx),%xmm4,%xmm6 70 vpmaskmovq (%ecx),%xmm4,%xmm6 71 72# Tests for op imm8, ymm, xmm128/mem 73 vextracti128 $7,%ymm4,%xmm6 74 vextracti128 $7,%ymm4,(%ecx) 75 76# Tests for op xmm, xmm, mem128 77 vpmaskmovd %xmm4,%xmm6,(%ecx) 78 vpmaskmovq %xmm4,%xmm6,(%ecx) 79 80# Tests for op imm8, xmm/mem128, xmm, xmm 81 vpblendd $7,%xmm4,%xmm6,%xmm2 82 vpblendd $7,(%ecx),%xmm6,%xmm2 83 84# Tests for op xmm/mem64, xmm 85 vpbroadcastq %xmm4,%xmm6 86 vpbroadcastq (%ecx),%xmm4 87 88# Tests for op xmm/mem64, ymm 89 vpbroadcastq %xmm4,%ymm6 90 vpbroadcastq (%ecx),%ymm4 91 92# Tests for op xmm/mem32, ymm 93 vpbroadcastd %xmm4,%ymm4 94 vpbroadcastd (%ecx),%ymm4 95 96# Tests for op xmm/mem32, xmm 97 vpbroadcastd %xmm4,%xmm6 98 vpbroadcastd (%ecx),%xmm4 99 100# Tests for op xmm/m16, xmm 101 vpbroadcastw %xmm4,%xmm6 102 vpbroadcastw (%ecx),%xmm4 103 104# Tests for op xmm/m16, ymm 105 vpbroadcastw %xmm4,%ymm6 106 vpbroadcastw (%ecx),%ymm4 107 108# Tests for op xmm/m8, xmm 109 vpbroadcastb %xmm4,%xmm6 110 vpbroadcastb (%ecx),%xmm4 111 112# Tests for op xmm/m8, ymm 113 vpbroadcastb %xmm4,%ymm6 114 vpbroadcastb (%ecx),%ymm4 115 116# Tests for op xmm, xmm 117 vbroadcastss %xmm4,%xmm6 118 119 .intel_syntax noprefix 120 121# Tests for op mem256, mask, ymm 122# Tests for op ymm, mask, mem256 123 vpmaskmovd ymm6,ymm4,YMMWORD PTR [ecx] 124 vpmaskmovd YMMWORD PTR [ecx],ymm6,ymm4 125 vpmaskmovd ymm6,ymm4,[ecx] 126 vpmaskmovd [ecx],ymm6,ymm4 127 vpmaskmovq ymm6,ymm4,YMMWORD PTR [ecx] 128 vpmaskmovq YMMWORD PTR [ecx],ymm6,ymm4 129 vpmaskmovq ymm6,ymm4,[ecx] 130 vpmaskmovq [ecx],ymm6,ymm4 131 132# Tests for op imm8, ymm/mem256, ymm 133 vpermpd ymm2,ymm6,7 134 vpermpd ymm6,YMMWORD PTR [ecx],7 135 vpermpd ymm6,[ecx],7 136 vpermq ymm2,ymm6,7 137 vpermq ymm6,YMMWORD PTR [ecx],7 138 vpermq ymm6,[ecx],7 139 140# Tests for op ymm/mem256, ymm, ymm 141 vpermd ymm2,ymm6,ymm4 142 vpermd ymm2,ymm6,YMMWORD PTR [ecx] 143 vpermd ymm2,ymm6,[ecx] 144 vpermps ymm2,ymm6,ymm4 145 vpermps ymm2,ymm6,YMMWORD PTR [ecx] 146 vpermps ymm2,ymm6,[ecx] 147 vpsllvd ymm2,ymm6,ymm4 148 vpsllvd ymm2,ymm6,YMMWORD PTR [ecx] 149 vpsllvd ymm2,ymm6,[ecx] 150 vpsllvq ymm2,ymm6,ymm4 151 vpsllvq ymm2,ymm6,YMMWORD PTR [ecx] 152 vpsllvq ymm2,ymm6,[ecx] 153 vpsravd ymm2,ymm6,ymm4 154 vpsravd ymm2,ymm6,YMMWORD PTR [ecx] 155 vpsravd ymm2,ymm6,[ecx] 156 vpsrlvd ymm2,ymm6,ymm4 157 vpsrlvd ymm2,ymm6,YMMWORD PTR [ecx] 158 vpsrlvd ymm2,ymm6,[ecx] 159 vpsrlvq ymm2,ymm6,ymm4 160 vpsrlvq ymm2,ymm6,YMMWORD PTR [ecx] 161 vpsrlvq ymm2,ymm6,[ecx] 162 163# Tests for op mem256, ymm 164 vmovntdqa ymm4,YMMWORD PTR [ecx] 165 vmovntdqa ymm4,[ecx] 166 167# Tests for op ymm, xmm 168 vbroadcastsd ymm6,xmm4 169 vbroadcastss ymm6,xmm4 170 171# Tests for op imm8, ymm/mem256, ymm, ymm 172 vpblendd ymm2,ymm6,ymm4,7 173 vpblendd ymm2,ymm6,YMMWORD PTR [ecx],7 174 vpblendd ymm2,ymm6,[ecx],7 175 vperm2i128 ymm2,ymm6,ymm4,7 176 vperm2i128 ymm2,ymm6,YMMWORD PTR [ecx],7 177 vperm2i128 ymm2,ymm6,[ecx],7 178 179# Tests for op imm8, xmm/mem128, ymm, ymm 180 vinserti128 ymm6,ymm4,xmm4,7 181 vinserti128 ymm6,ymm4,XMMWORD PTR [ecx],7 182 vinserti128 ymm6,ymm4,[ecx],7 183 184# Tests for op mem128, ymm 185 vbroadcasti128 ymm4,XMMWORD PTR [ecx] 186 vbroadcasti128 ymm4,[ecx] 187 188# Tests for op xmm/mem128, xmm, xmm 189 vpsllvd xmm2,xmm6,xmm4 190 vpsllvd xmm7,xmm6,XMMWORD PTR [ecx] 191 vpsllvd xmm7,xmm6,[ecx] 192 vpsllvq xmm2,xmm6,xmm4 193 vpsllvq xmm7,xmm6,XMMWORD PTR [ecx] 194 vpsllvq xmm7,xmm6,[ecx] 195 vpsravd xmm2,xmm6,xmm4 196 vpsravd xmm7,xmm6,XMMWORD PTR [ecx] 197 vpsravd xmm7,xmm6,[ecx] 198 vpsrlvd xmm2,xmm6,xmm4 199 vpsrlvd xmm7,xmm6,XMMWORD PTR [ecx] 200 vpsrlvd xmm7,xmm6,[ecx] 201 vpsrlvq xmm2,xmm6,xmm4 202 vpsrlvq xmm7,xmm6,XMMWORD PTR [ecx] 203 vpsrlvq xmm7,xmm6,[ecx] 204 205# Tests for op mem128, xmm, xmm 206 vpmaskmovd xmm6,xmm4,XMMWORD PTR [ecx] 207 vpmaskmovd xmm6,xmm4,[ecx] 208 vpmaskmovq xmm6,xmm4,XMMWORD PTR [ecx] 209 vpmaskmovq xmm6,xmm4,[ecx] 210 211# Tests for op imm8, ymm, xmm128/mem 212 vextracti128 xmm6,ymm4,7 213 vextracti128 XMMWORD PTR [ecx],ymm4,7 214 vextracti128 [ecx],ymm4,7 215 216# Tests for op xmm, xmm, mem128 217 vpmaskmovd XMMWORD PTR [ecx],xmm6,xmm4 218 vpmaskmovd [ecx],xmm6,xmm4 219 vpmaskmovq XMMWORD PTR [ecx],xmm6,xmm4 220 vpmaskmovq [ecx],xmm6,xmm4 221 222# Tests for op imm8, xmm/mem128, xmm, xmm 223 vpblendd xmm2,xmm6,xmm4,7 224 vpblendd xmm2,xmm6,XMMWORD PTR [ecx],7 225 vpblendd xmm2,xmm6,[ecx],7 226 227# Tests for op xmm/mem64, xmm 228 vpbroadcastq xmm6,xmm4 229 vpbroadcastq xmm4,QWORD PTR [ecx] 230 vpbroadcastq xmm4,[ecx] 231 232# Tests for op xmm/mem64, ymm 233 vpbroadcastq ymm6,xmm4 234 vpbroadcastq ymm4,QWORD PTR [ecx] 235 vpbroadcastq ymm4,[ecx] 236 237# Tests for op xmm/mem32, ymm 238 vpbroadcastd ymm4,xmm4 239 vpbroadcastd ymm4,DWORD PTR [ecx] 240 vpbroadcastd ymm4,[ecx] 241 242# Tests for op xmm/mem32, xmm 243 vpbroadcastd xmm6,xmm4 244 vpbroadcastd xmm4,DWORD PTR [ecx] 245 vpbroadcastd xmm4,[ecx] 246 247# Tests for op xmm/m16, xmm 248 vpbroadcastw xmm6,xmm4 249 vpbroadcastw xmm4,WORD PTR [ecx] 250 vpbroadcastw xmm4,[ecx] 251 252# Tests for op xmm/m16, ymm 253 vpbroadcastw ymm6,xmm4 254 vpbroadcastw ymm4,WORD PTR [ecx] 255 vpbroadcastw ymm4,[ecx] 256 257# Tests for op xmm/m8, xmm 258 vpbroadcastb xmm6,xmm4 259 vpbroadcastb xmm4,BYTE PTR [ecx] 260 vpbroadcastb xmm4,[ecx] 261 262# Tests for op xmm/m8, ymm 263 vpbroadcastb ymm6,xmm4 264 vpbroadcastb ymm4,BYTE PTR [ecx] 265 vpbroadcastb ymm4,[ecx] 266 267# Tests for op xmm, xmm 268 vbroadcastss xmm6,xmm4 269