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