1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512f -target-feature +avx512vl -emit-llvm -o - -Werror | FileCheck %s 2 3 // Don't include mm_malloc.h, it's system specific. 4 #define __MM_MALLOC_H 5 6 #include <immintrin.h> 7 8 __mmask8 test_mm_cmpeq_epu32_mask(__m128i __a, __m128i __b) { 9 // CHECK-LABEL: @test_mm_cmpeq_epu32_mask 10 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}} 11 // CHECK: shufflevector <4 x i1> %{{.*}}, <4 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7> 12 return (__mmask8)_mm_cmpeq_epu32_mask(__a, __b); 13 } 14 15 __mmask8 test_mm_mask_cmpeq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 16 // CHECK-LABEL: @test_mm_mask_cmpeq_epu32_mask 17 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}} 18 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 19 return (__mmask8)_mm_mask_cmpeq_epu32_mask(__u, __a, __b); 20 } 21 22 __mmask8 test_mm_cmpeq_epu64_mask(__m128i __a, __m128i __b) { 23 // CHECK-LABEL: @test_mm_cmpeq_epu64_mask 24 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}} 25 // CHECK: shufflevector <2 x i1> %{{.*}}, <2 x i1> zeroinitializer, <8 x i32> <i32 0, i32 1, i32 2, i32 3, i32 2, i32 3, i32 2, i32 3> 26 return (__mmask8)_mm_cmpeq_epu64_mask(__a, __b); 27 } 28 29 __mmask8 test_mm_mask_cmpeq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 30 // CHECK-LABEL: @test_mm_mask_cmpeq_epu64_mask 31 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}} 32 // CHECK: and <2 x i1> %{{.*}}, %{{.*}} 33 return (__mmask8)_mm_mask_cmpeq_epu64_mask(__u, __a, __b); 34 } 35 36 __mmask8 test_mm_cmpge_epi32_mask(__m128i __a, __m128i __b) { 37 // CHECK-LABEL: @test_mm_cmpge_epi32_mask 38 // CHECK: icmp sge <4 x i32> %{{.*}}, %{{.*}} 39 return (__mmask8)_mm_cmpge_epi32_mask(__a, __b); 40 } 41 42 __mmask8 test_mm_mask_cmpge_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 43 // CHECK-LABEL: @test_mm_mask_cmpge_epi32_mask 44 // CHECK: icmp sge <4 x i32> %{{.*}}, %{{.*}} 45 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 46 return (__mmask8)_mm_mask_cmpge_epi32_mask(__u, __a, __b); 47 } 48 49 __mmask8 test_mm_cmpge_epi64_mask(__m128i __a, __m128i __b) { 50 // CHECK-LABEL: @test_mm_cmpge_epi64_mask 51 // CHECK: icmp sge <2 x i64> %{{.*}}, %{{.*}} 52 return (__mmask8)_mm_cmpge_epi64_mask(__a, __b); 53 } 54 55 __mmask8 test_mm_mask_cmpge_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 56 // CHECK-LABEL: @test_mm_mask_cmpge_epi64_mask 57 // CHECK: icmp sge <2 x i64> %{{.*}}, %{{.*}} 58 // CHECK: and <2 x i1> %{{.*}}, %{{.*}} 59 return (__mmask8)_mm_mask_cmpge_epi64_mask(__u, __a, __b); 60 } 61 62 __mmask8 test_mm256_cmpge_epi32_mask(__m256i __a, __m256i __b) { 63 // CHECK-LABEL: @test_mm256_cmpge_epi32_mask 64 // CHECK: icmp sge <8 x i32> %{{.*}}, %{{.*}} 65 return (__mmask8)_mm256_cmpge_epi32_mask(__a, __b); 66 } 67 68 __mmask8 test_mm256_mask_cmpge_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 69 // CHECK-LABEL: @test_mm256_mask_cmpge_epi32_mask 70 // CHECK: icmp sge <8 x i32> %{{.*}}, %{{.*}} 71 // CHECK: and <8 x i1> %{{.*}}, %{{.*}} 72 return (__mmask8)_mm256_mask_cmpge_epi32_mask(__u, __a, __b); 73 } 74 75 __mmask8 test_mm256_cmpge_epi64_mask(__m256i __a, __m256i __b) { 76 // CHECK-LABEL: @test_mm256_cmpge_epi64_mask 77 // CHECK: icmp sge <4 x i64> %{{.*}}, %{{.*}} 78 return (__mmask8)_mm256_cmpge_epi64_mask(__a, __b); 79 } 80 81 __mmask8 test_mm256_mask_cmpge_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 82 // CHECK-LABEL: @test_mm256_mask_cmpge_epi64_mask 83 // CHECK: icmp sge <4 x i64> %{{.*}}, %{{.*}} 84 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 85 return (__mmask8)_mm256_mask_cmpge_epi64_mask(__u, __a, __b); 86 } 87 88 __mmask8 test_mm_cmpge_epu32_mask(__m128i __a, __m128i __b) { 89 // CHECK-LABEL: @test_mm_cmpge_epu32_mask 90 // CHECK: icmp uge <4 x i32> %{{.*}}, %{{.*}} 91 return (__mmask8)_mm_cmpge_epu32_mask(__a, __b); 92 } 93 94 __mmask8 test_mm_mask_cmpge_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 95 // CHECK-LABEL: @test_mm_mask_cmpge_epu32_mask 96 // CHECK: icmp uge <4 x i32> %{{.*}}, %{{.*}} 97 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 98 return (__mmask8)_mm_mask_cmpge_epu32_mask(__u, __a, __b); 99 } 100 101 __mmask8 test_mm_cmpge_epu64_mask(__m128i __a, __m128i __b) { 102 // CHECK-LABEL: @test_mm_cmpge_epu64_mask 103 // CHECK: icmp uge <2 x i64> %{{.*}}, %{{.*}} 104 return (__mmask8)_mm_cmpge_epu64_mask(__a, __b); 105 } 106 107 __mmask8 test_mm_mask_cmpge_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 108 // CHECK-LABEL: @test_mm_mask_cmpge_epu64_mask 109 // CHECK: icmp uge <2 x i64> %{{.*}}, %{{.*}} 110 // CHECK: and <2 x i1> %{{.*}}, %{{.*}} 111 return (__mmask8)_mm_mask_cmpge_epu64_mask(__u, __a, __b); 112 } 113 114 __mmask8 test_mm256_cmpge_epu32_mask(__m256i __a, __m256i __b) { 115 // CHECK-LABEL: @test_mm256_cmpge_epu32_mask 116 // CHECK: icmp uge <8 x i32> %{{.*}}, %{{.*}} 117 return (__mmask8)_mm256_cmpge_epu32_mask(__a, __b); 118 } 119 120 __mmask8 test_mm256_mask_cmpge_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 121 // CHECK-LABEL: @test_mm256_mask_cmpge_epu32_mask 122 // CHECK: icmp uge <8 x i32> %{{.*}}, %{{.*}} 123 // CHECK: and <8 x i1> %{{.*}}, %{{.*}} 124 return (__mmask8)_mm256_mask_cmpge_epu32_mask(__u, __a, __b); 125 } 126 127 __mmask8 test_mm256_cmpge_epu64_mask(__m256i __a, __m256i __b) { 128 // CHECK-LABEL: @test_mm256_cmpge_epu64_mask 129 // CHECK: icmp uge <4 x i64> %{{.*}}, %{{.*}} 130 return (__mmask8)_mm256_cmpge_epu64_mask(__a, __b); 131 } 132 133 __mmask8 test_mm256_mask_cmpge_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 134 // CHECK-LABEL: @test_mm256_mask_cmpge_epu64_mask 135 // CHECK: icmp uge <4 x i64> %{{.*}}, %{{.*}} 136 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 137 return (__mmask8)_mm256_mask_cmpge_epu64_mask(__u, __a, __b); 138 } 139 140 __mmask8 test_mm_cmpgt_epu32_mask(__m128i __a, __m128i __b) { 141 // CHECK-LABEL: @test_mm_cmpgt_epu32_mask 142 // CHECK: icmp ugt <4 x i32> %{{.*}}, %{{.*}} 143 return (__mmask8)_mm_cmpgt_epu32_mask(__a, __b); 144 } 145 146 __mmask8 test_mm_mask_cmpgt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 147 // CHECK-LABEL: @test_mm_mask_cmpgt_epu32_mask 148 // CHECK: icmp ugt <4 x i32> %{{.*}}, %{{.*}} 149 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 150 return (__mmask8)_mm_mask_cmpgt_epu32_mask(__u, __a, __b); 151 } 152 153 __mmask8 test_mm_cmpgt_epu64_mask(__m128i __a, __m128i __b) { 154 // CHECK-LABEL: @test_mm_cmpgt_epu64_mask 155 // CHECK: icmp ugt <2 x i64> %{{.*}}, %{{.*}} 156 return (__mmask8)_mm_cmpgt_epu64_mask(__a, __b); 157 } 158 159 __mmask8 test_mm_mask_cmpgt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 160 // CHECK-LABEL: @test_mm_mask_cmpgt_epu64_mask 161 // CHECK: icmp ugt <2 x i64> %{{.*}}, %{{.*}} 162 // CHECK: and <2 x i1> %{{.*}}, %{{.*}} 163 return (__mmask8)_mm_mask_cmpgt_epu64_mask(__u, __a, __b); 164 } 165 166 __mmask8 test_mm256_cmpgt_epu32_mask(__m256i __a, __m256i __b) { 167 // CHECK-LABEL: @test_mm256_cmpgt_epu32_mask 168 // CHECK: icmp ugt <8 x i32> %{{.*}}, %{{.*}} 169 return (__mmask8)_mm256_cmpgt_epu32_mask(__a, __b); 170 } 171 172 __mmask8 test_mm256_mask_cmpgt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 173 // CHECK-LABEL: @test_mm256_mask_cmpgt_epu32_mask 174 // CHECK: icmp ugt <8 x i32> %{{.*}}, %{{.*}} 175 // CHECK: and <8 x i1> %{{.*}}, %{{.*}} 176 return (__mmask8)_mm256_mask_cmpgt_epu32_mask(__u, __a, __b); 177 } 178 179 __mmask8 test_mm256_cmpgt_epu64_mask(__m256i __a, __m256i __b) { 180 // CHECK-LABEL: @test_mm256_cmpgt_epu64_mask 181 // CHECK: icmp ugt <4 x i64> %{{.*}}, %{{.*}} 182 return (__mmask8)_mm256_cmpgt_epu64_mask(__a, __b); 183 } 184 185 __mmask8 test_mm256_mask_cmpgt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 186 // CHECK-LABEL: @test_mm256_mask_cmpgt_epu64_mask 187 // CHECK: icmp ugt <4 x i64> %{{.*}}, %{{.*}} 188 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 189 return (__mmask8)_mm256_mask_cmpgt_epu64_mask(__u, __a, __b); 190 } 191 192 __mmask8 test_mm_cmple_epi32_mask(__m128i __a, __m128i __b) { 193 // CHECK-LABEL: @test_mm_cmple_epi32_mask 194 // CHECK: icmp sle <4 x i32> %{{.*}}, %{{.*}} 195 return (__mmask8)_mm_cmple_epi32_mask(__a, __b); 196 } 197 198 __mmask8 test_mm_mask_cmple_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 199 // CHECK-LABEL: @test_mm_mask_cmple_epi32_mask 200 // CHECK: icmp sle <4 x i32> %{{.*}}, %{{.*}} 201 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 202 return (__mmask8)_mm_mask_cmple_epi32_mask(__u, __a, __b); 203 } 204 205 __mmask8 test_mm_cmple_epi64_mask(__m128i __a, __m128i __b) { 206 // CHECK-LABEL: @test_mm_cmple_epi64_mask 207 // CHECK: icmp sle <2 x i64> %{{.*}}, %{{.*}} 208 return (__mmask8)_mm_cmple_epi64_mask(__a, __b); 209 } 210 211 __mmask8 test_mm_mask_cmple_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 212 // CHECK-LABEL: @test_mm_mask_cmple_epi64_mask 213 // CHECK: icmp sle <2 x i64> %{{.*}}, %{{.*}} 214 // CHECK: and <2 x i1> %{{.*}}, %{{.*}} 215 return (__mmask8)_mm_mask_cmple_epi64_mask(__u, __a, __b); 216 } 217 218 __mmask8 test_mm256_cmple_epi32_mask(__m256i __a, __m256i __b) { 219 // CHECK-LABEL: @test_mm256_cmple_epi32_mask 220 // CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}} 221 return (__mmask8)_mm256_cmple_epi32_mask(__a, __b); 222 } 223 224 __mmask8 test_mm256_mask_cmple_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 225 // CHECK-LABEL: @test_mm256_mask_cmple_epi32_mask 226 // CHECK: icmp sle <8 x i32> %{{.*}}, %{{.*}} 227 // CHECK: and <8 x i1> %{{.*}}, %{{.*}} 228 return (__mmask8)_mm256_mask_cmple_epi32_mask(__u, __a, __b); 229 } 230 231 __mmask8 test_mm256_cmple_epi64_mask(__m256i __a, __m256i __b) { 232 // CHECK-LABEL: @test_mm256_cmple_epi64_mask 233 // CHECK: icmp sle <4 x i64> %{{.*}}, %{{.*}} 234 return (__mmask8)_mm256_cmple_epi64_mask(__a, __b); 235 } 236 237 __mmask8 test_mm256_mask_cmple_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 238 // CHECK-LABEL: @test_mm256_mask_cmple_epi64_mask 239 // CHECK: icmp sle <4 x i64> %{{.*}}, %{{.*}} 240 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 241 return (__mmask8)_mm256_mask_cmple_epi64_mask(__u, __a, __b); 242 } 243 244 __mmask8 test_mm_cmple_epu32_mask(__m128i __a, __m128i __b) { 245 // CHECK-LABEL: @test_mm_cmple_epu32_mask 246 // CHECK: icmp ule <4 x i32> %{{.*}}, %{{.*}} 247 return (__mmask8)_mm_cmple_epu32_mask(__a, __b); 248 } 249 250 __mmask8 test_mm_mask_cmple_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 251 // CHECK-LABEL: @test_mm_mask_cmple_epu32_mask 252 // CHECK: icmp ule <4 x i32> %{{.*}}, %{{.*}} 253 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 254 return (__mmask8)_mm_mask_cmple_epu32_mask(__u, __a, __b); 255 } 256 257 __mmask8 test_mm_cmple_epu64_mask(__m128i __a, __m128i __b) { 258 // CHECK-LABEL: @test_mm_cmple_epu64_mask 259 // CHECK: icmp ule <2 x i64> %{{.*}}, %{{.*}} 260 return (__mmask8)_mm_cmple_epu64_mask(__a, __b); 261 } 262 263 __mmask8 test_mm_mask_cmple_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 264 // CHECK-LABEL: @test_mm_mask_cmple_epu64_mask 265 // CHECK: icmp ule <2 x i64> %{{.*}}, %{{.*}} 266 // CHECK: and <2 x i1> %{{.*}}, %{{.*}} 267 return (__mmask8)_mm_mask_cmple_epu64_mask(__u, __a, __b); 268 } 269 270 __mmask8 test_mm256_cmple_epu32_mask(__m256i __a, __m256i __b) { 271 // CHECK-LABEL: @test_mm256_cmple_epu32_mask 272 // CHECK: icmp ule <8 x i32> %{{.*}}, %{{.*}} 273 return (__mmask8)_mm256_cmple_epu32_mask(__a, __b); 274 } 275 276 __mmask8 test_mm256_mask_cmple_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 277 // CHECK-LABEL: @test_mm256_mask_cmple_epu32_mask 278 // CHECK: icmp ule <8 x i32> %{{.*}}, %{{.*}} 279 // CHECK: and <8 x i1> %{{.*}}, %{{.*}} 280 return (__mmask8)_mm256_mask_cmple_epu32_mask(__u, __a, __b); 281 } 282 283 __mmask8 test_mm256_cmple_epu64_mask(__m256i __a, __m256i __b) { 284 // CHECK-LABEL: @test_mm256_cmple_epu64_mask 285 // CHECK: icmp ule <4 x i64> %{{.*}}, %{{.*}} 286 return (__mmask8)_mm256_cmple_epu64_mask(__a, __b); 287 } 288 289 __mmask8 test_mm256_mask_cmple_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 290 // CHECK-LABEL: @test_mm256_mask_cmple_epu64_mask 291 // CHECK: icmp ule <4 x i64> %{{.*}}, %{{.*}} 292 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 293 return (__mmask8)_mm256_mask_cmple_epu64_mask(__u, __a, __b); 294 } 295 296 __mmask8 test_mm_cmplt_epi32_mask(__m128i __a, __m128i __b) { 297 // CHECK-LABEL: @test_mm_cmplt_epi32_mask 298 // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}} 299 return (__mmask8)_mm_cmplt_epi32_mask(__a, __b); 300 } 301 302 __mmask8 test_mm_mask_cmplt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 303 // CHECK-LABEL: @test_mm_mask_cmplt_epi32_mask 304 // CHECK: icmp slt <4 x i32> %{{.*}}, %{{.*}} 305 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 306 return (__mmask8)_mm_mask_cmplt_epi32_mask(__u, __a, __b); 307 } 308 309 __mmask8 test_mm_cmplt_epi64_mask(__m128i __a, __m128i __b) { 310 // CHECK-LABEL: @test_mm_cmplt_epi64_mask 311 // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}} 312 return (__mmask8)_mm_cmplt_epi64_mask(__a, __b); 313 } 314 315 __mmask8 test_mm_mask_cmplt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 316 // CHECK-LABEL: @test_mm_mask_cmplt_epi64_mask 317 // CHECK: icmp slt <2 x i64> %{{.*}}, %{{.*}} 318 // CHECK: and <2 x i1> %{{.*}}, %{{.*}} 319 return (__mmask8)_mm_mask_cmplt_epi64_mask(__u, __a, __b); 320 } 321 322 __mmask8 test_mm256_cmplt_epi32_mask(__m256i __a, __m256i __b) { 323 // CHECK-LABEL: @test_mm256_cmplt_epi32_mask 324 // CHECK: icmp slt <8 x i32> %{{.*}}, %{{.*}} 325 return (__mmask8)_mm256_cmplt_epi32_mask(__a, __b); 326 } 327 328 __mmask8 test_mm256_mask_cmplt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 329 // CHECK-LABEL: @test_mm256_mask_cmplt_epi32_mask 330 // CHECK: icmp slt <8 x i32> %{{.*}}, %{{.*}} 331 // CHECK: and <8 x i1> %{{.*}}, %{{.*}} 332 return (__mmask8)_mm256_mask_cmplt_epi32_mask(__u, __a, __b); 333 } 334 335 __mmask8 test_mm256_cmplt_epi64_mask(__m256i __a, __m256i __b) { 336 // CHECK-LABEL: @test_mm256_cmplt_epi64_mask 337 // CHECK: icmp slt <4 x i64> %{{.*}}, %{{.*}} 338 return (__mmask8)_mm256_cmplt_epi64_mask(__a, __b); 339 } 340 341 __mmask8 test_mm256_mask_cmplt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 342 // CHECK-LABEL: @test_mm256_mask_cmplt_epi64_mask 343 // CHECK: icmp slt <4 x i64> %{{.*}}, %{{.*}} 344 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 345 return (__mmask8)_mm256_mask_cmplt_epi64_mask(__u, __a, __b); 346 } 347 348 __mmask8 test_mm_cmplt_epu32_mask(__m128i __a, __m128i __b) { 349 // CHECK-LABEL: @test_mm_cmplt_epu32_mask 350 // CHECK: icmp ult <4 x i32> %{{.*}}, %{{.*}} 351 return (__mmask8)_mm_cmplt_epu32_mask(__a, __b); 352 } 353 354 __mmask8 test_mm_mask_cmplt_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 355 // CHECK-LABEL: @test_mm_mask_cmplt_epu32_mask 356 // CHECK: icmp ult <4 x i32> %{{.*}}, %{{.*}} 357 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 358 return (__mmask8)_mm_mask_cmplt_epu32_mask(__u, __a, __b); 359 } 360 361 __mmask8 test_mm_cmplt_epu64_mask(__m128i __a, __m128i __b) { 362 // CHECK-LABEL: @test_mm_cmplt_epu64_mask 363 // CHECK: icmp ult <2 x i64> %{{.*}}, %{{.*}} 364 return (__mmask8)_mm_cmplt_epu64_mask(__a, __b); 365 } 366 367 __mmask8 test_mm_mask_cmplt_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 368 // CHECK-LABEL: @test_mm_mask_cmplt_epu64_mask 369 // CHECK: icmp ult <2 x i64> %{{.*}}, %{{.*}} 370 // CHECK: and <2 x i1> %{{.*}}, %{{.*}} 371 return (__mmask8)_mm_mask_cmplt_epu64_mask(__u, __a, __b); 372 } 373 374 __mmask8 test_mm256_cmplt_epu32_mask(__m256i __a, __m256i __b) { 375 // CHECK-LABEL: @test_mm256_cmplt_epu32_mask 376 // CHECK: icmp ult <8 x i32> %{{.*}}, %{{.*}} 377 return (__mmask8)_mm256_cmplt_epu32_mask(__a, __b); 378 } 379 380 __mmask8 test_mm256_mask_cmplt_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 381 // CHECK-LABEL: @test_mm256_mask_cmplt_epu32_mask 382 // CHECK: icmp ult <8 x i32> %{{.*}}, %{{.*}} 383 // CHECK: and <8 x i1> %{{.*}}, %{{.*}} 384 return (__mmask8)_mm256_mask_cmplt_epu32_mask(__u, __a, __b); 385 } 386 387 __mmask8 test_mm256_cmplt_epu64_mask(__m256i __a, __m256i __b) { 388 // CHECK-LABEL: @test_mm256_cmplt_epu64_mask 389 // CHECK: icmp ult <4 x i64> %{{.*}}, %{{.*}} 390 return (__mmask8)_mm256_cmplt_epu64_mask(__a, __b); 391 } 392 393 __mmask8 test_mm256_mask_cmplt_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 394 // CHECK-LABEL: @test_mm256_mask_cmplt_epu64_mask 395 // CHECK: icmp ult <4 x i64> %{{.*}}, %{{.*}} 396 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 397 return (__mmask8)_mm256_mask_cmplt_epu64_mask(__u, __a, __b); 398 } 399 400 __mmask8 test_mm_cmpneq_epi32_mask(__m128i __a, __m128i __b) { 401 // CHECK-LABEL: @test_mm_cmpneq_epi32_mask 402 // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}} 403 return (__mmask8)_mm_cmpneq_epi32_mask(__a, __b); 404 } 405 406 __mmask8 test_mm_mask_cmpneq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 407 // CHECK-LABEL: @test_mm_mask_cmpneq_epi32_mask 408 // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}} 409 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 410 return (__mmask8)_mm_mask_cmpneq_epi32_mask(__u, __a, __b); 411 } 412 413 __mmask8 test_mm_cmpneq_epi64_mask(__m128i __a, __m128i __b) { 414 // CHECK-LABEL: @test_mm_cmpneq_epi64_mask 415 // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}} 416 return (__mmask8)_mm_cmpneq_epi64_mask(__a, __b); 417 } 418 419 __mmask8 test_mm_mask_cmpneq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 420 // CHECK-LABEL: @test_mm_mask_cmpneq_epi64_mask 421 // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}} 422 // CHECK: and <2 x i1> %{{.*}}, %{{.*}} 423 return (__mmask8)_mm_mask_cmpneq_epi64_mask(__u, __a, __b); 424 } 425 426 __mmask8 test_mm256_cmpneq_epi32_mask(__m256i __a, __m256i __b) { 427 // CHECK-LABEL: @test_mm256_cmpneq_epi32_mask 428 // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}} 429 return (__mmask8)_mm256_cmpneq_epi32_mask(__a, __b); 430 } 431 432 __mmask8 test_mm256_mask_cmpneq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 433 // CHECK-LABEL: @test_mm256_mask_cmpneq_epi32_mask 434 // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}} 435 // CHECK: and <8 x i1> %{{.*}}, %{{.*}} 436 return (__mmask8)_mm256_mask_cmpneq_epi32_mask(__u, __a, __b); 437 } 438 439 __mmask8 test_mm256_cmpneq_epi64_mask(__m256i __a, __m256i __b) { 440 // CHECK-LABEL: @test_mm256_cmpneq_epi64_mask 441 // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}} 442 return (__mmask8)_mm256_cmpneq_epi64_mask(__a, __b); 443 } 444 445 __mmask8 test_mm256_mask_cmpneq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 446 // CHECK-LABEL: @test_mm256_mask_cmpneq_epi64_mask 447 // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}} 448 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 449 return (__mmask8)_mm256_mask_cmpneq_epi64_mask(__u, __a, __b); 450 } 451 452 __mmask8 test_mm_cmpneq_epu32_mask(__m128i __a, __m128i __b) { 453 // CHECK-LABEL: @test_mm_cmpneq_epu32_mask 454 // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}} 455 return (__mmask8)_mm_cmpneq_epu32_mask(__a, __b); 456 } 457 458 __mmask8 test_mm_mask_cmpneq_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 459 // CHECK-LABEL: @test_mm_mask_cmpneq_epu32_mask 460 // CHECK: icmp ne <4 x i32> %{{.*}}, %{{.*}} 461 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 462 return (__mmask8)_mm_mask_cmpneq_epu32_mask(__u, __a, __b); 463 } 464 465 __mmask8 test_mm_cmpneq_epu64_mask(__m128i __a, __m128i __b) { 466 // CHECK-LABEL: @test_mm_cmpneq_epu64_mask 467 // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}} 468 return (__mmask8)_mm_cmpneq_epu64_mask(__a, __b); 469 } 470 471 __mmask8 test_mm_mask_cmpneq_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 472 // CHECK-LABEL: @test_mm_mask_cmpneq_epu64_mask 473 // CHECK: icmp ne <2 x i64> %{{.*}}, %{{.*}} 474 // CHECK: and <2 x i1> %{{.*}}, %{{.*}} 475 return (__mmask8)_mm_mask_cmpneq_epu64_mask(__u, __a, __b); 476 } 477 478 __mmask8 test_mm256_cmpneq_epu32_mask(__m256i __a, __m256i __b) { 479 // CHECK-LABEL: @test_mm256_cmpneq_epu32_mask 480 // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}} 481 return (__mmask8)_mm256_cmpneq_epu32_mask(__a, __b); 482 } 483 484 __mmask8 test_mm256_mask_cmpneq_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 485 // CHECK-LABEL: @test_mm256_mask_cmpneq_epu32_mask 486 // CHECK: icmp ne <8 x i32> %{{.*}}, %{{.*}} 487 // CHECK: and <8 x i1> %{{.*}}, %{{.*}} 488 return (__mmask8)_mm256_mask_cmpneq_epu32_mask(__u, __a, __b); 489 } 490 491 __mmask8 test_mm256_cmpneq_epu64_mask(__m256i __a, __m256i __b) { 492 // CHECK-LABEL: @test_mm256_cmpneq_epu64_mask 493 // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}} 494 return (__mmask8)_mm256_cmpneq_epu64_mask(__a, __b); 495 } 496 497 __mmask8 test_mm256_mask_cmpneq_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 498 // CHECK-LABEL: @test_mm256_mask_cmpneq_epu64_mask 499 // CHECK: icmp ne <4 x i64> %{{.*}}, %{{.*}} 500 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 501 return (__mmask8)_mm256_mask_cmpneq_epu64_mask(__u, __a, __b); 502 } 503 504 __mmask8 test_mm_cmp_epi32_mask(__m128i __a, __m128i __b) { 505 // CHECK-LABEL: @test_mm_cmp_epi32_mask 506 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}} 507 return (__mmask8)_mm_cmp_epi32_mask(__a, __b, 0); 508 } 509 510 __mmask8 test_mm_mask_cmp_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 511 // CHECK-LABEL: @test_mm_mask_cmp_epi32_mask 512 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}} 513 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 514 return (__mmask8)_mm_mask_cmp_epi32_mask(__u, __a, __b, 0); 515 } 516 517 __mmask8 test_mm_cmp_epi64_mask(__m128i __a, __m128i __b) { 518 // CHECK-LABEL: @test_mm_cmp_epi64_mask 519 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}} 520 return (__mmask8)_mm_cmp_epi64_mask(__a, __b, 0); 521 } 522 523 __mmask8 test_mm_mask_cmp_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 524 // CHECK-LABEL: @test_mm_mask_cmp_epi64_mask 525 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}} 526 // CHECK: and <2 x i1> %{{.*}}, %{{.*}} 527 return (__mmask8)_mm_mask_cmp_epi64_mask(__u, __a, __b, 0); 528 } 529 530 __mmask8 test_mm256_cmp_epi32_mask(__m256i __a, __m256i __b) { 531 // CHECK-LABEL: @test_mm256_cmp_epi32_mask 532 // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}} 533 return (__mmask8)_mm256_cmp_epi32_mask(__a, __b, 0); 534 } 535 536 __mmask8 test_mm256_mask_cmp_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 537 // CHECK-LABEL: @test_mm256_mask_cmp_epi32_mask 538 // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}} 539 // CHECK: and <8 x i1> %{{.*}}, %{{.*}} 540 return (__mmask8)_mm256_mask_cmp_epi32_mask(__u, __a, __b, 0); 541 } 542 543 __mmask8 test_mm256_cmp_epi64_mask(__m256i __a, __m256i __b) { 544 // CHECK-LABEL: @test_mm256_cmp_epi64_mask 545 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}} 546 return (__mmask8)_mm256_cmp_epi64_mask(__a, __b, 0); 547 } 548 549 __mmask8 test_mm256_mask_cmp_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 550 // CHECK-LABEL: @test_mm256_mask_cmp_epi64_mask 551 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}} 552 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 553 return (__mmask8)_mm256_mask_cmp_epi64_mask(__u, __a, __b, 0); 554 } 555 556 __mmask8 test_mm_cmp_epu32_mask(__m128i __a, __m128i __b) { 557 // CHECK-LABEL: @test_mm_cmp_epu32_mask 558 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}} 559 return (__mmask8)_mm_cmp_epu32_mask(__a, __b, 0); 560 } 561 562 __mmask8 test_mm_mask_cmp_epu32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 563 // CHECK-LABEL: @test_mm_mask_cmp_epu32_mask 564 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}} 565 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 566 return (__mmask8)_mm_mask_cmp_epu32_mask(__u, __a, __b, 0); 567 } 568 569 __mmask8 test_mm_cmp_epu64_mask(__m128i __a, __m128i __b) { 570 // CHECK-LABEL: @test_mm_cmp_epu64_mask 571 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}} 572 return (__mmask8)_mm_cmp_epu64_mask(__a, __b, 0); 573 } 574 575 __mmask8 test_mm_mask_cmp_epu64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 576 // CHECK-LABEL: @test_mm_mask_cmp_epu64_mask 577 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}} 578 // CHECK: and <2 x i1> %{{.*}}, %{{.*}} 579 return (__mmask8)_mm_mask_cmp_epu64_mask(__u, __a, __b, 0); 580 } 581 582 __mmask8 test_mm256_cmp_epu32_mask(__m256i __a, __m256i __b) { 583 // CHECK-LABEL: @test_mm256_cmp_epu32_mask 584 // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}} 585 return (__mmask8)_mm256_cmp_epu32_mask(__a, __b, 0); 586 } 587 588 __mmask8 test_mm256_mask_cmp_epu32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 589 // CHECK-LABEL: @test_mm256_mask_cmp_epu32_mask 590 // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}} 591 // CHECK: and <8 x i1> %{{.*}}, %{{.*}} 592 return (__mmask8)_mm256_mask_cmp_epu32_mask(__u, __a, __b, 0); 593 } 594 595 __mmask8 test_mm256_cmp_epu64_mask(__m256i __a, __m256i __b) { 596 // CHECK-LABEL: @test_mm256_cmp_epu64_mask 597 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}} 598 return (__mmask8)_mm256_cmp_epu64_mask(__a, __b, 0); 599 } 600 601 __mmask8 test_mm256_mask_cmp_epu64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 602 // CHECK-LABEL: @test_mm256_mask_cmp_epu64_mask 603 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}} 604 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 605 return (__mmask8)_mm256_mask_cmp_epu64_mask(__u, __a, __b, 0); 606 } 607 608 __m256i test_mm256_mask_add_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 609 __m256i __B) { 610 //CHECK-LABEL: @test_mm256_mask_add_epi32 611 //CHECK: @llvm.x86.avx512.mask.padd.d.256 612 return _mm256_mask_add_epi32(__W, __U, __A, __B); 613 } 614 615 __m256i test_mm256_maskz_add_epi32 (__mmask8 __U, __m256i __A, __m256i __B) { 616 //CHECK-LABEL: @test_mm256_maskz_add_epi32 617 //CHECK: @llvm.x86.avx512.mask.padd.d.256 618 return _mm256_maskz_add_epi32(__U, __A, __B); 619 } 620 621 __m256i test_mm256_mask_add_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 622 __m256i __B) { 623 //CHECK-LABEL: @test_mm256_mask_add_epi64 624 //CHECK: @llvm.x86.avx512.mask.padd.q.256 625 return _mm256_mask_add_epi64(__W,__U,__A,__B); 626 } 627 628 __m256i test_mm256_maskz_add_epi64 (__mmask8 __U, __m256i __A, __m256i __B) { 629 //CHECK-LABEL: @test_mm256_maskz_add_epi64 630 //CHECK: @llvm.x86.avx512.mask.padd.q.256 631 return _mm256_maskz_add_epi64 (__U,__A,__B); 632 } 633 634 __m256i test_mm256_mask_sub_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 635 __m256i __B) { 636 //CHECK-LABEL: @test_mm256_mask_sub_epi32 637 //CHECK: @llvm.x86.avx512.mask.psub.d.256 638 return _mm256_mask_sub_epi32 (__W,__U,__A,__B); 639 } 640 641 __m256i test_mm256_maskz_sub_epi32 (__mmask8 __U, __m256i __A, __m256i __B) { 642 //CHECK-LABEL: @test_mm256_maskz_sub_epi32 643 //CHECK: @llvm.x86.avx512.mask.psub.d.256 644 return _mm256_maskz_sub_epi32 (__U,__A,__B); 645 } 646 647 __m256i test_mm256_mask_sub_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 648 __m256i __B) { 649 //CHECK-LABEL: @test_mm256_mask_sub_epi64 650 //CHECK: @llvm.x86.avx512.mask.psub.q.256 651 return _mm256_mask_sub_epi64 (__W,__U,__A,__B); 652 } 653 654 __m256i test_mm256_maskz_sub_epi64 (__mmask8 __U, __m256i __A, __m256i __B) { 655 //CHECK-LABEL: @test_mm256_maskz_sub_epi64 656 //CHECK: @llvm.x86.avx512.mask.psub.q.256 657 return _mm256_maskz_sub_epi64 (__U,__A,__B); 658 } 659 660 __m128i test_mm_mask_add_epi32 (__m128i __W, __mmask8 __U, __m128i __A, 661 __m128i __B) { 662 //CHECK-LABEL: @test_mm_mask_add_epi32 663 //CHECK: @llvm.x86.avx512.mask.padd.d.128 664 return _mm_mask_add_epi32(__W,__U,__A,__B); 665 } 666 667 668 __m128i test_mm_maskz_add_epi32 (__mmask8 __U, __m128i __A, __m128i __B) { 669 //CHECK-LABEL: @test_mm_maskz_add_epi32 670 //CHECK: @llvm.x86.avx512.mask.padd.d.128 671 return _mm_maskz_add_epi32 (__U,__A,__B); 672 } 673 674 __m128i test_mm_mask_add_epi64 (__m128i __W, __mmask8 __U, __m128i __A, 675 __m128i __B) { 676 //CHECK-LABEL: @test_mm_mask_add_epi64 677 //CHECK: @llvm.x86.avx512.mask.padd.q.128 678 return _mm_mask_add_epi64 (__W,__U,__A,__B); 679 } 680 681 __m128i test_mm_maskz_add_epi64 (__mmask8 __U, __m128i __A, __m128i __B) { 682 //CHECK-LABEL: @test_mm_maskz_add_epi64 683 //CHECK: @llvm.x86.avx512.mask.padd.q.128 684 return _mm_maskz_add_epi64 (__U,__A,__B); 685 } 686 687 __m128i test_mm_mask_sub_epi32 (__m128i __W, __mmask8 __U, __m128i __A, 688 __m128i __B) { 689 //CHECK-LABEL: @test_mm_mask_sub_epi32 690 //CHECK: @llvm.x86.avx512.mask.psub.d.128 691 return _mm_mask_sub_epi32(__W, __U, __A, __B); 692 } 693 694 __m128i test_mm_maskz_sub_epi32 (__mmask8 __U, __m128i __A, __m128i __B) { 695 //CHECK-LABEL: @test_mm_maskz_sub_epi32 696 //CHECK: @llvm.x86.avx512.mask.psub.d.128 697 return _mm_maskz_sub_epi32(__U, __A, __B); 698 } 699 700 __m128i test_mm_mask_sub_epi64 (__m128i __W, __mmask8 __U, __m128i __A, 701 __m128i __B) { 702 //CHECK-LABEL: @test_mm_mask_sub_epi64 703 //CHECK: @llvm.x86.avx512.mask.psub.q.128 704 return _mm_mask_sub_epi64 (__W, __U, __A, __B); 705 } 706 707 __m128i test_mm_maskz_sub_epi64 (__mmask8 __U, __m128i __A, __m128i __B) { 708 //CHECK-LABEL: @test_mm_maskz_sub_epi64 709 //CHECK: @llvm.x86.avx512.mask.psub.q.128 710 return _mm_maskz_sub_epi64 (__U, __A, __B); 711 } 712 713 __m256i test_mm256_mask_mul_epi32 (__m256i __W, __mmask8 __M, __m256i __X, 714 __m256i __Y) { 715 //CHECK-LABEL: @test_mm256_mask_mul_epi32 716 //CHECK: @llvm.x86.avx512.mask.pmul.dq.256 717 return _mm256_mask_mul_epi32(__W, __M, __X, __Y); 718 } 719 720 __m256i test_mm256_maskz_mul_epi32 (__mmask8 __M, __m256i __X, __m256i __Y) { 721 //CHECK-LABEL: @test_mm256_maskz_mul_epi32 722 //CHECK: @llvm.x86.avx512.mask.pmul.dq.256 723 return _mm256_maskz_mul_epi32(__M, __X, __Y); 724 } 725 726 727 __m128i test_mm_mask_mul_epi32 (__m128i __W, __mmask8 __M, __m128i __X, 728 __m128i __Y) { 729 //CHECK-LABEL: @test_mm_mask_mul_epi32 730 //CHECK: @llvm.x86.avx512.mask.pmul.dq.128 731 return _mm_mask_mul_epi32(__W, __M, __X, __Y); 732 } 733 734 __m128i test_mm_maskz_mul_epi32 (__mmask8 __M, __m128i __X, __m128i __Y) { 735 //CHECK-LABEL: @test_mm_maskz_mul_epi32 736 //CHECK: @llvm.x86.avx512.mask.pmul.dq.128 737 return _mm_maskz_mul_epi32(__M, __X, __Y); 738 } 739 740 __m256i test_mm256_mask_mul_epu32 (__m256i __W, __mmask8 __M, __m256i __X, 741 __m256i __Y) { 742 //CHECK-LABEL: @test_mm256_mask_mul_epu32 743 //CHECK: @llvm.x86.avx512.mask.pmulu.dq.256 744 return _mm256_mask_mul_epu32(__W, __M, __X, __Y); 745 } 746 747 __m256i test_mm256_maskz_mul_epu32 (__mmask8 __M, __m256i __X, __m256i __Y) { 748 //CHECK-LABEL: @test_mm256_maskz_mul_epu32 749 //CHECK: @llvm.x86.avx512.mask.pmulu.dq.256 750 return _mm256_maskz_mul_epu32(__M, __X, __Y); 751 } 752 753 __m128i test_mm_mask_mul_epu32 (__m128i __W, __mmask8 __M, __m128i __X, 754 __m128i __Y) { 755 //CHECK-LABEL: @test_mm_mask_mul_epu32 756 //CHECK: @llvm.x86.avx512.mask.pmulu.dq.128 757 return _mm_mask_mul_epu32(__W, __M, __X, __Y); 758 } 759 760 __m128i test_mm_maskz_mul_epu32 (__mmask8 __M, __m128i __X, __m128i __Y) { 761 //CHECK-LABEL: @test_mm_maskz_mul_epu32 762 //CHECK: @llvm.x86.avx512.mask.pmulu.dq.128 763 return _mm_maskz_mul_epu32(__M, __X, __Y); 764 } 765 766 __m128i test_mm_maskz_mullo_epi32 (__mmask8 __M, __m128i __A, __m128i __B) { 767 //CHECK-LABEL: @test_mm_maskz_mullo_epi32 768 //CHECK: @llvm.x86.avx512.mask.pmull.d.128 769 return _mm_maskz_mullo_epi32(__M, __A, __B); 770 } 771 772 __m128i test_mm_mask_mullo_epi32 (__m128i __W, __mmask8 __M, __m128i __A, 773 __m128i __B) { 774 //CHECK-LABEL: @test_mm_mask_mullo_epi32 775 //CHECK: @llvm.x86.avx512.mask.pmull.d.128 776 return _mm_mask_mullo_epi32(__W, __M, __A, __B); 777 } 778 779 __m256i test_mm256_maskz_mullo_epi32 (__mmask8 __M, __m256i __A, __m256i __B) { 780 //CHECK-LABEL: @test_mm256_maskz_mullo_epi32 781 //CHECK: @llvm.x86.avx512.mask.pmull.d.256 782 return _mm256_maskz_mullo_epi32(__M, __A, __B); 783 } 784 785 __m256i test_mm256_mask_mullo_epi32 (__m256i __W, __mmask8 __M, __m256i __A, 786 __m256i __B) { 787 //CHECK-LABEL: @test_mm256_mask_mullo_epi32 788 //CHECK: @llvm.x86.avx512.mask.pmull.d.256 789 return _mm256_mask_mullo_epi32(__W, __M, __A, __B); 790 } 791 792 __m256i test_mm256_mask_and_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 793 __m256i __B) { 794 //CHECK-LABEL: @test_mm256_mask_and_epi32 795 //CHECK: and <4 x i64> %{{.*}}, %{{.*}} 796 return _mm256_mask_and_epi32(__W, __U, __A, __B); 797 } 798 799 __m256i test_mm256_maskz_and_epi32 (__mmask8 __U, __m256i __A, __m256i __B) { 800 //CHECK-LABEL: @test_mm256_maskz_and_epi32 801 //CHECK: and <4 x i64> %{{.*}}, %{{.*}} 802 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} 803 return _mm256_maskz_and_epi32(__U, __A, __B); 804 } 805 806 __m128i test_mm_mask_and_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 807 //CHECK-LABEL: @test_mm_mask_and_epi32 808 //CHECK: and <2 x i64> %{{.*}}, %{{.*}} 809 return _mm_mask_and_epi32(__W, __U, __A, __B); 810 } 811 812 __m128i test_mm_maskz_and_epi32 (__mmask8 __U, __m128i __A, __m128i __B) { 813 //CHECK-LABEL: @test_mm_maskz_and_epi32 814 //CHECK: and <2 x i64> %{{.*}}, %{{.*}} 815 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} 816 return _mm_maskz_and_epi32(__U, __A, __B); 817 } 818 819 __m256i test_mm256_mask_andnot_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 820 __m256i __B) { 821 //CHECK-LABEL: @test_mm256_mask_andnot_epi32 822 //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1> 823 //CHECK: and <4 x i64> %{{.*}}, %{{.*}} 824 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} 825 return _mm256_mask_andnot_epi32(__W, __U, __A, __B); 826 } 827 828 __m256i test_mm256_maskz_andnot_epi32 (__mmask8 __U, __m256i __A, __m256i __B) { 829 //CHECK-LABEL: @test_mm256_maskz_andnot_epi32 830 //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1> 831 //CHECK: and <4 x i64> %{{.*}}, %{{.*}} 832 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} 833 return _mm256_maskz_andnot_epi32(__U, __A, __B); 834 } 835 836 __m128i test_mm_mask_andnot_epi32 (__m128i __W, __mmask8 __U, __m128i __A, 837 __m128i __B) { 838 //CHECK-LABEL: @test_mm_mask_andnot_epi32 839 //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1> 840 //CHECK: and <2 x i64> %{{.*}}, %{{.*}} 841 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} 842 return _mm_mask_andnot_epi32(__W, __U, __A, __B); 843 } 844 845 __m128i test_mm_maskz_andnot_epi32 (__mmask8 __U, __m128i __A, __m128i __B) { 846 //CHECK-LABEL: @test_mm_maskz_andnot_epi32 847 //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1> 848 //CHECK: and <2 x i64> %{{.*}}, %{{.*}} 849 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} 850 return _mm_maskz_andnot_epi32(__U, __A, __B); 851 } 852 853 __m256i test_mm256_mask_or_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 854 __m256i __B) { 855 //CHECK-LABEL: @test_mm256_mask_or_epi32 856 //CHECK: or <4 x i64> %{{.*}}, %{{.*}} 857 return _mm256_mask_or_epi32(__W, __U, __A, __B); 858 } 859 860 __m256i test_mm256_maskz_or_epi32 (__mmask8 __U, __m256i __A, __m256i __B) { 861 //CHECK-LABEL: @test_mm256_maskz_or_epi32 862 //CHECK: or <4 x i64> %{{.*}}, %{{.*}} 863 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} 864 return _mm256_maskz_or_epi32(__U, __A, __B); 865 } 866 867 __m128i test_mm_mask_or_epi32 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 868 //CHECK-LABEL: @test_mm_mask_or_epi32 869 //CHECK: or <2 x i64> %{{.*}}, %{{.*}} 870 return _mm_mask_or_epi32(__W, __U, __A, __B); 871 } 872 873 __m128i test_mm_maskz_or_epi32 (__mmask8 __U, __m128i __A, __m128i __B) { 874 //CHECK-LABEL: @test_mm_maskz_or_epi32 875 //CHECK: or <2 x i64> %{{.*}}, %{{.*}} 876 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} 877 return _mm_maskz_or_epi32(__U, __A, __B); 878 } 879 880 __m256i test_mm256_mask_xor_epi32 (__m256i __W, __mmask8 __U, __m256i __A, 881 __m256i __B) { 882 //CHECK-LABEL: @test_mm256_mask_xor_epi32 883 //CHECK: xor <4 x i64> %{{.*}}, %{{.*}} 884 return _mm256_mask_xor_epi32(__W, __U, __A, __B); 885 } 886 887 __m256i test_mm256_maskz_xor_epi32 (__mmask8 __U, __m256i __A, __m256i __B) { 888 //CHECK-LABEL: @test_mm256_maskz_xor_epi32 889 //CHECK: xor <4 x i64> %{{.*}}, %{{.*}} 890 //CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} 891 return _mm256_maskz_xor_epi32(__U, __A, __B); 892 } 893 894 __m128i test_mm_mask_xor_epi32 (__m128i __W, __mmask8 __U, __m128i __A, 895 __m128i __B) { 896 //CHECK-LABEL: @test_mm_mask_xor_epi32 897 //CHECK: xor <2 x i64> %{{.*}}, %{{.*}} 898 return _mm_mask_xor_epi32(__W, __U, __A, __B); 899 } 900 901 __m128i test_mm_maskz_xor_epi32 (__mmask8 __U, __m128i __A, __m128i __B) { 902 //CHECK-LABEL: @test_mm_maskz_xor_epi32 903 //CHECK: xor <2 x i64> %{{.*}}, %{{.*}} 904 //CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} 905 return _mm_maskz_xor_epi32(__U, __A, __B); 906 } 907 908 __m256i test_mm256_mask_and_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 909 __m256i __B) { 910 //CHECK-LABEL: @test_mm256_mask_and_epi64 911 //CHECK: and <4 x i64> %{{.*}}, %{{.*}} 912 return _mm256_mask_and_epi64(__W, __U, __A, __B); 913 } 914 915 __m256i test_mm256_maskz_and_epi64 (__mmask8 __U, __m256i __A, __m256i __B) { 916 //CHECK-LABEL: @test_mm256_maskz_and_epi64 917 //CHECK: and <4 x i64> %{{.*}}, %{{.*}} 918 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} 919 return _mm256_maskz_and_epi64(__U, __A, __B); 920 } 921 922 __m128i test_mm_mask_and_epi64 (__m128i __W, __mmask8 __U, __m128i __A, 923 __m128i __B) { 924 //CHECK-LABEL: @test_mm_mask_and_epi64 925 //CHECK: and <2 x i64> %{{.*}}, %{{.*}} 926 return _mm_mask_and_epi64(__W,__U, __A, __B); 927 } 928 929 __m128i test_mm_maskz_and_epi64 (__mmask8 __U, __m128i __A, __m128i __B) { 930 //CHECK-LABEL: @test_mm_maskz_and_epi64 931 //CHECK: and <2 x i64> %{{.*}}, %{{.*}} 932 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} 933 return _mm_maskz_and_epi64(__U, __A, __B); 934 } 935 936 __m256i test_mm256_mask_andnot_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 937 __m256i __B) { 938 //CHECK-LABEL: @test_mm256_mask_andnot_epi64 939 //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1> 940 //CHECK: and <4 x i64> %{{.*}}, %{{.*}} 941 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} 942 return _mm256_mask_andnot_epi64(__W, __U, __A, __B); 943 } 944 945 __m256i test_mm256_maskz_andnot_epi64 (__mmask8 __U, __m256i __A, __m256i __B) { 946 //CHECK-LABEL: @test_mm256_maskz_andnot_epi64 947 //CHECK: xor <4 x i64> %{{.*}}, <i64 -1, i64 -1, i64 -1, i64 -1> 948 //CHECK: and <4 x i64> %{{.*}}, %{{.*}} 949 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} 950 return _mm256_maskz_andnot_epi64(__U, __A, __B); 951 } 952 953 __m128i test_mm_mask_andnot_epi64 (__m128i __W, __mmask8 __U, __m128i __A, 954 __m128i __B) { 955 //CHECK-LABEL: @test_mm_mask_andnot_epi64 956 //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1> 957 //CHECK: and <2 x i64> %{{.*}}, %{{.*}} 958 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} 959 return _mm_mask_andnot_epi64(__W,__U, __A, __B); 960 } 961 962 __m128i test_mm_maskz_andnot_epi64 (__mmask8 __U, __m128i __A, __m128i __B) { 963 //CHECK-LABEL: @test_mm_maskz_andnot_epi64 964 //CHECK: xor <2 x i64> %{{.*}}, <i64 -1, i64 -1> 965 //CHECK: and <2 x i64> %{{.*}}, %{{.*}} 966 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} 967 return _mm_maskz_andnot_epi64(__U, __A, __B); 968 } 969 970 __m256i test_mm256_mask_or_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 971 __m256i __B) { 972 //CHECK-LABEL: @test_mm256_mask_or_epi64 973 //CHECK: or <4 x i64> %{{.*}}, %{{.*}} 974 return _mm256_mask_or_epi64(__W,__U, __A, __B); 975 } 976 977 __m256i test_mm256_maskz_or_epi64 (__mmask8 __U, __m256i __A, __m256i __B) { 978 //CHECK-LABEL: @test_mm256_maskz_or_epi64 979 //CHECK: or <4 x i64> %{{.*}}, %{{.*}} 980 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} 981 return _mm256_maskz_or_epi64(__U, __A, __B); 982 } 983 984 __m128i test_mm_mask_or_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 985 //CHECK-LABEL: @test_mm_mask_or_epi64 986 //CHECK: or <2 x i64> %{{.*}}, %{{.*}} 987 return _mm_mask_or_epi64(__W, __U, __A, __B); 988 } 989 990 __m128i test_mm_maskz_or_epi64 (__mmask8 __U, __m128i __A, __m128i __B) { 991 //CHECK-LABEL: @test_mm_maskz_or_epi64 992 //CHECK: or <2 x i64> %{{.*}}, %{{.*}} 993 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} 994 return _mm_maskz_or_epi64( __U, __A, __B); 995 } 996 997 __m256i test_mm256_mask_xor_epi64 (__m256i __W, __mmask8 __U, __m256i __A, 998 __m256i __B) { 999 //CHECK-LABEL: @test_mm256_mask_xor_epi64 1000 //CHECK: xor <4 x i64> %{{.*}}, %{{.*}} 1001 return _mm256_mask_xor_epi64(__W,__U, __A, __B); 1002 } 1003 1004 __m256i test_mm256_maskz_xor_epi64 (__mmask8 __U, __m256i __A, __m256i __B) { 1005 //CHECK-LABEL: @test_mm256_maskz_xor_epi64 1006 //CHECK: xor <4 x i64> %{{.*}}, %{{.*}} 1007 //CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} 1008 return _mm256_maskz_xor_epi64(__U, __A, __B); 1009 } 1010 1011 __m128i test_mm_mask_xor_epi64 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 1012 //CHECK-LABEL: @test_mm_mask_xor_epi64 1013 //CHECK: xor <2 x i64> %{{.*}}, %{{.*}} 1014 return _mm_mask_xor_epi64(__W, __U, __A, __B); 1015 } 1016 1017 __m128i test_mm_maskz_xor_epi64 (__mmask8 __U, __m128i __A, __m128i __B) { 1018 //CHECK-LABEL: @test_mm_maskz_xor_epi64 1019 //CHECK: xor <2 x i64> %{{.*}}, %{{.*}} 1020 //CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} 1021 return _mm_maskz_xor_epi64( __U, __A, __B); 1022 } 1023 1024 __mmask8 test_mm256_cmp_ps_mask(__m256 __A, __m256 __B) { 1025 // CHECK-LABEL: @test_mm256_cmp_ps_mask 1026 // CHECK: @llvm.x86.avx512.mask.cmp.ps.256 1027 return (__mmask8)_mm256_cmp_ps_mask(__A, __B, 0); 1028 } 1029 1030 __mmask8 test_mm256_mask_cmp_ps_mask(__mmask8 m, __m256 __A, __m256 __B) { 1031 // CHECK-LABEL: @test_mm256_mask_cmp_ps_mask 1032 // CHECK: @llvm.x86.avx512.mask.cmp.ps.256 1033 return _mm256_mask_cmp_ps_mask(m, __A, __B, 0); 1034 } 1035 1036 __mmask8 test_mm_cmp_ps_mask(__m128 __A, __m128 __B) { 1037 // CHECK-LABEL: @test_mm_cmp_ps_mask 1038 // CHECK: @llvm.x86.avx512.mask.cmp.ps.128 1039 return (__mmask8)_mm_cmp_ps_mask(__A, __B, 0); 1040 } 1041 1042 __mmask8 test_mm_mask_cmp_ps_mask(__mmask8 m, __m128 __A, __m128 __B) { 1043 // CHECK-LABEL: @test_mm_mask_cmp_ps_mask 1044 // CHECK: @llvm.x86.avx512.mask.cmp.ps.128 1045 return _mm_mask_cmp_ps_mask(m, __A, __B, 0); 1046 } 1047 1048 __mmask8 test_mm256_cmp_pd_mask(__m256d __A, __m256d __B) { 1049 // CHECK-LABEL: @test_mm256_cmp_pd_mask 1050 // CHECK: @llvm.x86.avx512.mask.cmp.pd.256 1051 return (__mmask8)_mm256_cmp_pd_mask(__A, __B, 0); 1052 } 1053 1054 __mmask8 test_mm256_mask_cmp_pd_mask(__mmask8 m, __m256d __A, __m256d __B) { 1055 // CHECK-LABEL: @test_mm256_mask_cmp_pd_mask 1056 // CHECK: @llvm.x86.avx512.mask.cmp.pd.256 1057 return _mm256_mask_cmp_pd_mask(m, __A, __B, 0); 1058 } 1059 1060 __mmask8 test_mm_cmp_pd_mask(__m128d __A, __m128d __B) { 1061 // CHECK-LABEL: @test_mm_cmp_pd_mask 1062 // CHECK: @llvm.x86.avx512.mask.cmp.pd.128 1063 return (__mmask8)_mm_cmp_pd_mask(__A, __B, 0); 1064 } 1065 1066 __mmask8 test_mm_mask_cmp_pd_mask(__mmask8 m, __m128d __A, __m128d __B) { 1067 // CHECK-LABEL: @test_mm_mask_cmp_pd_mask 1068 // CHECK: @llvm.x86.avx512.mask.cmp.pd.128 1069 return _mm_mask_cmp_pd_mask(m, __A, __B, 0); 1070 } 1071 1072 __m128d test_mm_mask_fmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) { 1073 // CHECK-LABEL: @test_mm_mask_fmadd_pd 1074 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.128 1075 return _mm_mask_fmadd_pd(__A, __U, __B, __C); 1076 } 1077 1078 __m128d test_mm_mask_fmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) { 1079 // CHECK-LABEL: @test_mm_mask_fmsub_pd 1080 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.128 1081 return _mm_mask_fmsub_pd(__A, __U, __B, __C); 1082 } 1083 1084 __m128d test_mm_mask3_fmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) { 1085 // CHECK-LABEL: @test_mm_mask3_fmadd_pd 1086 // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.128 1087 return _mm_mask3_fmadd_pd(__A, __B, __C, __U); 1088 } 1089 1090 __m128d test_mm_mask3_fnmadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) { 1091 // CHECK-LABEL: @test_mm_mask3_fnmadd_pd 1092 // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.128 1093 return _mm_mask3_fnmadd_pd(__A, __B, __C, __U); 1094 } 1095 1096 __m128d test_mm_maskz_fmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) { 1097 // CHECK-LABEL: @test_mm_maskz_fmadd_pd 1098 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.128 1099 return _mm_maskz_fmadd_pd(__U, __A, __B, __C); 1100 } 1101 1102 __m128d test_mm_maskz_fmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) { 1103 // CHECK-LABEL: @test_mm_maskz_fmsub_pd 1104 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.128 1105 return _mm_maskz_fmsub_pd(__U, __A, __B, __C); 1106 } 1107 1108 __m128d test_mm_maskz_fnmadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) { 1109 // CHECK-LABEL: @test_mm_maskz_fnmadd_pd 1110 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.128 1111 return _mm_maskz_fnmadd_pd(__U, __A, __B, __C); 1112 } 1113 1114 __m128d test_mm_maskz_fnmsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) { 1115 // CHECK-LABEL: @test_mm_maskz_fnmsub_pd 1116 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.128 1117 return _mm_maskz_fnmsub_pd(__U, __A, __B, __C); 1118 } 1119 1120 __m256d test_mm256_mask_fmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) { 1121 // CHECK-LABEL: @test_mm256_mask_fmadd_pd 1122 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.256 1123 return _mm256_mask_fmadd_pd(__A, __U, __B, __C); 1124 } 1125 1126 __m256d test_mm256_mask_fmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) { 1127 // CHECK-LABEL: @test_mm256_mask_fmsub_pd 1128 // CHECK: @llvm.x86.avx512.mask.vfmadd.pd.256 1129 return _mm256_mask_fmsub_pd(__A, __U, __B, __C); 1130 } 1131 1132 __m256d test_mm256_mask3_fmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) { 1133 // CHECK-LABEL: @test_mm256_mask3_fmadd_pd 1134 // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.256 1135 return _mm256_mask3_fmadd_pd(__A, __B, __C, __U); 1136 } 1137 1138 __m256d test_mm256_mask3_fnmadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) { 1139 // CHECK-LABEL: @test_mm256_mask3_fnmadd_pd 1140 // CHECK: @llvm.x86.avx512.mask3.vfmadd.pd.256 1141 return _mm256_mask3_fnmadd_pd(__A, __B, __C, __U); 1142 } 1143 1144 __m256d test_mm256_maskz_fmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) { 1145 // CHECK-LABEL: @test_mm256_maskz_fmadd_pd 1146 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.256 1147 return _mm256_maskz_fmadd_pd(__U, __A, __B, __C); 1148 } 1149 1150 __m256d test_mm256_maskz_fmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) { 1151 // CHECK-LABEL: @test_mm256_maskz_fmsub_pd 1152 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.256 1153 return _mm256_maskz_fmsub_pd(__U, __A, __B, __C); 1154 } 1155 1156 __m256d test_mm256_maskz_fnmadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) { 1157 // CHECK-LABEL: @test_mm256_maskz_fnmadd_pd 1158 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.256 1159 return _mm256_maskz_fnmadd_pd(__U, __A, __B, __C); 1160 } 1161 1162 __m256d test_mm256_maskz_fnmsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) { 1163 // CHECK-LABEL: @test_mm256_maskz_fnmsub_pd 1164 // CHECK: @llvm.x86.avx512.maskz.vfmadd.pd.256 1165 return _mm256_maskz_fnmsub_pd(__U, __A, __B, __C); 1166 } 1167 1168 __m128 test_mm_mask_fmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) { 1169 // CHECK-LABEL: @test_mm_mask_fmadd_ps 1170 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.128 1171 return _mm_mask_fmadd_ps(__A, __U, __B, __C); 1172 } 1173 1174 __m128 test_mm_mask_fmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) { 1175 // CHECK-LABEL: @test_mm_mask_fmsub_ps 1176 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.128 1177 return _mm_mask_fmsub_ps(__A, __U, __B, __C); 1178 } 1179 1180 __m128 test_mm_mask3_fmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) { 1181 // CHECK-LABEL: @test_mm_mask3_fmadd_ps 1182 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.128 1183 return _mm_mask3_fmadd_ps(__A, __B, __C, __U); 1184 } 1185 1186 __m128 test_mm_mask3_fnmadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) { 1187 // CHECK-LABEL: @test_mm_mask3_fnmadd_ps 1188 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.128 1189 return _mm_mask3_fnmadd_ps(__A, __B, __C, __U); 1190 } 1191 1192 __m128 test_mm_maskz_fmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) { 1193 // CHECK-LABEL: @test_mm_maskz_fmadd_ps 1194 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.128 1195 return _mm_maskz_fmadd_ps(__U, __A, __B, __C); 1196 } 1197 1198 __m128 test_mm_maskz_fmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) { 1199 // CHECK-LABEL: @test_mm_maskz_fmsub_ps 1200 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.128 1201 return _mm_maskz_fmsub_ps(__U, __A, __B, __C); 1202 } 1203 1204 __m128 test_mm_maskz_fnmadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) { 1205 // CHECK-LABEL: @test_mm_maskz_fnmadd_ps 1206 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.128 1207 return _mm_maskz_fnmadd_ps(__U, __A, __B, __C); 1208 } 1209 1210 __m128 test_mm_maskz_fnmsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) { 1211 // CHECK-LABEL: @test_mm_maskz_fnmsub_ps 1212 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.128 1213 return _mm_maskz_fnmsub_ps(__U, __A, __B, __C); 1214 } 1215 1216 __m256 test_mm256_mask_fmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) { 1217 // CHECK-LABEL: @test_mm256_mask_fmadd_ps 1218 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.256 1219 return _mm256_mask_fmadd_ps(__A, __U, __B, __C); 1220 } 1221 1222 __m256 test_mm256_mask_fmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) { 1223 // CHECK-LABEL: @test_mm256_mask_fmsub_ps 1224 // CHECK: @llvm.x86.avx512.mask.vfmadd.ps.256 1225 return _mm256_mask_fmsub_ps(__A, __U, __B, __C); 1226 } 1227 1228 __m256 test_mm256_mask3_fmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) { 1229 // CHECK-LABEL: @test_mm256_mask3_fmadd_ps 1230 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.256 1231 return _mm256_mask3_fmadd_ps(__A, __B, __C, __U); 1232 } 1233 1234 __m256 test_mm256_mask3_fnmadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) { 1235 // CHECK-LABEL: @test_mm256_mask3_fnmadd_ps 1236 // CHECK: @llvm.x86.avx512.mask3.vfmadd.ps.256 1237 return _mm256_mask3_fnmadd_ps(__A, __B, __C, __U); 1238 } 1239 1240 __m256 test_mm256_maskz_fmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) { 1241 // CHECK-LABEL: @test_mm256_maskz_fmadd_ps 1242 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.256 1243 return _mm256_maskz_fmadd_ps(__U, __A, __B, __C); 1244 } 1245 1246 __m256 test_mm256_maskz_fmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) { 1247 // CHECK-LABEL: @test_mm256_maskz_fmsub_ps 1248 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.256 1249 return _mm256_maskz_fmsub_ps(__U, __A, __B, __C); 1250 } 1251 1252 __m256 test_mm256_maskz_fnmadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) { 1253 // CHECK-LABEL: @test_mm256_maskz_fnmadd_ps 1254 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.256 1255 return _mm256_maskz_fnmadd_ps(__U, __A, __B, __C); 1256 } 1257 1258 __m256 test_mm256_maskz_fnmsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) { 1259 // CHECK-LABEL: @test_mm256_maskz_fnmsub_ps 1260 // CHECK: @llvm.x86.avx512.maskz.vfmadd.ps.256 1261 return _mm256_maskz_fnmsub_ps(__U, __A, __B, __C); 1262 } 1263 1264 __m128d test_mm_mask_fmaddsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) { 1265 // CHECK-LABEL: @test_mm_mask_fmaddsub_pd 1266 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.128 1267 return _mm_mask_fmaddsub_pd(__A, __U, __B, __C); 1268 } 1269 1270 __m128d test_mm_mask_fmsubadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) { 1271 // CHECK-LABEL: @test_mm_mask_fmsubadd_pd 1272 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.128 1273 return _mm_mask_fmsubadd_pd(__A, __U, __B, __C); 1274 } 1275 1276 __m128d test_mm_mask3_fmaddsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) { 1277 // CHECK-LABEL: @test_mm_mask3_fmaddsub_pd 1278 // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.128 1279 return _mm_mask3_fmaddsub_pd(__A, __B, __C, __U); 1280 } 1281 1282 __m128d test_mm_maskz_fmaddsub_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) { 1283 // CHECK-LABEL: @test_mm_maskz_fmaddsub_pd 1284 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.128 1285 return _mm_maskz_fmaddsub_pd(__U, __A, __B, __C); 1286 } 1287 1288 __m128d test_mm_maskz_fmsubadd_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128d __C) { 1289 // CHECK-LABEL: @test_mm_maskz_fmsubadd_pd 1290 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.128 1291 return _mm_maskz_fmsubadd_pd(__U, __A, __B, __C); 1292 } 1293 1294 __m256d test_mm256_mask_fmaddsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) { 1295 // CHECK-LABEL: @test_mm256_mask_fmaddsub_pd 1296 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.256 1297 return _mm256_mask_fmaddsub_pd(__A, __U, __B, __C); 1298 } 1299 1300 __m256d test_mm256_mask_fmsubadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) { 1301 // CHECK-LABEL: @test_mm256_mask_fmsubadd_pd 1302 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.pd.256 1303 return _mm256_mask_fmsubadd_pd(__A, __U, __B, __C); 1304 } 1305 1306 __m256d test_mm256_mask3_fmaddsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) { 1307 // CHECK-LABEL: @test_mm256_mask3_fmaddsub_pd 1308 // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.pd.256 1309 return _mm256_mask3_fmaddsub_pd(__A, __B, __C, __U); 1310 } 1311 1312 __m256d test_mm256_maskz_fmaddsub_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) { 1313 // CHECK-LABEL: @test_mm256_maskz_fmaddsub_pd 1314 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.256 1315 return _mm256_maskz_fmaddsub_pd(__U, __A, __B, __C); 1316 } 1317 1318 __m256d test_mm256_maskz_fmsubadd_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256d __C) { 1319 // CHECK-LABEL: @test_mm256_maskz_fmsubadd_pd 1320 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.pd.256 1321 return _mm256_maskz_fmsubadd_pd(__U, __A, __B, __C); 1322 } 1323 1324 __m128 test_mm_mask_fmaddsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) { 1325 // CHECK-LABEL: @test_mm_mask_fmaddsub_ps 1326 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.128 1327 return _mm_mask_fmaddsub_ps(__A, __U, __B, __C); 1328 } 1329 1330 __m128 test_mm_mask_fmsubadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) { 1331 // CHECK-LABEL: @test_mm_mask_fmsubadd_ps 1332 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.128 1333 return _mm_mask_fmsubadd_ps(__A, __U, __B, __C); 1334 } 1335 1336 __m128 test_mm_mask3_fmaddsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) { 1337 // CHECK-LABEL: @test_mm_mask3_fmaddsub_ps 1338 // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.128 1339 return _mm_mask3_fmaddsub_ps(__A, __B, __C, __U); 1340 } 1341 1342 __m128 test_mm_maskz_fmaddsub_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) { 1343 // CHECK-LABEL: @test_mm_maskz_fmaddsub_ps 1344 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.128 1345 return _mm_maskz_fmaddsub_ps(__U, __A, __B, __C); 1346 } 1347 1348 __m128 test_mm_maskz_fmsubadd_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128 __C) { 1349 // CHECK-LABEL: @test_mm_maskz_fmsubadd_ps 1350 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.128 1351 return _mm_maskz_fmsubadd_ps(__U, __A, __B, __C); 1352 } 1353 1354 __m256 test_mm256_mask_fmaddsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) { 1355 // CHECK-LABEL: @test_mm256_mask_fmaddsub_ps 1356 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.256 1357 return _mm256_mask_fmaddsub_ps(__A, __U, __B, __C); 1358 } 1359 1360 __m256 test_mm256_mask_fmsubadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) { 1361 // CHECK-LABEL: @test_mm256_mask_fmsubadd_ps 1362 // CHECK: @llvm.x86.avx512.mask.vfmaddsub.ps.256 1363 return _mm256_mask_fmsubadd_ps(__A, __U, __B, __C); 1364 } 1365 1366 __m256 test_mm256_mask3_fmaddsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) { 1367 // CHECK-LABEL: @test_mm256_mask3_fmaddsub_ps 1368 // CHECK: @llvm.x86.avx512.mask3.vfmaddsub.ps.256 1369 return _mm256_mask3_fmaddsub_ps(__A, __B, __C, __U); 1370 } 1371 1372 __m256 test_mm256_maskz_fmaddsub_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) { 1373 // CHECK-LABEL: @test_mm256_maskz_fmaddsub_ps 1374 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.256 1375 return _mm256_maskz_fmaddsub_ps(__U, __A, __B, __C); 1376 } 1377 1378 __m256 test_mm256_maskz_fmsubadd_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256 __C) { 1379 // CHECK-LABEL: @test_mm256_maskz_fmsubadd_ps 1380 // CHECK: @llvm.x86.avx512.maskz.vfmaddsub.ps.256 1381 return _mm256_maskz_fmsubadd_ps(__U, __A, __B, __C); 1382 } 1383 1384 __m128d test_mm_mask3_fmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) { 1385 // CHECK-LABEL: @test_mm_mask3_fmsub_pd 1386 // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.128 1387 return _mm_mask3_fmsub_pd(__A, __B, __C, __U); 1388 } 1389 1390 __m256d test_mm256_mask3_fmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) { 1391 // CHECK-LABEL: @test_mm256_mask3_fmsub_pd 1392 // CHECK: @llvm.x86.avx512.mask3.vfmsub.pd.256 1393 return _mm256_mask3_fmsub_pd(__A, __B, __C, __U); 1394 } 1395 1396 __m128 test_mm_mask3_fmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) { 1397 // CHECK-LABEL: @test_mm_mask3_fmsub_ps 1398 // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.128 1399 return _mm_mask3_fmsub_ps(__A, __B, __C, __U); 1400 } 1401 1402 __m256 test_mm256_mask3_fmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) { 1403 // CHECK-LABEL: @test_mm256_mask3_fmsub_ps 1404 // CHECK: @llvm.x86.avx512.mask3.vfmsub.ps.256 1405 return _mm256_mask3_fmsub_ps(__A, __B, __C, __U); 1406 } 1407 1408 __m128d test_mm_mask3_fmsubadd_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) { 1409 // CHECK-LABEL: @test_mm_mask3_fmsubadd_pd 1410 // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.128 1411 return _mm_mask3_fmsubadd_pd(__A, __B, __C, __U); 1412 } 1413 1414 __m256d test_mm256_mask3_fmsubadd_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) { 1415 // CHECK-LABEL: @test_mm256_mask3_fmsubadd_pd 1416 // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.pd.256 1417 return _mm256_mask3_fmsubadd_pd(__A, __B, __C, __U); 1418 } 1419 1420 __m128 test_mm_mask3_fmsubadd_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) { 1421 // CHECK-LABEL: @test_mm_mask3_fmsubadd_ps 1422 // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.128 1423 return _mm_mask3_fmsubadd_ps(__A, __B, __C, __U); 1424 } 1425 1426 __m256 test_mm256_mask3_fmsubadd_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) { 1427 // CHECK-LABEL: @test_mm256_mask3_fmsubadd_ps 1428 // CHECK: @llvm.x86.avx512.mask3.vfmsubadd.ps.256 1429 return _mm256_mask3_fmsubadd_ps(__A, __B, __C, __U); 1430 } 1431 1432 __m128d test_mm_mask_fnmadd_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) { 1433 // CHECK-LABEL: @test_mm_mask_fnmadd_pd 1434 // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.128 1435 return _mm_mask_fnmadd_pd(__A, __U, __B, __C); 1436 } 1437 1438 __m256d test_mm256_mask_fnmadd_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) { 1439 // CHECK-LABEL: @test_mm256_mask_fnmadd_pd 1440 // CHECK: @llvm.x86.avx512.mask.vfnmadd.pd.256 1441 return _mm256_mask_fnmadd_pd(__A, __U, __B, __C); 1442 } 1443 1444 __m128 test_mm_mask_fnmadd_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) { 1445 // CHECK-LABEL: @test_mm_mask_fnmadd_ps 1446 // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.128 1447 return _mm_mask_fnmadd_ps(__A, __U, __B, __C); 1448 } 1449 1450 __m256 test_mm256_mask_fnmadd_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) { 1451 // CHECK-LABEL: @test_mm256_mask_fnmadd_ps 1452 // CHECK: @llvm.x86.avx512.mask.vfnmadd.ps.256 1453 return _mm256_mask_fnmadd_ps(__A, __U, __B, __C); 1454 } 1455 1456 __m128d test_mm_mask_fnmsub_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128d __C) { 1457 // CHECK-LABEL: @test_mm_mask_fnmsub_pd 1458 // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.128 1459 return _mm_mask_fnmsub_pd(__A, __U, __B, __C); 1460 } 1461 1462 __m128d test_mm_mask3_fnmsub_pd(__m128d __A, __m128d __B, __m128d __C, __mmask8 __U) { 1463 // CHECK-LABEL: @test_mm_mask3_fnmsub_pd 1464 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.128 1465 return _mm_mask3_fnmsub_pd(__A, __B, __C, __U); 1466 } 1467 1468 __m256d test_mm256_mask_fnmsub_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256d __C) { 1469 // CHECK-LABEL: @test_mm256_mask_fnmsub_pd 1470 // CHECK: @llvm.x86.avx512.mask.vfnmsub.pd.256 1471 return _mm256_mask_fnmsub_pd(__A, __U, __B, __C); 1472 } 1473 1474 __m256d test_mm256_mask3_fnmsub_pd(__m256d __A, __m256d __B, __m256d __C, __mmask8 __U) { 1475 // CHECK-LABEL: @test_mm256_mask3_fnmsub_pd 1476 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.pd.256 1477 return _mm256_mask3_fnmsub_pd(__A, __B, __C, __U); 1478 } 1479 1480 __m128 test_mm_mask_fnmsub_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128 __C) { 1481 // CHECK-LABEL: @test_mm_mask_fnmsub_ps 1482 // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.128 1483 return _mm_mask_fnmsub_ps(__A, __U, __B, __C); 1484 } 1485 1486 __m128 test_mm_mask3_fnmsub_ps(__m128 __A, __m128 __B, __m128 __C, __mmask8 __U) { 1487 // CHECK-LABEL: @test_mm_mask3_fnmsub_ps 1488 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.128 1489 return _mm_mask3_fnmsub_ps(__A, __B, __C, __U); 1490 } 1491 1492 __m256 test_mm256_mask_fnmsub_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256 __C) { 1493 // CHECK-LABEL: @test_mm256_mask_fnmsub_ps 1494 // CHECK: @llvm.x86.avx512.mask.vfnmsub.ps.256 1495 return _mm256_mask_fnmsub_ps(__A, __U, __B, __C); 1496 } 1497 1498 __m256 test_mm256_mask3_fnmsub_ps(__m256 __A, __m256 __B, __m256 __C, __mmask8 __U) { 1499 // CHECK-LABEL: @test_mm256_mask3_fnmsub_ps 1500 // CHECK: @llvm.x86.avx512.mask3.vfnmsub.ps.256 1501 return _mm256_mask3_fnmsub_ps(__A, __B, __C, __U); 1502 } 1503 1504 __m128d test_mm_mask_add_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 1505 // CHECK-LABEL: @test_mm_mask_add_pd 1506 // CHECK: @llvm.x86.avx512.mask.add.pd.128 1507 return _mm_mask_add_pd(__W,__U,__A,__B); 1508 } 1509 __m128d test_mm_maskz_add_pd(__mmask8 __U, __m128d __A, __m128d __B) { 1510 // CHECK-LABEL: @test_mm_maskz_add_pd 1511 // CHECK: @llvm.x86.avx512.mask.add.pd.128 1512 return _mm_maskz_add_pd(__U,__A,__B); 1513 } 1514 __m256d test_mm256_mask_add_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 1515 // CHECK-LABEL: @test_mm256_mask_add_pd 1516 // CHECK: @llvm.x86.avx512.mask.add.pd.256 1517 return _mm256_mask_add_pd(__W,__U,__A,__B); 1518 } 1519 __m256d test_mm256_maskz_add_pd(__mmask8 __U, __m256d __A, __m256d __B) { 1520 // CHECK-LABEL: @test_mm256_maskz_add_pd 1521 // CHECK: @llvm.x86.avx512.mask.add.pd.256 1522 return _mm256_maskz_add_pd(__U,__A,__B); 1523 } 1524 __m128 test_mm_mask_add_ps(__m128 __W, __mmask16 __U, __m128 __A, __m128 __B) { 1525 // CHECK-LABEL: @test_mm_mask_add_ps 1526 // CHECK: @llvm.x86.avx512.mask.add.ps.128 1527 return _mm_mask_add_ps(__W,__U,__A,__B); 1528 } 1529 __m128 test_mm_maskz_add_ps(__mmask16 __U, __m128 __A, __m128 __B) { 1530 // CHECK-LABEL: @test_mm_maskz_add_ps 1531 // CHECK: @llvm.x86.avx512.mask.add.ps.128 1532 return _mm_maskz_add_ps(__U,__A,__B); 1533 } 1534 __m256 test_mm256_mask_add_ps(__m256 __W, __mmask16 __U, __m256 __A, __m256 __B) { 1535 // CHECK-LABEL: @test_mm256_mask_add_ps 1536 // CHECK: @llvm.x86.avx512.mask.add.ps.256 1537 return _mm256_mask_add_ps(__W,__U,__A,__B); 1538 } 1539 __m256 test_mm256_maskz_add_ps(__mmask16 __U, __m256 __A, __m256 __B) { 1540 // CHECK-LABEL: @test_mm256_maskz_add_ps 1541 // CHECK: @llvm.x86.avx512.mask.add.ps.256 1542 return _mm256_maskz_add_ps(__U,__A,__B); 1543 } 1544 __m128i test_mm_mask_blend_epi32(__mmask8 __U, __m128i __A, __m128i __W) { 1545 // CHECK-LABEL: @test_mm_mask_blend_epi32 1546 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} 1547 return _mm_mask_blend_epi32(__U,__A,__W); 1548 } 1549 __m256i test_mm256_mask_blend_epi32(__mmask8 __U, __m256i __A, __m256i __W) { 1550 // CHECK-LABEL: @test_mm256_mask_blend_epi32 1551 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} 1552 return _mm256_mask_blend_epi32(__U,__A,__W); 1553 } 1554 __m128d test_mm_mask_blend_pd(__mmask8 __U, __m128d __A, __m128d __W) { 1555 // CHECK-LABEL: @test_mm_mask_blend_pd 1556 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}} 1557 return _mm_mask_blend_pd(__U,__A,__W); 1558 } 1559 __m256d test_mm256_mask_blend_pd(__mmask8 __U, __m256d __A, __m256d __W) { 1560 // CHECK-LABEL: @test_mm256_mask_blend_pd 1561 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}} 1562 return _mm256_mask_blend_pd(__U,__A,__W); 1563 } 1564 __m128 test_mm_mask_blend_ps(__mmask8 __U, __m128 __A, __m128 __W) { 1565 // CHECK-LABEL: @test_mm_mask_blend_ps 1566 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}} 1567 return _mm_mask_blend_ps(__U,__A,__W); 1568 } 1569 __m256 test_mm256_mask_blend_ps(__mmask8 __U, __m256 __A, __m256 __W) { 1570 // CHECK-LABEL: @test_mm256_mask_blend_ps 1571 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}} 1572 return _mm256_mask_blend_ps(__U,__A,__W); 1573 } 1574 __m128i test_mm_mask_blend_epi64(__mmask8 __U, __m128i __A, __m128i __W) { 1575 // CHECK-LABEL: @test_mm_mask_blend_epi64 1576 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} 1577 return _mm_mask_blend_epi64(__U,__A,__W); 1578 } 1579 __m256i test_mm256_mask_blend_epi64(__mmask8 __U, __m256i __A, __m256i __W) { 1580 // CHECK-LABEL: @test_mm256_mask_blend_epi64 1581 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} 1582 return _mm256_mask_blend_epi64(__U,__A,__W); 1583 } 1584 __m128d test_mm_mask_compress_pd(__m128d __W, __mmask8 __U, __m128d __A) { 1585 // CHECK-LABEL: @test_mm_mask_compress_pd 1586 // CHECK: @llvm.x86.avx512.mask.compress.pd.128 1587 return _mm_mask_compress_pd(__W,__U,__A); 1588 } 1589 __m128d test_mm_maskz_compress_pd(__mmask8 __U, __m128d __A) { 1590 // CHECK-LABEL: @test_mm_maskz_compress_pd 1591 // CHECK: @llvm.x86.avx512.mask.compress.pd.128 1592 return _mm_maskz_compress_pd(__U,__A); 1593 } 1594 __m256d test_mm256_mask_compress_pd(__m256d __W, __mmask8 __U, __m256d __A) { 1595 // CHECK-LABEL: @test_mm256_mask_compress_pd 1596 // CHECK: @llvm.x86.avx512.mask.compress.pd.256 1597 return _mm256_mask_compress_pd(__W,__U,__A); 1598 } 1599 __m256d test_mm256_maskz_compress_pd(__mmask8 __U, __m256d __A) { 1600 // CHECK-LABEL: @test_mm256_maskz_compress_pd 1601 // CHECK: @llvm.x86.avx512.mask.compress.pd.256 1602 return _mm256_maskz_compress_pd(__U,__A); 1603 } 1604 __m128i test_mm_mask_compress_epi64(__m128i __W, __mmask8 __U, __m128i __A) { 1605 // CHECK-LABEL: @test_mm_mask_compress_epi64 1606 // CHECK: @llvm.x86.avx512.mask.compress.q.128 1607 return _mm_mask_compress_epi64(__W,__U,__A); 1608 } 1609 __m128i test_mm_maskz_compress_epi64(__mmask8 __U, __m128i __A) { 1610 // CHECK-LABEL: @test_mm_maskz_compress_epi64 1611 // CHECK: @llvm.x86.avx512.mask.compress.q.128 1612 return _mm_maskz_compress_epi64(__U,__A); 1613 } 1614 __m256i test_mm256_mask_compress_epi64(__m256i __W, __mmask8 __U, __m256i __A) { 1615 // CHECK-LABEL: @test_mm256_mask_compress_epi64 1616 // CHECK: @llvm.x86.avx512.mask.compress.q.256 1617 return _mm256_mask_compress_epi64(__W,__U,__A); 1618 } 1619 __m256i test_mm256_maskz_compress_epi64(__mmask8 __U, __m256i __A) { 1620 // CHECK-LABEL: @test_mm256_maskz_compress_epi64 1621 // CHECK: @llvm.x86.avx512.mask.compress.q.256 1622 return _mm256_maskz_compress_epi64(__U,__A); 1623 } 1624 __m128 test_mm_mask_compress_ps(__m128 __W, __mmask8 __U, __m128 __A) { 1625 // CHECK-LABEL: @test_mm_mask_compress_ps 1626 // CHECK: @llvm.x86.avx512.mask.compress.ps.128 1627 return _mm_mask_compress_ps(__W,__U,__A); 1628 } 1629 __m128 test_mm_maskz_compress_ps(__mmask8 __U, __m128 __A) { 1630 // CHECK-LABEL: @test_mm_maskz_compress_ps 1631 // CHECK: @llvm.x86.avx512.mask.compress.ps.128 1632 return _mm_maskz_compress_ps(__U,__A); 1633 } 1634 __m256 test_mm256_mask_compress_ps(__m256 __W, __mmask8 __U, __m256 __A) { 1635 // CHECK-LABEL: @test_mm256_mask_compress_ps 1636 // CHECK: @llvm.x86.avx512.mask.compress.ps.256 1637 return _mm256_mask_compress_ps(__W,__U,__A); 1638 } 1639 __m256 test_mm256_maskz_compress_ps(__mmask8 __U, __m256 __A) { 1640 // CHECK-LABEL: @test_mm256_maskz_compress_ps 1641 // CHECK: @llvm.x86.avx512.mask.compress.ps.256 1642 return _mm256_maskz_compress_ps(__U,__A); 1643 } 1644 __m128i test_mm_mask_compress_epi32(__m128i __W, __mmask8 __U, __m128i __A) { 1645 // CHECK-LABEL: @test_mm_mask_compress_epi32 1646 // CHECK: @llvm.x86.avx512.mask.compress.d.128 1647 return _mm_mask_compress_epi32(__W,__U,__A); 1648 } 1649 __m128i test_mm_maskz_compress_epi32(__mmask8 __U, __m128i __A) { 1650 // CHECK-LABEL: @test_mm_maskz_compress_epi32 1651 // CHECK: @llvm.x86.avx512.mask.compress.d.128 1652 return _mm_maskz_compress_epi32(__U,__A); 1653 } 1654 __m256i test_mm256_mask_compress_epi32(__m256i __W, __mmask8 __U, __m256i __A) { 1655 // CHECK-LABEL: @test_mm256_mask_compress_epi32 1656 // CHECK: @llvm.x86.avx512.mask.compress.d.256 1657 return _mm256_mask_compress_epi32(__W,__U,__A); 1658 } 1659 __m256i test_mm256_maskz_compress_epi32(__mmask8 __U, __m256i __A) { 1660 // CHECK-LABEL: @test_mm256_maskz_compress_epi32 1661 // CHECK: @llvm.x86.avx512.mask.compress.d.256 1662 return _mm256_maskz_compress_epi32(__U,__A); 1663 } 1664 void test_mm_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m128d __A) { 1665 // CHECK-LABEL: @test_mm_mask_compressstoreu_pd 1666 // CHECK: @llvm.x86.avx512.mask.compress.store.pd.128 1667 return _mm_mask_compressstoreu_pd(__P,__U,__A); 1668 } 1669 void test_mm256_mask_compressstoreu_pd(void *__P, __mmask8 __U, __m256d __A) { 1670 // CHECK-LABEL: @test_mm256_mask_compressstoreu_pd 1671 // CHECK: @llvm.x86.avx512.mask.compress.store.pd.256 1672 return _mm256_mask_compressstoreu_pd(__P,__U,__A); 1673 } 1674 void test_mm_mask_compressstoreu_epi64(void *__P, __mmask8 __U, __m128i __A) { 1675 // CHECK-LABEL: @test_mm_mask_compressstoreu_epi64 1676 // CHECK: @llvm.x86.avx512.mask.compress.store.q.128 1677 return _mm_mask_compressstoreu_epi64(__P,__U,__A); 1678 } 1679 void test_mm256_mask_compressstoreu_epi64(void *__P, __mmask8 __U, __m256i __A) { 1680 // CHECK-LABEL: @test_mm256_mask_compressstoreu_epi64 1681 // CHECK: @llvm.x86.avx512.mask.compress.store.q.256 1682 return _mm256_mask_compressstoreu_epi64(__P,__U,__A); 1683 } 1684 void test_mm_mask_compressstoreu_ps(void *__P, __mmask8 __U, __m128 __A) { 1685 // CHECK-LABEL: @test_mm_mask_compressstoreu_ps 1686 // CHECK: @llvm.x86.avx512.mask.compress.store.ps.128 1687 return _mm_mask_compressstoreu_ps(__P,__U,__A); 1688 } 1689 void test_mm256_mask_compressstoreu_ps(void *__P, __mmask8 __U, __m256 __A) { 1690 // CHECK-LABEL: @test_mm256_mask_compressstoreu_ps 1691 // CHECK: @llvm.x86.avx512.mask.compress.store.ps.256 1692 return _mm256_mask_compressstoreu_ps(__P,__U,__A); 1693 } 1694 void test_mm_mask_compressstoreu_epi32(void *__P, __mmask8 __U, __m128i __A) { 1695 // CHECK-LABEL: @test_mm_mask_compressstoreu_epi32 1696 // CHECK: @llvm.x86.avx512.mask.compress.store.d.128 1697 return _mm_mask_compressstoreu_epi32(__P,__U,__A); 1698 } 1699 void test_mm256_mask_compressstoreu_epi32(void *__P, __mmask8 __U, __m256i __A) { 1700 // CHECK-LABEL: @test_mm256_mask_compressstoreu_epi32 1701 // CHECK: @llvm.x86.avx512.mask.compress.store.d.256 1702 return _mm256_mask_compressstoreu_epi32(__P,__U,__A); 1703 } 1704 __m128d test_mm_mask_cvtepi32_pd(__m128d __W, __mmask8 __U, __m128i __A) { 1705 // CHECK-LABEL: @test_mm_mask_cvtepi32_pd 1706 // CHECK: @llvm.x86.avx512.mask.cvtdq2pd.128 1707 return _mm_mask_cvtepi32_pd(__W,__U,__A); 1708 } 1709 __m128d test_mm_maskz_cvtepi32_pd(__mmask8 __U, __m128i __A) { 1710 // CHECK-LABEL: @test_mm_maskz_cvtepi32_pd 1711 // CHECK: @llvm.x86.avx512.mask.cvtdq2pd.128 1712 return _mm_maskz_cvtepi32_pd(__U,__A); 1713 } 1714 __m256d test_mm256_mask_cvtepi32_pd(__m256d __W, __mmask8 __U, __m128i __A) { 1715 // CHECK-LABEL: @test_mm256_mask_cvtepi32_pd 1716 // CHECK: @llvm.x86.avx512.mask.cvtdq2pd.256 1717 return _mm256_mask_cvtepi32_pd(__W,__U,__A); 1718 } 1719 __m256d test_mm256_maskz_cvtepi32_pd(__mmask8 __U, __m128i __A) { 1720 // CHECK-LABEL: @test_mm256_maskz_cvtepi32_pd 1721 // CHECK: @llvm.x86.avx512.mask.cvtdq2pd.256 1722 return _mm256_maskz_cvtepi32_pd(__U,__A); 1723 } 1724 __m128 test_mm_mask_cvtepi32_ps(__m128 __W, __mmask8 __U, __m128i __A) { 1725 // CHECK-LABEL: @test_mm_mask_cvtepi32_ps 1726 // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.128 1727 return _mm_mask_cvtepi32_ps(__W,__U,__A); 1728 } 1729 __m128 test_mm_maskz_cvtepi32_ps(__mmask16 __U, __m128i __A) { 1730 // CHECK-LABEL: @test_mm_maskz_cvtepi32_ps 1731 // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.128 1732 return _mm_maskz_cvtepi32_ps(__U,__A); 1733 } 1734 __m256 test_mm256_mask_cvtepi32_ps(__m256 __W, __mmask8 __U, __m256i __A) { 1735 // CHECK-LABEL: @test_mm256_mask_cvtepi32_ps 1736 // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.256 1737 return _mm256_mask_cvtepi32_ps(__W,__U,__A); 1738 } 1739 __m256 test_mm256_maskz_cvtepi32_ps(__mmask16 __U, __m256i __A) { 1740 // CHECK-LABEL: @test_mm256_maskz_cvtepi32_ps 1741 // CHECK: @llvm.x86.avx512.mask.cvtdq2ps.256 1742 return _mm256_maskz_cvtepi32_ps(__U,__A); 1743 } 1744 __m128i test_mm_mask_cvtpd_epi32(__m128i __W, __mmask8 __U, __m128d __A) { 1745 // CHECK-LABEL: @test_mm_mask_cvtpd_epi32 1746 // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.128 1747 return _mm_mask_cvtpd_epi32(__W,__U,__A); 1748 } 1749 __m128i test_mm_maskz_cvtpd_epi32(__mmask8 __U, __m128d __A) { 1750 // CHECK-LABEL: @test_mm_maskz_cvtpd_epi32 1751 // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.128 1752 return _mm_maskz_cvtpd_epi32(__U,__A); 1753 } 1754 __m128i test_mm256_mask_cvtpd_epi32(__m128i __W, __mmask8 __U, __m256d __A) { 1755 // CHECK-LABEL: @test_mm256_mask_cvtpd_epi32 1756 // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.256 1757 return _mm256_mask_cvtpd_epi32(__W,__U,__A); 1758 } 1759 __m128i test_mm256_maskz_cvtpd_epi32(__mmask8 __U, __m256d __A) { 1760 // CHECK-LABEL: @test_mm256_maskz_cvtpd_epi32 1761 // CHECK: @llvm.x86.avx512.mask.cvtpd2dq.256 1762 return _mm256_maskz_cvtpd_epi32(__U,__A); 1763 } 1764 __m128 test_mm_mask_cvtpd_ps(__m128 __W, __mmask8 __U, __m128d __A) { 1765 // CHECK-LABEL: @test_mm_mask_cvtpd_ps 1766 // CHECK: @llvm.x86.avx512.mask.cvtpd2ps 1767 return _mm_mask_cvtpd_ps(__W,__U,__A); 1768 } 1769 __m128 test_mm_maskz_cvtpd_ps(__mmask8 __U, __m128d __A) { 1770 // CHECK-LABEL: @test_mm_maskz_cvtpd_ps 1771 // CHECK: @llvm.x86.avx512.mask.cvtpd2ps 1772 return _mm_maskz_cvtpd_ps(__U,__A); 1773 } 1774 __m128 test_mm256_mask_cvtpd_ps(__m128 __W, __mmask8 __U, __m256d __A) { 1775 // CHECK-LABEL: @test_mm256_mask_cvtpd_ps 1776 // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.256 1777 return _mm256_mask_cvtpd_ps(__W,__U,__A); 1778 } 1779 __m128 test_mm256_maskz_cvtpd_ps(__mmask8 __U, __m256d __A) { 1780 // CHECK-LABEL: @test_mm256_maskz_cvtpd_ps 1781 // CHECK: @llvm.x86.avx512.mask.cvtpd2ps.256 1782 return _mm256_maskz_cvtpd_ps(__U,__A); 1783 } 1784 __m128i test_mm_cvtpd_epu32(__m128d __A) { 1785 // CHECK-LABEL: @test_mm_cvtpd_epu32 1786 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128 1787 return _mm_cvtpd_epu32(__A); 1788 } 1789 __m128i test_mm_mask_cvtpd_epu32(__m128i __W, __mmask8 __U, __m128d __A) { 1790 // CHECK-LABEL: @test_mm_mask_cvtpd_epu32 1791 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128 1792 return _mm_mask_cvtpd_epu32(__W,__U,__A); 1793 } 1794 __m128i test_mm_maskz_cvtpd_epu32(__mmask8 __U, __m128d __A) { 1795 // CHECK-LABEL: @test_mm_maskz_cvtpd_epu32 1796 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.128 1797 return _mm_maskz_cvtpd_epu32(__U,__A); 1798 } 1799 __m128i test_mm256_cvtpd_epu32(__m256d __A) { 1800 // CHECK-LABEL: @test_mm256_cvtpd_epu32 1801 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256 1802 return _mm256_cvtpd_epu32(__A); 1803 } 1804 __m128i test_mm256_mask_cvtpd_epu32(__m128i __W, __mmask8 __U, __m256d __A) { 1805 // CHECK-LABEL: @test_mm256_mask_cvtpd_epu32 1806 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256 1807 return _mm256_mask_cvtpd_epu32(__W,__U,__A); 1808 } 1809 __m128i test_mm256_maskz_cvtpd_epu32(__mmask8 __U, __m256d __A) { 1810 // CHECK-LABEL: @test_mm256_maskz_cvtpd_epu32 1811 // CHECK: @llvm.x86.avx512.mask.cvtpd2udq.256 1812 return _mm256_maskz_cvtpd_epu32(__U,__A); 1813 } 1814 __m128i test_mm_mask_cvtps_epi32(__m128i __W, __mmask8 __U, __m128 __A) { 1815 // CHECK-LABEL: @test_mm_mask_cvtps_epi32 1816 // CHECK: @llvm.x86.avx512.mask.cvtps2dq.128 1817 return _mm_mask_cvtps_epi32(__W,__U,__A); 1818 } 1819 __m128i test_mm_maskz_cvtps_epi32(__mmask8 __U, __m128 __A) { 1820 // CHECK-LABEL: @test_mm_maskz_cvtps_epi32 1821 // CHECK: @llvm.x86.avx512.mask.cvtps2dq.128 1822 return _mm_maskz_cvtps_epi32(__U,__A); 1823 } 1824 __m256i test_mm256_mask_cvtps_epi32(__m256i __W, __mmask8 __U, __m256 __A) { 1825 // CHECK-LABEL: @test_mm256_mask_cvtps_epi32 1826 // CHECK: @llvm.x86.avx512.mask.cvtps2dq.256 1827 return _mm256_mask_cvtps_epi32(__W,__U,__A); 1828 } 1829 __m256i test_mm256_maskz_cvtps_epi32(__mmask8 __U, __m256 __A) { 1830 // CHECK-LABEL: @test_mm256_maskz_cvtps_epi32 1831 // CHECK: @llvm.x86.avx512.mask.cvtps2dq.256 1832 return _mm256_maskz_cvtps_epi32(__U,__A); 1833 } 1834 __m128d test_mm_mask_cvtps_pd(__m128d __W, __mmask8 __U, __m128 __A) { 1835 // CHECK-LABEL: @test_mm_mask_cvtps_pd 1836 // CHECK: @llvm.x86.avx512.mask.cvtps2pd.128 1837 return _mm_mask_cvtps_pd(__W,__U,__A); 1838 } 1839 __m128d test_mm_maskz_cvtps_pd(__mmask8 __U, __m128 __A) { 1840 // CHECK-LABEL: @test_mm_maskz_cvtps_pd 1841 // CHECK: @llvm.x86.avx512.mask.cvtps2pd.128 1842 return _mm_maskz_cvtps_pd(__U,__A); 1843 } 1844 __m256d test_mm256_mask_cvtps_pd(__m256d __W, __mmask8 __U, __m128 __A) { 1845 // CHECK-LABEL: @test_mm256_mask_cvtps_pd 1846 // CHECK: @llvm.x86.avx512.mask.cvtps2pd.256 1847 return _mm256_mask_cvtps_pd(__W,__U,__A); 1848 } 1849 __m256d test_mm256_maskz_cvtps_pd(__mmask8 __U, __m128 __A) { 1850 // CHECK-LABEL: @test_mm256_maskz_cvtps_pd 1851 // CHECK: @llvm.x86.avx512.mask.cvtps2pd.256 1852 return _mm256_maskz_cvtps_pd(__U,__A); 1853 } 1854 __m128i test_mm_cvtps_epu32(__m128 __A) { 1855 // CHECK-LABEL: @test_mm_cvtps_epu32 1856 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128 1857 return _mm_cvtps_epu32(__A); 1858 } 1859 __m128i test_mm_mask_cvtps_epu32(__m128i __W, __mmask8 __U, __m128 __A) { 1860 // CHECK-LABEL: @test_mm_mask_cvtps_epu32 1861 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128 1862 return _mm_mask_cvtps_epu32(__W,__U,__A); 1863 } 1864 __m128i test_mm_maskz_cvtps_epu32(__mmask8 __U, __m128 __A) { 1865 // CHECK-LABEL: @test_mm_maskz_cvtps_epu32 1866 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.128 1867 return _mm_maskz_cvtps_epu32(__U,__A); 1868 } 1869 __m256i test_mm256_cvtps_epu32(__m256 __A) { 1870 // CHECK-LABEL: @test_mm256_cvtps_epu32 1871 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256 1872 return _mm256_cvtps_epu32(__A); 1873 } 1874 __m256i test_mm256_mask_cvtps_epu32(__m256i __W, __mmask8 __U, __m256 __A) { 1875 // CHECK-LABEL: @test_mm256_mask_cvtps_epu32 1876 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256 1877 return _mm256_mask_cvtps_epu32(__W,__U,__A); 1878 } 1879 __m256i test_mm256_maskz_cvtps_epu32(__mmask8 __U, __m256 __A) { 1880 // CHECK-LABEL: @test_mm256_maskz_cvtps_epu32 1881 // CHECK: @llvm.x86.avx512.mask.cvtps2udq.256 1882 return _mm256_maskz_cvtps_epu32(__U,__A); 1883 } 1884 __m128i test_mm_mask_cvttpd_epi32(__m128i __W, __mmask8 __U, __m128d __A) { 1885 // CHECK-LABEL: @test_mm_mask_cvttpd_epi32 1886 // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.128 1887 return _mm_mask_cvttpd_epi32(__W,__U,__A); 1888 } 1889 __m128i test_mm_maskz_cvttpd_epi32(__mmask8 __U, __m128d __A) { 1890 // CHECK-LABEL: @test_mm_maskz_cvttpd_epi32 1891 // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.128 1892 return _mm_maskz_cvttpd_epi32(__U,__A); 1893 } 1894 __m128i test_mm256_mask_cvttpd_epi32(__m128i __W, __mmask8 __U, __m256d __A) { 1895 // CHECK-LABEL: @test_mm256_mask_cvttpd_epi32 1896 // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.256 1897 return _mm256_mask_cvttpd_epi32(__W,__U,__A); 1898 } 1899 __m128i test_mm256_maskz_cvttpd_epi32(__mmask8 __U, __m256d __A) { 1900 // CHECK-LABEL: @test_mm256_maskz_cvttpd_epi32 1901 // CHECK: @llvm.x86.avx512.mask.cvttpd2dq.256 1902 return _mm256_maskz_cvttpd_epi32(__U,__A); 1903 } 1904 __m128i test_mm_cvttpd_epu32(__m128d __A) { 1905 // CHECK-LABEL: @test_mm_cvttpd_epu32 1906 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128 1907 return _mm_cvttpd_epu32(__A); 1908 } 1909 __m128i test_mm_mask_cvttpd_epu32(__m128i __W, __mmask8 __U, __m128d __A) { 1910 // CHECK-LABEL: @test_mm_mask_cvttpd_epu32 1911 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128 1912 return _mm_mask_cvttpd_epu32(__W,__U,__A); 1913 } 1914 __m128i test_mm_maskz_cvttpd_epu32(__mmask8 __U, __m128d __A) { 1915 // CHECK-LABEL: @test_mm_maskz_cvttpd_epu32 1916 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.128 1917 return _mm_maskz_cvttpd_epu32(__U,__A); 1918 } 1919 __m128i test_mm256_cvttpd_epu32(__m256d __A) { 1920 // CHECK-LABEL: @test_mm256_cvttpd_epu32 1921 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256 1922 return _mm256_cvttpd_epu32(__A); 1923 } 1924 __m128i test_mm256_mask_cvttpd_epu32(__m128i __W, __mmask8 __U, __m256d __A) { 1925 // CHECK-LABEL: @test_mm256_mask_cvttpd_epu32 1926 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256 1927 return _mm256_mask_cvttpd_epu32(__W,__U,__A); 1928 } 1929 __m128i test_mm256_maskz_cvttpd_epu32(__mmask8 __U, __m256d __A) { 1930 // CHECK-LABEL: @test_mm256_maskz_cvttpd_epu32 1931 // CHECK: @llvm.x86.avx512.mask.cvttpd2udq.256 1932 return _mm256_maskz_cvttpd_epu32(__U,__A); 1933 } 1934 __m128i test_mm_mask_cvttps_epi32(__m128i __W, __mmask8 __U, __m128 __A) { 1935 // CHECK-LABEL: @test_mm_mask_cvttps_epi32 1936 // CHECK: @llvm.x86.avx512.mask.cvttps2dq.128 1937 return _mm_mask_cvttps_epi32(__W,__U,__A); 1938 } 1939 __m128i test_mm_maskz_cvttps_epi32(__mmask8 __U, __m128 __A) { 1940 // CHECK-LABEL: @test_mm_maskz_cvttps_epi32 1941 // CHECK: @llvm.x86.avx512.mask.cvttps2dq.128 1942 return _mm_maskz_cvttps_epi32(__U,__A); 1943 } 1944 __m256i test_mm256_mask_cvttps_epi32(__m256i __W, __mmask8 __U, __m256 __A) { 1945 // CHECK-LABEL: @test_mm256_mask_cvttps_epi32 1946 // CHECK: @llvm.x86.avx512.mask.cvttps2dq.256 1947 return _mm256_mask_cvttps_epi32(__W,__U,__A); 1948 } 1949 __m256i test_mm256_maskz_cvttps_epi32(__mmask8 __U, __m256 __A) { 1950 // CHECK-LABEL: @test_mm256_maskz_cvttps_epi32 1951 // CHECK: @llvm.x86.avx512.mask.cvttps2dq.256 1952 return _mm256_maskz_cvttps_epi32(__U,__A); 1953 } 1954 __m128i test_mm_cvttps_epu32(__m128 __A) { 1955 // CHECK-LABEL: @test_mm_cvttps_epu32 1956 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128 1957 return _mm_cvttps_epu32(__A); 1958 } 1959 __m128i test_mm_mask_cvttps_epu32(__m128i __W, __mmask8 __U, __m128 __A) { 1960 // CHECK-LABEL: @test_mm_mask_cvttps_epu32 1961 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128 1962 return _mm_mask_cvttps_epu32(__W,__U,__A); 1963 } 1964 __m128i test_mm_maskz_cvttps_epu32(__mmask8 __U, __m128 __A) { 1965 // CHECK-LABEL: @test_mm_maskz_cvttps_epu32 1966 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.128 1967 return _mm_maskz_cvttps_epu32(__U,__A); 1968 } 1969 __m256i test_mm256_cvttps_epu32(__m256 __A) { 1970 // CHECK-LABEL: @test_mm256_cvttps_epu32 1971 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256 1972 return _mm256_cvttps_epu32(__A); 1973 } 1974 __m256i test_mm256_mask_cvttps_epu32(__m256i __W, __mmask8 __U, __m256 __A) { 1975 // CHECK-LABEL: @test_mm256_mask_cvttps_epu32 1976 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256 1977 return _mm256_mask_cvttps_epu32(__W,__U,__A); 1978 } 1979 __m256i test_mm256_maskz_cvttps_epu32(__mmask8 __U, __m256 __A) { 1980 // CHECK-LABEL: @test_mm256_maskz_cvttps_epu32 1981 // CHECK: @llvm.x86.avx512.mask.cvttps2udq.256 1982 return _mm256_maskz_cvttps_epu32(__U,__A); 1983 } 1984 __m128d test_mm_cvtepu32_pd(__m128i __A) { 1985 // CHECK-LABEL: @test_mm_cvtepu32_pd 1986 // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.128 1987 return _mm_cvtepu32_pd(__A); 1988 } 1989 __m128d test_mm_mask_cvtepu32_pd(__m128d __W, __mmask8 __U, __m128i __A) { 1990 // CHECK-LABEL: @test_mm_mask_cvtepu32_pd 1991 // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.128 1992 return _mm_mask_cvtepu32_pd(__W,__U,__A); 1993 } 1994 __m128d test_mm_maskz_cvtepu32_pd(__mmask8 __U, __m128i __A) { 1995 // CHECK-LABEL: @test_mm_maskz_cvtepu32_pd 1996 // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.128 1997 return _mm_maskz_cvtepu32_pd(__U,__A); 1998 } 1999 __m256d test_mm256_cvtepu32_pd(__m128i __A) { 2000 // CHECK-LABEL: @test_mm256_cvtepu32_pd 2001 // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.256 2002 return _mm256_cvtepu32_pd(__A); 2003 } 2004 __m256d test_mm256_mask_cvtepu32_pd(__m256d __W, __mmask8 __U, __m128i __A) { 2005 // CHECK-LABEL: @test_mm256_mask_cvtepu32_pd 2006 // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.256 2007 return _mm256_mask_cvtepu32_pd(__W,__U,__A); 2008 } 2009 __m256d test_mm256_maskz_cvtepu32_pd(__mmask8 __U, __m128i __A) { 2010 // CHECK-LABEL: @test_mm256_maskz_cvtepu32_pd 2011 // CHECK: @llvm.x86.avx512.mask.cvtudq2pd.256 2012 return _mm256_maskz_cvtepu32_pd(__U,__A); 2013 } 2014 __m128 test_mm_cvtepu32_ps(__m128i __A) { 2015 // CHECK-LABEL: @test_mm_cvtepu32_ps 2016 // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.128 2017 return _mm_cvtepu32_ps(__A); 2018 } 2019 __m128 test_mm_mask_cvtepu32_ps(__m128 __W, __mmask8 __U, __m128i __A) { 2020 // CHECK-LABEL: @test_mm_mask_cvtepu32_ps 2021 // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.128 2022 return _mm_mask_cvtepu32_ps(__W,__U,__A); 2023 } 2024 __m128 test_mm_maskz_cvtepu32_ps(__mmask8 __U, __m128i __A) { 2025 // CHECK-LABEL: @test_mm_maskz_cvtepu32_ps 2026 // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.128 2027 return _mm_maskz_cvtepu32_ps(__U,__A); 2028 } 2029 __m256 test_mm256_cvtepu32_ps(__m256i __A) { 2030 // CHECK-LABEL: @test_mm256_cvtepu32_ps 2031 // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.256 2032 return _mm256_cvtepu32_ps(__A); 2033 } 2034 __m256 test_mm256_mask_cvtepu32_ps(__m256 __W, __mmask8 __U, __m256i __A) { 2035 // CHECK-LABEL: @test_mm256_mask_cvtepu32_ps 2036 // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.256 2037 return _mm256_mask_cvtepu32_ps(__W,__U,__A); 2038 } 2039 __m256 test_mm256_maskz_cvtepu32_ps(__mmask8 __U, __m256i __A) { 2040 // CHECK-LABEL: @test_mm256_maskz_cvtepu32_ps 2041 // CHECK: @llvm.x86.avx512.mask.cvtudq2ps.256 2042 return _mm256_maskz_cvtepu32_ps(__U,__A); 2043 } 2044 __m128d test_mm_mask_div_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 2045 // CHECK-LABEL: @test_mm_mask_div_pd 2046 // CHECK: @llvm.x86.avx512.mask.div.pd.128 2047 return _mm_mask_div_pd(__W,__U,__A,__B); 2048 } 2049 __m128d test_mm_maskz_div_pd(__mmask8 __U, __m128d __A, __m128d __B) { 2050 // CHECK-LABEL: @test_mm_maskz_div_pd 2051 // CHECK: @llvm.x86.avx512.mask.div.pd.128 2052 return _mm_maskz_div_pd(__U,__A,__B); 2053 } 2054 __m256d test_mm256_mask_div_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 2055 // CHECK-LABEL: @test_mm256_mask_div_pd 2056 // CHECK: @llvm.x86.avx512.mask.div.pd.256 2057 return _mm256_mask_div_pd(__W,__U,__A,__B); 2058 } 2059 __m256d test_mm256_maskz_div_pd(__mmask8 __U, __m256d __A, __m256d __B) { 2060 // CHECK-LABEL: @test_mm256_maskz_div_pd 2061 // CHECK: @llvm.x86.avx512.mask.div.pd.256 2062 return _mm256_maskz_div_pd(__U,__A,__B); 2063 } 2064 __m128 test_mm_mask_div_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 2065 // CHECK-LABEL: @test_mm_mask_div_ps 2066 // CHECK: @llvm.x86.avx512.mask.div.ps.128 2067 return _mm_mask_div_ps(__W,__U,__A,__B); 2068 } 2069 __m128 test_mm_maskz_div_ps(__mmask8 __U, __m128 __A, __m128 __B) { 2070 // CHECK-LABEL: @test_mm_maskz_div_ps 2071 // CHECK: @llvm.x86.avx512.mask.div.ps.128 2072 return _mm_maskz_div_ps(__U,__A,__B); 2073 } 2074 __m256 test_mm256_mask_div_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 2075 // CHECK-LABEL: @test_mm256_mask_div_ps 2076 // CHECK: @llvm.x86.avx512.mask.div.ps.256 2077 return _mm256_mask_div_ps(__W,__U,__A,__B); 2078 } 2079 __m256 test_mm256_maskz_div_ps(__mmask8 __U, __m256 __A, __m256 __B) { 2080 // CHECK-LABEL: @test_mm256_maskz_div_ps 2081 // CHECK: @llvm.x86.avx512.mask.div.ps.256 2082 return _mm256_maskz_div_ps(__U,__A,__B); 2083 } 2084 __m128d test_mm_mask_expand_pd(__m128d __W, __mmask8 __U, __m128d __A) { 2085 // CHECK-LABEL: @test_mm_mask_expand_pd 2086 // CHECK: @llvm.x86.avx512.mask.expand.pd.128 2087 return _mm_mask_expand_pd(__W,__U,__A); 2088 } 2089 __m128d test_mm_maskz_expand_pd(__mmask8 __U, __m128d __A) { 2090 // CHECK-LABEL: @test_mm_maskz_expand_pd 2091 // CHECK: @llvm.x86.avx512.mask.expand.pd.128 2092 return _mm_maskz_expand_pd(__U,__A); 2093 } 2094 __m256d test_mm256_mask_expand_pd(__m256d __W, __mmask8 __U, __m256d __A) { 2095 // CHECK-LABEL: @test_mm256_mask_expand_pd 2096 // CHECK: @llvm.x86.avx512.mask.expand.pd.256 2097 return _mm256_mask_expand_pd(__W,__U,__A); 2098 } 2099 __m256d test_mm256_maskz_expand_pd(__mmask8 __U, __m256d __A) { 2100 // CHECK-LABEL: @test_mm256_maskz_expand_pd 2101 // CHECK: @llvm.x86.avx512.mask.expand.pd.256 2102 return _mm256_maskz_expand_pd(__U,__A); 2103 } 2104 __m128i test_mm_mask_expand_epi64(__m128i __W, __mmask8 __U, __m128i __A) { 2105 // CHECK-LABEL: @test_mm_mask_expand_epi64 2106 // CHECK: @llvm.x86.avx512.mask.expand.q.128 2107 return _mm_mask_expand_epi64(__W,__U,__A); 2108 } 2109 __m128i test_mm_maskz_expand_epi64(__mmask8 __U, __m128i __A) { 2110 // CHECK-LABEL: @test_mm_maskz_expand_epi64 2111 // CHECK: @llvm.x86.avx512.mask.expand.q.128 2112 return _mm_maskz_expand_epi64(__U,__A); 2113 } 2114 __m256i test_mm256_mask_expand_epi64(__m256i __W, __mmask8 __U, __m256i __A) { 2115 // CHECK-LABEL: @test_mm256_mask_expand_epi64 2116 // CHECK: @llvm.x86.avx512.mask.expand.q.256 2117 return _mm256_mask_expand_epi64(__W,__U,__A); 2118 } 2119 __m256i test_mm256_maskz_expand_epi64(__mmask8 __U, __m256i __A) { 2120 // CHECK-LABEL: @test_mm256_maskz_expand_epi64 2121 // CHECK: @llvm.x86.avx512.mask.expand.q.256 2122 return _mm256_maskz_expand_epi64(__U,__A); 2123 } 2124 __m128d test_mm_mask_expandloadu_pd(__m128d __W, __mmask8 __U, void const *__P) { 2125 // CHECK-LABEL: @test_mm_mask_expandloadu_pd 2126 // CHECK: @llvm.x86.avx512.mask.expand.load.pd.128 2127 return _mm_mask_expandloadu_pd(__W,__U,__P); 2128 } 2129 __m128d test_mm_maskz_expandloadu_pd(__mmask8 __U, void const *__P) { 2130 // CHECK-LABEL: @test_mm_maskz_expandloadu_pd 2131 // CHECK: @llvm.x86.avx512.mask.expand.load.pd.128 2132 return _mm_maskz_expandloadu_pd(__U,__P); 2133 } 2134 __m256d test_mm256_mask_expandloadu_pd(__m256d __W, __mmask8 __U, void const *__P) { 2135 // CHECK-LABEL: @test_mm256_mask_expandloadu_pd 2136 // CHECK: @llvm.x86.avx512.mask.expand.load.pd.256 2137 return _mm256_mask_expandloadu_pd(__W,__U,__P); 2138 } 2139 __m256d test_mm256_maskz_expandloadu_pd(__mmask8 __U, void const *__P) { 2140 // CHECK-LABEL: @test_mm256_maskz_expandloadu_pd 2141 // CHECK: @llvm.x86.avx512.mask.expand.load.pd.256 2142 return _mm256_maskz_expandloadu_pd(__U,__P); 2143 } 2144 __m128i test_mm_mask_expandloadu_epi64(__m128i __W, __mmask8 __U, void const *__P) { 2145 // CHECK-LABEL: @test_mm_mask_expandloadu_epi64 2146 // CHECK: @llvm.x86.avx512.mask.expand.load.q.128 2147 return _mm_mask_expandloadu_epi64(__W,__U,__P); 2148 } 2149 __m128i test_mm_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) { 2150 // CHECK-LABEL: @test_mm_maskz_expandloadu_epi64 2151 // CHECK: @llvm.x86.avx512.mask.expand.load.q.128 2152 return _mm_maskz_expandloadu_epi64(__U,__P); 2153 } 2154 __m256i test_mm256_mask_expandloadu_epi64(__m256i __W, __mmask8 __U, void const *__P) { 2155 // CHECK-LABEL: @test_mm256_mask_expandloadu_epi64 2156 // CHECK: @llvm.x86.avx512.mask.expand.load.q.256 2157 return _mm256_mask_expandloadu_epi64(__W,__U,__P); 2158 } 2159 __m256i test_mm256_maskz_expandloadu_epi64(__mmask8 __U, void const *__P) { 2160 // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi64 2161 // CHECK: @llvm.x86.avx512.mask.expand.load.q.256 2162 return _mm256_maskz_expandloadu_epi64(__U,__P); 2163 } 2164 __m128 test_mm_mask_expandloadu_ps(__m128 __W, __mmask8 __U, void const *__P) { 2165 // CHECK-LABEL: @test_mm_mask_expandloadu_ps 2166 // CHECK: @llvm.x86.avx512.mask.expand.load.ps.128 2167 return _mm_mask_expandloadu_ps(__W,__U,__P); 2168 } 2169 __m128 test_mm_maskz_expandloadu_ps(__mmask8 __U, void const *__P) { 2170 // CHECK-LABEL: @test_mm_maskz_expandloadu_ps 2171 // CHECK: @llvm.x86.avx512.mask.expand.load.ps.128 2172 return _mm_maskz_expandloadu_ps(__U,__P); 2173 } 2174 __m256 test_mm256_mask_expandloadu_ps(__m256 __W, __mmask8 __U, void const *__P) { 2175 // CHECK-LABEL: @test_mm256_mask_expandloadu_ps 2176 // CHECK: @llvm.x86.avx512.mask.expand.load.ps.256 2177 return _mm256_mask_expandloadu_ps(__W,__U,__P); 2178 } 2179 __m256 test_mm256_maskz_expandloadu_ps(__mmask8 __U, void const *__P) { 2180 // CHECK-LABEL: @test_mm256_maskz_expandloadu_ps 2181 // CHECK: @llvm.x86.avx512.mask.expand.load.ps.256 2182 return _mm256_maskz_expandloadu_ps(__U,__P); 2183 } 2184 __m128i test_mm_mask_expandloadu_epi32(__m128i __W, __mmask8 __U, void const *__P) { 2185 // CHECK-LABEL: @test_mm_mask_expandloadu_epi32 2186 // CHECK: @llvm.x86.avx512.mask.expand.load.d.128 2187 return _mm_mask_expandloadu_epi32(__W,__U,__P); 2188 } 2189 __m128i test_mm_maskz_expandloadu_epi32(__mmask8 __U, void const *__P) { 2190 // CHECK-LABEL: @test_mm_maskz_expandloadu_epi32 2191 // CHECK: @llvm.x86.avx512.mask.expand.load.d.128 2192 return _mm_maskz_expandloadu_epi32(__U,__P); 2193 } 2194 __m256i test_mm256_mask_expandloadu_epi32(__m256i __W, __mmask8 __U, void const *__P) { 2195 // CHECK-LABEL: @test_mm256_mask_expandloadu_epi32 2196 // CHECK: @llvm.x86.avx512.mask.expand.load.d.256 2197 return _mm256_mask_expandloadu_epi32(__W,__U,__P); 2198 } 2199 __m256i test_mm256_maskz_expandloadu_epi32(__mmask8 __U, void const *__P) { 2200 // CHECK-LABEL: @test_mm256_maskz_expandloadu_epi32 2201 // CHECK: @llvm.x86.avx512.mask.expand.load.d.256 2202 return _mm256_maskz_expandloadu_epi32(__U,__P); 2203 } 2204 __m128 test_mm_mask_expand_ps(__m128 __W, __mmask8 __U, __m128 __A) { 2205 // CHECK-LABEL: @test_mm_mask_expand_ps 2206 // CHECK: @llvm.x86.avx512.mask.expand.ps.128 2207 return _mm_mask_expand_ps(__W,__U,__A); 2208 } 2209 __m128 test_mm_maskz_expand_ps(__mmask8 __U, __m128 __A) { 2210 // CHECK-LABEL: @test_mm_maskz_expand_ps 2211 // CHECK: @llvm.x86.avx512.mask.expand.ps.128 2212 return _mm_maskz_expand_ps(__U,__A); 2213 } 2214 __m256 test_mm256_mask_expand_ps(__m256 __W, __mmask8 __U, __m256 __A) { 2215 // CHECK-LABEL: @test_mm256_mask_expand_ps 2216 // CHECK: @llvm.x86.avx512.mask.expand.ps.256 2217 return _mm256_mask_expand_ps(__W,__U,__A); 2218 } 2219 __m256 test_mm256_maskz_expand_ps(__mmask8 __U, __m256 __A) { 2220 // CHECK-LABEL: @test_mm256_maskz_expand_ps 2221 // CHECK: @llvm.x86.avx512.mask.expand.ps.256 2222 return _mm256_maskz_expand_ps(__U,__A); 2223 } 2224 __m128i test_mm_mask_expand_epi32(__m128i __W, __mmask8 __U, __m128i __A) { 2225 // CHECK-LABEL: @test_mm_mask_expand_epi32 2226 // CHECK: @llvm.x86.avx512.mask.expand.d.128 2227 return _mm_mask_expand_epi32(__W,__U,__A); 2228 } 2229 __m128i test_mm_maskz_expand_epi32(__mmask8 __U, __m128i __A) { 2230 // CHECK-LABEL: @test_mm_maskz_expand_epi32 2231 // CHECK: @llvm.x86.avx512.mask.expand.d.128 2232 return _mm_maskz_expand_epi32(__U,__A); 2233 } 2234 __m256i test_mm256_mask_expand_epi32(__m256i __W, __mmask8 __U, __m256i __A) { 2235 // CHECK-LABEL: @test_mm256_mask_expand_epi32 2236 // CHECK: @llvm.x86.avx512.mask.expand.d.256 2237 return _mm256_mask_expand_epi32(__W,__U,__A); 2238 } 2239 __m256i test_mm256_maskz_expand_epi32(__mmask8 __U, __m256i __A) { 2240 // CHECK-LABEL: @test_mm256_maskz_expand_epi32 2241 // CHECK: @llvm.x86.avx512.mask.expand.d.256 2242 return _mm256_maskz_expand_epi32(__U,__A); 2243 } 2244 __m128d test_mm_getexp_pd(__m128d __A) { 2245 // CHECK-LABEL: @test_mm_getexp_pd 2246 // CHECK: @llvm.x86.avx512.mask.getexp.pd.128 2247 return _mm_getexp_pd(__A); 2248 } 2249 __m128d test_mm_mask_getexp_pd(__m128d __W, __mmask8 __U, __m128d __A) { 2250 // CHECK-LABEL: @test_mm_mask_getexp_pd 2251 // CHECK: @llvm.x86.avx512.mask.getexp.pd.128 2252 return _mm_mask_getexp_pd(__W,__U,__A); 2253 } 2254 __m128d test_mm_maskz_getexp_pd(__mmask8 __U, __m128d __A) { 2255 // CHECK-LABEL: @test_mm_maskz_getexp_pd 2256 // CHECK: @llvm.x86.avx512.mask.getexp.pd.128 2257 return _mm_maskz_getexp_pd(__U,__A); 2258 } 2259 __m256d test_mm256_getexp_pd(__m256d __A) { 2260 // CHECK-LABEL: @test_mm256_getexp_pd 2261 // CHECK: @llvm.x86.avx512.mask.getexp.pd.256 2262 return _mm256_getexp_pd(__A); 2263 } 2264 __m256d test_mm256_mask_getexp_pd(__m256d __W, __mmask8 __U, __m256d __A) { 2265 // CHECK-LABEL: @test_mm256_mask_getexp_pd 2266 // CHECK: @llvm.x86.avx512.mask.getexp.pd.256 2267 return _mm256_mask_getexp_pd(__W,__U,__A); 2268 } 2269 __m256d test_mm256_maskz_getexp_pd(__mmask8 __U, __m256d __A) { 2270 // CHECK-LABEL: @test_mm256_maskz_getexp_pd 2271 // CHECK: @llvm.x86.avx512.mask.getexp.pd.256 2272 return _mm256_maskz_getexp_pd(__U,__A); 2273 } 2274 __m128 test_mm_getexp_ps(__m128 __A) { 2275 // CHECK-LABEL: @test_mm_getexp_ps 2276 // CHECK: @llvm.x86.avx512.mask.getexp.ps.128 2277 return _mm_getexp_ps(__A); 2278 } 2279 __m128 test_mm_mask_getexp_ps(__m128 __W, __mmask8 __U, __m128 __A) { 2280 // CHECK-LABEL: @test_mm_mask_getexp_ps 2281 // CHECK: @llvm.x86.avx512.mask.getexp.ps.128 2282 return _mm_mask_getexp_ps(__W,__U,__A); 2283 } 2284 __m128 test_mm_maskz_getexp_ps(__mmask8 __U, __m128 __A) { 2285 // CHECK-LABEL: @test_mm_maskz_getexp_ps 2286 // CHECK: @llvm.x86.avx512.mask.getexp.ps.128 2287 return _mm_maskz_getexp_ps(__U,__A); 2288 } 2289 __m256 test_mm256_getexp_ps(__m256 __A) { 2290 // CHECK-LABEL: @test_mm256_getexp_ps 2291 // CHECK: @llvm.x86.avx512.mask.getexp.ps.256 2292 return _mm256_getexp_ps(__A); 2293 } 2294 __m256 test_mm256_mask_getexp_ps(__m256 __W, __mmask8 __U, __m256 __A) { 2295 // CHECK-LABEL: @test_mm256_mask_getexp_ps 2296 // CHECK: @llvm.x86.avx512.mask.getexp.ps.256 2297 return _mm256_mask_getexp_ps(__W,__U,__A); 2298 } 2299 __m256 test_mm256_maskz_getexp_ps(__mmask8 __U, __m256 __A) { 2300 // CHECK-LABEL: @test_mm256_maskz_getexp_ps 2301 // CHECK: @llvm.x86.avx512.mask.getexp.ps.256 2302 return _mm256_maskz_getexp_ps(__U,__A); 2303 } 2304 __m128d test_mm_mask_max_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 2305 // CHECK-LABEL: @test_mm_mask_max_pd 2306 // CHECK: @llvm.x86.avx512.mask.max.pd 2307 return _mm_mask_max_pd(__W,__U,__A,__B); 2308 } 2309 __m128d test_mm_maskz_max_pd(__mmask8 __U, __m128d __A, __m128d __B) { 2310 // CHECK-LABEL: @test_mm_maskz_max_pd 2311 // CHECK: @llvm.x86.avx512.mask.max.pd 2312 return _mm_maskz_max_pd(__U,__A,__B); 2313 } 2314 __m256d test_mm256_mask_max_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 2315 // CHECK-LABEL: @test_mm256_mask_max_pd 2316 // CHECK: @llvm.x86.avx512.mask.max.pd.256 2317 return _mm256_mask_max_pd(__W,__U,__A,__B); 2318 } 2319 __m256d test_mm256_maskz_max_pd(__mmask8 __U, __m256d __A, __m256d __B) { 2320 // CHECK-LABEL: @test_mm256_maskz_max_pd 2321 // CHECK: @llvm.x86.avx512.mask.max.pd.256 2322 return _mm256_maskz_max_pd(__U,__A,__B); 2323 } 2324 __m128 test_mm_mask_max_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 2325 // CHECK-LABEL: @test_mm_mask_max_ps 2326 // CHECK: @llvm.x86.avx512.mask.max.ps 2327 return _mm_mask_max_ps(__W,__U,__A,__B); 2328 } 2329 __m128 test_mm_maskz_max_ps(__mmask8 __U, __m128 __A, __m128 __B) { 2330 // CHECK-LABEL: @test_mm_maskz_max_ps 2331 // CHECK: @llvm.x86.avx512.mask.max.ps 2332 return _mm_maskz_max_ps(__U,__A,__B); 2333 } 2334 __m256 test_mm256_mask_max_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 2335 // CHECK-LABEL: @test_mm256_mask_max_ps 2336 // CHECK: @llvm.x86.avx512.mask.max.ps.256 2337 return _mm256_mask_max_ps(__W,__U,__A,__B); 2338 } 2339 __m256 test_mm256_maskz_max_ps(__mmask8 __U, __m256 __A, __m256 __B) { 2340 // CHECK-LABEL: @test_mm256_maskz_max_ps 2341 // CHECK: @llvm.x86.avx512.mask.max.ps.256 2342 return _mm256_maskz_max_ps(__U,__A,__B); 2343 } 2344 __m128d test_mm_mask_min_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 2345 // CHECK-LABEL: @test_mm_mask_min_pd 2346 // CHECK: @llvm.x86.avx512.mask.min.pd 2347 return _mm_mask_min_pd(__W,__U,__A,__B); 2348 } 2349 __m128d test_mm_maskz_min_pd(__mmask8 __U, __m128d __A, __m128d __B) { 2350 // CHECK-LABEL: @test_mm_maskz_min_pd 2351 // CHECK: @llvm.x86.avx512.mask.min.pd 2352 return _mm_maskz_min_pd(__U,__A,__B); 2353 } 2354 __m256d test_mm256_mask_min_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 2355 // CHECK-LABEL: @test_mm256_mask_min_pd 2356 // CHECK: @llvm.x86.avx512.mask.min.pd.256 2357 return _mm256_mask_min_pd(__W,__U,__A,__B); 2358 } 2359 __m256d test_mm256_maskz_min_pd(__mmask8 __U, __m256d __A, __m256d __B) { 2360 // CHECK-LABEL: @test_mm256_maskz_min_pd 2361 // CHECK: @llvm.x86.avx512.mask.min.pd.256 2362 return _mm256_maskz_min_pd(__U,__A,__B); 2363 } 2364 __m128 test_mm_mask_min_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 2365 // CHECK-LABEL: @test_mm_mask_min_ps 2366 // CHECK: @llvm.x86.avx512.mask.min.ps 2367 return _mm_mask_min_ps(__W,__U,__A,__B); 2368 } 2369 __m128 test_mm_maskz_min_ps(__mmask8 __U, __m128 __A, __m128 __B) { 2370 // CHECK-LABEL: @test_mm_maskz_min_ps 2371 // CHECK: @llvm.x86.avx512.mask.min.ps 2372 return _mm_maskz_min_ps(__U,__A,__B); 2373 } 2374 __m256 test_mm256_mask_min_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 2375 // CHECK-LABEL: @test_mm256_mask_min_ps 2376 // CHECK: @llvm.x86.avx512.mask.min.ps.256 2377 return _mm256_mask_min_ps(__W,__U,__A,__B); 2378 } 2379 __m256 test_mm256_maskz_min_ps(__mmask8 __U, __m256 __A, __m256 __B) { 2380 // CHECK-LABEL: @test_mm256_maskz_min_ps 2381 // CHECK: @llvm.x86.avx512.mask.min.ps.256 2382 return _mm256_maskz_min_ps(__U,__A,__B); 2383 } 2384 __m128d test_mm_mask_mul_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 2385 // CHECK-LABEL: @test_mm_mask_mul_pd 2386 // CHECK: @llvm.x86.avx512.mask.mul.pd 2387 return _mm_mask_mul_pd(__W,__U,__A,__B); 2388 } 2389 __m128d test_mm_maskz_mul_pd(__mmask8 __U, __m128d __A, __m128d __B) { 2390 // CHECK-LABEL: @test_mm_maskz_mul_pd 2391 // CHECK: @llvm.x86.avx512.mask.mul.pd 2392 return _mm_maskz_mul_pd(__U,__A,__B); 2393 } 2394 __m256d test_mm256_mask_mul_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 2395 // CHECK-LABEL: @test_mm256_mask_mul_pd 2396 // CHECK: @llvm.x86.avx512.mask.mul.pd.256 2397 return _mm256_mask_mul_pd(__W,__U,__A,__B); 2398 } 2399 __m256d test_mm256_maskz_mul_pd(__mmask8 __U, __m256d __A, __m256d __B) { 2400 // CHECK-LABEL: @test_mm256_maskz_mul_pd 2401 // CHECK: @llvm.x86.avx512.mask.mul.pd.256 2402 return _mm256_maskz_mul_pd(__U,__A,__B); 2403 } 2404 __m128 test_mm_mask_mul_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 2405 // CHECK-LABEL: @test_mm_mask_mul_ps 2406 // CHECK: @llvm.x86.avx512.mask.mul.ps 2407 return _mm_mask_mul_ps(__W,__U,__A,__B); 2408 } 2409 __m128 test_mm_maskz_mul_ps(__mmask8 __U, __m128 __A, __m128 __B) { 2410 // CHECK-LABEL: @test_mm_maskz_mul_ps 2411 // CHECK: @llvm.x86.avx512.mask.mul.ps 2412 return _mm_maskz_mul_ps(__U,__A,__B); 2413 } 2414 __m256 test_mm256_mask_mul_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 2415 // CHECK-LABEL: @test_mm256_mask_mul_ps 2416 // CHECK: @llvm.x86.avx512.mask.mul.ps.256 2417 return _mm256_mask_mul_ps(__W,__U,__A,__B); 2418 } 2419 __m256 test_mm256_maskz_mul_ps(__mmask8 __U, __m256 __A, __m256 __B) { 2420 // CHECK-LABEL: @test_mm256_maskz_mul_ps 2421 // CHECK: @llvm.x86.avx512.mask.mul.ps.256 2422 return _mm256_maskz_mul_ps(__U,__A,__B); 2423 } 2424 __m128i test_mm_mask_abs_epi32(__m128i __W, __mmask8 __U, __m128i __A) { 2425 // CHECK-LABEL: @test_mm_mask_abs_epi32 2426 // CHECK: @llvm.x86.avx512.mask.pabs.d.128 2427 return _mm_mask_abs_epi32(__W,__U,__A); 2428 } 2429 __m128i test_mm_maskz_abs_epi32(__mmask8 __U, __m128i __A) { 2430 // CHECK-LABEL: @test_mm_maskz_abs_epi32 2431 // CHECK: @llvm.x86.avx512.mask.pabs.d.128 2432 return _mm_maskz_abs_epi32(__U,__A); 2433 } 2434 __m256i test_mm256_mask_abs_epi32(__m256i __W, __mmask8 __U, __m256i __A) { 2435 // CHECK-LABEL: @test_mm256_mask_abs_epi32 2436 // CHECK: @llvm.x86.avx512.mask.pabs.d.256 2437 return _mm256_mask_abs_epi32(__W,__U,__A); 2438 } 2439 __m256i test_mm256_maskz_abs_epi32(__mmask8 __U, __m256i __A) { 2440 // CHECK-LABEL: @test_mm256_maskz_abs_epi32 2441 // CHECK: @llvm.x86.avx512.mask.pabs.d.256 2442 return _mm256_maskz_abs_epi32(__U,__A); 2443 } 2444 __m128i test_mm_abs_epi64(__m128i __A) { 2445 // CHECK-LABEL: @test_mm_abs_epi64 2446 // CHECK: @llvm.x86.avx512.mask.pabs.q.128 2447 return _mm_abs_epi64(__A); 2448 } 2449 __m128i test_mm_mask_abs_epi64(__m128i __W, __mmask8 __U, __m128i __A) { 2450 // CHECK-LABEL: @test_mm_mask_abs_epi64 2451 // CHECK: @llvm.x86.avx512.mask.pabs.q.128 2452 return _mm_mask_abs_epi64(__W,__U,__A); 2453 } 2454 __m128i test_mm_maskz_abs_epi64(__mmask8 __U, __m128i __A) { 2455 // CHECK-LABEL: @test_mm_maskz_abs_epi64 2456 // CHECK: @llvm.x86.avx512.mask.pabs.q.128 2457 return _mm_maskz_abs_epi64(__U,__A); 2458 } 2459 __m256i test_mm256_abs_epi64(__m256i __A) { 2460 // CHECK-LABEL: @test_mm256_abs_epi64 2461 // CHECK: @llvm.x86.avx512.mask.pabs.q.256 2462 return _mm256_abs_epi64(__A); 2463 } 2464 __m256i test_mm256_mask_abs_epi64(__m256i __W, __mmask8 __U, __m256i __A) { 2465 // CHECK-LABEL: @test_mm256_mask_abs_epi64 2466 // CHECK: @llvm.x86.avx512.mask.pabs.q.256 2467 return _mm256_mask_abs_epi64(__W,__U,__A); 2468 } 2469 __m256i test_mm256_maskz_abs_epi64(__mmask8 __U, __m256i __A) { 2470 // CHECK-LABEL: @test_mm256_maskz_abs_epi64 2471 // CHECK: @llvm.x86.avx512.mask.pabs.q.256 2472 return _mm256_maskz_abs_epi64(__U,__A); 2473 } 2474 __m128i test_mm_maskz_max_epi32(__mmask8 __M, __m128i __A, __m128i __B) { 2475 // CHECK-LABEL: @test_mm_maskz_max_epi32 2476 // CHECK: @llvm.x86.avx512.mask.pmaxs.d.128 2477 return _mm_maskz_max_epi32(__M,__A,__B); 2478 } 2479 __m128i test_mm_mask_max_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { 2480 // CHECK-LABEL: @test_mm_mask_max_epi32 2481 // CHECK: @llvm.x86.avx512.mask.pmaxs.d.128 2482 return _mm_mask_max_epi32(__W,__M,__A,__B); 2483 } 2484 __m256i test_mm256_maskz_max_epi32(__mmask8 __M, __m256i __A, __m256i __B) { 2485 // CHECK-LABEL: @test_mm256_maskz_max_epi32 2486 // CHECK: @llvm.x86.avx512.mask.pmaxs.d.256 2487 return _mm256_maskz_max_epi32(__M,__A,__B); 2488 } 2489 __m256i test_mm256_mask_max_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { 2490 // CHECK-LABEL: @test_mm256_mask_max_epi32 2491 // CHECK: @llvm.x86.avx512.mask.pmaxs.d.256 2492 return _mm256_mask_max_epi32(__W,__M,__A,__B); 2493 } 2494 __m128i test_mm_maskz_max_epi64(__mmask8 __M, __m128i __A, __m128i __B) { 2495 // CHECK-LABEL: @test_mm_maskz_max_epi64 2496 // CHECK: @llvm.x86.avx512.mask.pmaxs.q.128 2497 return _mm_maskz_max_epi64(__M,__A,__B); 2498 } 2499 __m128i test_mm_mask_max_epi64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { 2500 // CHECK-LABEL: @test_mm_mask_max_epi64 2501 // CHECK: @llvm.x86.avx512.mask.pmaxs.q.128 2502 return _mm_mask_max_epi64(__W,__M,__A,__B); 2503 } 2504 __m128i test_mm_max_epi64(__m128i __A, __m128i __B) { 2505 // CHECK-LABEL: @test_mm_max_epi64 2506 // CHECK: @llvm.x86.avx512.mask.pmaxs.q.128 2507 return _mm_max_epi64(__A,__B); 2508 } 2509 __m256i test_mm256_maskz_max_epi64(__mmask8 __M, __m256i __A, __m256i __B) { 2510 // CHECK-LABEL: @test_mm256_maskz_max_epi64 2511 // CHECK: @llvm.x86.avx512.mask.pmaxs.q.256 2512 return _mm256_maskz_max_epi64(__M,__A,__B); 2513 } 2514 __m256i test_mm256_mask_max_epi64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { 2515 // CHECK-LABEL: @test_mm256_mask_max_epi64 2516 // CHECK: @llvm.x86.avx512.mask.pmaxs.q.256 2517 return _mm256_mask_max_epi64(__W,__M,__A,__B); 2518 } 2519 __m256i test_mm256_max_epi64(__m256i __A, __m256i __B) { 2520 // CHECK-LABEL: @test_mm256_max_epi64 2521 // CHECK: @llvm.x86.avx512.mask.pmaxs.q.256 2522 return _mm256_max_epi64(__A,__B); 2523 } 2524 __m128i test_mm_maskz_max_epu32(__mmask8 __M, __m128i __A, __m128i __B) { 2525 // CHECK-LABEL: @test_mm_maskz_max_epu32 2526 // CHECK: @llvm.x86.avx512.mask.pmaxu.d.128 2527 return _mm_maskz_max_epu32(__M,__A,__B); 2528 } 2529 __m128i test_mm_mask_max_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { 2530 // CHECK-LABEL: @test_mm_mask_max_epu32 2531 // CHECK: @llvm.x86.avx512.mask.pmaxu.d.128 2532 return _mm_mask_max_epu32(__W,__M,__A,__B); 2533 } 2534 __m256i test_mm256_maskz_max_epu32(__mmask8 __M, __m256i __A, __m256i __B) { 2535 // CHECK-LABEL: @test_mm256_maskz_max_epu32 2536 // CHECK: @llvm.x86.avx512.mask.pmaxu.d.256 2537 return _mm256_maskz_max_epu32(__M,__A,__B); 2538 } 2539 __m256i test_mm256_mask_max_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { 2540 // CHECK-LABEL: @test_mm256_mask_max_epu32 2541 // CHECK: @llvm.x86.avx512.mask.pmaxu.d.256 2542 return _mm256_mask_max_epu32(__W,__M,__A,__B); 2543 } 2544 __m128i test_mm_maskz_max_epu64(__mmask8 __M, __m128i __A, __m128i __B) { 2545 // CHECK-LABEL: @test_mm_maskz_max_epu64 2546 // CHECK: @llvm.x86.avx512.mask.pmaxu.q.128 2547 return _mm_maskz_max_epu64(__M,__A,__B); 2548 } 2549 __m128i test_mm_max_epu64(__m128i __A, __m128i __B) { 2550 // CHECK-LABEL: @test_mm_max_epu64 2551 // CHECK: @llvm.x86.avx512.mask.pmaxu.q.128 2552 return _mm_max_epu64(__A,__B); 2553 } 2554 __m128i test_mm_mask_max_epu64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { 2555 // CHECK-LABEL: @test_mm_mask_max_epu64 2556 // CHECK: @llvm.x86.avx512.mask.pmaxu.q.128 2557 return _mm_mask_max_epu64(__W,__M,__A,__B); 2558 } 2559 __m256i test_mm256_maskz_max_epu64(__mmask8 __M, __m256i __A, __m256i __B) { 2560 // CHECK-LABEL: @test_mm256_maskz_max_epu64 2561 // CHECK: @llvm.x86.avx512.mask.pmaxu.q.256 2562 return _mm256_maskz_max_epu64(__M,__A,__B); 2563 } 2564 __m256i test_mm256_max_epu64(__m256i __A, __m256i __B) { 2565 // CHECK-LABEL: @test_mm256_max_epu64 2566 // CHECK: @llvm.x86.avx512.mask.pmaxu.q.256 2567 return _mm256_max_epu64(__A,__B); 2568 } 2569 __m256i test_mm256_mask_max_epu64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { 2570 // CHECK-LABEL: @test_mm256_mask_max_epu64 2571 // CHECK: @llvm.x86.avx512.mask.pmaxu.q.256 2572 return _mm256_mask_max_epu64(__W,__M,__A,__B); 2573 } 2574 __m128i test_mm_maskz_min_epi32(__mmask8 __M, __m128i __A, __m128i __B) { 2575 // CHECK-LABEL: @test_mm_maskz_min_epi32 2576 // CHECK: @llvm.x86.avx512.mask.pmins.d.128 2577 return _mm_maskz_min_epi32(__M,__A,__B); 2578 } 2579 __m128i test_mm_mask_min_epi32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { 2580 // CHECK-LABEL: @test_mm_mask_min_epi32 2581 // CHECK: @llvm.x86.avx512.mask.pmins.d.128 2582 return _mm_mask_min_epi32(__W,__M,__A,__B); 2583 } 2584 __m256i test_mm256_maskz_min_epi32(__mmask8 __M, __m256i __A, __m256i __B) { 2585 // CHECK-LABEL: @test_mm256_maskz_min_epi32 2586 // CHECK: @llvm.x86.avx512.mask.pmins.d.256 2587 return _mm256_maskz_min_epi32(__M,__A,__B); 2588 } 2589 __m256i test_mm256_mask_min_epi32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { 2590 // CHECK-LABEL: @test_mm256_mask_min_epi32 2591 // CHECK: @llvm.x86.avx512.mask.pmins.d.256 2592 return _mm256_mask_min_epi32(__W,__M,__A,__B); 2593 } 2594 __m128i test_mm_min_epi64(__m128i __A, __m128i __B) { 2595 // CHECK-LABEL: @test_mm_min_epi64 2596 // CHECK: @llvm.x86.avx512.mask.pmins.q.128 2597 return _mm_min_epi64(__A,__B); 2598 } 2599 __m128i test_mm_mask_min_epi64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { 2600 // CHECK-LABEL: @test_mm_mask_min_epi64 2601 // CHECK: @llvm.x86.avx512.mask.pmins.q.128 2602 return _mm_mask_min_epi64(__W,__M,__A,__B); 2603 } 2604 __m128i test_mm_maskz_min_epi64(__mmask8 __M, __m128i __A, __m128i __B) { 2605 // CHECK-LABEL: @test_mm_maskz_min_epi64 2606 // CHECK: @llvm.x86.avx512.mask.pmins.q.128 2607 return _mm_maskz_min_epi64(__M,__A,__B); 2608 } 2609 __m256i test_mm256_min_epi64(__m256i __A, __m256i __B) { 2610 // CHECK-LABEL: @test_mm256_min_epi64 2611 // CHECK: @llvm.x86.avx512.mask.pmins.q.256 2612 return _mm256_min_epi64(__A,__B); 2613 } 2614 __m256i test_mm256_mask_min_epi64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { 2615 // CHECK-LABEL: @test_mm256_mask_min_epi64 2616 // CHECK: @llvm.x86.avx512.mask.pmins.q.256 2617 return _mm256_mask_min_epi64(__W,__M,__A,__B); 2618 } 2619 __m256i test_mm256_maskz_min_epi64(__mmask8 __M, __m256i __A, __m256i __B) { 2620 // CHECK-LABEL: @test_mm256_maskz_min_epi64 2621 // CHECK: @llvm.x86.avx512.mask.pmins.q.256 2622 return _mm256_maskz_min_epi64(__M,__A,__B); 2623 } 2624 __m128i test_mm_maskz_min_epu32(__mmask8 __M, __m128i __A, __m128i __B) { 2625 // CHECK-LABEL: @test_mm_maskz_min_epu32 2626 // CHECK: @llvm.x86.avx512.mask.pminu.d.128 2627 return _mm_maskz_min_epu32(__M,__A,__B); 2628 } 2629 __m128i test_mm_mask_min_epu32(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { 2630 // CHECK-LABEL: @test_mm_mask_min_epu32 2631 // CHECK: @llvm.x86.avx512.mask.pminu.d.128 2632 return _mm_mask_min_epu32(__W,__M,__A,__B); 2633 } 2634 __m256i test_mm256_maskz_min_epu32(__mmask8 __M, __m256i __A, __m256i __B) { 2635 // CHECK-LABEL: @test_mm256_maskz_min_epu32 2636 // CHECK: @llvm.x86.avx512.mask.pminu.d.256 2637 return _mm256_maskz_min_epu32(__M,__A,__B); 2638 } 2639 __m256i test_mm256_mask_min_epu32(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { 2640 // CHECK-LABEL: @test_mm256_mask_min_epu32 2641 // CHECK: @llvm.x86.avx512.mask.pminu.d.256 2642 return _mm256_mask_min_epu32(__W,__M,__A,__B); 2643 } 2644 __m128i test_mm_min_epu64(__m128i __A, __m128i __B) { 2645 // CHECK-LABEL: @test_mm_min_epu64 2646 // CHECK: @llvm.x86.avx512.mask.pminu.q.128 2647 return _mm_min_epu64(__A,__B); 2648 } 2649 __m128i test_mm_mask_min_epu64(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { 2650 // CHECK-LABEL: @test_mm_mask_min_epu64 2651 // CHECK: @llvm.x86.avx512.mask.pminu.q.128 2652 return _mm_mask_min_epu64(__W,__M,__A,__B); 2653 } 2654 __m128i test_mm_maskz_min_epu64(__mmask8 __M, __m128i __A, __m128i __B) { 2655 // CHECK-LABEL: @test_mm_maskz_min_epu64 2656 // CHECK: @llvm.x86.avx512.mask.pminu.q.128 2657 return _mm_maskz_min_epu64(__M,__A,__B); 2658 } 2659 __m256i test_mm256_min_epu64(__m256i __A, __m256i __B) { 2660 // CHECK-LABEL: @test_mm256_min_epu64 2661 // CHECK: @llvm.x86.avx512.mask.pminu.q.256 2662 return _mm256_min_epu64(__A,__B); 2663 } 2664 __m256i test_mm256_mask_min_epu64(__m256i __W, __mmask8 __M, __m256i __A, __m256i __B) { 2665 // CHECK-LABEL: @test_mm256_mask_min_epu64 2666 // CHECK: @llvm.x86.avx512.mask.pminu.q.256 2667 return _mm256_mask_min_epu64(__W,__M,__A,__B); 2668 } 2669 __m256i test_mm256_maskz_min_epu64(__mmask8 __M, __m256i __A, __m256i __B) { 2670 // CHECK-LABEL: @test_mm256_maskz_min_epu64 2671 // CHECK: @llvm.x86.avx512.mask.pminu.q.256 2672 return _mm256_maskz_min_epu64(__M,__A,__B); 2673 } 2674 __m128d test_mm_roundscale_pd(__m128d __A) { 2675 // CHECK-LABEL: @test_mm_roundscale_pd 2676 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128 2677 return _mm_roundscale_pd(__A,4); 2678 } 2679 __m128d test_mm_mask_roundscale_pd(__m128d __W, __mmask8 __U, __m128d __A) { 2680 // CHECK-LABEL: @test_mm_mask_roundscale_pd 2681 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128 2682 return _mm_mask_roundscale_pd(__W,__U,__A,4); 2683 } 2684 __m128d test_mm_maskz_roundscale_pd(__mmask8 __U, __m128d __A) { 2685 // CHECK-LABEL: @test_mm_maskz_roundscale_pd 2686 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.128 2687 return _mm_maskz_roundscale_pd(__U,__A,4); 2688 } 2689 __m256d test_mm256_roundscale_pd(__m256d __A) { 2690 // CHECK-LABEL: @test_mm256_roundscale_pd 2691 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256 2692 return _mm256_roundscale_pd(__A,4); 2693 } 2694 __m256d test_mm256_mask_roundscale_pd(__m256d __W, __mmask8 __U, __m256d __A) { 2695 // CHECK-LABEL: @test_mm256_mask_roundscale_pd 2696 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256 2697 return _mm256_mask_roundscale_pd(__W,__U,__A,4); 2698 } 2699 __m256d test_mm256_maskz_roundscale_pd(__mmask8 __U, __m256d __A) { 2700 // CHECK-LABEL: @test_mm256_maskz_roundscale_pd 2701 // CHECK: @llvm.x86.avx512.mask.rndscale.pd.256 2702 return _mm256_maskz_roundscale_pd(__U,__A,4); 2703 } 2704 __m128 test_mm_roundscale_ps(__m128 __A) { 2705 // CHECK-LABEL: @test_mm_roundscale_ps 2706 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128 2707 return _mm_roundscale_ps(__A,4); 2708 } 2709 __m128 test_mm_mask_roundscale_ps(__m128 __W, __mmask8 __U, __m128 __A) { 2710 // CHECK-LABEL: @test_mm_mask_roundscale_ps 2711 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128 2712 return _mm_mask_roundscale_ps(__W,__U,__A,4); 2713 } 2714 __m128 test_mm_maskz_roundscale_ps(__mmask8 __U, __m128 __A) { 2715 // CHECK-LABEL: @test_mm_maskz_roundscale_ps 2716 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.128 2717 return _mm_maskz_roundscale_ps(__U,__A, 4); 2718 } 2719 __m256 test_mm256_roundscale_ps(__m256 __A) { 2720 // CHECK-LABEL: @test_mm256_roundscale_ps 2721 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256 2722 return _mm256_roundscale_ps(__A,4); 2723 } 2724 __m256 test_mm256_mask_roundscale_ps(__m256 __W, __mmask8 __U, __m256 __A) { 2725 // CHECK-LABEL: @test_mm256_mask_roundscale_ps 2726 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256 2727 return _mm256_mask_roundscale_ps(__W,__U,__A,4); 2728 } 2729 __m256 test_mm256_maskz_roundscale_ps(__mmask8 __U, __m256 __A) { 2730 // CHECK-LABEL: @test_mm256_maskz_roundscale_ps 2731 // CHECK: @llvm.x86.avx512.mask.rndscale.ps.256 2732 return _mm256_maskz_roundscale_ps(__U,__A,4); 2733 } 2734 __m128d test_mm_scalef_pd(__m128d __A, __m128d __B) { 2735 // CHECK-LABEL: @test_mm_scalef_pd 2736 // CHECK: @llvm.x86.avx512.mask.scalef.pd.128 2737 return _mm_scalef_pd(__A,__B); 2738 } 2739 __m128d test_mm_mask_scalef_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 2740 // CHECK-LABEL: @test_mm_mask_scalef_pd 2741 // CHECK: @llvm.x86.avx512.mask.scalef.pd.128 2742 return _mm_mask_scalef_pd(__W,__U,__A,__B); 2743 } 2744 __m128d test_mm_maskz_scalef_pd(__mmask8 __U, __m128d __A, __m128d __B) { 2745 // CHECK-LABEL: @test_mm_maskz_scalef_pd 2746 // CHECK: @llvm.x86.avx512.mask.scalef.pd.128 2747 return _mm_maskz_scalef_pd(__U,__A,__B); 2748 } 2749 __m256d test_mm256_scalef_pd(__m256d __A, __m256d __B) { 2750 // CHECK-LABEL: @test_mm256_scalef_pd 2751 // CHECK: @llvm.x86.avx512.mask.scalef.pd.256 2752 return _mm256_scalef_pd(__A,__B); 2753 } 2754 __m256d test_mm256_mask_scalef_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 2755 // CHECK-LABEL: @test_mm256_mask_scalef_pd 2756 // CHECK: @llvm.x86.avx512.mask.scalef.pd.256 2757 return _mm256_mask_scalef_pd(__W,__U,__A,__B); 2758 } 2759 __m256d test_mm256_maskz_scalef_pd(__mmask8 __U, __m256d __A, __m256d __B) { 2760 // CHECK-LABEL: @test_mm256_maskz_scalef_pd 2761 // CHECK: @llvm.x86.avx512.mask.scalef.pd.256 2762 return _mm256_maskz_scalef_pd(__U,__A,__B); 2763 } 2764 __m128 test_mm_scalef_ps(__m128 __A, __m128 __B) { 2765 // CHECK-LABEL: @test_mm_scalef_ps 2766 // CHECK: @llvm.x86.avx512.mask.scalef.ps.128 2767 return _mm_scalef_ps(__A,__B); 2768 } 2769 __m128 test_mm_mask_scalef_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 2770 // CHECK-LABEL: @test_mm_mask_scalef_ps 2771 // CHECK: @llvm.x86.avx512.mask.scalef.ps.128 2772 return _mm_mask_scalef_ps(__W,__U,__A,__B); 2773 } 2774 __m128 test_mm_maskz_scalef_ps(__mmask8 __U, __m128 __A, __m128 __B) { 2775 // CHECK-LABEL: @test_mm_maskz_scalef_ps 2776 // CHECK: @llvm.x86.avx512.mask.scalef.ps.128 2777 return _mm_maskz_scalef_ps(__U,__A,__B); 2778 } 2779 __m256 test_mm256_scalef_ps(__m256 __A, __m256 __B) { 2780 // CHECK-LABEL: @test_mm256_scalef_ps 2781 // CHECK: @llvm.x86.avx512.mask.scalef.ps.256 2782 return _mm256_scalef_ps(__A,__B); 2783 } 2784 __m256 test_mm256_mask_scalef_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 2785 // CHECK-LABEL: @test_mm256_mask_scalef_ps 2786 // CHECK: @llvm.x86.avx512.mask.scalef.ps.256 2787 return _mm256_mask_scalef_ps(__W,__U,__A,__B); 2788 } 2789 __m256 test_mm256_maskz_scalef_ps(__mmask8 __U, __m256 __A, __m256 __B) { 2790 // CHECK-LABEL: @test_mm256_maskz_scalef_ps 2791 // CHECK: @llvm.x86.avx512.mask.scalef.ps.256 2792 return _mm256_maskz_scalef_ps(__U,__A,__B); 2793 } 2794 void test_mm_i64scatter_pd(double *__addr, __m128i __index, __m128d __v1) { 2795 // CHECK-LABEL: @test_mm_i64scatter_pd 2796 // CHECK: @llvm.x86.avx512.scatterdiv2.df 2797 return _mm_i64scatter_pd(__addr,__index,__v1,2); 2798 } 2799 void test_mm_mask_i64scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m128d __v1) { 2800 // CHECK-LABEL: @test_mm_mask_i64scatter_pd 2801 // CHECK: @llvm.x86.avx512.scatterdiv2.df 2802 return _mm_mask_i64scatter_pd(__addr,__mask,__index,__v1,2); 2803 } 2804 void test_mm_i64scatter_epi64(long long *__addr, __m128i __index, __m128i __v1) { 2805 // CHECK-LABEL: @test_mm_i64scatter_epi64 2806 // CHECK: @llvm.x86.avx512.scatterdiv2.di 2807 return _mm_i64scatter_epi64(__addr,__index,__v1,2); 2808 } 2809 void test_mm_mask_i64scatter_epi64(long long *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) { 2810 // CHECK-LABEL: @test_mm_mask_i64scatter_epi64 2811 // CHECK: @llvm.x86.avx512.scatterdiv2.di 2812 return _mm_mask_i64scatter_epi64(__addr,__mask,__index,__v1,2); 2813 } 2814 void test_mm256_i64scatter_pd(double *__addr, __m256i __index, __m256d __v1) { 2815 // CHECK-LABEL: @test_mm256_i64scatter_pd 2816 // CHECK: @llvm.x86.avx512.scatterdiv4.df 2817 return _mm256_i64scatter_pd(__addr,__index,__v1,2); 2818 } 2819 void test_mm256_mask_i64scatter_pd(double *__addr, __mmask8 __mask, __m256i __index, __m256d __v1) { 2820 // CHECK-LABEL: @test_mm256_mask_i64scatter_pd 2821 // CHECK: @llvm.x86.avx512.scatterdiv4.df 2822 return _mm256_mask_i64scatter_pd(__addr,__mask,__index,__v1,2); 2823 } 2824 void test_mm256_i64scatter_epi64(long long *__addr, __m256i __index, __m256i __v1) { 2825 // CHECK-LABEL: @test_mm256_i64scatter_epi64 2826 // CHECK: @llvm.x86.avx512.scatterdiv4.di 2827 return _mm256_i64scatter_epi64(__addr,__index,__v1,2); 2828 } 2829 void test_mm256_mask_i64scatter_epi64(long long *__addr, __mmask8 __mask, __m256i __index, __m256i __v1) { 2830 // CHECK-LABEL: @test_mm256_mask_i64scatter_epi64 2831 // CHECK: @llvm.x86.avx512.scatterdiv4.di 2832 return _mm256_mask_i64scatter_epi64(__addr,__mask,__index,__v1,2); 2833 } 2834 void test_mm_i64scatter_ps(float *__addr, __m128i __index, __m128 __v1) { 2835 // CHECK-LABEL: @test_mm_i64scatter_ps 2836 // CHECK: @llvm.x86.avx512.scatterdiv4.sf 2837 return _mm_i64scatter_ps(__addr,__index,__v1,2); 2838 } 2839 void test_mm_mask_i64scatter_ps(float *__addr, __mmask8 __mask, __m128i __index, __m128 __v1) { 2840 // CHECK-LABEL: @test_mm_mask_i64scatter_ps 2841 // CHECK: @llvm.x86.avx512.scatterdiv4.sf 2842 return _mm_mask_i64scatter_ps(__addr,__mask,__index,__v1,2); 2843 } 2844 void test_mm_i64scatter_epi32(int *__addr, __m128i __index, __m128i __v1) { 2845 // CHECK-LABEL: @test_mm_i64scatter_epi32 2846 // CHECK: @llvm.x86.avx512.scatterdiv4.si 2847 return _mm_i64scatter_epi32(__addr,__index,__v1,2); 2848 } 2849 void test_mm_mask_i64scatter_epi32(int *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) { 2850 // CHECK-LABEL: @test_mm_mask_i64scatter_epi32 2851 // CHECK: @llvm.x86.avx512.scatterdiv4.si 2852 return _mm_mask_i64scatter_epi32(__addr,__mask,__index,__v1,2); 2853 } 2854 void test_mm256_i64scatter_ps(float *__addr, __m256i __index, __m128 __v1) { 2855 // CHECK-LABEL: @test_mm256_i64scatter_ps 2856 // CHECK: @llvm.x86.avx512.scatterdiv8.sf 2857 return _mm256_i64scatter_ps(__addr,__index,__v1,2); 2858 } 2859 void test_mm256_mask_i64scatter_ps(float *__addr, __mmask8 __mask, __m256i __index, __m128 __v1) { 2860 // CHECK-LABEL: @test_mm256_mask_i64scatter_ps 2861 // CHECK: @llvm.x86.avx512.scatterdiv8.sf 2862 return _mm256_mask_i64scatter_ps(__addr,__mask,__index,__v1,2); 2863 } 2864 void test_mm256_i64scatter_epi32(int *__addr, __m256i __index, __m128i __v1) { 2865 // CHECK-LABEL: @test_mm256_i64scatter_epi32 2866 // CHECK: @llvm.x86.avx512.scatterdiv8.si 2867 return _mm256_i64scatter_epi32(__addr,__index,__v1,2); 2868 } 2869 void test_mm256_mask_i64scatter_epi32(int *__addr, __mmask8 __mask, __m256i __index, __m128i __v1) { 2870 // CHECK-LABEL: @test_mm256_mask_i64scatter_epi32 2871 // CHECK: @llvm.x86.avx512.scatterdiv8.si 2872 return _mm256_mask_i64scatter_epi32(__addr,__mask,__index,__v1,2); 2873 } 2874 void test_mm_i32scatter_pd(double *__addr, __m128i __index, __m128d __v1) { 2875 // CHECK-LABEL: @test_mm_i32scatter_pd 2876 // CHECK: @llvm.x86.avx512.scattersiv2.df 2877 return _mm_i32scatter_pd(__addr,__index,__v1,2); 2878 } 2879 void test_mm_mask_i32scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m128d __v1) { 2880 // CHECK-LABEL: @test_mm_mask_i32scatter_pd 2881 // CHECK: @llvm.x86.avx512.scattersiv2.df 2882 return _mm_mask_i32scatter_pd(__addr,__mask,__index,__v1,2); 2883 } 2884 void test_mm_i32scatter_epi64(long long *__addr, __m128i __index, __m128i __v1) { 2885 // CHECK-LABEL: @test_mm_i32scatter_epi64 2886 // CHECK: @llvm.x86.avx512.scattersiv2.di 2887 return _mm_i32scatter_epi64(__addr,__index,__v1,2); 2888 } 2889 void test_mm_mask_i32scatter_epi64(long long *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) { 2890 // CHECK-LABEL: @test_mm_mask_i32scatter_epi64 2891 // CHECK: @llvm.x86.avx512.scattersiv2.di 2892 return _mm_mask_i32scatter_epi64(__addr,__mask,__index,__v1,2); 2893 } 2894 void test_mm256_i32scatter_pd(double *__addr, __m128i __index, __m256d __v1) { 2895 // CHECK-LABEL: @test_mm256_i32scatter_pd 2896 // CHECK: @llvm.x86.avx512.scattersiv4.df 2897 return _mm256_i32scatter_pd(__addr,__index,__v1,2); 2898 } 2899 void test_mm256_mask_i32scatter_pd(double *__addr, __mmask8 __mask, __m128i __index, __m256d __v1) { 2900 // CHECK-LABEL: @test_mm256_mask_i32scatter_pd 2901 // CHECK: @llvm.x86.avx512.scattersiv4.df 2902 return _mm256_mask_i32scatter_pd(__addr,__mask,__index,__v1,2); 2903 } 2904 void test_mm256_i32scatter_epi64(long long *__addr, __m128i __index, __m256i __v1) { 2905 // CHECK-LABEL: @test_mm256_i32scatter_epi64 2906 // CHECK: @llvm.x86.avx512.scattersiv4.di 2907 return _mm256_i32scatter_epi64(__addr,__index,__v1,2); 2908 } 2909 void test_mm256_mask_i32scatter_epi64(long long *__addr, __mmask8 __mask, __m128i __index, __m256i __v1) { 2910 // CHECK-LABEL: @test_mm256_mask_i32scatter_epi64 2911 // CHECK: @llvm.x86.avx512.scattersiv4.di 2912 return _mm256_mask_i32scatter_epi64(__addr,__mask,__index,__v1,2); 2913 } 2914 void test_mm_i32scatter_ps(float *__addr, __m128i __index, __m128 __v1) { 2915 // CHECK-LABEL: @test_mm_i32scatter_ps 2916 // CHECK: @llvm.x86.avx512.scattersiv4.sf 2917 return _mm_i32scatter_ps(__addr,__index,__v1,2); 2918 } 2919 void test_mm_mask_i32scatter_ps(float *__addr, __mmask8 __mask, __m128i __index, __m128 __v1) { 2920 // CHECK-LABEL: @test_mm_mask_i32scatter_ps 2921 // CHECK: @llvm.x86.avx512.scattersiv4.sf 2922 return _mm_mask_i32scatter_ps(__addr,__mask,__index,__v1,2); 2923 } 2924 void test_mm_i32scatter_epi32(int *__addr, __m128i __index, __m128i __v1) { 2925 // CHECK-LABEL: @test_mm_i32scatter_epi32 2926 // CHECK: @llvm.x86.avx512.scattersiv4.si 2927 return _mm_i32scatter_epi32(__addr,__index,__v1,2); 2928 } 2929 void test_mm_mask_i32scatter_epi32(int *__addr, __mmask8 __mask, __m128i __index, __m128i __v1) { 2930 // CHECK-LABEL: @test_mm_mask_i32scatter_epi32 2931 // CHECK: @llvm.x86.avx512.scattersiv4.si 2932 return _mm_mask_i32scatter_epi32(__addr,__mask,__index,__v1,2); 2933 } 2934 void test_mm256_i32scatter_ps(float *__addr, __m256i __index, __m256 __v1) { 2935 // CHECK-LABEL: @test_mm256_i32scatter_ps 2936 // CHECK: @llvm.x86.avx512.scattersiv8.sf 2937 return _mm256_i32scatter_ps(__addr,__index,__v1,2); 2938 } 2939 void test_mm256_mask_i32scatter_ps(float *__addr, __mmask8 __mask, __m256i __index, __m256 __v1) { 2940 // CHECK-LABEL: @test_mm256_mask_i32scatter_ps 2941 // CHECK: @llvm.x86.avx512.scattersiv8.sf 2942 return _mm256_mask_i32scatter_ps(__addr,__mask,__index,__v1,2); 2943 } 2944 void test_mm256_i32scatter_epi32(int *__addr, __m256i __index, __m256i __v1) { 2945 // CHECK-LABEL: @test_mm256_i32scatter_epi32 2946 // CHECK: @llvm.x86.avx512.scattersiv8.si 2947 return _mm256_i32scatter_epi32(__addr,__index,__v1,2); 2948 } 2949 void test_mm256_mask_i32scatter_epi32(int *__addr, __mmask8 __mask, __m256i __index, __m256i __v1) { 2950 // CHECK-LABEL: @test_mm256_mask_i32scatter_epi32 2951 // CHECK: @llvm.x86.avx512.scattersiv8.si 2952 return _mm256_mask_i32scatter_epi32(__addr,__mask,__index,__v1,2); 2953 } 2954 __m128d test_mm_mask_sqrt_pd(__m128d __W, __mmask8 __U, __m128d __A) { 2955 // CHECK-LABEL: @test_mm_mask_sqrt_pd 2956 // CHECK: @llvm.x86.avx512.mask.sqrt.pd.128 2957 return _mm_mask_sqrt_pd(__W,__U,__A); 2958 } 2959 __m128d test_mm_maskz_sqrt_pd(__mmask8 __U, __m128d __A) { 2960 // CHECK-LABEL: @test_mm_maskz_sqrt_pd 2961 // CHECK: @llvm.x86.avx512.mask.sqrt.pd.128 2962 return _mm_maskz_sqrt_pd(__U,__A); 2963 } 2964 __m256d test_mm256_mask_sqrt_pd(__m256d __W, __mmask8 __U, __m256d __A) { 2965 // CHECK-LABEL: @test_mm256_mask_sqrt_pd 2966 // CHECK: @llvm.x86.avx512.mask.sqrt.pd.256 2967 return _mm256_mask_sqrt_pd(__W,__U,__A); 2968 } 2969 __m256d test_mm256_maskz_sqrt_pd(__mmask8 __U, __m256d __A) { 2970 // CHECK-LABEL: @test_mm256_maskz_sqrt_pd 2971 // CHECK: @llvm.x86.avx512.mask.sqrt.pd.256 2972 return _mm256_maskz_sqrt_pd(__U,__A); 2973 } 2974 __m128 test_mm_mask_sqrt_ps(__m128 __W, __mmask8 __U, __m128 __A) { 2975 // CHECK-LABEL: @test_mm_mask_sqrt_ps 2976 // CHECK: @llvm.x86.avx512.mask.sqrt.ps.128 2977 return _mm_mask_sqrt_ps(__W,__U,__A); 2978 } 2979 __m128 test_mm_maskz_sqrt_ps(__mmask8 __U, __m128 __A) { 2980 // CHECK-LABEL: @test_mm_maskz_sqrt_ps 2981 // CHECK: @llvm.x86.avx512.mask.sqrt.ps.128 2982 return _mm_maskz_sqrt_ps(__U,__A); 2983 } 2984 __m256 test_mm256_mask_sqrt_ps(__m256 __W, __mmask8 __U, __m256 __A) { 2985 // CHECK-LABEL: @test_mm256_mask_sqrt_ps 2986 // CHECK: @llvm.x86.avx512.mask.sqrt.ps.256 2987 return _mm256_mask_sqrt_ps(__W,__U,__A); 2988 } 2989 __m256 test_mm256_maskz_sqrt_ps(__mmask8 __U, __m256 __A) { 2990 // CHECK-LABEL: @test_mm256_maskz_sqrt_ps 2991 // CHECK: @llvm.x86.avx512.mask.sqrt.ps.256 2992 return _mm256_maskz_sqrt_ps(__U,__A); 2993 } 2994 __m128d test_mm_mask_sub_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 2995 // CHECK-LABEL: @test_mm_mask_sub_pd 2996 // CHECK: @llvm.x86.avx512.mask.sub.pd.128 2997 return _mm_mask_sub_pd(__W,__U,__A,__B); 2998 } 2999 __m128d test_mm_maskz_sub_pd(__mmask8 __U, __m128d __A, __m128d __B) { 3000 // CHECK-LABEL: @test_mm_maskz_sub_pd 3001 // CHECK: @llvm.x86.avx512.mask.sub.pd.128 3002 return _mm_maskz_sub_pd(__U,__A,__B); 3003 } 3004 __m256d test_mm256_mask_sub_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 3005 // CHECK-LABEL: @test_mm256_mask_sub_pd 3006 // CHECK: @llvm.x86.avx512.mask.sub.pd.256 3007 return _mm256_mask_sub_pd(__W,__U,__A,__B); 3008 } 3009 __m256d test_mm256_maskz_sub_pd(__mmask8 __U, __m256d __A, __m256d __B) { 3010 // CHECK-LABEL: @test_mm256_maskz_sub_pd 3011 // CHECK: @llvm.x86.avx512.mask.sub.pd.256 3012 return _mm256_maskz_sub_pd(__U,__A,__B); 3013 } 3014 __m128 test_mm_mask_sub_ps(__m128 __W, __mmask16 __U, __m128 __A, __m128 __B) { 3015 // CHECK-LABEL: @test_mm_mask_sub_ps 3016 // CHECK: @llvm.x86.avx512.mask.sub.ps.128 3017 return _mm_mask_sub_ps(__W,__U,__A,__B); 3018 } 3019 __m128 test_mm_maskz_sub_ps(__mmask16 __U, __m128 __A, __m128 __B) { 3020 // CHECK-LABEL: @test_mm_maskz_sub_ps 3021 // CHECK: @llvm.x86.avx512.mask.sub.ps.128 3022 return _mm_maskz_sub_ps(__U,__A,__B); 3023 } 3024 __m256 test_mm256_mask_sub_ps(__m256 __W, __mmask16 __U, __m256 __A, __m256 __B) { 3025 // CHECK-LABEL: @test_mm256_mask_sub_ps 3026 // CHECK: @llvm.x86.avx512.mask.sub.ps.256 3027 return _mm256_mask_sub_ps(__W,__U,__A,__B); 3028 } 3029 __m256 test_mm256_maskz_sub_ps(__mmask16 __U, __m256 __A, __m256 __B) { 3030 // CHECK-LABEL: @test_mm256_maskz_sub_ps 3031 // CHECK: @llvm.x86.avx512.mask.sub.ps.256 3032 return _mm256_maskz_sub_ps(__U,__A,__B); 3033 } 3034 __m128i test_mm_mask2_permutex2var_epi32(__m128i __A, __m128i __I, __mmask8 __U, __m128i __B) { 3035 // CHECK-LABEL: @test_mm_mask2_permutex2var_epi32 3036 // CHECK: @llvm.x86.avx512.mask.vpermi2var.d.128 3037 return _mm_mask2_permutex2var_epi32(__A,__I,__U,__B); 3038 } 3039 __m256i test_mm256_mask2_permutex2var_epi32(__m256i __A, __m256i __I, __mmask8 __U, __m256i __B) { 3040 // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi32 3041 // CHECK: @llvm.x86.avx512.mask.vpermi2var.d.256 3042 return _mm256_mask2_permutex2var_epi32(__A,__I,__U,__B); 3043 } 3044 __m128d test_mm_mask2_permutex2var_pd(__m128d __A, __m128i __I, __mmask8 __U, __m128d __B) { 3045 // CHECK-LABEL: @test_mm_mask2_permutex2var_pd 3046 // CHECK: @llvm.x86.avx512.mask.vpermi2var.pd.128 3047 return _mm_mask2_permutex2var_pd(__A,__I,__U,__B); 3048 } 3049 __m256d test_mm256_mask2_permutex2var_pd(__m256d __A, __m256i __I, __mmask8 __U, __m256d __B) { 3050 // CHECK-LABEL: @test_mm256_mask2_permutex2var_pd 3051 // CHECK: @llvm.x86.avx512.mask.vpermi2var.pd.256 3052 return _mm256_mask2_permutex2var_pd(__A,__I,__U,__B); 3053 } 3054 __m128 test_mm_mask2_permutex2var_ps(__m128 __A, __m128i __I, __mmask8 __U, __m128 __B) { 3055 // CHECK-LABEL: @test_mm_mask2_permutex2var_ps 3056 // CHECK: @llvm.x86.avx512.mask.vpermi2var.ps.128 3057 return _mm_mask2_permutex2var_ps(__A,__I,__U,__B); 3058 } 3059 __m256 test_mm256_mask2_permutex2var_ps(__m256 __A, __m256i __I, __mmask8 __U, __m256 __B) { 3060 // CHECK-LABEL: @test_mm256_mask2_permutex2var_ps 3061 // CHECK: @llvm.x86.avx512.mask.vpermi2var.ps.256 3062 return _mm256_mask2_permutex2var_ps(__A,__I,__U,__B); 3063 } 3064 __m128i test_mm_mask2_permutex2var_epi64(__m128i __A, __m128i __I, __mmask8 __U, __m128i __B) { 3065 // CHECK-LABEL: @test_mm_mask2_permutex2var_epi64 3066 // CHECK: @llvm.x86.avx512.mask.vpermi2var.q.128 3067 return _mm_mask2_permutex2var_epi64(__A,__I,__U,__B); 3068 } 3069 __m256i test_mm256_mask2_permutex2var_epi64(__m256i __A, __m256i __I, __mmask8 __U, __m256i __B) { 3070 // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi64 3071 // CHECK: @llvm.x86.avx512.mask.vpermi2var.q.256 3072 return _mm256_mask2_permutex2var_epi64(__A,__I,__U,__B); 3073 } 3074 __m128i test_mm_permutex2var_epi32(__m128i __A, __m128i __I, __m128i __B) { 3075 // CHECK-LABEL: @test_mm_permutex2var_epi32 3076 // CHECK: @llvm.x86.avx512.mask.vpermt2var.d.128 3077 return _mm_permutex2var_epi32(__A,__I,__B); 3078 } 3079 __m128i test_mm_mask_permutex2var_epi32(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) { 3080 // CHECK-LABEL: @test_mm_mask_permutex2var_epi32 3081 // CHECK: @llvm.x86.avx512.mask.vpermt2var.d.128 3082 return _mm_mask_permutex2var_epi32(__A,__U,__I,__B); 3083 } 3084 __m128i test_mm_maskz_permutex2var_epi32(__mmask8 __U, __m128i __A, __m128i __I, __m128i __B) { 3085 // CHECK-LABEL: @test_mm_maskz_permutex2var_epi32 3086 // CHECK: @llvm.x86.avx512.maskz.vpermt2var.d.128 3087 return _mm_maskz_permutex2var_epi32(__U,__A,__I,__B); 3088 } 3089 __m256i test_mm256_permutex2var_epi32(__m256i __A, __m256i __I, __m256i __B) { 3090 // CHECK-LABEL: @test_mm256_permutex2var_epi32 3091 // CHECK: @llvm.x86.avx512.mask.vpermt2var.d.256 3092 return _mm256_permutex2var_epi32(__A,__I,__B); 3093 } 3094 __m256i test_mm256_mask_permutex2var_epi32(__m256i __A, __mmask8 __U, __m256i __I, __m256i __B) { 3095 // CHECK-LABEL: @test_mm256_mask_permutex2var_epi32 3096 // CHECK: @llvm.x86.avx512.mask.vpermt2var.d.256 3097 return _mm256_mask_permutex2var_epi32(__A,__U,__I,__B); 3098 } 3099 __m256i test_mm256_maskz_permutex2var_epi32(__mmask8 __U, __m256i __A, __m256i __I, __m256i __B) { 3100 // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi32 3101 // CHECK: @llvm.x86.avx512.maskz.vpermt2var.d.256 3102 return _mm256_maskz_permutex2var_epi32(__U,__A,__I,__B); 3103 } 3104 __m128d test_mm_permutex2var_pd(__m128d __A, __m128i __I, __m128d __B) { 3105 // CHECK-LABEL: @test_mm_permutex2var_pd 3106 // CHECK: @llvm.x86.avx512.mask.vpermt2var.pd.128 3107 return _mm_permutex2var_pd(__A,__I,__B); 3108 } 3109 __m128d test_mm_mask_permutex2var_pd(__m128d __A, __mmask8 __U, __m128i __I, __m128d __B) { 3110 // CHECK-LABEL: @test_mm_mask_permutex2var_pd 3111 // CHECK: @llvm.x86.avx512.mask.vpermt2var.pd.128 3112 return _mm_mask_permutex2var_pd(__A,__U,__I,__B); 3113 } 3114 __m128d test_mm_maskz_permutex2var_pd(__mmask8 __U, __m128d __A, __m128i __I, __m128d __B) { 3115 // CHECK-LABEL: @test_mm_maskz_permutex2var_pd 3116 // CHECK: @llvm.x86.avx512.maskz.vpermt2var.pd.128 3117 return _mm_maskz_permutex2var_pd(__U,__A,__I,__B); 3118 } 3119 __m256d test_mm256_permutex2var_pd(__m256d __A, __m256i __I, __m256d __B) { 3120 // CHECK-LABEL: @test_mm256_permutex2var_pd 3121 // CHECK: @llvm.x86.avx512.mask.vpermt2var.pd.256 3122 return _mm256_permutex2var_pd(__A,__I,__B); 3123 } 3124 __m256d test_mm256_mask_permutex2var_pd(__m256d __A, __mmask8 __U, __m256i __I, __m256d __B) { 3125 // CHECK-LABEL: @test_mm256_mask_permutex2var_pd 3126 // CHECK: @llvm.x86.avx512.mask.vpermt2var.pd.256 3127 return _mm256_mask_permutex2var_pd(__A,__U,__I,__B); 3128 } 3129 __m256d test_mm256_maskz_permutex2var_pd(__mmask8 __U, __m256d __A, __m256i __I, __m256d __B) { 3130 // CHECK-LABEL: @test_mm256_maskz_permutex2var_pd 3131 // CHECK: @llvm.x86.avx512.maskz.vpermt2var.pd.256 3132 return _mm256_maskz_permutex2var_pd(__U,__A,__I,__B); 3133 } 3134 __m128 test_mm_permutex2var_ps(__m128 __A, __m128i __I, __m128 __B) { 3135 // CHECK-LABEL: @test_mm_permutex2var_ps 3136 // CHECK: @llvm.x86.avx512.mask.vpermt2var.ps.128 3137 return _mm_permutex2var_ps(__A,__I,__B); 3138 } 3139 __m128 test_mm_mask_permutex2var_ps(__m128 __A, __mmask8 __U, __m128i __I, __m128 __B) { 3140 // CHECK-LABEL: @test_mm_mask_permutex2var_ps 3141 // CHECK: @llvm.x86.avx512.mask.vpermt2var.ps.128 3142 return _mm_mask_permutex2var_ps(__A,__U,__I,__B); 3143 } 3144 __m128 test_mm_maskz_permutex2var_ps(__mmask8 __U, __m128 __A, __m128i __I, __m128 __B) { 3145 // CHECK-LABEL: @test_mm_maskz_permutex2var_ps 3146 // CHECK: @llvm.x86.avx512.maskz.vpermt2var.ps.128 3147 return _mm_maskz_permutex2var_ps(__U,__A,__I,__B); 3148 } 3149 __m256 test_mm256_permutex2var_ps(__m256 __A, __m256i __I, __m256 __B) { 3150 // CHECK-LABEL: @test_mm256_permutex2var_ps 3151 // CHECK: @llvm.x86.avx512.mask.vpermt2var.ps.256 3152 return _mm256_permutex2var_ps(__A,__I,__B); 3153 } 3154 __m256 test_mm256_mask_permutex2var_ps(__m256 __A, __mmask8 __U, __m256i __I, __m256 __B) { 3155 // CHECK-LABEL: @test_mm256_mask_permutex2var_ps 3156 // CHECK: @llvm.x86.avx512.mask.vpermt2var.ps.256 3157 return _mm256_mask_permutex2var_ps(__A,__U,__I,__B); 3158 } 3159 __m256 test_mm256_maskz_permutex2var_ps(__mmask8 __U, __m256 __A, __m256i __I, __m256 __B) { 3160 // CHECK-LABEL: @test_mm256_maskz_permutex2var_ps 3161 // CHECK: @llvm.x86.avx512.maskz.vpermt2var.ps.256 3162 return _mm256_maskz_permutex2var_ps(__U,__A,__I,__B); 3163 } 3164 __m128i test_mm_permutex2var_epi64(__m128i __A, __m128i __I, __m128i __B) { 3165 // CHECK-LABEL: @test_mm_permutex2var_epi64 3166 // CHECK: @llvm.x86.avx512.mask.vpermt2var.q.128 3167 return _mm_permutex2var_epi64(__A,__I,__B); 3168 } 3169 __m128i test_mm_mask_permutex2var_epi64(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) { 3170 // CHECK-LABEL: @test_mm_mask_permutex2var_epi64 3171 // CHECK: @llvm.x86.avx512.mask.vpermt2var.q.128 3172 return _mm_mask_permutex2var_epi64(__A,__U,__I,__B); 3173 } 3174 __m128i test_mm_maskz_permutex2var_epi64(__mmask8 __U, __m128i __A, __m128i __I, __m128i __B) { 3175 // CHECK-LABEL: @test_mm_maskz_permutex2var_epi64 3176 // CHECK: @llvm.x86.avx512.maskz.vpermt2var.q.128 3177 return _mm_maskz_permutex2var_epi64(__U,__A,__I,__B); 3178 } 3179 __m256i test_mm256_permutex2var_epi64(__m256i __A, __m256i __I, __m256i __B) { 3180 // CHECK-LABEL: @test_mm256_permutex2var_epi64 3181 // CHECK: @llvm.x86.avx512.mask.vpermt2var.q.256 3182 return _mm256_permutex2var_epi64(__A,__I,__B); 3183 } 3184 __m256i test_mm256_mask_permutex2var_epi64(__m256i __A, __mmask8 __U, __m256i __I, __m256i __B) { 3185 // CHECK-LABEL: @test_mm256_mask_permutex2var_epi64 3186 // CHECK: @llvm.x86.avx512.mask.vpermt2var.q.256 3187 return _mm256_mask_permutex2var_epi64(__A,__U,__I,__B); 3188 } 3189 __m256i test_mm256_maskz_permutex2var_epi64(__mmask8 __U, __m256i __A, __m256i __I, __m256i __B) { 3190 // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi64 3191 // CHECK: @llvm.x86.avx512.maskz.vpermt2var.q.256 3192 return _mm256_maskz_permutex2var_epi64(__U,__A,__I,__B); 3193 } 3194 3195 __m128i test_mm_mask_cvtepi8_epi32(__m128i __W, __mmask8 __U, __m128i __A) { 3196 // CHECK-LABEL: @test_mm_mask_cvtepi8_epi32 3197 // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.128 3198 return _mm_mask_cvtepi8_epi32(__W, __U, __A); 3199 } 3200 3201 __m128i test_mm_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A) { 3202 // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi32 3203 // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.128 3204 return _mm_maskz_cvtepi8_epi32(__U, __A); 3205 } 3206 3207 __m256i test_mm256_mask_cvtepi8_epi32(__m256i __W, __mmask8 __U, __m128i __A) { 3208 // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi32 3209 // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.256 3210 return _mm256_mask_cvtepi8_epi32(__W, __U, __A); 3211 } 3212 3213 __m256i test_mm256_maskz_cvtepi8_epi32(__mmask8 __U, __m128i __A) { 3214 // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi32 3215 // CHECK: @llvm.x86.avx512.mask.pmovsxb.d.256 3216 return _mm256_maskz_cvtepi8_epi32(__U, __A); 3217 } 3218 3219 __m128i test_mm_mask_cvtepi8_epi64(__m128i __W, __mmask8 __U, __m128i __A) { 3220 // CHECK-LABEL: @test_mm_mask_cvtepi8_epi64 3221 // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.128 3222 return _mm_mask_cvtepi8_epi64(__W, __U, __A); 3223 } 3224 3225 __m128i test_mm_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) { 3226 // CHECK-LABEL: @test_mm_maskz_cvtepi8_epi64 3227 // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.128 3228 return _mm_maskz_cvtepi8_epi64(__U, __A); 3229 } 3230 3231 __m256i test_mm256_mask_cvtepi8_epi64(__m256i __W, __mmask8 __U, __m128i __A) { 3232 // CHECK-LABEL: @test_mm256_mask_cvtepi8_epi64 3233 // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.256 3234 return _mm256_mask_cvtepi8_epi64(__W, __U, __A); 3235 } 3236 3237 __m256i test_mm256_maskz_cvtepi8_epi64(__mmask8 __U, __m128i __A) { 3238 // CHECK-LABEL: @test_mm256_maskz_cvtepi8_epi64 3239 // CHECK: @llvm.x86.avx512.mask.pmovsxb.q.256 3240 return _mm256_maskz_cvtepi8_epi64(__U, __A); 3241 } 3242 3243 __m128i test_mm_mask_cvtepi32_epi64(__m128i __W, __mmask8 __U, __m128i __X) { 3244 // CHECK-LABEL: @test_mm_mask_cvtepi32_epi64 3245 // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.128 3246 return _mm_mask_cvtepi32_epi64(__W, __U, __X); 3247 } 3248 3249 __m128i test_mm_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) { 3250 // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi64 3251 // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.128 3252 return _mm_maskz_cvtepi32_epi64(__U, __X); 3253 } 3254 3255 __m256i test_mm256_mask_cvtepi32_epi64(__m256i __W, __mmask8 __U, __m128i __X) { 3256 // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi64 3257 // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.256 3258 return _mm256_mask_cvtepi32_epi64(__W, __U, __X); 3259 } 3260 3261 __m256i test_mm256_maskz_cvtepi32_epi64(__mmask8 __U, __m128i __X) { 3262 // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi64 3263 // CHECK: @llvm.x86.avx512.mask.pmovsxd.q.256 3264 return _mm256_maskz_cvtepi32_epi64(__U, __X); 3265 } 3266 3267 __m128i test_mm_mask_cvtepi16_epi32(__m128i __W, __mmask8 __U, __m128i __A) { 3268 // CHECK-LABEL: @test_mm_mask_cvtepi16_epi32 3269 // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.128 3270 return _mm_mask_cvtepi16_epi32(__W, __U, __A); 3271 } 3272 3273 __m128i test_mm_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A) { 3274 // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi32 3275 // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.128 3276 return _mm_maskz_cvtepi16_epi32(__U, __A); 3277 } 3278 3279 __m256i test_mm256_mask_cvtepi16_epi32(__m256i __W, __mmask8 __U, __m128i __A) { 3280 // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi32 3281 // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.256 3282 return _mm256_mask_cvtepi16_epi32(__W, __U, __A); 3283 } 3284 3285 __m256i test_mm256_maskz_cvtepi16_epi32(__mmask8 __U, __m128i __A) { 3286 // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi32 3287 // CHECK: @llvm.x86.avx512.mask.pmovsxw.d.256 3288 return _mm256_maskz_cvtepi16_epi32(__U, __A); 3289 } 3290 3291 __m128i test_mm_mask_cvtepi16_epi64(__m128i __W, __mmask8 __U, __m128i __A) { 3292 // CHECK-LABEL: @test_mm_mask_cvtepi16_epi64 3293 // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.128 3294 return _mm_mask_cvtepi16_epi64(__W, __U, __A); 3295 } 3296 3297 __m128i test_mm_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) { 3298 // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi64 3299 // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.128 3300 return _mm_maskz_cvtepi16_epi64(__U, __A); 3301 } 3302 3303 __m256i test_mm256_mask_cvtepi16_epi64(__m256i __W, __mmask8 __U, __m128i __A) { 3304 // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi64 3305 // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.256 3306 return _mm256_mask_cvtepi16_epi64(__W, __U, __A); 3307 } 3308 3309 __m256i test_mm256_maskz_cvtepi16_epi64(__mmask8 __U, __m128i __A) { 3310 // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi64 3311 // CHECK: @llvm.x86.avx512.mask.pmovsxw.q.256 3312 return _mm256_maskz_cvtepi16_epi64(__U, __A); 3313 } 3314 3315 __m128i test_mm_mask_cvtepu8_epi32(__m128i __W, __mmask8 __U, __m128i __A) { 3316 // CHECK-LABEL: @test_mm_mask_cvtepu8_epi32 3317 // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.128 3318 return _mm_mask_cvtepu8_epi32(__W, __U, __A); 3319 } 3320 3321 __m128i test_mm_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) { 3322 // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi32 3323 // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.128 3324 return _mm_maskz_cvtepu8_epi32(__U, __A); 3325 } 3326 3327 __m256i test_mm256_mask_cvtepu8_epi32(__m256i __W, __mmask8 __U, __m128i __A) { 3328 // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi32 3329 // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.256 3330 return _mm256_mask_cvtepu8_epi32(__W, __U, __A); 3331 } 3332 3333 __m256i test_mm256_maskz_cvtepu8_epi32(__mmask8 __U, __m128i __A) { 3334 // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi32 3335 // CHECK: @llvm.x86.avx512.mask.pmovzxb.d.256 3336 return _mm256_maskz_cvtepu8_epi32(__U, __A); 3337 } 3338 3339 __m128i test_mm_mask_cvtepu8_epi64(__m128i __W, __mmask8 __U, __m128i __A) { 3340 // CHECK-LABEL: @test_mm_mask_cvtepu8_epi64 3341 // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.128 3342 return _mm_mask_cvtepu8_epi64(__W, __U, __A); 3343 } 3344 3345 __m128i test_mm_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) { 3346 // CHECK-LABEL: @test_mm_maskz_cvtepu8_epi64 3347 // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.128 3348 return _mm_maskz_cvtepu8_epi64(__U, __A); 3349 } 3350 3351 __m256i test_mm256_mask_cvtepu8_epi64(__m256i __W, __mmask8 __U, __m128i __A) { 3352 // CHECK-LABEL: @test_mm256_mask_cvtepu8_epi64 3353 // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.256 3354 return _mm256_mask_cvtepu8_epi64(__W, __U, __A); 3355 } 3356 3357 __m256i test_mm256_maskz_cvtepu8_epi64(__mmask8 __U, __m128i __A) { 3358 // CHECK-LABEL: @test_mm256_maskz_cvtepu8_epi64 3359 // CHECK: @llvm.x86.avx512.mask.pmovzxb.q.256 3360 return _mm256_maskz_cvtepu8_epi64(__U, __A); 3361 } 3362 3363 __m128i test_mm_mask_cvtepu32_epi64(__m128i __W, __mmask8 __U, __m128i __X) { 3364 // CHECK-LABEL: @test_mm_mask_cvtepu32_epi64 3365 // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.128 3366 return _mm_mask_cvtepu32_epi64(__W, __U, __X); 3367 } 3368 3369 __m128i test_mm_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) { 3370 // CHECK-LABEL: @test_mm_maskz_cvtepu32_epi64 3371 // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.128 3372 return _mm_maskz_cvtepu32_epi64(__U, __X); 3373 } 3374 3375 __m256i test_mm256_mask_cvtepu32_epi64(__m256i __W, __mmask8 __U, __m128i __X) { 3376 // CHECK-LABEL: @test_mm256_mask_cvtepu32_epi64 3377 // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.256 3378 return _mm256_mask_cvtepu32_epi64(__W, __U, __X); 3379 } 3380 3381 __m256i test_mm256_maskz_cvtepu32_epi64(__mmask8 __U, __m128i __X) { 3382 // CHECK-LABEL: @test_mm256_maskz_cvtepu32_epi64 3383 // CHECK: @llvm.x86.avx512.mask.pmovzxd.q.256 3384 return _mm256_maskz_cvtepu32_epi64(__U, __X); 3385 } 3386 3387 __m128i test_mm_mask_cvtepu16_epi32(__m128i __W, __mmask8 __U, __m128i __A) { 3388 // CHECK-LABEL: @test_mm_mask_cvtepu16_epi32 3389 // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.128 3390 return _mm_mask_cvtepu16_epi32(__W, __U, __A); 3391 } 3392 3393 __m128i test_mm_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) { 3394 // CHECK-LABEL: @test_mm_maskz_cvtepu16_epi32 3395 // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.128 3396 return _mm_maskz_cvtepu16_epi32(__U, __A); 3397 } 3398 3399 __m256i test_mm256_mask_cvtepu16_epi32(__m256i __W, __mmask8 __U, __m128i __A) { 3400 // CHECK-LABEL: @test_mm256_mask_cvtepu16_epi32 3401 // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.256 3402 return _mm256_mask_cvtepu16_epi32(__W, __U, __A); 3403 } 3404 3405 __m256i test_mm256_maskz_cvtepu16_epi32(__mmask8 __U, __m128i __A) { 3406 // CHECK-LABEL: @test_mm256_maskz_cvtepu16_epi32 3407 // CHECK: @llvm.x86.avx512.mask.pmovzxw.d.256 3408 return _mm256_maskz_cvtepu16_epi32(__U, __A); 3409 } 3410 3411 __m128i test_mm_mask_cvtepu16_epi64(__m128i __W, __mmask8 __U, __m128i __A) { 3412 // CHECK-LABEL: @test_mm_mask_cvtepu16_epi64 3413 // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.128 3414 return _mm_mask_cvtepu16_epi64(__W, __U, __A); 3415 } 3416 3417 __m128i test_mm_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) { 3418 // CHECK-LABEL: @test_mm_maskz_cvtepu16_epi64 3419 // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.128 3420 return _mm_maskz_cvtepu16_epi64(__U, __A); 3421 } 3422 3423 __m256i test_mm256_mask_cvtepu16_epi64(__m256i __W, __mmask8 __U, __m128i __A) { 3424 // CHECK-LABEL: @test_mm256_mask_cvtepu16_epi64 3425 // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.256 3426 return _mm256_mask_cvtepu16_epi64(__W, __U, __A); 3427 } 3428 3429 __m256i test_mm256_maskz_cvtepu16_epi64(__mmask8 __U, __m128i __A) { 3430 // CHECK-LABEL: @test_mm256_maskz_cvtepu16_epi64 3431 // CHECK: @llvm.x86.avx512.mask.pmovzxw.q.256 3432 return _mm256_maskz_cvtepu16_epi64(__U, __A); 3433 } 3434 3435 __m128i test_mm_rol_epi32(__m128i __A) { 3436 // CHECK-LABEL: @test_mm_rol_epi32 3437 // CHECK: @llvm.x86.avx512.mask.prol.d.128 3438 return _mm_rol_epi32(__A, 5); 3439 } 3440 3441 __m128i test_mm_mask_rol_epi32(__m128i __W, __mmask8 __U, __m128i __A) { 3442 // CHECK-LABEL: @test_mm_mask_rol_epi32 3443 // CHECK: @llvm.x86.avx512.mask.prol.d.128 3444 return _mm_mask_rol_epi32(__W, __U, __A, 5); 3445 } 3446 3447 __m128i test_mm_maskz_rol_epi32(__mmask8 __U, __m128i __A) { 3448 // CHECK-LABEL: @test_mm_maskz_rol_epi32 3449 // CHECK: @llvm.x86.avx512.mask.prol.d.128 3450 return _mm_maskz_rol_epi32(__U, __A, 5); 3451 } 3452 3453 __m256i test_mm256_rol_epi32(__m256i __A) { 3454 // CHECK-LABEL: @test_mm256_rol_epi32 3455 // CHECK: @llvm.x86.avx512.mask.prol.d.256 3456 return _mm256_rol_epi32(__A, 5); 3457 } 3458 3459 __m256i test_mm256_mask_rol_epi32(__m256i __W, __mmask8 __U, __m256i __A) { 3460 // CHECK-LABEL: @test_mm256_mask_rol_epi32 3461 // CHECK: @llvm.x86.avx512.mask.prol.d.256 3462 return _mm256_mask_rol_epi32(__W, __U, __A, 5); 3463 } 3464 3465 __m256i test_mm256_maskz_rol_epi32(__mmask8 __U, __m256i __A) { 3466 // CHECK-LABEL: @test_mm256_maskz_rol_epi32 3467 // CHECK: @llvm.x86.avx512.mask.prol.d.256 3468 return _mm256_maskz_rol_epi32(__U, __A, 5); 3469 } 3470 3471 __m128i test_mm_rol_epi64(__m128i __A) { 3472 // CHECK-LABEL: @test_mm_rol_epi64 3473 // CHECK: @llvm.x86.avx512.mask.prol.q.128 3474 return _mm_rol_epi64(__A, 5); 3475 } 3476 3477 __m128i test_mm_mask_rol_epi64(__m128i __W, __mmask8 __U, __m128i __A) { 3478 // CHECK-LABEL: @test_mm_mask_rol_epi64 3479 // CHECK: @llvm.x86.avx512.mask.prol.q.128 3480 return _mm_mask_rol_epi64(__W, __U, __A, 5); 3481 } 3482 3483 __m128i test_mm_maskz_rol_epi64(__mmask8 __U, __m128i __A) { 3484 // CHECK-LABEL: @test_mm_maskz_rol_epi64 3485 // CHECK: @llvm.x86.avx512.mask.prol.q.128 3486 return _mm_maskz_rol_epi64(__U, __A, 5); 3487 } 3488 3489 __m256i test_mm256_rol_epi64(__m256i __A) { 3490 // CHECK-LABEL: @test_mm256_rol_epi64 3491 // CHECK: @llvm.x86.avx512.mask.prol.q.256 3492 return _mm256_rol_epi64(__A, 5); 3493 } 3494 3495 __m256i test_mm256_mask_rol_epi64(__m256i __W, __mmask8 __U, __m256i __A) { 3496 // CHECK-LABEL: @test_mm256_mask_rol_epi64 3497 // CHECK: @llvm.x86.avx512.mask.prol.q.256 3498 return _mm256_mask_rol_epi64(__W, __U, __A, 5); 3499 } 3500 3501 __m256i test_mm256_maskz_rol_epi64(__mmask8 __U, __m256i __A) { 3502 // CHECK-LABEL: @test_mm256_maskz_rol_epi64 3503 // CHECK: @llvm.x86.avx512.mask.prol.q.256 3504 return _mm256_maskz_rol_epi64(__U, __A, 5); 3505 } 3506 3507 __m128i test_mm_rolv_epi32(__m128i __A, __m128i __B) { 3508 // CHECK-LABEL: @test_mm_rolv_epi32 3509 // CHECK: @llvm.x86.avx512.mask.prolv.d.128 3510 return _mm_rolv_epi32(__A, __B); 3511 } 3512 3513 __m128i test_mm_mask_rolv_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 3514 // CHECK-LABEL: @test_mm_mask_rolv_epi32 3515 // CHECK: @llvm.x86.avx512.mask.prolv.d.128 3516 return _mm_mask_rolv_epi32(__W, __U, __A, __B); 3517 } 3518 3519 __m128i test_mm_maskz_rolv_epi32(__mmask8 __U, __m128i __A, __m128i __B) { 3520 // CHECK-LABEL: @test_mm_maskz_rolv_epi32 3521 // CHECK: @llvm.x86.avx512.mask.prolv.d.128 3522 return _mm_maskz_rolv_epi32(__U, __A, __B); 3523 } 3524 3525 __m256i test_mm256_rolv_epi32(__m256i __A, __m256i __B) { 3526 // CHECK-LABEL: @test_mm256_rolv_epi32 3527 // CHECK: @llvm.x86.avx512.mask.prolv.d.256 3528 return _mm256_rolv_epi32(__A, __B); 3529 } 3530 3531 __m256i test_mm256_mask_rolv_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { 3532 // CHECK-LABEL: @test_mm256_mask_rolv_epi32 3533 // CHECK: @llvm.x86.avx512.mask.prolv.d.256 3534 return _mm256_mask_rolv_epi32(__W, __U, __A, __B); 3535 } 3536 3537 __m256i test_mm256_maskz_rolv_epi32(__mmask8 __U, __m256i __A, __m256i __B) { 3538 // CHECK-LABEL: @test_mm256_maskz_rolv_epi32 3539 // CHECK: @llvm.x86.avx512.mask.prolv.d.256 3540 return _mm256_maskz_rolv_epi32(__U, __A, __B); 3541 } 3542 3543 __m128i test_mm_rolv_epi64(__m128i __A, __m128i __B) { 3544 // CHECK-LABEL: @test_mm_rolv_epi64 3545 // CHECK: @llvm.x86.avx512.mask.prolv.q.128 3546 return _mm_rolv_epi64(__A, __B); 3547 } 3548 3549 __m128i test_mm_mask_rolv_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 3550 // CHECK-LABEL: @test_mm_mask_rolv_epi64 3551 // CHECK: @llvm.x86.avx512.mask.prolv.q.128 3552 return _mm_mask_rolv_epi64(__W, __U, __A, __B); 3553 } 3554 3555 __m128i test_mm_maskz_rolv_epi64(__mmask8 __U, __m128i __A, __m128i __B) { 3556 // CHECK-LABEL: @test_mm_maskz_rolv_epi64 3557 // CHECK: @llvm.x86.avx512.mask.prolv.q.128 3558 return _mm_maskz_rolv_epi64(__U, __A, __B); 3559 } 3560 3561 __m256i test_mm256_rolv_epi64(__m256i __A, __m256i __B) { 3562 // CHECK-LABEL: @test_mm256_rolv_epi64 3563 // CHECK: @llvm.x86.avx512.mask.prolv.q.256 3564 return _mm256_rolv_epi64(__A, __B); 3565 } 3566 3567 __m256i test_mm256_mask_rolv_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { 3568 // CHECK-LABEL: @test_mm256_mask_rolv_epi64 3569 // CHECK: @llvm.x86.avx512.mask.prolv.q.256 3570 return _mm256_mask_rolv_epi64(__W, __U, __A, __B); 3571 } 3572 3573 __m256i test_mm256_maskz_rolv_epi64(__mmask8 __U, __m256i __A, __m256i __B) { 3574 // CHECK-LABEL: @test_mm256_maskz_rolv_epi64 3575 // CHECK: @llvm.x86.avx512.mask.prolv.q.256 3576 return _mm256_maskz_rolv_epi64(__U, __A, __B); 3577 } 3578 3579 __m128i test_mm_ror_epi32(__m128i __A) { 3580 // CHECK-LABEL: @test_mm_ror_epi32 3581 // CHECK: @llvm.x86.avx512.mask.pror.d.128 3582 return _mm_ror_epi32(__A, 5); 3583 } 3584 3585 __m128i test_mm_mask_ror_epi32(__m128i __W, __mmask8 __U, __m128i __A) { 3586 // CHECK-LABEL: @test_mm_mask_ror_epi32 3587 // CHECK: @llvm.x86.avx512.mask.pror.d.128 3588 return _mm_mask_ror_epi32(__W, __U, __A, 5); 3589 } 3590 3591 __m128i test_mm_maskz_ror_epi32(__mmask8 __U, __m128i __A) { 3592 // CHECK-LABEL: @test_mm_maskz_ror_epi32 3593 // CHECK: @llvm.x86.avx512.mask.pror.d.128 3594 return _mm_maskz_ror_epi32(__U, __A, 5); 3595 } 3596 3597 __m256i test_mm256_ror_epi32(__m256i __A) { 3598 // CHECK-LABEL: @test_mm256_ror_epi32 3599 // CHECK: @llvm.x86.avx512.mask.pror.d.256 3600 return _mm256_ror_epi32(__A, 5); 3601 } 3602 3603 __m256i test_mm256_mask_ror_epi32(__m256i __W, __mmask8 __U, __m256i __A) { 3604 // CHECK-LABEL: @test_mm256_mask_ror_epi32 3605 // CHECK: @llvm.x86.avx512.mask.pror.d.256 3606 return _mm256_mask_ror_epi32(__W, __U, __A, 5); 3607 } 3608 3609 __m256i test_mm256_maskz_ror_epi32(__mmask8 __U, __m256i __A) { 3610 // CHECK-LABEL: @test_mm256_maskz_ror_epi32 3611 // CHECK: @llvm.x86.avx512.mask.pror.d.256 3612 return _mm256_maskz_ror_epi32(__U, __A, 5); 3613 } 3614 3615 __m128i test_mm_ror_epi64(__m128i __A) { 3616 // CHECK-LABEL: @test_mm_ror_epi64 3617 // CHECK: @llvm.x86.avx512.mask.pror.q.128 3618 return _mm_ror_epi64(__A, 5); 3619 } 3620 3621 __m128i test_mm_mask_ror_epi64(__m128i __W, __mmask8 __U, __m128i __A) { 3622 // CHECK-LABEL: @test_mm_mask_ror_epi64 3623 // CHECK: @llvm.x86.avx512.mask.pror.q.128 3624 return _mm_mask_ror_epi64(__W, __U, __A, 5); 3625 } 3626 3627 __m128i test_mm_maskz_ror_epi64(__mmask8 __U, __m128i __A) { 3628 // CHECK-LABEL: @test_mm_maskz_ror_epi64 3629 // CHECK: @llvm.x86.avx512.mask.pror.q.128 3630 return _mm_maskz_ror_epi64(__U, __A, 5); 3631 } 3632 3633 __m256i test_mm256_ror_epi64(__m256i __A) { 3634 // CHECK-LABEL: @test_mm256_ror_epi64 3635 // CHECK: @llvm.x86.avx512.mask.pror.q.256 3636 return _mm256_ror_epi64(__A, 5); 3637 } 3638 3639 __m256i test_mm256_mask_ror_epi64(__m256i __W, __mmask8 __U, __m256i __A) { 3640 // CHECK-LABEL: @test_mm256_mask_ror_epi64 3641 // CHECK: @llvm.x86.avx512.mask.pror.q.256 3642 return _mm256_mask_ror_epi64(__W, __U, __A,5); 3643 } 3644 3645 __m256i test_mm256_maskz_ror_epi64(__mmask8 __U, __m256i __A) { 3646 // CHECK-LABEL: @test_mm256_maskz_ror_epi64 3647 // CHECK: @llvm.x86.avx512.mask.pror.q.256 3648 return _mm256_maskz_ror_epi64(__U, __A, 5); 3649 } 3650 3651 3652 __m128i test_mm_rorv_epi32(__m128i __A, __m128i __B) { 3653 // CHECK-LABEL: @test_mm_rorv_epi32 3654 // CHECK: @llvm.x86.avx512.mask.prorv.d.128 3655 return _mm_rorv_epi32(__A, __B); 3656 } 3657 3658 __m128i test_mm_mask_rorv_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 3659 // CHECK-LABEL: @test_mm_mask_rorv_epi32 3660 // CHECK: @llvm.x86.avx512.mask.prorv.d.128 3661 return _mm_mask_rorv_epi32(__W, __U, __A, __B); 3662 } 3663 3664 __m128i test_mm_maskz_rorv_epi32(__mmask8 __U, __m128i __A, __m128i __B) { 3665 // CHECK-LABEL: @test_mm_maskz_rorv_epi32 3666 // CHECK: @llvm.x86.avx512.mask.prorv.d.128 3667 return _mm_maskz_rorv_epi32(__U, __A, __B); 3668 } 3669 3670 __m256i test_mm256_rorv_epi32(__m256i __A, __m256i __B) { 3671 // CHECK-LABEL: @test_mm256_rorv_epi32 3672 // CHECK: @llvm.x86.avx512.mask.prorv.d.256 3673 return _mm256_rorv_epi32(__A, __B); 3674 } 3675 3676 __m256i test_mm256_mask_rorv_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { 3677 // CHECK-LABEL: @test_mm256_mask_rorv_epi32 3678 // CHECK: @llvm.x86.avx512.mask.prorv.d.256 3679 return _mm256_mask_rorv_epi32(__W, __U, __A, __B); 3680 } 3681 3682 __m256i test_mm256_maskz_rorv_epi32(__mmask8 __U, __m256i __A, __m256i __B) { 3683 // CHECK-LABEL: @test_mm256_maskz_rorv_epi32 3684 // CHECK: @llvm.x86.avx512.mask.prorv.d.256 3685 return _mm256_maskz_rorv_epi32(__U, __A, __B); 3686 } 3687 3688 __m128i test_mm_rorv_epi64(__m128i __A, __m128i __B) { 3689 // CHECK-LABEL: @test_mm_rorv_epi64 3690 // CHECK: @llvm.x86.avx512.mask.prorv.q.128 3691 return _mm_rorv_epi64(__A, __B); 3692 } 3693 3694 __m128i test_mm_mask_rorv_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 3695 // CHECK-LABEL: @test_mm_mask_rorv_epi64 3696 // CHECK: @llvm.x86.avx512.mask.prorv.q.128 3697 return _mm_mask_rorv_epi64(__W, __U, __A, __B); 3698 } 3699 3700 __m128i test_mm_maskz_rorv_epi64(__mmask8 __U, __m128i __A, __m128i __B) { 3701 // CHECK-LABEL: @test_mm_maskz_rorv_epi64 3702 // CHECK: @llvm.x86.avx512.mask.prorv.q.128 3703 return _mm_maskz_rorv_epi64(__U, __A, __B); 3704 } 3705 3706 __m256i test_mm256_rorv_epi64(__m256i __A, __m256i __B) { 3707 // CHECK-LABEL: @test_mm256_rorv_epi64 3708 // CHECK: @llvm.x86.avx512.mask.prorv.q.256 3709 return _mm256_rorv_epi64(__A, __B); 3710 } 3711 3712 __m256i test_mm256_mask_rorv_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { 3713 // CHECK-LABEL: @test_mm256_mask_rorv_epi64 3714 // CHECK: @llvm.x86.avx512.mask.prorv.q.256 3715 return _mm256_mask_rorv_epi64(__W, __U, __A, __B); 3716 } 3717 3718 __m256i test_mm256_maskz_rorv_epi64(__mmask8 __U, __m256i __A, __m256i __B) { 3719 // CHECK-LABEL: @test_mm256_maskz_rorv_epi64 3720 // CHECK: @llvm.x86.avx512.mask.prorv.q.256 3721 return _mm256_maskz_rorv_epi64(__U, __A, __B); 3722 } 3723 3724 __m128i test_mm_mask_sllv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { 3725 // CHECK-LABEL: @test_mm_mask_sllv_epi64 3726 // CHECK: @llvm.x86.avx512.mask.psllv 3727 return _mm_mask_sllv_epi64(__W, __U, __X, __Y); 3728 } 3729 3730 __m128i test_mm_maskz_sllv_epi64(__mmask8 __U, __m128i __X, __m128i __Y) { 3731 // CHECK-LABEL: @test_mm_maskz_sllv_epi64 3732 // CHECK: @llvm.x86.avx512.mask.psllv 3733 return _mm_maskz_sllv_epi64(__U, __X, __Y); 3734 } 3735 3736 __m256i test_mm256_mask_sllv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) { 3737 // CHECK-LABEL: @test_mm256_mask_sllv_epi64 3738 // CHECK: @llvm.x86.avx512.mask.psllv 3739 return _mm256_mask_sllv_epi64(__W, __U, __X, __Y); 3740 } 3741 3742 __m256i test_mm256_maskz_sllv_epi64(__mmask8 __U, __m256i __X, __m256i __Y) { 3743 // CHECK-LABEL: @test_mm256_maskz_sllv_epi64 3744 // CHECK: @llvm.x86.avx512.mask.psllv 3745 return _mm256_maskz_sllv_epi64(__U, __X, __Y); 3746 } 3747 3748 __m128i test_mm_mask_sllv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { 3749 // CHECK-LABEL: @test_mm_mask_sllv_epi32 3750 // CHECK: @llvm.x86.avx512.mask.psllv 3751 return _mm_mask_sllv_epi32(__W, __U, __X, __Y); 3752 } 3753 3754 __m128i test_mm_maskz_sllv_epi32(__mmask8 __U, __m128i __X, __m128i __Y) { 3755 // CHECK-LABEL: @test_mm_maskz_sllv_epi32 3756 // CHECK: @llvm.x86.avx512.mask.psllv 3757 return _mm_maskz_sllv_epi32(__U, __X, __Y); 3758 } 3759 3760 __m256i test_mm256_mask_sllv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) { 3761 // CHECK-LABEL: @test_mm256_mask_sllv_epi32 3762 // CHECK: @llvm.x86.avx512.mask.psllv 3763 return _mm256_mask_sllv_epi32(__W, __U, __X, __Y); 3764 } 3765 3766 __m256i test_mm256_maskz_sllv_epi32(__mmask8 __U, __m256i __X, __m256i __Y) { 3767 // CHECK-LABEL: @test_mm256_maskz_sllv_epi32 3768 // CHECK: @llvm.x86.avx512.mask.psllv 3769 return _mm256_maskz_sllv_epi32(__U, __X, __Y); 3770 } 3771 3772 __m128i test_mm_mask_srlv_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { 3773 // CHECK-LABEL: @test_mm_mask_srlv_epi64 3774 // CHECK: @llvm.x86.avx512.mask.psrlv 3775 return _mm_mask_srlv_epi64(__W, __U, __X, __Y); 3776 } 3777 3778 __m128i test_mm_maskz_srlv_epi64(__mmask8 __U, __m128i __X, __m128i __Y) { 3779 // CHECK-LABEL: @test_mm_maskz_srlv_epi64 3780 // CHECK: @llvm.x86.avx512.mask.psrlv 3781 return _mm_maskz_srlv_epi64(__U, __X, __Y); 3782 } 3783 3784 __m256i test_mm256_mask_srlv_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) { 3785 // CHECK-LABEL: @test_mm256_mask_srlv_epi64 3786 // CHECK: @llvm.x86.avx512.mask.psrlv 3787 return _mm256_mask_srlv_epi64(__W, __U, __X, __Y); 3788 } 3789 3790 __m256i test_mm256_maskz_srlv_epi64(__mmask8 __U, __m256i __X, __m256i __Y) { 3791 // CHECK-LABEL: @test_mm256_maskz_srlv_epi64 3792 // CHECK: @llvm.x86.avx512.mask.psrlv 3793 return _mm256_maskz_srlv_epi64(__U, __X, __Y); 3794 } 3795 3796 __m128i test_mm_mask_srlv_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { 3797 // CHECK-LABEL: @test_mm_mask_srlv_epi32 3798 // CHECK: @llvm.x86.avx512.mask.psrlv 3799 return _mm_mask_srlv_epi32(__W, __U, __X, __Y); 3800 } 3801 3802 __m128i test_mm_maskz_srlv_epi32(__mmask8 __U, __m128i __X, __m128i __Y) { 3803 // CHECK-LABEL: @test_mm_maskz_srlv_epi32 3804 // CHECK: @llvm.x86.avx512.mask.psrlv 3805 return _mm_maskz_srlv_epi32(__U, __X, __Y); 3806 } 3807 3808 __m256i test_mm256_mask_srlv_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) { 3809 // CHECK-LABEL: @test_mm256_mask_srlv_epi32 3810 // CHECK: @llvm.x86.avx512.mask.psrlv 3811 return _mm256_mask_srlv_epi32(__W, __U, __X, __Y); 3812 } 3813 3814 __m256i test_mm256_maskz_srlv_epi32(__mmask8 __U, __m256i __X, __m256i __Y) { 3815 // CHECK-LABEL: @test_mm256_maskz_srlv_epi32 3816 // CHECK: @llvm.x86.avx512.mask.psrlv 3817 return _mm256_maskz_srlv_epi32(__U, __X, __Y); 3818 } 3819 3820 __m128i test_mm_mask_srl_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 3821 // CHECK-LABEL: @test_mm_mask_srl_epi32 3822 // CHECK: @llvm.x86.avx512.mask.psrl.d.128 3823 return _mm_mask_srl_epi32(__W, __U, __A, __B); 3824 } 3825 3826 __m128i test_mm_maskz_srl_epi32(__mmask8 __U, __m128i __A, __m128i __B) { 3827 // CHECK-LABEL: @test_mm_maskz_srl_epi32 3828 // CHECK: @llvm.x86.avx512.mask.psrl.d.128 3829 return _mm_maskz_srl_epi32(__U, __A, __B); 3830 } 3831 3832 __m256i test_mm256_mask_srl_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) { 3833 // CHECK-LABEL: @test_mm256_mask_srl_epi32 3834 // CHECK: @llvm.x86.avx512.mask.psrl.d.256 3835 return _mm256_mask_srl_epi32(__W, __U, __A, __B); 3836 } 3837 3838 __m256i test_mm256_maskz_srl_epi32(__mmask8 __U, __m256i __A, __m128i __B) { 3839 // CHECK-LABEL: @test_mm256_maskz_srl_epi32 3840 // CHECK: @llvm.x86.avx512.mask.psrl.d.256 3841 return _mm256_maskz_srl_epi32(__U, __A, __B); 3842 } 3843 3844 __m128i test_mm_mask_srli_epi32(__m128i __W, __mmask8 __U, __m128i __A) { 3845 // CHECK-LABEL: @test_mm_mask_srli_epi32 3846 // CHECK: @llvm.x86.avx512.mask.psrl.di.128 3847 return _mm_mask_srli_epi32(__W, __U, __A, 5); 3848 } 3849 3850 __m128i test_mm_maskz_srli_epi32(__mmask8 __U, __m128i __A) { 3851 // CHECK-LABEL: @test_mm_maskz_srli_epi32 3852 // CHECK: @llvm.x86.avx512.mask.psrl.di.128 3853 return _mm_maskz_srli_epi32(__U, __A, 5); 3854 } 3855 3856 __m256i test_mm256_mask_srli_epi32(__m256i __W, __mmask8 __U, __m256i __A) { 3857 // CHECK-LABEL: @test_mm256_mask_srli_epi32 3858 // CHECK: @llvm.x86.avx512.mask.psrl.di.256 3859 return _mm256_mask_srli_epi32(__W, __U, __A, 5); 3860 } 3861 3862 __m256i test_mm256_maskz_srli_epi32(__mmask8 __U, __m256i __A) { 3863 // CHECK-LABEL: @test_mm256_maskz_srli_epi32 3864 // CHECK: @llvm.x86.avx512.mask.psrl.di.256 3865 return _mm256_maskz_srli_epi32(__U, __A, 5); 3866 } 3867 3868 __m128i test_mm_mask_srl_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 3869 // CHECK-LABEL: @test_mm_mask_srl_epi64 3870 // CHECK: @llvm.x86.avx512.mask.psrl.q.128 3871 return _mm_mask_srl_epi64(__W, __U, __A, __B); 3872 } 3873 3874 __m128i test_mm_maskz_srl_epi64(__mmask8 __U, __m128i __A, __m128i __B) { 3875 // CHECK-LABEL: @test_mm_maskz_srl_epi64 3876 // CHECK: @llvm.x86.avx512.mask.psrl.q.128 3877 return _mm_maskz_srl_epi64(__U, __A, __B); 3878 } 3879 3880 __m256i test_mm256_mask_srl_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) { 3881 // CHECK-LABEL: @test_mm256_mask_srl_epi64 3882 // CHECK: @llvm.x86.avx512.mask.psrl.q.256 3883 return _mm256_mask_srl_epi64(__W, __U, __A, __B); 3884 } 3885 3886 __m256i test_mm256_maskz_srl_epi64(__mmask8 __U, __m256i __A, __m128i __B) { 3887 // CHECK-LABEL: @test_mm256_maskz_srl_epi64 3888 // CHECK: @llvm.x86.avx512.mask.psrl.q.256 3889 return _mm256_maskz_srl_epi64(__U, __A, __B); 3890 } 3891 3892 __m128i test_mm_mask_srli_epi64(__m128i __W, __mmask8 __U, __m128i __A) { 3893 // CHECK-LABEL: @test_mm_mask_srli_epi64 3894 // CHECK: @llvm.x86.avx512.mask.psrl.qi.128 3895 return _mm_mask_srli_epi64(__W, __U, __A, 5); 3896 } 3897 3898 __m128i test_mm_maskz_srli_epi64(__mmask8 __U, __m128i __A) { 3899 // CHECK-LABEL: @test_mm_maskz_srli_epi64 3900 // CHECK: @llvm.x86.avx512.mask.psrl.qi.128 3901 return _mm_maskz_srli_epi64(__U, __A, 5); 3902 } 3903 3904 __m256i test_mm256_mask_srli_epi64(__m256i __W, __mmask8 __U, __m256i __A) { 3905 // CHECK-LABEL: @test_mm256_mask_srli_epi64 3906 // CHECK: @llvm.x86.avx512.mask.psrl.qi.256 3907 return _mm256_mask_srli_epi64(__W, __U, __A, 5); 3908 } 3909 3910 __m256i test_mm256_maskz_srli_epi64(__mmask8 __U, __m256i __A) { 3911 // CHECK-LABEL: @test_mm256_maskz_srli_epi64 3912 // CHECK: @llvm.x86.avx512.mask.psrl.qi.256 3913 return _mm256_maskz_srli_epi64(__U, __A, 5); 3914 } 3915 3916 __m128i test_mm_mask_srav_epi32(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { 3917 // CHECK-LABEL: @test_mm_mask_srav_epi32 3918 // CHECK: @llvm.x86.avx512.mask.psrav 3919 return _mm_mask_srav_epi32(__W, __U, __X, __Y); 3920 } 3921 3922 __m128i test_mm_maskz_srav_epi32(__mmask8 __U, __m128i __X, __m128i __Y) { 3923 // CHECK-LABEL: @test_mm_maskz_srav_epi32 3924 // CHECK: @llvm.x86.avx512.mask.psrav 3925 return _mm_maskz_srav_epi32(__U, __X, __Y); 3926 } 3927 3928 __m256i test_mm256_mask_srav_epi32(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) { 3929 // CHECK-LABEL: @test_mm256_mask_srav_epi32 3930 // CHECK: @llvm.x86.avx512.mask.psrav 3931 return _mm256_mask_srav_epi32(__W, __U, __X, __Y); 3932 } 3933 3934 __m256i test_mm256_maskz_srav_epi32(__mmask8 __U, __m256i __X, __m256i __Y) { 3935 // CHECK-LABEL: @test_mm256_maskz_srav_epi32 3936 // CHECK: @llvm.x86.avx512.mask.psrav 3937 return _mm256_maskz_srav_epi32(__U, __X, __Y); 3938 } 3939 3940 __m128i test_mm_srav_epi64(__m128i __X, __m128i __Y) { 3941 // CHECK-LABEL: @test_mm_srav_epi64 3942 // CHECK: @llvm.x86.avx512.mask.psrav.q.128 3943 return _mm_srav_epi64(__X, __Y); 3944 } 3945 3946 __m128i test_mm_mask_srav_epi64(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { 3947 // CHECK-LABEL: @test_mm_mask_srav_epi64 3948 // CHECK: @llvm.x86.avx512.mask.psrav.q.128 3949 return _mm_mask_srav_epi64(__W, __U, __X, __Y); 3950 } 3951 3952 __m128i test_mm_maskz_srav_epi64(__mmask8 __U, __m128i __X, __m128i __Y) { 3953 // CHECK-LABEL: @test_mm_maskz_srav_epi64 3954 // CHECK: @llvm.x86.avx512.mask.psrav.q.128 3955 return _mm_maskz_srav_epi64(__U, __X, __Y); 3956 } 3957 3958 __m256i test_mm256_srav_epi64(__m256i __X, __m256i __Y) { 3959 // CHECK-LABEL: @test_mm256_srav_epi64 3960 // CHECK: @llvm.x86.avx512.mask.psrav.q.256 3961 return _mm256_srav_epi64(__X, __Y); 3962 } 3963 3964 __m256i test_mm256_mask_srav_epi64(__m256i __W, __mmask8 __U, __m256i __X, __m256i __Y) { 3965 // CHECK-LABEL: @test_mm256_mask_srav_epi64 3966 // CHECK: @llvm.x86.avx512.mask.psrav.q.256 3967 return _mm256_mask_srav_epi64(__W, __U, __X, __Y); 3968 } 3969 3970 __m256i test_mm256_maskz_srav_epi64(__mmask8 __U, __m256i __X, __m256i __Y) { 3971 // CHECK-LABEL: @test_mm256_maskz_srav_epi64 3972 // CHECK: @llvm.x86.avx512.mask.psrav.q.256 3973 return _mm256_maskz_srav_epi64(__U, __X, __Y); 3974 } 3975 3976 void test_mm_mask_store_epi32(void *__P, __mmask8 __U, __m128i __A) { 3977 // CHECK-LABEL: @test_mm_mask_store_epi32 3978 // CHECK: @llvm.masked.store.v4i32.p0v4i32(<4 x i32> %{{.*}}, <4 x i32>* %{{.}}, i32 16, <4 x i1> %{{.*}}) 3979 return _mm_mask_store_epi32(__P, __U, __A); 3980 } 3981 3982 void test_mm256_mask_store_epi32(void *__P, __mmask8 __U, __m256i __A) { 3983 // CHECK-LABEL: @test_mm256_mask_store_epi32 3984 // CHECK: @llvm.masked.store.v8i32.p0v8i32(<8 x i32> %{{.*}}, <8 x i32>* %{{.}}, i32 32, <8 x i1> %{{.*}}) 3985 return _mm256_mask_store_epi32(__P, __U, __A); 3986 } 3987 3988 __m128i test_mm_mask_mov_epi32(__m128i __W, __mmask8 __U, __m128i __A) { 3989 // CHECK-LABEL: @test_mm_mask_mov_epi32 3990 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} 3991 return _mm_mask_mov_epi32(__W, __U, __A); 3992 } 3993 3994 __m128i test_mm_maskz_mov_epi32(__mmask8 __U, __m128i __A) { 3995 // CHECK-LABEL: @test_mm_maskz_mov_epi32 3996 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} 3997 return _mm_maskz_mov_epi32(__U, __A); 3998 } 3999 4000 __m256i test_mm256_mask_mov_epi32(__m256i __W, __mmask8 __U, __m256i __A) { 4001 // CHECK-LABEL: @test_mm256_mask_mov_epi32 4002 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} 4003 return _mm256_mask_mov_epi32(__W, __U, __A); 4004 } 4005 4006 __m256i test_mm256_maskz_mov_epi32(__mmask8 __U, __m256i __A) { 4007 // CHECK-LABEL: @test_mm256_maskz_mov_epi32 4008 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} 4009 return _mm256_maskz_mov_epi32(__U, __A); 4010 } 4011 4012 __m128i test_mm_mask_mov_epi64(__m128i __W, __mmask8 __U, __m128i __A) { 4013 // CHECK-LABEL: @test_mm_mask_mov_epi64 4014 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} 4015 return _mm_mask_mov_epi64(__W, __U, __A); 4016 } 4017 4018 __m128i test_mm_maskz_mov_epi64(__mmask8 __U, __m128i __A) { 4019 // CHECK-LABEL: @test_mm_maskz_mov_epi64 4020 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} 4021 return _mm_maskz_mov_epi64(__U, __A); 4022 } 4023 4024 __m256i test_mm256_mask_mov_epi64(__m256i __W, __mmask8 __U, __m256i __A) { 4025 // CHECK-LABEL: @test_mm256_mask_mov_epi64 4026 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} 4027 return _mm256_mask_mov_epi64(__W, __U, __A); 4028 } 4029 4030 __m256i test_mm256_maskz_mov_epi64(__mmask8 __U, __m256i __A) { 4031 // CHECK-LABEL: @test_mm256_maskz_mov_epi64 4032 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} 4033 return _mm256_maskz_mov_epi64(__U, __A); 4034 } 4035 4036 __m128i test_mm_mask_load_epi32(__m128i __W, __mmask8 __U, void const *__P) { 4037 // CHECK-LABEL: @test_mm_mask_load_epi32 4038 // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x i32> %{{.*}}) 4039 return _mm_mask_load_epi32(__W, __U, __P); 4040 } 4041 4042 __m128i test_mm_maskz_load_epi32(__mmask8 __U, void const *__P) { 4043 // CHECK-LABEL: @test_mm_maskz_load_epi32 4044 // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x i32> %{{.*}}) 4045 return _mm_maskz_load_epi32(__U, __P); 4046 } 4047 4048 __m256i test_mm256_mask_load_epi32(__m256i __W, __mmask8 __U, void const *__P) { 4049 // CHECK-LABEL: @test_mm256_mask_load_epi32 4050 // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x i32> %{{.*}}) 4051 return _mm256_mask_load_epi32(__W, __U, __P); 4052 } 4053 4054 __m256i test_mm256_maskz_load_epi32(__mmask8 __U, void const *__P) { 4055 // CHECK-LABEL: @test_mm256_maskz_load_epi32 4056 // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x i32> %{{.*}}) 4057 return _mm256_maskz_load_epi32(__U, __P); 4058 } 4059 4060 __m128i test_mm_mask_load_epi64(__m128i __W, __mmask8 __U, void const *__P) { 4061 // CHECK-LABEL: @test_mm_mask_load_epi64 4062 // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x i64> %{{.*}}) 4063 return _mm_mask_load_epi64(__W, __U, __P); 4064 } 4065 4066 __m128i test_mm_maskz_load_epi64(__mmask8 __U, void const *__P) { 4067 // CHECK-LABEL: @test_mm_maskz_load_epi64 4068 // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x i64> %{{.*}}) 4069 return _mm_maskz_load_epi64(__U, __P); 4070 } 4071 4072 __m256i test_mm256_mask_load_epi64(__m256i __W, __mmask8 __U, void const *__P) { 4073 // CHECK-LABEL: @test_mm256_mask_load_epi64 4074 // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x i64> %{{.*}}) 4075 return _mm256_mask_load_epi64(__W, __U, __P); 4076 } 4077 4078 __m256i test_mm256_maskz_load_epi64(__mmask8 __U, void const *__P) { 4079 // CHECK-LABEL: @test_mm256_maskz_load_epi64 4080 // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x i64> %{{.*}}) 4081 return _mm256_maskz_load_epi64(__U, __P); 4082 } 4083 4084 void test_mm_mask_store_epi64(void *__P, __mmask8 __U, __m128i __A) { 4085 // CHECK-LABEL: @test_mm_mask_store_epi64 4086 // CHECK: @llvm.masked.store.v2i64.p0v2i64(<2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, i32 16, <2 x i1> %{{.*}}) 4087 return _mm_mask_store_epi64(__P, __U, __A); 4088 } 4089 4090 void test_mm256_mask_store_epi64(void *__P, __mmask8 __U, __m256i __A) { 4091 // CHECK-LABEL: @test_mm256_mask_store_epi64 4092 // CHECK: @llvm.masked.store.v4i64.p0v4i64(<4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, i32 32, <4 x i1> %{{.*}}) 4093 return _mm256_mask_store_epi64(__P, __U, __A); 4094 } 4095 4096 __m128d test_mm_mask_movedup_pd(__m128d __W, __mmask8 __U, __m128d __A) { 4097 // CHECK-LABEL: @test_mm_mask_movedup_pd 4098 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> zeroinitializer 4099 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}} 4100 return _mm_mask_movedup_pd(__W, __U, __A); 4101 } 4102 4103 __m128d test_mm_maskz_movedup_pd(__mmask8 __U, __m128d __A) { 4104 // CHECK-LABEL: @test_mm_maskz_movedup_pd 4105 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> zeroinitializer 4106 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}} 4107 return _mm_maskz_movedup_pd(__U, __A); 4108 } 4109 4110 __m256d test_mm256_mask_movedup_pd(__m256d __W, __mmask8 __U, __m256d __A) { 4111 // CHECK-LABEL: @test_mm256_mask_movedup_pd 4112 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2> 4113 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}} 4114 return _mm256_mask_movedup_pd(__W, __U, __A); 4115 } 4116 4117 __m256d test_mm256_maskz_movedup_pd(__mmask8 __U, __m256d __A) { 4118 // CHECK-LABEL: @test_mm256_maskz_movedup_pd 4119 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2> 4120 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}} 4121 return _mm256_maskz_movedup_pd(__U, __A); 4122 } 4123 4124 __m128i test_mm_mask_set1_epi32(__m128i __O, __mmask8 __M) { 4125 // CHECK-LABEL: @test_mm_mask_set1_epi32 4126 // CHECK: @llvm.x86.avx512.mask.pbroadcast.d.gpr.128 4127 return _mm_mask_set1_epi32(__O, __M, 5); 4128 } 4129 4130 __m128i test_mm_maskz_set1_epi32(__mmask8 __M) { 4131 // CHECK-LABEL: @test_mm_maskz_set1_epi32 4132 // CHECK: @llvm.x86.avx512.mask.pbroadcast.d.gpr.128 4133 return _mm_maskz_set1_epi32(__M, 5); 4134 } 4135 4136 __m256i test_mm256_mask_set1_epi32(__m256i __O, __mmask8 __M) { 4137 // CHECK-LABEL: @test_mm256_mask_set1_epi32 4138 // CHECK: @llvm.x86.avx512.mask.pbroadcast.d.gpr.256 4139 return _mm256_mask_set1_epi32(__O, __M, 5); 4140 } 4141 4142 __m256i test_mm256_maskz_set1_epi32(__mmask8 __M) { 4143 // CHECK-LABEL: @test_mm256_maskz_set1_epi32 4144 // CHECK: @llvm.x86.avx512.mask.pbroadcast.d.gpr.256 4145 return _mm256_maskz_set1_epi32(__M, 5); 4146 } 4147 4148 __m128i test_mm_mask_set1_epi64(__m128i __O, __mmask8 __M, long long __A) { 4149 // CHECK-LABEL: @test_mm_mask_set1_epi64 4150 // CHECK: @llvm.x86.avx512.mask.pbroadcast.q.gpr.128 4151 return _mm_mask_set1_epi64(__O, __M, __A); 4152 } 4153 4154 __m128i test_mm_maskz_set1_epi64(__mmask8 __M, long long __A) { 4155 // CHECK-LABEL: @test_mm_maskz_set1_epi64 4156 // CHECK: @llvm.x86.avx512.mask.pbroadcast.q.gpr.128 4157 return _mm_maskz_set1_epi64(__M, __A); 4158 } 4159 4160 __m256i test_mm256_mask_set1_epi64(__m256i __O, __mmask8 __M, long long __A) { 4161 // CHECK-LABEL: @test_mm256_mask_set1_epi64 4162 // CHECK: @llvm.x86.avx512.mask.pbroadcast.q.gpr.256 4163 return _mm256_mask_set1_epi64(__O, __M, __A); 4164 } 4165 4166 __m256i test_mm256_maskz_set1_epi64(__mmask8 __M, long long __A) { 4167 // CHECK-LABEL: @test_mm256_maskz_set1_epi64 4168 // CHECK: @llvm.x86.avx512.mask.pbroadcast.q.gpr.256 4169 return _mm256_maskz_set1_epi64(__M, __A); 4170 } 4171 4172 __m128d test_mm_fixupimm_pd(__m128d __A, __m128d __B, __m128i __C) { 4173 // CHECK-LABEL: @test_mm_fixupimm_pd 4174 // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.128 4175 return _mm_fixupimm_pd(__A, __B, __C, 5); 4176 } 4177 4178 __m128d test_mm_mask_fixupimm_pd(__m128d __A, __mmask8 __U, __m128d __B, __m128i __C) { 4179 // CHECK-LABEL: @test_mm_mask_fixupimm_pd 4180 // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.128 4181 return _mm_mask_fixupimm_pd(__A, __U, __B, __C, 5); 4182 } 4183 4184 __m128d test_mm_maskz_fixupimm_pd(__mmask8 __U, __m128d __A, __m128d __B, __m128i __C) { 4185 // CHECK-LABEL: @test_mm_maskz_fixupimm_pd 4186 // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.128 4187 return _mm_maskz_fixupimm_pd(__U, __A, __B, __C, 5); 4188 } 4189 4190 __m256d test_mm256_fixupimm_pd(__m256d __A, __m256d __B, __m256i __C) { 4191 // CHECK-LABEL: @test_mm256_fixupimm_pd 4192 // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.256 4193 return _mm256_fixupimm_pd(__A, __B, __C, 5); 4194 } 4195 4196 __m256d test_mm256_mask_fixupimm_pd(__m256d __A, __mmask8 __U, __m256d __B, __m256i __C) { 4197 // CHECK-LABEL: @test_mm256_mask_fixupimm_pd 4198 // CHECK: @llvm.x86.avx512.mask.fixupimm.pd.256 4199 return _mm256_mask_fixupimm_pd(__A, __U, __B, __C, 5); 4200 } 4201 4202 __m256d test_mm256_maskz_fixupimm_pd(__mmask8 __U, __m256d __A, __m256d __B, __m256i __C) { 4203 // CHECK-LABEL: @test_mm256_maskz_fixupimm_pd 4204 // CHECK: @llvm.x86.avx512.maskz.fixupimm.pd.256 4205 return _mm256_maskz_fixupimm_pd(__U, __A, __B, __C, 5); 4206 } 4207 4208 __m128 test_mm_fixupimm_ps(__m128 __A, __m128 __B, __m128i __C) { 4209 // CHECK-LABEL: @test_mm_fixupimm_ps 4210 // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.128 4211 return _mm_fixupimm_ps(__A, __B, __C, 5); 4212 } 4213 4214 __m128 test_mm_mask_fixupimm_ps(__m128 __A, __mmask8 __U, __m128 __B, __m128i __C) { 4215 // CHECK-LABEL: @test_mm_mask_fixupimm_ps 4216 // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.128 4217 return _mm_mask_fixupimm_ps(__A, __U, __B, __C, 5); 4218 } 4219 4220 __m128 test_mm_maskz_fixupimm_ps(__mmask8 __U, __m128 __A, __m128 __B, __m128i __C) { 4221 // CHECK-LABEL: @test_mm_maskz_fixupimm_ps 4222 // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.128 4223 return _mm_maskz_fixupimm_ps(__U, __A, __B, __C, 5); 4224 } 4225 4226 __m256 test_mm256_fixupimm_ps(__m256 __A, __m256 __B, __m256i __C) { 4227 // CHECK-LABEL: @test_mm256_fixupimm_ps 4228 // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.256 4229 return _mm256_fixupimm_ps(__A, __B, __C, 5); 4230 } 4231 4232 __m256 test_mm256_mask_fixupimm_ps(__m256 __A, __mmask8 __U, __m256 __B, __m256i __C) { 4233 // CHECK-LABEL: @test_mm256_mask_fixupimm_ps 4234 // CHECK: @llvm.x86.avx512.mask.fixupimm.ps.256 4235 return _mm256_mask_fixupimm_ps(__A, __U, __B, __C, 5); 4236 } 4237 4238 __m256 test_mm256_maskz_fixupimm_ps(__mmask8 __U, __m256 __A, __m256 __B, __m256i __C) { 4239 // CHECK-LABEL: @test_mm256_maskz_fixupimm_ps 4240 // CHECK: @llvm.x86.avx512.maskz.fixupimm.ps.256 4241 return _mm256_maskz_fixupimm_ps(__U, __A, __B, __C, 5); 4242 } 4243 4244 __m128d test_mm_mask_load_pd(__m128d __W, __mmask8 __U, void const *__P) { 4245 // CHECK-LABEL: @test_mm_mask_load_pd 4246 // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x double> %{{.*}}) 4247 return _mm_mask_load_pd(__W, __U, __P); 4248 } 4249 4250 __m128d test_mm_maskz_load_pd(__mmask8 __U, void const *__P) { 4251 // CHECK-LABEL: @test_mm_maskz_load_pd 4252 // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}}, <2 x double> %{{.*}}) 4253 return _mm_maskz_load_pd(__U, __P); 4254 } 4255 4256 __m256d test_mm256_mask_load_pd(__m256d __W, __mmask8 __U, void const *__P) { 4257 // CHECK-LABEL: @test_mm256_mask_load_pd 4258 // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x double> %{{.*}}) 4259 return _mm256_mask_load_pd(__W, __U, __P); 4260 } 4261 4262 __m256d test_mm256_maskz_load_pd(__mmask8 __U, void const *__P) { 4263 // CHECK-LABEL: @test_mm256_maskz_load_pd 4264 // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}}, <4 x double> %{{.*}}) 4265 return _mm256_maskz_load_pd(__U, __P); 4266 } 4267 4268 __m128 test_mm_mask_load_ps(__m128 __W, __mmask8 __U, void const *__P) { 4269 // CHECK-LABEL: @test_mm_mask_load_ps 4270 // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x float> %{{.*}}) 4271 return _mm_mask_load_ps(__W, __U, __P); 4272 } 4273 4274 __m128 test_mm_maskz_load_ps(__mmask8 __U, void const *__P) { 4275 // CHECK-LABEL: @test_mm_maskz_load_ps 4276 // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}}, <4 x float> %{{.*}}) 4277 return _mm_maskz_load_ps(__U, __P); 4278 } 4279 4280 __m256 test_mm256_mask_load_ps(__m256 __W, __mmask8 __U, void const *__P) { 4281 // CHECK-LABEL: @test_mm256_mask_load_ps 4282 // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x float> %{{.*}}) 4283 return _mm256_mask_load_ps(__W, __U, __P); 4284 } 4285 4286 __m256 test_mm256_maskz_load_ps(__mmask8 __U, void const *__P) { 4287 // CHECK-LABEL: @test_mm256_maskz_load_ps 4288 // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}}, <8 x float> %{{.*}}) 4289 return _mm256_maskz_load_ps(__U, __P); 4290 } 4291 4292 __m128i test_mm_mask_loadu_epi64(__m128i __W, __mmask8 __U, void const *__P) { 4293 // CHECK-LABEL: @test_mm_mask_loadu_epi64 4294 // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x i64> %{{.*}}) 4295 return _mm_mask_loadu_epi64(__W, __U, __P); 4296 } 4297 4298 __m128i test_mm_maskz_loadu_epi64(__mmask8 __U, void const *__P) { 4299 // CHECK-LABEL: @test_mm_maskz_loadu_epi64 4300 // CHECK: @llvm.masked.load.v2i64.p0v2i64(<2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x i64> %{{.*}}) 4301 return _mm_maskz_loadu_epi64(__U, __P); 4302 } 4303 4304 __m256i test_mm256_mask_loadu_epi64(__m256i __W, __mmask8 __U, void const *__P) { 4305 // CHECK-LABEL: @test_mm256_mask_loadu_epi64 4306 // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i64> %{{.*}}) 4307 return _mm256_mask_loadu_epi64(__W, __U, __P); 4308 } 4309 4310 __m256i test_mm256_maskz_loadu_epi64(__mmask8 __U, void const *__P) { 4311 // CHECK-LABEL: @test_mm256_maskz_loadu_epi64 4312 // CHECK: @llvm.masked.load.v4i64.p0v4i64(<4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i64> %{{.*}}) 4313 return _mm256_maskz_loadu_epi64(__U, __P); 4314 } 4315 4316 __m128i test_mm_mask_loadu_epi32(__m128i __W, __mmask8 __U, void const *__P) { 4317 // CHECK-LABEL: @test_mm_mask_loadu_epi32 4318 // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i32> %{{.*}}) 4319 return _mm_mask_loadu_epi32(__W, __U, __P); 4320 } 4321 4322 __m128i test_mm_maskz_loadu_epi32(__mmask8 __U, void const *__P) { 4323 // CHECK-LABEL: @test_mm_maskz_loadu_epi32 4324 // CHECK: @llvm.masked.load.v4i32.p0v4i32(<4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x i32> %{{.*}}) 4325 return _mm_maskz_loadu_epi32(__U, __P); 4326 } 4327 4328 __m256i test_mm256_mask_loadu_epi32(__m256i __W, __mmask8 __U, void const *__P) { 4329 // CHECK-LABEL: @test_mm256_mask_loadu_epi32 4330 // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i32> %{{.*}}) 4331 return _mm256_mask_loadu_epi32(__W, __U, __P); 4332 } 4333 4334 __m256i test_mm256_maskz_loadu_epi32(__mmask8 __U, void const *__P) { 4335 // CHECK-LABEL: @test_mm256_maskz_loadu_epi32 4336 // CHECK: @llvm.masked.load.v8i32.p0v8i32(<8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x i32> %{{.*}}) 4337 return _mm256_maskz_loadu_epi32(__U, __P); 4338 } 4339 4340 __m128d test_mm_mask_loadu_pd(__m128d __W, __mmask8 __U, void const *__P) { 4341 // CHECK-LABEL: @test_mm_mask_loadu_pd 4342 // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x double> %{{.*}}) 4343 return _mm_mask_loadu_pd(__W, __U, __P); 4344 } 4345 4346 __m128d test_mm_maskz_loadu_pd(__mmask8 __U, void const *__P) { 4347 // CHECK-LABEL: @test_mm_maskz_loadu_pd 4348 // CHECK: @llvm.masked.load.v2f64.p0v2f64(<2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}}, <2 x double> %{{.*}}) 4349 return _mm_maskz_loadu_pd(__U, __P); 4350 } 4351 4352 __m256d test_mm256_mask_loadu_pd(__m256d __W, __mmask8 __U, void const *__P) { 4353 // CHECK-LABEL: @test_mm256_mask_loadu_pd 4354 // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x double> %{{.*}}) 4355 return _mm256_mask_loadu_pd(__W, __U, __P); 4356 } 4357 4358 __m256d test_mm256_maskz_loadu_pd(__mmask8 __U, void const *__P) { 4359 // CHECK-LABEL: @test_mm256_maskz_loadu_pd 4360 // CHECK: @llvm.masked.load.v4f64.p0v4f64(<4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x double> %{{.*}}) 4361 return _mm256_maskz_loadu_pd(__U, __P); 4362 } 4363 4364 __m128 test_mm_mask_loadu_ps(__m128 __W, __mmask8 __U, void const *__P) { 4365 // CHECK-LABEL: @test_mm_mask_loadu_ps 4366 // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x float> %{{.*}}) 4367 return _mm_mask_loadu_ps(__W, __U, __P); 4368 } 4369 4370 __m128 test_mm_maskz_loadu_ps(__mmask8 __U, void const *__P) { 4371 // CHECK-LABEL: @test_mm_maskz_loadu_ps 4372 // CHECK: @llvm.masked.load.v4f32.p0v4f32(<4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}}, <4 x float> %{{.*}}) 4373 return _mm_maskz_loadu_ps(__U, __P); 4374 } 4375 4376 __m256 test_mm256_mask_loadu_ps(__m256 __W, __mmask8 __U, void const *__P) { 4377 // CHECK-LABEL: @test_mm256_mask_loadu_ps 4378 // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x float> %{{.*}}) 4379 return _mm256_mask_loadu_ps(__W, __U, __P); 4380 } 4381 4382 __m256 test_mm256_maskz_loadu_ps(__mmask8 __U, void const *__P) { 4383 // CHECK-LABEL: @test_mm256_maskz_loadu_ps 4384 // CHECK: @llvm.masked.load.v8f32.p0v8f32(<8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}}, <8 x float> %{{.*}}) 4385 return _mm256_maskz_loadu_ps(__U, __P); 4386 } 4387 4388 void test_mm_mask_store_pd(void *__P, __mmask8 __U, __m128d __A) { 4389 // CHECK-LABEL: @test_mm_mask_store_pd 4390 // CHECK: @llvm.masked.store.v2f64.p0v2f64(<2 x double> %{{.*}}, <2 x double>* %{{.*}}, i32 16, <2 x i1> %{{.*}}) 4391 return _mm_mask_store_pd(__P, __U, __A); 4392 } 4393 4394 void test_mm256_mask_store_pd(void *__P, __mmask8 __U, __m256d __A) { 4395 // CHECK-LABEL: @test_mm256_mask_store_pd 4396 // CHECK: @llvm.masked.store.v4f64.p0v4f64(<4 x double> %{{.*}}, <4 x double>* %{{.*}}, i32 32, <4 x i1> %{{.*}}) 4397 return _mm256_mask_store_pd(__P, __U, __A); 4398 } 4399 4400 void test_mm_mask_store_ps(void *__P, __mmask8 __U, __m128 __A) { 4401 // CHECK-LABEL: @test_mm_mask_store_ps 4402 // CHECK: @llvm.masked.store.v4f32.p0v4f32(<4 x float> %{{.*}}, <4 x float>* %{{.*}}, i32 16, <4 x i1> %{{.*}}) 4403 return _mm_mask_store_ps(__P, __U, __A); 4404 } 4405 4406 void test_mm256_mask_store_ps(void *__P, __mmask8 __U, __m256 __A) { 4407 // CHECK-LABEL: @test_mm256_mask_store_ps 4408 // CHECK: @llvm.masked.store.v8f32.p0v8f32(<8 x float> %{{.*}}, <8 x float>* %{{.*}}, i32 32, <8 x i1> %{{.*}}) 4409 return _mm256_mask_store_ps(__P, __U, __A); 4410 } 4411 4412 void test_mm_mask_storeu_epi64(void *__P, __mmask8 __U, __m128i __A) { 4413 // CHECK-LABEL: @test_mm_mask_storeu_epi64 4414 // CHECK: @llvm.masked.store.v2i64.p0v2i64(<2 x i64> %{{.*}}, <2 x i64>* %{{.*}}, i32 1, <2 x i1> %{{.*}}) 4415 return _mm_mask_storeu_epi64(__P, __U, __A); 4416 } 4417 4418 void test_mm256_mask_storeu_epi64(void *__P, __mmask8 __U, __m256i __A) { 4419 // CHECK-LABEL: @test_mm256_mask_storeu_epi64 4420 // CHECK: @llvm.masked.store.v4i64.p0v4i64(<4 x i64> %{{.*}}, <4 x i64>* %{{.*}}, i32 1, <4 x i1> %{{.*}}) 4421 return _mm256_mask_storeu_epi64(__P, __U, __A); 4422 } 4423 4424 void test_mm_mask_storeu_epi32(void *__P, __mmask8 __U, __m128i __A) { 4425 // CHECK-LABEL: @test_mm_mask_storeu_epi32 4426 // CHECK: @llvm.masked.store.v4i32.p0v4i32(<4 x i32> %{{.*}}, <4 x i32>* %{{.*}}, i32 1, <4 x i1> %{{.*}}) 4427 return _mm_mask_storeu_epi32(__P, __U, __A); 4428 } 4429 4430 void test_mm256_mask_storeu_epi32(void *__P, __mmask8 __U, __m256i __A) { 4431 // CHECK-LABEL: @test_mm256_mask_storeu_epi32 4432 // CHECK: @llvm.masked.store.v8i32.p0v8i32(<8 x i32> %{{.*}}, <8 x i32>* %{{.*}}, i32 1, <8 x i1> %{{.*}}) 4433 return _mm256_mask_storeu_epi32(__P, __U, __A); 4434 } 4435 4436 void test_mm_mask_storeu_pd(void *__P, __mmask8 __U, __m128d __A) { 4437 // CHECK-LABEL: @test_mm_mask_storeu_pd 4438 // CHECK: @llvm.masked.store.v2f64.p0v2f64(<2 x double> %{{.*}}, <2 x double>* %{{.*}}, i32 1, <2 x i1> %{{.*}}) 4439 return _mm_mask_storeu_pd(__P, __U, __A); 4440 } 4441 4442 void test_mm256_mask_storeu_pd(void *__P, __mmask8 __U, __m256d __A) { 4443 // CHECK-LABEL: @test_mm256_mask_storeu_pd 4444 // CHECK: @llvm.masked.store.v4f64.p0v4f64(<4 x double> %{{.*}}, <4 x double>* %{{.*}}, i32 1, <4 x i1> %{{.*}}) 4445 return _mm256_mask_storeu_pd(__P, __U, __A); 4446 } 4447 4448 void test_mm_mask_storeu_ps(void *__P, __mmask8 __U, __m128 __A) { 4449 // CHECK-LABEL: @test_mm_mask_storeu_ps 4450 // CHECK: @llvm.masked.store.v4f32.p0v4f32(<4 x float> %{{.*}}, <4 x float>* %{{.*}}, i32 1, <4 x i1> %{{.*}}) 4451 return _mm_mask_storeu_ps(__P, __U, __A); 4452 } 4453 4454 void test_mm256_mask_storeu_ps(void *__P, __mmask8 __U, __m256 __A) { 4455 // CHECK-LABEL: @test_mm256_mask_storeu_ps 4456 // CHECK: @llvm.masked.store.v8f32.p0v8f32(<8 x float> %{{.*}}, <8 x float>* %{{.*}}, i32 1, <8 x i1> %{{.*}}) 4457 return _mm256_mask_storeu_ps(__P, __U, __A); 4458 } 4459 4460 __m128d test_mm_mask_unpackhi_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 4461 // CHECK-LABEL: @test_mm_mask_unpackhi_pd 4462 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3> 4463 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}} 4464 return _mm_mask_unpackhi_pd(__W, __U, __A, __B); 4465 } 4466 4467 __m128d test_mm_maskz_unpackhi_pd(__mmask8 __U, __m128d __A, __m128d __B) { 4468 // CHECK-LABEL: @test_mm_maskz_unpackhi_pd 4469 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3> 4470 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}} 4471 return _mm_maskz_unpackhi_pd(__U, __A, __B); 4472 } 4473 4474 __m256d test_mm256_mask_unpackhi_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 4475 // CHECK-LABEL: @test_mm256_mask_unpackhi_pd 4476 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3> 4477 // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}} 4478 return _mm256_mask_unpackhi_pd(__W, __U, __A, __B); 4479 } 4480 4481 __m256d test_mm256_maskz_unpackhi_pd(__mmask8 __U, __m256d __A, __m256d __B) { 4482 // CHECK-LABEL: @test_mm256_maskz_unpackhi_pd 4483 // CHECK: shufflevector <8 x i1> %{{.*}}, <8 x i1> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 2, i32 3> 4484 // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}} 4485 return _mm256_maskz_unpackhi_pd(__U, __A, __B); 4486 } 4487 4488 __m128 test_mm_mask_unpackhi_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 4489 // CHECK-LABEL: @test_mm_mask_unpackhi_ps 4490 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 4491 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}} <4 x float> %{{.*}} 4492 return _mm_mask_unpackhi_ps(__W, __U, __A, __B); 4493 } 4494 4495 __m128 test_mm_maskz_unpackhi_ps(__mmask8 __U, __m128 __A, __m128 __B) { 4496 // CHECK-LABEL: @test_mm_maskz_unpackhi_ps 4497 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 4498 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}} <4 x float> %{{.*}} 4499 return _mm_maskz_unpackhi_ps(__U, __A, __B); 4500 } 4501 4502 __m256 test_mm256_mask_unpackhi_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 4503 // CHECK-LABEL: @test_mm256_mask_unpackhi_ps 4504 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15> 4505 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}} 4506 return _mm256_mask_unpackhi_ps(__W, __U, __A, __B); 4507 } 4508 4509 __m256 test_mm256_maskz_unpackhi_ps(__mmask8 __U, __m256 __A, __m256 __B) { 4510 // CHECK-LABEL: @test_mm256_maskz_unpackhi_ps 4511 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15> 4512 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}} 4513 return _mm256_maskz_unpackhi_ps(__U, __A, __B); 4514 } 4515 4516 __m128d test_mm_mask_unpacklo_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 4517 // CHECK-LABEL: @test_mm_mask_unpacklo_pd 4518 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 0, i32 2> 4519 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}} 4520 return _mm_mask_unpacklo_pd(__W, __U, __A, __B); 4521 } 4522 4523 __m128d test_mm_maskz_unpacklo_pd(__mmask8 __U, __m128d __A, __m128d __B) { 4524 // CHECK-LABEL: @test_mm_maskz_unpacklo_pd 4525 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 0, i32 2> 4526 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}} 4527 return _mm_maskz_unpacklo_pd(__U, __A, __B); 4528 } 4529 4530 __m256d test_mm256_mask_unpacklo_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 4531 // CHECK-LABEL: @test_mm256_mask_unpacklo_pd 4532 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 4533 // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}} 4534 return _mm256_mask_unpacklo_pd(__W, __U, __A, __B); 4535 } 4536 4537 __m256d test_mm256_maskz_unpacklo_pd(__mmask8 __U, __m256d __A, __m256d __B) { 4538 // CHECK-LABEL: @test_mm256_maskz_unpacklo_pd 4539 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 4540 // CHECK: select <4 x i1> %{{.*}} <4 x double> %{{.*}}, <4 x double> %{{.*}} 4541 return _mm256_maskz_unpacklo_pd(__U, __A, __B); 4542 } 4543 4544 __m128 test_mm_mask_unpacklo_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 4545 // CHECK-LABEL: @test_mm_mask_unpacklo_ps 4546 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 4547 // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}} 4548 return _mm_mask_unpacklo_ps(__W, __U, __A, __B); 4549 } 4550 4551 __m128 test_mm_maskz_unpacklo_ps(__mmask8 __U, __m128 __A, __m128 __B) { 4552 // CHECK-LABEL: @test_mm_maskz_unpacklo_ps 4553 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 4554 // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}} 4555 return _mm_maskz_unpacklo_ps(__U, __A, __B); 4556 } 4557 4558 __m256 test_mm256_mask_unpacklo_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 4559 // CHECK-LABEL: @test_mm256_mask_unpacklo_ps 4560 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13> 4561 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}} 4562 return _mm256_mask_unpacklo_ps(__W, __U, __A, __B); 4563 } 4564 4565 __m256 test_mm256_maskz_unpacklo_ps(__mmask8 __U, __m256 __A, __m256 __B) { 4566 // CHECK-LABEL: @test_mm256_maskz_unpacklo_ps 4567 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13> 4568 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}} 4569 return _mm256_maskz_unpacklo_ps(__U, __A, __B); 4570 } 4571 4572 __m128d test_mm_rcp14_pd(__m128d __A) { 4573 // CHECK-LABEL: @test_mm_rcp14_pd 4574 // CHECK: @llvm.x86.avx512.rcp14.pd.128 4575 return _mm_rcp14_pd(__A); 4576 } 4577 4578 __m128d test_mm_mask_rcp14_pd(__m128d __W, __mmask8 __U, __m128d __A) { 4579 // CHECK-LABEL: @test_mm_mask_rcp14_pd 4580 // CHECK: @llvm.x86.avx512.rcp14.pd.128 4581 return _mm_mask_rcp14_pd(__W, __U, __A); 4582 } 4583 4584 __m128d test_mm_maskz_rcp14_pd(__mmask8 __U, __m128d __A) { 4585 // CHECK-LABEL: @test_mm_maskz_rcp14_pd 4586 // CHECK: @llvm.x86.avx512.rcp14.pd.128 4587 return _mm_maskz_rcp14_pd(__U, __A); 4588 } 4589 4590 __m256d test_mm256_rcp14_pd(__m256d __A) { 4591 // CHECK-LABEL: @test_mm256_rcp14_pd 4592 // CHECK: @llvm.x86.avx512.rcp14.pd.256 4593 return _mm256_rcp14_pd(__A); 4594 } 4595 4596 __m256d test_mm256_mask_rcp14_pd(__m256d __W, __mmask8 __U, __m256d __A) { 4597 // CHECK-LABEL: @test_mm256_mask_rcp14_pd 4598 // CHECK: @llvm.x86.avx512.rcp14.pd.256 4599 return _mm256_mask_rcp14_pd(__W, __U, __A); 4600 } 4601 4602 __m256d test_mm256_maskz_rcp14_pd(__mmask8 __U, __m256d __A) { 4603 // CHECK-LABEL: @test_mm256_maskz_rcp14_pd 4604 // CHECK: @llvm.x86.avx512.rcp14.pd.256 4605 return _mm256_maskz_rcp14_pd(__U, __A); 4606 } 4607 4608 __m128 test_mm_rcp14_ps(__m128 __A) { 4609 // CHECK-LABEL: @test_mm_rcp14_ps 4610 // CHECK: @llvm.x86.avx512.rcp14.ps.128 4611 return _mm_rcp14_ps(__A); 4612 } 4613 4614 __m128 test_mm_mask_rcp14_ps(__m128 __W, __mmask8 __U, __m128 __A) { 4615 // CHECK-LABEL: @test_mm_mask_rcp14_ps 4616 // CHECK: @llvm.x86.avx512.rcp14.ps.128 4617 return _mm_mask_rcp14_ps(__W, __U, __A); 4618 } 4619 4620 __m128 test_mm_maskz_rcp14_ps(__mmask8 __U, __m128 __A) { 4621 // CHECK-LABEL: @test_mm_maskz_rcp14_ps 4622 // CHECK: @llvm.x86.avx512.rcp14.ps.128 4623 return _mm_maskz_rcp14_ps(__U, __A); 4624 } 4625 4626 __m256 test_mm256_rcp14_ps(__m256 __A) { 4627 // CHECK-LABEL: @test_mm256_rcp14_ps 4628 // CHECK: @llvm.x86.avx512.rcp14.ps.256 4629 return _mm256_rcp14_ps(__A); 4630 } 4631 4632 __m256 test_mm256_mask_rcp14_ps(__m256 __W, __mmask8 __U, __m256 __A) { 4633 // CHECK-LABEL: @test_mm256_mask_rcp14_ps 4634 // CHECK: @llvm.x86.avx512.rcp14.ps.256 4635 return _mm256_mask_rcp14_ps(__W, __U, __A); 4636 } 4637 4638 __m256 test_mm256_maskz_rcp14_ps(__mmask8 __U, __m256 __A) { 4639 // CHECK-LABEL: @test_mm256_maskz_rcp14_ps 4640 // CHECK: @llvm.x86.avx512.rcp14.ps.256 4641 return _mm256_maskz_rcp14_ps(__U, __A); 4642 } 4643 4644 __m128d test_mm_mask_permute_pd(__m128d __W, __mmask8 __U, __m128d __X) { 4645 // CHECK-LABEL: @test_mm_mask_permute_pd 4646 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <2 x i32> <i32 1, i32 0> 4647 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}} 4648 return _mm_mask_permute_pd(__W, __U, __X, 1); 4649 } 4650 4651 __m128d test_mm_maskz_permute_pd(__mmask8 __U, __m128d __X) { 4652 // CHECK-LABEL: @test_mm_maskz_permute_pd 4653 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> undef, <2 x i32> <i32 1, i32 0> 4654 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}} 4655 return _mm_maskz_permute_pd(__U, __X, 1); 4656 } 4657 4658 __m256d test_mm256_mask_permute_pd(__m256d __W, __mmask8 __U, __m256d __X) { 4659 // CHECK-LABEL: @test_mm256_mask_permute_pd 4660 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 3, i32 2> 4661 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}} 4662 return _mm256_mask_permute_pd(__W, __U, __X, 5); 4663 } 4664 4665 __m256d test_mm256_maskz_permute_pd(__mmask8 __U, __m256d __X) { 4666 // CHECK-LABEL: @test_mm256_maskz_permute_pd 4667 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 3, i32 2> 4668 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}} 4669 return _mm256_maskz_permute_pd(__U, __X, 5); 4670 } 4671 4672 __m128 test_mm_mask_permute_ps(__m128 __W, __mmask8 __U, __m128 __X) { 4673 // CHECK-LABEL: @test_mm_mask_permute_ps 4674 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0> 4675 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}} 4676 return _mm_mask_permute_ps(__W, __U, __X, 0x1b); 4677 } 4678 4679 __m128 test_mm_maskz_permute_ps(__mmask8 __U, __m128 __X) { 4680 // CHECK-LABEL: @test_mm_maskz_permute_ps 4681 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> undef, <4 x i32> <i32 3, i32 2, i32 1, i32 0> 4682 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}} 4683 return _mm_maskz_permute_ps(__U, __X, 0x1b); 4684 } 4685 4686 __m256 test_mm256_mask_permute_ps(__m256 __W, __mmask8 __U, __m256 __X) { 4687 // CHECK-LABEL: @test_mm256_mask_permute_ps 4688 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4> 4689 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}} 4690 return _mm256_mask_permute_ps(__W, __U, __X, 0x1b); 4691 } 4692 4693 __m256 test_mm256_maskz_permute_ps(__mmask8 __U, __m256 __X) { 4694 // CHECK-LABEL: @test_mm256_maskz_permute_ps 4695 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> undef, <8 x i32> <i32 3, i32 2, i32 1, i32 0, i32 7, i32 6, i32 5, i32 4> 4696 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}} 4697 return _mm256_maskz_permute_ps(__U, __X, 0x1b); 4698 } 4699 4700 __m128d test_mm_mask_permutevar_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128i __C) { 4701 // CHECK-LABEL: @test_mm_mask_permutevar_pd 4702 // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd 4703 return _mm_mask_permutevar_pd(__W, __U, __A, __C); 4704 } 4705 4706 __m128d test_mm_maskz_permutevar_pd(__mmask8 __U, __m128d __A, __m128i __C) { 4707 // CHECK-LABEL: @test_mm_maskz_permutevar_pd 4708 // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd 4709 return _mm_maskz_permutevar_pd(__U, __A, __C); 4710 } 4711 4712 __m256d test_mm256_mask_permutevar_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256i __C) { 4713 // CHECK-LABEL: @test_mm256_mask_permutevar_pd 4714 // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd.256 4715 return _mm256_mask_permutevar_pd(__W, __U, __A, __C); 4716 } 4717 4718 __m256d test_mm256_maskz_permutevar_pd(__mmask8 __U, __m256d __A, __m256i __C) { 4719 // CHECK-LABEL: @test_mm256_maskz_permutevar_pd 4720 // CHECK: @llvm.x86.avx512.mask.vpermilvar.pd.256 4721 return _mm256_maskz_permutevar_pd(__U, __A, __C); 4722 } 4723 4724 __m128 test_mm_mask_permutevar_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128i __C) { 4725 // CHECK-LABEL: @test_mm_mask_permutevar_ps 4726 // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps 4727 return _mm_mask_permutevar_ps(__W, __U, __A, __C); 4728 } 4729 4730 __m128 test_mm_maskz_permutevar_ps(__mmask8 __U, __m128 __A, __m128i __C) { 4731 // CHECK-LABEL: @test_mm_maskz_permutevar_ps 4732 // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps 4733 return _mm_maskz_permutevar_ps(__U, __A, __C); 4734 } 4735 4736 __m256 test_mm256_mask_permutevar_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256i __C) { 4737 // CHECK-LABEL: @test_mm256_mask_permutevar_ps 4738 // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps.256 4739 return _mm256_mask_permutevar_ps(__W, __U, __A, __C); 4740 } 4741 4742 __m256 test_mm256_maskz_permutevar_ps(__mmask8 __U, __m256 __A, __m256i __C) { 4743 // CHECK-LABEL: @test_mm256_maskz_permutevar_ps 4744 // CHECK: @llvm.x86.avx512.mask.vpermilvar.ps.256 4745 return _mm256_maskz_permutevar_ps(__U, __A, __C); 4746 } 4747 4748 __mmask8 test_mm_test_epi32_mask(__m128i __A, __m128i __B) { 4749 // CHECK-LABEL: @test_mm_test_epi32_mask 4750 // CHECK: @llvm.x86.avx512.ptestm.d.128 4751 return _mm_test_epi32_mask(__A, __B); 4752 } 4753 4754 __mmask8 test_mm_mask_test_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) { 4755 // CHECK-LABEL: @test_mm_mask_test_epi32_mask 4756 // CHECK: @llvm.x86.avx512.ptestm.d.128 4757 return _mm_mask_test_epi32_mask(__U, __A, __B); 4758 } 4759 4760 __mmask8 test_mm256_test_epi32_mask(__m256i __A, __m256i __B) { 4761 // CHECK-LABEL: @test_mm256_test_epi32_mask 4762 // CHECK: @llvm.x86.avx512.ptestm.d.256 4763 return _mm256_test_epi32_mask(__A, __B); 4764 } 4765 4766 __mmask8 test_mm256_mask_test_epi32_mask(__mmask8 __U, __m256i __A, __m256i __B) { 4767 // CHECK-LABEL: @test_mm256_mask_test_epi32_mask 4768 // CHECK: @llvm.x86.avx512.ptestm.d.256 4769 return _mm256_mask_test_epi32_mask(__U, __A, __B); 4770 } 4771 4772 __mmask8 test_mm_test_epi64_mask(__m128i __A, __m128i __B) { 4773 // CHECK-LABEL: @test_mm_test_epi64_mask 4774 // CHECK: @llvm.x86.avx512.ptestm.q.128 4775 return _mm_test_epi64_mask(__A, __B); 4776 } 4777 4778 __mmask8 test_mm_mask_test_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) { 4779 // CHECK-LABEL: @test_mm_mask_test_epi64_mask 4780 // CHECK: @llvm.x86.avx512.ptestm.q.128 4781 return _mm_mask_test_epi64_mask(__U, __A, __B); 4782 } 4783 4784 __mmask8 test_mm256_test_epi64_mask(__m256i __A, __m256i __B) { 4785 // CHECK-LABEL: @test_mm256_test_epi64_mask 4786 // CHECK: @llvm.x86.avx512.ptestm.q.256 4787 return _mm256_test_epi64_mask(__A, __B); 4788 } 4789 4790 __mmask8 test_mm256_mask_test_epi64_mask(__mmask8 __U, __m256i __A, __m256i __B) { 4791 // CHECK-LABEL: @test_mm256_mask_test_epi64_mask 4792 // CHECK: @llvm.x86.avx512.ptestm.q.256 4793 return _mm256_mask_test_epi64_mask(__U, __A, __B); 4794 } 4795 4796 __mmask8 test_mm_testn_epi32_mask(__m128i __A, __m128i __B) { 4797 // CHECK-LABEL: @test_mm_testn_epi32_mask 4798 // CHECK: @llvm.x86.avx512.ptestnm.d.128 4799 return _mm_testn_epi32_mask(__A, __B); 4800 } 4801 4802 __mmask8 test_mm_mask_testn_epi32_mask(__mmask8 __U, __m128i __A, __m128i __B) { 4803 // CHECK-LABEL: @test_mm_mask_testn_epi32_mask 4804 // CHECK: @llvm.x86.avx512.ptestnm.d.128 4805 return _mm_mask_testn_epi32_mask(__U, __A, __B); 4806 } 4807 4808 __mmask8 test_mm256_testn_epi32_mask(__m256i __A, __m256i __B) { 4809 // CHECK-LABEL: @test_mm256_testn_epi32_mask 4810 // CHECK: @llvm.x86.avx512.ptestnm.d.256 4811 return _mm256_testn_epi32_mask(__A, __B); 4812 } 4813 4814 __mmask8 test_mm256_mask_testn_epi32_mask(__mmask8 __U, __m256i __A, __m256i __B) { 4815 // CHECK-LABEL: @test_mm256_mask_testn_epi32_mask 4816 // CHECK: @llvm.x86.avx512.ptestnm.d.256 4817 return _mm256_mask_testn_epi32_mask(__U, __A, __B); 4818 } 4819 4820 __mmask8 test_mm_testn_epi64_mask(__m128i __A, __m128i __B) { 4821 // CHECK-LABEL: @test_mm_testn_epi64_mask 4822 // CHECK: @llvm.x86.avx512.ptestnm.q.128 4823 return _mm_testn_epi64_mask(__A, __B); 4824 } 4825 4826 __mmask8 test_mm_mask_testn_epi64_mask(__mmask8 __U, __m128i __A, __m128i __B) { 4827 // CHECK-LABEL: @test_mm_mask_testn_epi64_mask 4828 // CHECK: @llvm.x86.avx512.ptestnm.q.128 4829 return _mm_mask_testn_epi64_mask(__U, __A, __B); 4830 } 4831 4832 __mmask8 test_mm256_testn_epi64_mask(__m256i __A, __m256i __B) { 4833 // CHECK-LABEL: @test_mm256_testn_epi64_mask 4834 // CHECK: @llvm.x86.avx512.ptestnm.q.256 4835 return _mm256_testn_epi64_mask(__A, __B); 4836 } 4837 4838 __mmask8 test_mm256_mask_testn_epi64_mask(__mmask8 __U, __m256i __A, __m256i __B) { 4839 // CHECK-LABEL: @test_mm256_mask_testn_epi64_mask 4840 // CHECK: @llvm.x86.avx512.ptestnm.q.256 4841 return _mm256_mask_testn_epi64_mask(__U, __A, __B); 4842 } 4843 __m128i test_mm_mask_unpackhi_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 4844 // CHECK-LABEL: @test_mm_mask_unpackhi_epi32 4845 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 4846 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} 4847 return _mm_mask_unpackhi_epi32(__W, __U, __A, __B); 4848 } 4849 4850 __m128i test_mm_maskz_unpackhi_epi32(__mmask8 __U, __m128i __A, __m128i __B) { 4851 // CHECK-LABEL: @test_mm_maskz_unpackhi_epi32 4852 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 6, i32 3, i32 7> 4853 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} 4854 return _mm_maskz_unpackhi_epi32(__U, __A, __B); 4855 } 4856 4857 __m256i test_mm256_mask_unpackhi_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { 4858 // CHECK-LABEL: @test_mm256_mask_unpackhi_epi32 4859 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15> 4860 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} 4861 return _mm256_mask_unpackhi_epi32(__W, __U, __A, __B); 4862 } 4863 4864 __m256i test_mm256_maskz_unpackhi_epi32(__mmask8 __U, __m256i __A, __m256i __B) { 4865 // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi32 4866 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 2, i32 10, i32 3, i32 11, i32 6, i32 14, i32 7, i32 15> 4867 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} 4868 return _mm256_maskz_unpackhi_epi32(__U, __A, __B); 4869 } 4870 4871 __m128i test_mm_mask_unpackhi_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 4872 // CHECK-LABEL: @test_mm_mask_unpackhi_epi64 4873 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 3> 4874 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} 4875 return _mm_mask_unpackhi_epi64(__W, __U, __A, __B); 4876 } 4877 4878 __m128i test_mm_maskz_unpackhi_epi64(__mmask8 __U, __m128i __A, __m128i __B) { 4879 // CHECK-LABEL: @test_mm_maskz_unpackhi_epi64 4880 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 1, i32 3> 4881 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} 4882 return _mm_maskz_unpackhi_epi64(__U, __A, __B); 4883 } 4884 4885 __m256i test_mm256_mask_unpackhi_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { 4886 // CHECK-LABEL: @test_mm256_mask_unpackhi_epi64 4887 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 4888 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} 4889 return _mm256_mask_unpackhi_epi64(__W, __U, __A, __B); 4890 } 4891 4892 __m256i test_mm256_maskz_unpackhi_epi64(__mmask8 __U, __m256i __A, __m256i __B) { 4893 // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi64 4894 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 3, i32 7> 4895 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} 4896 return _mm256_maskz_unpackhi_epi64(__U, __A, __B); 4897 } 4898 4899 __m128i test_mm_mask_unpacklo_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 4900 // CHECK-LABEL: @test_mm_mask_unpacklo_epi32 4901 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 4902 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} 4903 return _mm_mask_unpacklo_epi32(__W, __U, __A, __B); 4904 } 4905 4906 __m128i test_mm_maskz_unpacklo_epi32(__mmask8 __U, __m128i __A, __m128i __B) { 4907 // CHECK-LABEL: @test_mm_maskz_unpacklo_epi32 4908 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 1, i32 5> 4909 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} 4910 return _mm_maskz_unpacklo_epi32(__U, __A, __B); 4911 } 4912 4913 __m256i test_mm256_mask_unpacklo_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { 4914 // CHECK-LABEL: @test_mm256_mask_unpacklo_epi32 4915 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13> 4916 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} 4917 return _mm256_mask_unpacklo_epi32(__W, __U, __A, __B); 4918 } 4919 4920 __m256i test_mm256_maskz_unpacklo_epi32(__mmask8 __U, __m256i __A, __m256i __B) { 4921 // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi32 4922 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 0, i32 8, i32 1, i32 9, i32 4, i32 12, i32 5, i32 13> 4923 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} 4924 return _mm256_maskz_unpacklo_epi32(__U, __A, __B); 4925 } 4926 4927 __m128i test_mm_mask_unpacklo_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 4928 // CHECK-LABEL: @test_mm_mask_unpacklo_epi64 4929 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 0, i32 2> 4930 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} 4931 return _mm_mask_unpacklo_epi64(__W, __U, __A, __B); 4932 } 4933 4934 __m128i test_mm_maskz_unpacklo_epi64(__mmask8 __U, __m128i __A, __m128i __B) { 4935 // CHECK-LABEL: @test_mm_maskz_unpacklo_epi64 4936 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 0, i32 2> 4937 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} 4938 return _mm_maskz_unpacklo_epi64(__U, __A, __B); 4939 } 4940 4941 __m256i test_mm256_mask_unpacklo_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { 4942 // CHECK-LABEL: @test_mm256_mask_unpacklo_epi64 4943 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 4944 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} 4945 return _mm256_mask_unpacklo_epi64(__W, __U, __A, __B); 4946 } 4947 4948 __m256i test_mm256_maskz_unpacklo_epi64(__mmask8 __U, __m256i __A, __m256i __B) { 4949 // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi64 4950 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> %{{.*}}, <4 x i32> <i32 0, i32 4, i32 2, i32 6> 4951 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} 4952 return _mm256_maskz_unpacklo_epi64(__U, __A, __B); 4953 } 4954 4955 __m128i test_mm_mask_sra_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 4956 // CHECK-LABEL: @test_mm_mask_sra_epi32 4957 // CHECK: @llvm.x86.avx512.mask.psra.d.128 4958 return _mm_mask_sra_epi32(__W, __U, __A, __B); 4959 } 4960 4961 __m128i test_mm_maskz_sra_epi32(__mmask8 __U, __m128i __A, __m128i __B) { 4962 // CHECK-LABEL: @test_mm_maskz_sra_epi32 4963 // CHECK: @llvm.x86.avx512.mask.psra.d.128 4964 return _mm_maskz_sra_epi32(__U, __A, __B); 4965 } 4966 4967 __m256i test_mm256_mask_sra_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) { 4968 // CHECK-LABEL: @test_mm256_mask_sra_epi32 4969 // CHECK: @llvm.x86.avx512.mask.psra.d.256 4970 return _mm256_mask_sra_epi32(__W, __U, __A, __B); 4971 } 4972 4973 __m256i test_mm256_maskz_sra_epi32(__mmask8 __U, __m256i __A, __m128i __B) { 4974 // CHECK-LABEL: @test_mm256_maskz_sra_epi32 4975 // CHECK: @llvm.x86.avx512.mask.psra.d.256 4976 return _mm256_maskz_sra_epi32(__U, __A, __B); 4977 } 4978 4979 __m128i test_mm_mask_srai_epi32(__m128i __W, __mmask8 __U, __m128i __A) { 4980 // CHECK-LABEL: @test_mm_mask_srai_epi32 4981 // CHECK: @llvm.x86.avx512.mask.psra.di.128 4982 return _mm_mask_srai_epi32(__W, __U, __A, 5); 4983 } 4984 4985 __m128i test_mm_maskz_srai_epi32(__mmask8 __U, __m128i __A) { 4986 // CHECK-LABEL: @test_mm_maskz_srai_epi32 4987 // CHECK: @llvm.x86.avx512.mask.psra.di.128 4988 return _mm_maskz_srai_epi32(__U, __A, 5); 4989 } 4990 4991 __m256i test_mm256_mask_srai_epi32(__m256i __W, __mmask8 __U, __m256i __A) { 4992 // CHECK-LABEL: @test_mm256_mask_srai_epi32 4993 // CHECK: @llvm.x86.avx512.mask.psra.di.256 4994 return _mm256_mask_srai_epi32(__W, __U, __A, 5); 4995 } 4996 4997 __m256i test_mm256_maskz_srai_epi32(__mmask8 __U, __m256i __A) { 4998 // CHECK-LABEL: @test_mm256_maskz_srai_epi32 4999 // CHECK: @llvm.x86.avx512.mask.psra.di.256 5000 return _mm256_maskz_srai_epi32(__U, __A, 5); 5001 } 5002 5003 __m128i test_mm_sra_epi64(__m128i __A, __m128i __B) { 5004 // CHECK-LABEL: @test_mm_sra_epi64 5005 // CHECK: @llvm.x86.avx512.mask.psra.q.128 5006 return _mm_sra_epi64(__A, __B); 5007 } 5008 5009 __m128i test_mm_mask_sra_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 5010 // CHECK-LABEL: @test_mm_mask_sra_epi64 5011 // CHECK: @llvm.x86.avx512.mask.psra.q.128 5012 return _mm_mask_sra_epi64(__W, __U, __A, __B); 5013 } 5014 5015 __m128i test_mm_maskz_sra_epi64(__mmask8 __U, __m128i __A, __m128i __B) { 5016 // CHECK-LABEL: @test_mm_maskz_sra_epi64 5017 // CHECK: @llvm.x86.avx512.mask.psra.q.128 5018 return _mm_maskz_sra_epi64(__U, __A, __B); 5019 } 5020 5021 __m256i test_mm256_sra_epi64(__m256i __A, __m128i __B) { 5022 // CHECK-LABEL: @test_mm256_sra_epi64 5023 // CHECK: @llvm.x86.avx512.mask.psra.q.256 5024 return _mm256_sra_epi64(__A, __B); 5025 } 5026 5027 __m256i test_mm256_mask_sra_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) { 5028 // CHECK-LABEL: @test_mm256_mask_sra_epi64 5029 // CHECK: @llvm.x86.avx512.mask.psra.q.256 5030 return _mm256_mask_sra_epi64(__W, __U, __A, __B); 5031 } 5032 5033 __m256i test_mm256_maskz_sra_epi64(__mmask8 __U, __m256i __A, __m128i __B) { 5034 // CHECK-LABEL: @test_mm256_maskz_sra_epi64 5035 // CHECK: @llvm.x86.avx512.mask.psra.q.256 5036 return _mm256_maskz_sra_epi64(__U, __A, __B); 5037 } 5038 5039 __m128i test_mm_srai_epi64(__m128i __A) { 5040 // CHECK-LABEL: @test_mm_srai_epi64 5041 // CHECK: @llvm.x86.avx512.mask.psra.qi.128 5042 return _mm_srai_epi64(__A, 5); 5043 } 5044 5045 __m128i test_mm_mask_srai_epi64(__m128i __W, __mmask8 __U, __m128i __A) { 5046 // CHECK-LABEL: @test_mm_mask_srai_epi64 5047 // CHECK: @llvm.x86.avx512.mask.psra.qi.128 5048 return _mm_mask_srai_epi64(__W, __U, __A, 5); 5049 } 5050 5051 __m128i test_mm_maskz_srai_epi64(__mmask8 __U, __m128i __A) { 5052 // CHECK-LABEL: @test_mm_maskz_srai_epi64 5053 // CHECK: @llvm.x86.avx512.mask.psra.qi.128 5054 return _mm_maskz_srai_epi64(__U, __A, 5); 5055 } 5056 5057 __m256i test_mm256_srai_epi64(__m256i __A) { 5058 // CHECK-LABEL: @test_mm256_srai_epi64 5059 // CHECK: @llvm.x86.avx512.mask.psra.qi.256 5060 return _mm256_srai_epi64(__A, 5); 5061 } 5062 5063 __m256i test_mm256_mask_srai_epi64(__m256i __W, __mmask8 __U, __m256i __A) { 5064 // CHECK-LABEL: @test_mm256_mask_srai_epi64 5065 // CHECK: @llvm.x86.avx512.mask.psra.qi.256 5066 return _mm256_mask_srai_epi64(__W, __U, __A, 5); 5067 } 5068 5069 __m256i test_mm256_maskz_srai_epi64(__mmask8 __U, __m256i __A) { 5070 // CHECK-LABEL: @test_mm256_maskz_srai_epi64 5071 // CHECK: @llvm.x86.avx512.mask.psra.qi.256 5072 return _mm256_maskz_srai_epi64(__U, __A, 5); 5073 } 5074 5075 __m128i test_mm_ternarylogic_epi32(__m128i __A, __m128i __B, __m128i __C) { 5076 // CHECK-LABEL: @test_mm_ternarylogic_epi32 5077 // CHECK: @llvm.x86.avx512.mask.pternlog.d.128 5078 return _mm_ternarylogic_epi32(__A, __B, __C, 4); 5079 } 5080 5081 __m128i test_mm_mask_ternarylogic_epi32(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) { 5082 // CHECK-LABEL: @test_mm_mask_ternarylogic_epi32 5083 // CHECK: @llvm.x86.avx512.mask.pternlog.d.128 5084 return _mm_mask_ternarylogic_epi32(__A, __U, __B, __C, 4); 5085 } 5086 5087 __m128i test_mm_maskz_ternarylogic_epi32(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) { 5088 // CHECK-LABEL: @test_mm_maskz_ternarylogic_epi32 5089 // CHECK: @llvm.x86.avx512.maskz.pternlog.d.128 5090 return _mm_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4); 5091 } 5092 5093 __m256i test_mm256_ternarylogic_epi32(__m256i __A, __m256i __B, __m256i __C) { 5094 // CHECK-LABEL: @test_mm256_ternarylogic_epi32 5095 // CHECK: @llvm.x86.avx512.mask.pternlog.d.256 5096 return _mm256_ternarylogic_epi32(__A, __B, __C, 4); 5097 } 5098 5099 __m256i test_mm256_mask_ternarylogic_epi32(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) { 5100 // CHECK-LABEL: @test_mm256_mask_ternarylogic_epi32 5101 // CHECK: @llvm.x86.avx512.mask.pternlog.d.256 5102 return _mm256_mask_ternarylogic_epi32(__A, __U, __B, __C, 4); 5103 } 5104 5105 __m256i test_mm256_maskz_ternarylogic_epi32(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) { 5106 // CHECK-LABEL: @test_mm256_maskz_ternarylogic_epi32 5107 // CHECK: @llvm.x86.avx512.maskz.pternlog.d.256 5108 return _mm256_maskz_ternarylogic_epi32(__U, __A, __B, __C, 4); 5109 } 5110 5111 __m128i test_mm_ternarylogic_epi64(__m128i __A, __m128i __B, __m128i __C) { 5112 // CHECK-LABEL: @test_mm_ternarylogic_epi64 5113 // CHECK: @llvm.x86.avx512.mask.pternlog.q.128 5114 return _mm_ternarylogic_epi64(__A, __B, __C, 4); 5115 } 5116 5117 __m128i test_mm_mask_ternarylogic_epi64(__m128i __A, __mmask8 __U, __m128i __B, __m128i __C) { 5118 // CHECK-LABEL: @test_mm_mask_ternarylogic_epi64 5119 // CHECK: @llvm.x86.avx512.mask.pternlog.q.128 5120 return _mm_mask_ternarylogic_epi64(__A, __U, __B, __C, 4); 5121 } 5122 5123 __m128i test_mm_maskz_ternarylogic_epi64(__mmask8 __U, __m128i __A, __m128i __B, __m128i __C) { 5124 // CHECK-LABEL: @test_mm_maskz_ternarylogic_epi64 5125 // CHECK: @llvm.x86.avx512.maskz.pternlog.q.128 5126 return _mm_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4); 5127 } 5128 5129 __m256i test_mm256_ternarylogic_epi64(__m256i __A, __m256i __B, __m256i __C) { 5130 // CHECK-LABEL: @test_mm256_ternarylogic_epi64 5131 // CHECK: @llvm.x86.avx512.mask.pternlog.q.256 5132 return _mm256_ternarylogic_epi64(__A, __B, __C, 4); 5133 } 5134 5135 __m256i test_mm256_mask_ternarylogic_epi64(__m256i __A, __mmask8 __U, __m256i __B, __m256i __C) { 5136 // CHECK-LABEL: @test_mm256_mask_ternarylogic_epi64 5137 // CHECK: @llvm.x86.avx512.mask.pternlog.q.256 5138 return _mm256_mask_ternarylogic_epi64(__A, __U, __B, __C, 4); 5139 } 5140 5141 __m256i test_mm256_maskz_ternarylogic_epi64(__mmask8 __U, __m256i __A, __m256i __B, __m256i __C) { 5142 // CHECK-LABEL: @test_mm256_maskz_ternarylogic_epi64 5143 // CHECK: @llvm.x86.avx512.maskz.pternlog.q.256 5144 return _mm256_maskz_ternarylogic_epi64(__U, __A, __B, __C, 4); 5145 } 5146 __m256 test_mm256_shuffle_f32x4(__m256 __A, __m256 __B) { 5147 // CHECK-LABEL: @test_mm256_shuffle_f32x4 5148 // CHECK: @llvm.x86.avx512.mask.shuf.f32x4 5149 return _mm256_shuffle_f32x4(__A, __B, 3); 5150 } 5151 5152 __m256 test_mm256_mask_shuffle_f32x4(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 5153 // CHECK-LABEL: @test_mm256_mask_shuffle_f32x4 5154 // CHECK: @llvm.x86.avx512.mask.shuf.f32x4 5155 return _mm256_mask_shuffle_f32x4(__W, __U, __A, __B, 3); 5156 } 5157 5158 __m256 test_mm256_maskz_shuffle_f32x4(__mmask8 __U, __m256 __A, __m256 __B) { 5159 // CHECK-LABEL: @test_mm256_maskz_shuffle_f32x4 5160 // CHECK: @llvm.x86.avx512.mask.shuf.f32x4 5161 return _mm256_maskz_shuffle_f32x4(__U, __A, __B, 3); 5162 } 5163 5164 __m256d test_mm256_shuffle_f64x2(__m256d __A, __m256d __B) { 5165 // CHECK-LABEL: @test_mm256_shuffle_f64x2 5166 // CHECK: @llvm.x86.avx512.mask.shuf.f64x2 5167 return _mm256_shuffle_f64x2(__A, __B, 3); 5168 } 5169 5170 __m256d test_mm256_mask_shuffle_f64x2(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 5171 // CHECK-LABEL: @test_mm256_mask_shuffle_f64x2 5172 // CHECK: @llvm.x86.avx512.mask.shuf.f64x2 5173 return _mm256_mask_shuffle_f64x2(__W, __U, __A, __B, 3); 5174 } 5175 5176 __m256d test_mm256_maskz_shuffle_f64x2(__mmask8 __U, __m256d __A, __m256d __B) { 5177 // CHECK-LABEL: @test_mm256_maskz_shuffle_f64x2 5178 // CHECK: @llvm.x86.avx512.mask.shuf.f64x2 5179 return _mm256_maskz_shuffle_f64x2(__U, __A, __B, 3); 5180 } 5181 5182 __m256i test_mm256_shuffle_i32x4(__m256i __A, __m256i __B) { 5183 // CHECK-LABEL: @test_mm256_shuffle_i32x4 5184 // CHECK: @llvm.x86.avx512.mask.shuf.i32x4 5185 return _mm256_shuffle_i32x4(__A, __B, 3); 5186 } 5187 5188 __m256i test_mm256_mask_shuffle_i32x4(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { 5189 // CHECK-LABEL: @test_mm256_mask_shuffle_i32x4 5190 // CHECK: @llvm.x86.avx512.mask.shuf.i32x4 5191 return _mm256_mask_shuffle_i32x4(__W, __U, __A, __B, 3); 5192 } 5193 5194 __m256i test_mm256_maskz_shuffle_i32x4(__mmask8 __U, __m256i __A, __m256i __B) { 5195 // CHECK-LABEL: @test_mm256_maskz_shuffle_i32x4 5196 // CHECK: @llvm.x86.avx512.mask.shuf.i32x4 5197 return _mm256_maskz_shuffle_i32x4(__U, __A, __B, 3); 5198 } 5199 5200 __m256i test_mm256_shuffle_i64x2(__m256i __A, __m256i __B) { 5201 // CHECK-LABEL: @test_mm256_shuffle_i64x2 5202 // CHECK: @llvm.x86.avx512.mask.shuf.i64x2 5203 return _mm256_shuffle_i64x2(__A, __B, 3); 5204 } 5205 5206 __m256i test_mm256_mask_shuffle_i64x2(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { 5207 // CHECK-LABEL: @test_mm256_mask_shuffle_i64x2 5208 // CHECK: @llvm.x86.avx512.mask.shuf.i64x2 5209 return _mm256_mask_shuffle_i64x2(__W, __U, __A, __B, 3); 5210 } 5211 5212 __m256i test_mm256_maskz_shuffle_i64x2(__mmask8 __U, __m256i __A, __m256i __B) { 5213 // CHECK-LABEL: @test_mm256_maskz_shuffle_i64x2 5214 // CHECK: @llvm.x86.avx512.mask.shuf.i64x2 5215 return _mm256_maskz_shuffle_i64x2(__U, __A, __B, 3); 5216 } 5217 5218 __m128d test_mm_mask_shuffle_pd(__m128d __W, __mmask8 __U, __m128d __A, __m128d __B) { 5219 // CHECK-LABEL: @test_mm_mask_shuffle_pd 5220 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3> 5221 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}} 5222 return _mm_mask_shuffle_pd(__W, __U, __A, __B, 3); 5223 } 5224 5225 __m128d test_mm_maskz_shuffle_pd(__mmask8 __U, __m128d __A, __m128d __B) { 5226 // CHECK-LABEL: @test_mm_maskz_shuffle_pd 5227 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <2 x i32> <i32 1, i32 3> 5228 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}} 5229 return _mm_maskz_shuffle_pd(__U, __A, __B, 3); 5230 } 5231 5232 __m256d test_mm256_mask_shuffle_pd(__m256d __W, __mmask8 __U, __m256d __A, __m256d __B) { 5233 // CHECK-LABEL: @test_mm256_mask_shuffle_pd 5234 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 2, i32 6> 5235 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}} 5236 return _mm256_mask_shuffle_pd(__W, __U, __A, __B, 3); 5237 } 5238 5239 __m256d test_mm256_maskz_shuffle_pd(__mmask8 __U, __m256d __A, __m256d __B) { 5240 // CHECK-LABEL: @test_mm256_maskz_shuffle_pd 5241 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> %{{.*}}, <4 x i32> <i32 1, i32 5, i32 2, i32 6> 5242 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}} 5243 return _mm256_maskz_shuffle_pd(__U, __A, __B, 3); 5244 } 5245 5246 __m128 test_mm_mask_shuffle_ps(__m128 __W, __mmask8 __U, __m128 __A, __m128 __B) { 5247 // CHECK-LABEL: @test_mm_mask_shuffle_ps 5248 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 4, i32 4> 5249 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}} 5250 return _mm_mask_shuffle_ps(__W, __U, __A, __B, 4); 5251 } 5252 5253 __m128 test_mm_maskz_shuffle_ps(__mmask8 __U, __m128 __A, __m128 __B) { 5254 // CHECK-LABEL: @test_mm_maskz_shuffle_ps 5255 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 1, i32 4, i32 4> 5256 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}} 5257 return _mm_maskz_shuffle_ps(__U, __A, __B, 4); 5258 } 5259 5260 __m256 test_mm256_mask_shuffle_ps(__m256 __W, __mmask8 __U, __m256 __A, __m256 __B) { 5261 // CHECK-LABEL: @test_mm256_mask_shuffle_ps 5262 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 8, i32 8, i32 4, i32 5, i32 12, i32 12> 5263 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}} 5264 return _mm256_mask_shuffle_ps(__W, __U, __A, __B, 4); 5265 } 5266 5267 __m256 test_mm256_maskz_shuffle_ps(__mmask8 __U, __m256 __A, __m256 __B) { 5268 // CHECK-LABEL: @test_mm256_maskz_shuffle_ps 5269 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 1, i32 8, i32 8, i32 4, i32 5, i32 12, i32 12> 5270 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}} 5271 return _mm256_maskz_shuffle_ps(__U, __A, __B, 4); 5272 } 5273 5274 __m128d test_mm_rsqrt14_pd(__m128d __A) { 5275 // CHECK-LABEL: @test_mm_rsqrt14_pd 5276 // CHECK: @llvm.x86.avx512.rsqrt14.pd.128 5277 return _mm_rsqrt14_pd(__A); 5278 } 5279 5280 __m128d test_mm_mask_rsqrt14_pd(__m128d __W, __mmask8 __U, __m128d __A) { 5281 // CHECK-LABEL: @test_mm_mask_rsqrt14_pd 5282 // CHECK: @llvm.x86.avx512.rsqrt14.pd.128 5283 return _mm_mask_rsqrt14_pd(__W, __U, __A); 5284 } 5285 5286 __m128d test_mm_maskz_rsqrt14_pd(__mmask8 __U, __m128d __A) { 5287 // CHECK-LABEL: @test_mm_maskz_rsqrt14_pd 5288 // CHECK: @llvm.x86.avx512.rsqrt14.pd.128 5289 return _mm_maskz_rsqrt14_pd(__U, __A); 5290 } 5291 5292 __m256d test_mm256_rsqrt14_pd(__m256d __A) { 5293 // CHECK-LABEL: @test_mm256_rsqrt14_pd 5294 // CHECK: @llvm.x86.avx512.rsqrt14.pd.256 5295 return _mm256_rsqrt14_pd(__A); 5296 } 5297 5298 __m256d test_mm256_mask_rsqrt14_pd(__m256d __W, __mmask8 __U, __m256d __A) { 5299 // CHECK-LABEL: @test_mm256_mask_rsqrt14_pd 5300 // CHECK: @llvm.x86.avx512.rsqrt14.pd.256 5301 return _mm256_mask_rsqrt14_pd(__W, __U, __A); 5302 } 5303 5304 __m256d test_mm256_maskz_rsqrt14_pd(__mmask8 __U, __m256d __A) { 5305 // CHECK-LABEL: @test_mm256_maskz_rsqrt14_pd 5306 // CHECK: @llvm.x86.avx512.rsqrt14.pd.256 5307 return _mm256_maskz_rsqrt14_pd(__U, __A); 5308 } 5309 5310 __m128 test_mm_rsqrt14_ps(__m128 __A) { 5311 // CHECK-LABEL: @test_mm_rsqrt14_ps 5312 // CHECK: @llvm.x86.avx512.rsqrt14.ps.128 5313 return _mm_rsqrt14_ps(__A); 5314 } 5315 5316 __m128 test_mm_mask_rsqrt14_ps(__m128 __W, __mmask8 __U, __m128 __A) { 5317 // CHECK-LABEL: @test_mm_mask_rsqrt14_ps 5318 // CHECK: @llvm.x86.avx512.rsqrt14.ps.128 5319 return _mm_mask_rsqrt14_ps(__W, __U, __A); 5320 } 5321 5322 __m128 test_mm_maskz_rsqrt14_ps(__mmask8 __U, __m128 __A) { 5323 // CHECK-LABEL: @test_mm_maskz_rsqrt14_ps 5324 // CHECK: @llvm.x86.avx512.rsqrt14.ps.128 5325 return _mm_maskz_rsqrt14_ps(__U, __A); 5326 } 5327 5328 __m256 test_mm256_rsqrt14_ps(__m256 __A) { 5329 // CHECK-LABEL: @test_mm256_rsqrt14_ps 5330 // CHECK: @llvm.x86.avx512.rsqrt14.ps.256 5331 return _mm256_rsqrt14_ps(__A); 5332 } 5333 5334 __m256 test_mm256_mask_rsqrt14_ps(__m256 __W, __mmask8 __U, __m256 __A) { 5335 // CHECK-LABEL: @test_mm256_mask_rsqrt14_ps 5336 // CHECK: @llvm.x86.avx512.rsqrt14.ps.256 5337 return _mm256_mask_rsqrt14_ps(__W, __U, __A); 5338 } 5339 5340 __m256 test_mm256_maskz_rsqrt14_ps(__mmask8 __U, __m256 __A) { 5341 // CHECK-LABEL: @test_mm256_maskz_rsqrt14_ps 5342 // CHECK: @llvm.x86.avx512.rsqrt14.ps.256 5343 return _mm256_maskz_rsqrt14_ps(__U, __A); 5344 } 5345 5346 __m256 test_mm256_broadcast_f32x4(__m128 __A) { 5347 // CHECK-LABEL: @test_mm256_broadcast_f32x4 5348 // CHECK: @llvm.x86.avx512.mask.broadcastf32x4 5349 return _mm256_broadcast_f32x4(__A); 5350 } 5351 5352 __m256 test_mm256_mask_broadcast_f32x4(__m256 __O, __mmask8 __M, __m128 __A) { 5353 // CHECK-LABEL: @test_mm256_mask_broadcast_f32x4 5354 // CHECK: @llvm.x86.avx512.mask.broadcastf32x4 5355 return _mm256_mask_broadcast_f32x4(__O, __M, __A); 5356 } 5357 5358 __m256 test_mm256_maskz_broadcast_f32x4(__mmask8 __M, __m128 __A) { 5359 // CHECK-LABEL: @test_mm256_maskz_broadcast_f32x4 5360 // CHECK: @llvm.x86.avx512.mask.broadcastf32x4 5361 return _mm256_maskz_broadcast_f32x4(__M, __A); 5362 } 5363 5364 __m256i test_mm256_broadcast_i32x4(__m128i __A) { 5365 // CHECK-LABEL: @test_mm256_broadcast_i32x4 5366 // CHECK: @llvm.x86.avx512.mask.broadcasti32x4 5367 return _mm256_broadcast_i32x4(__A); 5368 } 5369 5370 __m256i test_mm256_mask_broadcast_i32x4(__m256i __O, __mmask8 __M, __m128i __A) { 5371 // CHECK-LABEL: @test_mm256_mask_broadcast_i32x4 5372 // CHECK: @llvm.x86.avx512.mask.broadcasti32x4 5373 return _mm256_mask_broadcast_i32x4(__O, __M, __A); 5374 } 5375 5376 __m256i test_mm256_maskz_broadcast_i32x4(__mmask8 __M, __m128i __A) { 5377 // CHECK-LABEL: @test_mm256_maskz_broadcast_i32x4 5378 // CHECK: @llvm.x86.avx512.mask.broadcasti32x4 5379 return _mm256_maskz_broadcast_i32x4(__M, __A); 5380 } 5381 5382 __m256d test_mm256_mask_broadcastsd_pd(__m256d __O, __mmask8 __M, __m128d __A) { 5383 // CHECK-LABEL: @test_mm256_mask_broadcastsd_pd 5384 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> zeroinitializer 5385 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}} 5386 return _mm256_mask_broadcastsd_pd(__O, __M, __A); 5387 } 5388 5389 __m256d test_mm256_maskz_broadcastsd_pd(__mmask8 __M, __m128d __A) { 5390 // CHECK-LABEL: @test_mm256_maskz_broadcastsd_pd 5391 // CHECK: shufflevector <2 x double> %{{.*}}, <2 x double> %{{.*}}, <4 x i32> zeroinitializer 5392 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}} 5393 return _mm256_maskz_broadcastsd_pd(__M, __A); 5394 } 5395 5396 __m128 test_mm_mask_broadcastss_ps(__m128 __O, __mmask8 __M, __m128 __A) { 5397 // CHECK-LABEL: @test_mm_mask_broadcastss_ps 5398 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer 5399 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}} 5400 return _mm_mask_broadcastss_ps(__O, __M, __A); 5401 } 5402 5403 __m128 test_mm_maskz_broadcastss_ps(__mmask8 __M, __m128 __A) { 5404 // CHECK-LABEL: @test_mm_maskz_broadcastss_ps 5405 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> zeroinitializer 5406 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}} 5407 return _mm_maskz_broadcastss_ps(__M, __A); 5408 } 5409 5410 __m256 test_mm256_mask_broadcastss_ps(__m256 __O, __mmask8 __M, __m128 __A) { 5411 // CHECK-LABEL: @test_mm256_mask_broadcastss_ps 5412 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> zeroinitializer 5413 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}} 5414 return _mm256_mask_broadcastss_ps(__O, __M, __A); 5415 } 5416 5417 __m256 test_mm256_maskz_broadcastss_ps(__mmask8 __M, __m128 __A) { 5418 // CHECK-LABEL: @test_mm256_maskz_broadcastss_ps 5419 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <8 x i32> zeroinitializer 5420 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}} 5421 return _mm256_maskz_broadcastss_ps(__M, __A); 5422 } 5423 5424 __m128i test_mm_mask_broadcastd_epi32(__m128i __O, __mmask8 __M, __m128i __A) { 5425 // CHECK-LABEL: @test_mm_mask_broadcastd_epi32 5426 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer 5427 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} 5428 return _mm_mask_broadcastd_epi32(__O, __M, __A); 5429 } 5430 5431 __m128i test_mm_maskz_broadcastd_epi32(__mmask8 __M, __m128i __A) { 5432 // CHECK-LABEL: @test_mm_maskz_broadcastd_epi32 5433 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> zeroinitializer 5434 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} 5435 return _mm_maskz_broadcastd_epi32(__M, __A); 5436 } 5437 5438 __m256i test_mm256_mask_broadcastd_epi32(__m256i __O, __mmask8 __M, __m128i __A) { 5439 // CHECK-LABEL: @test_mm256_mask_broadcastd_epi32 5440 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> zeroinitializer 5441 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} 5442 return _mm256_mask_broadcastd_epi32(__O, __M, __A); 5443 } 5444 5445 __m256i test_mm256_maskz_broadcastd_epi32(__mmask8 __M, __m128i __A) { 5446 // CHECK-LABEL: @test_mm256_maskz_broadcastd_epi32 5447 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <8 x i32> zeroinitializer 5448 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} 5449 return _mm256_maskz_broadcastd_epi32(__M, __A); 5450 } 5451 5452 __m128i test_mm_mask_broadcastq_epi64(__m128i __O, __mmask8 __M, __m128i __A) { 5453 // CHECK-LABEL: @test_mm_mask_broadcastq_epi64 5454 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> zeroinitializer 5455 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} 5456 return _mm_mask_broadcastq_epi64(__O, __M, __A); 5457 } 5458 5459 __m128i test_mm_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) { 5460 // CHECK-LABEL: @test_mm_maskz_broadcastq_epi64 5461 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> zeroinitializer 5462 // CHECK: select <2 x i1> %{{.*}}, <2 x i64> %{{.*}}, <2 x i64> %{{.*}} 5463 return _mm_maskz_broadcastq_epi64(__M, __A); 5464 } 5465 5466 __m256i test_mm256_mask_broadcastq_epi64(__m256i __O, __mmask8 __M, __m128i __A) { 5467 // CHECK-LABEL: @test_mm256_mask_broadcastq_epi64 5468 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> zeroinitializer 5469 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} 5470 return _mm256_mask_broadcastq_epi64(__O, __M, __A); 5471 } 5472 5473 __m256i test_mm256_maskz_broadcastq_epi64(__mmask8 __M, __m128i __A) { 5474 // CHECK-LABEL: @test_mm256_maskz_broadcastq_epi64 5475 // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <4 x i32> zeroinitializer 5476 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} 5477 return _mm256_maskz_broadcastq_epi64(__M, __A); 5478 } 5479 5480 __m128i test_mm_cvtsepi32_epi8(__m128i __A) { 5481 // CHECK-LABEL: @test_mm_cvtsepi32_epi8 5482 // CHECK: @llvm.x86.avx512.mask.pmovs.db.128 5483 return _mm_cvtsepi32_epi8(__A); 5484 } 5485 5486 __m128i test_mm_mask_cvtsepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) { 5487 // CHECK-LABEL: @test_mm_mask_cvtsepi32_epi8 5488 // CHECK: @llvm.x86.avx512.mask.pmovs.db.128 5489 return _mm_mask_cvtsepi32_epi8(__O, __M, __A); 5490 } 5491 5492 __m128i test_mm_maskz_cvtsepi32_epi8(__mmask8 __M, __m128i __A) { 5493 // CHECK-LABEL: @test_mm_maskz_cvtsepi32_epi8 5494 // CHECK: @llvm.x86.avx512.mask.pmovs.db.128 5495 return _mm_maskz_cvtsepi32_epi8(__M, __A); 5496 } 5497 5498 void test_mm_mask_cvtsepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) { 5499 // CHECK-LABEL: @test_mm_mask_cvtsepi32_storeu_epi8 5500 // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.128 5501 return _mm_mask_cvtsepi32_storeu_epi8(__P, __M, __A); 5502 } 5503 5504 __m128i test_mm256_cvtsepi32_epi8(__m256i __A) { 5505 // CHECK-LABEL: @test_mm256_cvtsepi32_epi8 5506 // CHECK: @llvm.x86.avx512.mask.pmovs.db.256 5507 return _mm256_cvtsepi32_epi8(__A); 5508 } 5509 5510 __m128i test_mm256_mask_cvtsepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) { 5511 // CHECK-LABEL: @test_mm256_mask_cvtsepi32_epi8 5512 // CHECK: @llvm.x86.avx512.mask.pmovs.db.256 5513 return _mm256_mask_cvtsepi32_epi8(__O, __M, __A); 5514 } 5515 5516 __m128i test_mm256_maskz_cvtsepi32_epi8(__mmask8 __M, __m256i __A) { 5517 // CHECK-LABEL: @test_mm256_maskz_cvtsepi32_epi8 5518 // CHECK: @llvm.x86.avx512.mask.pmovs.db.256 5519 return _mm256_maskz_cvtsepi32_epi8(__M, __A); 5520 } 5521 5522 void test_mm256_mask_cvtsepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) { 5523 // CHECK-LABEL: @test_mm256_mask_cvtsepi32_storeu_epi8 5524 // CHECK: @llvm.x86.avx512.mask.pmovs.db.mem.256 5525 return _mm256_mask_cvtsepi32_storeu_epi8(__P, __M, __A); 5526 } 5527 5528 __m128i test_mm_cvtsepi32_epi16(__m128i __A) { 5529 // CHECK-LABEL: @test_mm_cvtsepi32_epi16 5530 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128 5531 return _mm_cvtsepi32_epi16(__A); 5532 } 5533 5534 __m128i test_mm_mask_cvtsepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) { 5535 // CHECK-LABEL: @test_mm_mask_cvtsepi32_epi16 5536 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128 5537 return _mm_mask_cvtsepi32_epi16(__O, __M, __A); 5538 } 5539 5540 __m128i test_mm_maskz_cvtsepi32_epi16(__mmask8 __M, __m128i __A) { 5541 // CHECK-LABEL: @test_mm_maskz_cvtsepi32_epi16 5542 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.128 5543 return _mm_maskz_cvtsepi32_epi16(__M, __A); 5544 } 5545 5546 void test_mm_mask_cvtsepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) { 5547 // CHECK-LABEL: @test_mm_mask_cvtsepi32_storeu_epi16 5548 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.128 5549 return _mm_mask_cvtsepi32_storeu_epi16(__P, __M, __A); 5550 } 5551 5552 __m128i test_mm256_cvtsepi32_epi16(__m256i __A) { 5553 // CHECK-LABEL: @test_mm256_cvtsepi32_epi16 5554 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256 5555 return _mm256_cvtsepi32_epi16(__A); 5556 } 5557 5558 __m128i test_mm256_mask_cvtsepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) { 5559 // CHECK-LABEL: @test_mm256_mask_cvtsepi32_epi16 5560 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256 5561 return _mm256_mask_cvtsepi32_epi16(__O, __M, __A); 5562 } 5563 5564 __m128i test_mm256_maskz_cvtsepi32_epi16(__mmask8 __M, __m256i __A) { 5565 // CHECK-LABEL: @test_mm256_maskz_cvtsepi32_epi16 5566 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.256 5567 return _mm256_maskz_cvtsepi32_epi16(__M, __A); 5568 } 5569 5570 void test_mm256_mask_cvtsepi32_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) { 5571 // CHECK-LABEL: @test_mm256_mask_cvtsepi32_storeu_epi16 5572 // CHECK: @llvm.x86.avx512.mask.pmovs.dw.mem.256 5573 return _mm256_mask_cvtsepi32_storeu_epi16(__P, __M, __A); 5574 } 5575 5576 __m128i test_mm_cvtsepi64_epi8(__m128i __A) { 5577 // CHECK-LABEL: @test_mm_cvtsepi64_epi8 5578 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128 5579 return _mm_cvtsepi64_epi8(__A); 5580 } 5581 5582 __m128i test_mm_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) { 5583 // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi8 5584 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128 5585 return _mm_mask_cvtsepi64_epi8(__O, __M, __A); 5586 } 5587 5588 __m128i test_mm_maskz_cvtsepi64_epi8(__mmask8 __M, __m128i __A) { 5589 // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi8 5590 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.128 5591 return _mm_maskz_cvtsepi64_epi8(__M, __A); 5592 } 5593 5594 void test_mm_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) { 5595 // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi8 5596 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.128 5597 return _mm_mask_cvtsepi64_storeu_epi8(__P, __M, __A); 5598 } 5599 5600 __m128i test_mm256_cvtsepi64_epi8(__m256i __A) { 5601 // CHECK-LABEL: @test_mm256_cvtsepi64_epi8 5602 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256 5603 return _mm256_cvtsepi64_epi8(__A); 5604 } 5605 5606 __m128i test_mm256_mask_cvtsepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) { 5607 // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi8 5608 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256 5609 return _mm256_mask_cvtsepi64_epi8(__O, __M, __A); 5610 } 5611 5612 __m128i test_mm256_maskz_cvtsepi64_epi8(__mmask8 __M, __m256i __A) { 5613 // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi8 5614 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.256 5615 return _mm256_maskz_cvtsepi64_epi8(__M, __A); 5616 } 5617 5618 void test_mm256_mask_cvtsepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) { 5619 // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi8 5620 // CHECK: @llvm.x86.avx512.mask.pmovs.qb.mem.256 5621 return _mm256_mask_cvtsepi64_storeu_epi8(__P, __M, __A); 5622 } 5623 5624 __m128i test_mm_cvtsepi64_epi32(__m128i __A) { 5625 // CHECK-LABEL: @test_mm_cvtsepi64_epi32 5626 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128 5627 return _mm_cvtsepi64_epi32(__A); 5628 } 5629 5630 __m128i test_mm_mask_cvtsepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) { 5631 // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi32 5632 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128 5633 return _mm_mask_cvtsepi64_epi32(__O, __M, __A); 5634 } 5635 5636 __m128i test_mm_maskz_cvtsepi64_epi32(__mmask8 __M, __m128i __A) { 5637 // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi32 5638 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.128 5639 return _mm_maskz_cvtsepi64_epi32(__M, __A); 5640 } 5641 5642 void test_mm_mask_cvtsepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) { 5643 // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi32 5644 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.128 5645 return _mm_mask_cvtsepi64_storeu_epi32(__P, __M, __A); 5646 } 5647 5648 __m128i test_mm256_cvtsepi64_epi32(__m256i __A) { 5649 // CHECK-LABEL: @test_mm256_cvtsepi64_epi32 5650 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256 5651 return _mm256_cvtsepi64_epi32(__A); 5652 } 5653 5654 __m128i test_mm256_mask_cvtsepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) { 5655 // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi32 5656 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256 5657 return _mm256_mask_cvtsepi64_epi32(__O, __M, __A); 5658 } 5659 5660 __m128i test_mm256_maskz_cvtsepi64_epi32(__mmask8 __M, __m256i __A) { 5661 // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi32 5662 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.256 5663 return _mm256_maskz_cvtsepi64_epi32(__M, __A); 5664 } 5665 5666 void test_mm256_mask_cvtsepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) { 5667 // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi32 5668 // CHECK: @llvm.x86.avx512.mask.pmovs.qd.mem.256 5669 return _mm256_mask_cvtsepi64_storeu_epi32(__P, __M, __A); 5670 } 5671 5672 __m128i test_mm_cvtsepi64_epi16(__m128i __A) { 5673 // CHECK-LABEL: @test_mm_cvtsepi64_epi16 5674 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128 5675 return _mm_cvtsepi64_epi16(__A); 5676 } 5677 5678 __m128i test_mm_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) { 5679 // CHECK-LABEL: @test_mm_mask_cvtsepi64_epi16 5680 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128 5681 return _mm_mask_cvtsepi64_epi16(__O, __M, __A); 5682 } 5683 5684 __m128i test_mm_maskz_cvtsepi64_epi16(__mmask8 __M, __m128i __A) { 5685 // CHECK-LABEL: @test_mm_maskz_cvtsepi64_epi16 5686 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.128 5687 return _mm_maskz_cvtsepi64_epi16(__M, __A); 5688 } 5689 5690 void test_mm_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) { 5691 // CHECK-LABEL: @test_mm_mask_cvtsepi64_storeu_epi16 5692 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.128 5693 return _mm_mask_cvtsepi64_storeu_epi16(__P, __M, __A); 5694 } 5695 5696 __m128i test_mm256_cvtsepi64_epi16(__m256i __A) { 5697 // CHECK-LABEL: @test_mm256_cvtsepi64_epi16 5698 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256 5699 return _mm256_cvtsepi64_epi16(__A); 5700 } 5701 5702 __m128i test_mm256_mask_cvtsepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) { 5703 // CHECK-LABEL: @test_mm256_mask_cvtsepi64_epi16 5704 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256 5705 return _mm256_mask_cvtsepi64_epi16(__O, __M, __A); 5706 } 5707 5708 __m128i test_mm256_maskz_cvtsepi64_epi16(__mmask8 __M, __m256i __A) { 5709 // CHECK-LABEL: @test_mm256_maskz_cvtsepi64_epi16 5710 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.256 5711 return _mm256_maskz_cvtsepi64_epi16(__M, __A); 5712 } 5713 5714 void test_mm256_mask_cvtsepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) { 5715 // CHECK-LABEL: @test_mm256_mask_cvtsepi64_storeu_epi16 5716 // CHECK: @llvm.x86.avx512.mask.pmovs.qw.mem.256 5717 return _mm256_mask_cvtsepi64_storeu_epi16(__P, __M, __A); 5718 } 5719 5720 __m128i test_mm_cvtusepi32_epi8(__m128i __A) { 5721 // CHECK-LABEL: @test_mm_cvtusepi32_epi8 5722 // CHECK: @llvm.x86.avx512.mask.pmovus.db.128 5723 return _mm_cvtusepi32_epi8(__A); 5724 } 5725 5726 __m128i test_mm_mask_cvtusepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) { 5727 // CHECK-LABEL: @test_mm_mask_cvtusepi32_epi8 5728 // CHECK: @llvm.x86.avx512.mask.pmovus.db.128 5729 return _mm_mask_cvtusepi32_epi8(__O, __M, __A); 5730 } 5731 5732 __m128i test_mm_maskz_cvtusepi32_epi8(__mmask8 __M, __m128i __A) { 5733 // CHECK-LABEL: @test_mm_maskz_cvtusepi32_epi8 5734 // CHECK: @llvm.x86.avx512.mask.pmovus.db.128 5735 return _mm_maskz_cvtusepi32_epi8(__M, __A); 5736 } 5737 5738 void test_mm_mask_cvtusepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) { 5739 // CHECK-LABEL: @test_mm_mask_cvtusepi32_storeu_epi8 5740 // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.128 5741 return _mm_mask_cvtusepi32_storeu_epi8(__P, __M, __A); 5742 } 5743 5744 __m128i test_mm256_cvtusepi32_epi8(__m256i __A) { 5745 // CHECK-LABEL: @test_mm256_cvtusepi32_epi8 5746 // CHECK: @llvm.x86.avx512.mask.pmovus.db.256 5747 return _mm256_cvtusepi32_epi8(__A); 5748 } 5749 5750 __m128i test_mm256_mask_cvtusepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) { 5751 // CHECK-LABEL: @test_mm256_mask_cvtusepi32_epi8 5752 // CHECK: @llvm.x86.avx512.mask.pmovus.db.256 5753 return _mm256_mask_cvtusepi32_epi8(__O, __M, __A); 5754 } 5755 5756 __m128i test_mm256_maskz_cvtusepi32_epi8(__mmask8 __M, __m256i __A) { 5757 // CHECK-LABEL: @test_mm256_maskz_cvtusepi32_epi8 5758 // CHECK: @llvm.x86.avx512.mask.pmovus.db.256 5759 return _mm256_maskz_cvtusepi32_epi8(__M, __A); 5760 } 5761 5762 void test_mm256_mask_cvtusepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) { 5763 // CHECK-LABEL: @test_mm256_mask_cvtusepi32_storeu_epi8 5764 // CHECK: @llvm.x86.avx512.mask.pmovus.db.mem.256 5765 return _mm256_mask_cvtusepi32_storeu_epi8(__P, __M, __A); 5766 } 5767 5768 __m128i test_mm_cvtusepi32_epi16(__m128i __A) { 5769 // CHECK-LABEL: @test_mm_cvtusepi32_epi16 5770 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128 5771 return _mm_cvtusepi32_epi16(__A); 5772 } 5773 5774 __m128i test_mm_mask_cvtusepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) { 5775 // CHECK-LABEL: @test_mm_mask_cvtusepi32_epi16 5776 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128 5777 return _mm_mask_cvtusepi32_epi16(__O, __M, __A); 5778 } 5779 5780 __m128i test_mm_maskz_cvtusepi32_epi16(__mmask8 __M, __m128i __A) { 5781 // CHECK-LABEL: @test_mm_maskz_cvtusepi32_epi16 5782 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.128 5783 return _mm_maskz_cvtusepi32_epi16(__M, __A); 5784 } 5785 5786 void test_mm_mask_cvtusepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) { 5787 // CHECK-LABEL: @test_mm_mask_cvtusepi32_storeu_epi16 5788 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.128 5789 return _mm_mask_cvtusepi32_storeu_epi16(__P, __M, __A); 5790 } 5791 5792 __m128i test_mm256_cvtusepi32_epi16(__m256i __A) { 5793 // CHECK-LABEL: @test_mm256_cvtusepi32_epi16 5794 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256 5795 return _mm256_cvtusepi32_epi16(__A); 5796 } 5797 5798 __m128i test_mm256_mask_cvtusepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) { 5799 // CHECK-LABEL: @test_mm256_mask_cvtusepi32_epi16 5800 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256 5801 return _mm256_mask_cvtusepi32_epi16(__O, __M, __A); 5802 } 5803 5804 __m128i test_mm256_maskz_cvtusepi32_epi16(__mmask8 __M, __m256i __A) { 5805 // CHECK-LABEL: @test_mm256_maskz_cvtusepi32_epi16 5806 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.256 5807 return _mm256_maskz_cvtusepi32_epi16(__M, __A); 5808 } 5809 5810 void test_mm256_mask_cvtusepi32_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) { 5811 // CHECK-LABEL: @test_mm256_mask_cvtusepi32_storeu_epi16 5812 // CHECK: @llvm.x86.avx512.mask.pmovus.dw.mem.256 5813 return _mm256_mask_cvtusepi32_storeu_epi16(__P, __M, __A); 5814 } 5815 5816 __m128i test_mm_cvtusepi64_epi8(__m128i __A) { 5817 // CHECK-LABEL: @test_mm_cvtusepi64_epi8 5818 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128 5819 return _mm_cvtusepi64_epi8(__A); 5820 } 5821 5822 __m128i test_mm_mask_cvtusepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) { 5823 // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi8 5824 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128 5825 return _mm_mask_cvtusepi64_epi8(__O, __M, __A); 5826 } 5827 5828 __m128i test_mm_maskz_cvtusepi64_epi8(__mmask8 __M, __m128i __A) { 5829 // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi8 5830 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.128 5831 return _mm_maskz_cvtusepi64_epi8(__M, __A); 5832 } 5833 5834 void test_mm_mask_cvtusepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) { 5835 // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi8 5836 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.128 5837 return _mm_mask_cvtusepi64_storeu_epi8(__P, __M, __A); 5838 } 5839 5840 __m128i test_mm256_cvtusepi64_epi8(__m256i __A) { 5841 // CHECK-LABEL: @test_mm256_cvtusepi64_epi8 5842 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256 5843 return _mm256_cvtusepi64_epi8(__A); 5844 } 5845 5846 __m128i test_mm256_mask_cvtusepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) { 5847 // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi8 5848 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256 5849 return _mm256_mask_cvtusepi64_epi8(__O, __M, __A); 5850 } 5851 5852 __m128i test_mm256_maskz_cvtusepi64_epi8(__mmask8 __M, __m256i __A) { 5853 // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi8 5854 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.256 5855 return _mm256_maskz_cvtusepi64_epi8(__M, __A); 5856 } 5857 5858 void test_mm256_mask_cvtusepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) { 5859 // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi8 5860 // CHECK: @llvm.x86.avx512.mask.pmovus.qb.mem.256 5861 return _mm256_mask_cvtusepi64_storeu_epi8(__P, __M, __A); 5862 } 5863 5864 __m128i test_mm_cvtusepi64_epi32(__m128i __A) { 5865 // CHECK-LABEL: @test_mm_cvtusepi64_epi32 5866 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128 5867 return _mm_cvtusepi64_epi32(__A); 5868 } 5869 5870 __m128i test_mm_mask_cvtusepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) { 5871 // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi32 5872 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128 5873 return _mm_mask_cvtusepi64_epi32(__O, __M, __A); 5874 } 5875 5876 __m128i test_mm_maskz_cvtusepi64_epi32(__mmask8 __M, __m128i __A) { 5877 // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi32 5878 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.128 5879 return _mm_maskz_cvtusepi64_epi32(__M, __A); 5880 } 5881 5882 void test_mm_mask_cvtusepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) { 5883 // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi32 5884 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.128 5885 return _mm_mask_cvtusepi64_storeu_epi32(__P, __M, __A); 5886 } 5887 5888 __m128i test_mm256_cvtusepi64_epi32(__m256i __A) { 5889 // CHECK-LABEL: @test_mm256_cvtusepi64_epi32 5890 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256 5891 return _mm256_cvtusepi64_epi32(__A); 5892 } 5893 5894 __m128i test_mm256_mask_cvtusepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) { 5895 // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi32 5896 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256 5897 return _mm256_mask_cvtusepi64_epi32(__O, __M, __A); 5898 } 5899 5900 __m128i test_mm256_maskz_cvtusepi64_epi32(__mmask8 __M, __m256i __A) { 5901 // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi32 5902 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.256 5903 return _mm256_maskz_cvtusepi64_epi32(__M, __A); 5904 } 5905 5906 void test_mm256_mask_cvtusepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) { 5907 // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi32 5908 // CHECK: @llvm.x86.avx512.mask.pmovus.qd.mem.256 5909 return _mm256_mask_cvtusepi64_storeu_epi32(__P, __M, __A); 5910 } 5911 5912 __m128i test_mm_cvtusepi64_epi16(__m128i __A) { 5913 // CHECK-LABEL: @test_mm_cvtusepi64_epi16 5914 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128 5915 return _mm_cvtusepi64_epi16(__A); 5916 } 5917 5918 __m128i test_mm_mask_cvtusepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) { 5919 // CHECK-LABEL: @test_mm_mask_cvtusepi64_epi16 5920 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128 5921 return _mm_mask_cvtusepi64_epi16(__O, __M, __A); 5922 } 5923 5924 __m128i test_mm_maskz_cvtusepi64_epi16(__mmask8 __M, __m128i __A) { 5925 // CHECK-LABEL: @test_mm_maskz_cvtusepi64_epi16 5926 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.128 5927 return _mm_maskz_cvtusepi64_epi16(__M, __A); 5928 } 5929 5930 void test_mm_mask_cvtusepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) { 5931 // CHECK-LABEL: @test_mm_mask_cvtusepi64_storeu_epi16 5932 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.128 5933 return _mm_mask_cvtusepi64_storeu_epi16(__P, __M, __A); 5934 } 5935 5936 __m128i test_mm256_cvtusepi64_epi16(__m256i __A) { 5937 // CHECK-LABEL: @test_mm256_cvtusepi64_epi16 5938 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256 5939 return _mm256_cvtusepi64_epi16(__A); 5940 } 5941 5942 __m128i test_mm256_mask_cvtusepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) { 5943 // CHECK-LABEL: @test_mm256_mask_cvtusepi64_epi16 5944 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256 5945 return _mm256_mask_cvtusepi64_epi16(__O, __M, __A); 5946 } 5947 5948 __m128i test_mm256_maskz_cvtusepi64_epi16(__mmask8 __M, __m256i __A) { 5949 // CHECK-LABEL: @test_mm256_maskz_cvtusepi64_epi16 5950 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.256 5951 return _mm256_maskz_cvtusepi64_epi16(__M, __A); 5952 } 5953 5954 void test_mm256_mask_cvtusepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) { 5955 // CHECK-LABEL: @test_mm256_mask_cvtusepi64_storeu_epi16 5956 // CHECK: @llvm.x86.avx512.mask.pmovus.qw.mem.256 5957 return _mm256_mask_cvtusepi64_storeu_epi16(__P, __M, __A); 5958 } 5959 5960 __m128i test_mm_cvtepi32_epi8(__m128i __A) { 5961 // CHECK-LABEL: @test_mm_cvtepi32_epi8 5962 // CHECK: @llvm.x86.avx512.mask.pmov.db.128 5963 return _mm_cvtepi32_epi8(__A); 5964 } 5965 5966 __m128i test_mm_mask_cvtepi32_epi8(__m128i __O, __mmask8 __M, __m128i __A) { 5967 // CHECK-LABEL: @test_mm_mask_cvtepi32_epi8 5968 // CHECK: @llvm.x86.avx512.mask.pmov.db.128 5969 return _mm_mask_cvtepi32_epi8(__O, __M, __A); 5970 } 5971 5972 __m128i test_mm_maskz_cvtepi32_epi8(__mmask8 __M, __m128i __A) { 5973 // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi8 5974 // CHECK: @llvm.x86.avx512.mask.pmov.db.128 5975 return _mm_maskz_cvtepi32_epi8(__M, __A); 5976 } 5977 5978 void test_mm_mask_cvtepi32_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) { 5979 // CHECK-LABEL: @test_mm_mask_cvtepi32_storeu_epi8 5980 // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.128 5981 return _mm_mask_cvtepi32_storeu_epi8(__P, __M, __A); 5982 } 5983 5984 __m128i test_mm256_cvtepi32_epi8(__m256i __A) { 5985 // CHECK-LABEL: @test_mm256_cvtepi32_epi8 5986 // CHECK: @llvm.x86.avx512.mask.pmov.db.256 5987 return _mm256_cvtepi32_epi8(__A); 5988 } 5989 5990 __m128i test_mm256_mask_cvtepi32_epi8(__m128i __O, __mmask8 __M, __m256i __A) { 5991 // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi8 5992 // CHECK: @llvm.x86.avx512.mask.pmov.db.256 5993 return _mm256_mask_cvtepi32_epi8(__O, __M, __A); 5994 } 5995 5996 __m128i test_mm256_maskz_cvtepi32_epi8(__mmask8 __M, __m256i __A) { 5997 // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi8 5998 // CHECK: @llvm.x86.avx512.mask.pmov.db.256 5999 return _mm256_maskz_cvtepi32_epi8(__M, __A); 6000 } 6001 6002 void test_mm256_mask_cvtepi32_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) { 6003 // CHECK-LABEL: @test_mm256_mask_cvtepi32_storeu_epi8 6004 // CHECK: @llvm.x86.avx512.mask.pmov.db.mem.256 6005 return _mm256_mask_cvtepi32_storeu_epi8(__P, __M, __A); 6006 } 6007 6008 __m128i test_mm_cvtepi32_epi16(__m128i __A) { 6009 // CHECK-LABEL: @test_mm_cvtepi32_epi16 6010 // CHECK: @llvm.x86.avx512.mask.pmov.dw.128 6011 return _mm_cvtepi32_epi16(__A); 6012 } 6013 6014 __m128i test_mm_mask_cvtepi32_epi16(__m128i __O, __mmask8 __M, __m128i __A) { 6015 // CHECK-LABEL: @test_mm_mask_cvtepi32_epi16 6016 // CHECK: @llvm.x86.avx512.mask.pmov.dw.128 6017 return _mm_mask_cvtepi32_epi16(__O, __M, __A); 6018 } 6019 6020 __m128i test_mm_maskz_cvtepi32_epi16(__mmask8 __M, __m128i __A) { 6021 // CHECK-LABEL: @test_mm_maskz_cvtepi32_epi16 6022 // CHECK: @llvm.x86.avx512.mask.pmov.dw.128 6023 return _mm_maskz_cvtepi32_epi16(__M, __A); 6024 } 6025 6026 void test_mm_mask_cvtepi32_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) { 6027 // CHECK-LABEL: @test_mm_mask_cvtepi32_storeu_epi16 6028 // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.128 6029 return _mm_mask_cvtepi32_storeu_epi16(__P, __M, __A); 6030 } 6031 6032 __m128i test_mm256_cvtepi32_epi16(__m256i __A) { 6033 // CHECK-LABEL: @test_mm256_cvtepi32_epi16 6034 // CHECK: @llvm.x86.avx512.mask.pmov.dw.256 6035 return _mm256_cvtepi32_epi16(__A); 6036 } 6037 6038 __m128i test_mm256_mask_cvtepi32_epi16(__m128i __O, __mmask8 __M, __m256i __A) { 6039 // CHECK-LABEL: @test_mm256_mask_cvtepi32_epi16 6040 // CHECK: @llvm.x86.avx512.mask.pmov.dw.256 6041 return _mm256_mask_cvtepi32_epi16(__O, __M, __A); 6042 } 6043 6044 __m128i test_mm256_maskz_cvtepi32_epi16(__mmask8 __M, __m256i __A) { 6045 // CHECK-LABEL: @test_mm256_maskz_cvtepi32_epi16 6046 // CHECK: @llvm.x86.avx512.mask.pmov.dw.256 6047 return _mm256_maskz_cvtepi32_epi16(__M, __A); 6048 } 6049 6050 void test_mm256_mask_cvtepi32_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) { 6051 // CHECK-LABEL: @test_mm256_mask_cvtepi32_storeu_epi16 6052 // CHECK: @llvm.x86.avx512.mask.pmov.dw.mem.256 6053 return _mm256_mask_cvtepi32_storeu_epi16(__P, __M, __A); 6054 } 6055 6056 __m128i test_mm_cvtepi64_epi8(__m128i __A) { 6057 // CHECK-LABEL: @test_mm_cvtepi64_epi8 6058 // CHECK: @llvm.x86.avx512.mask.pmov.qb.128 6059 return _mm_cvtepi64_epi8(__A); 6060 } 6061 6062 __m128i test_mm_mask_cvtepi64_epi8(__m128i __O, __mmask8 __M, __m128i __A) { 6063 // CHECK-LABEL: @test_mm_mask_cvtepi64_epi8 6064 // CHECK: @llvm.x86.avx512.mask.pmov.qb.128 6065 return _mm_mask_cvtepi64_epi8(__O, __M, __A); 6066 } 6067 6068 __m128i test_mm_maskz_cvtepi64_epi8(__mmask8 __M, __m128i __A) { 6069 // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi8 6070 // CHECK: @llvm.x86.avx512.mask.pmov.qb.128 6071 return _mm_maskz_cvtepi64_epi8(__M, __A); 6072 } 6073 6074 void test_mm_mask_cvtepi64_storeu_epi8(void * __P, __mmask8 __M, __m128i __A) { 6075 // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi8 6076 // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.128 6077 return _mm_mask_cvtepi64_storeu_epi8(__P, __M, __A); 6078 } 6079 6080 __m128i test_mm256_cvtepi64_epi8(__m256i __A) { 6081 // CHECK-LABEL: @test_mm256_cvtepi64_epi8 6082 // CHECK: @llvm.x86.avx512.mask.pmov.qb.256 6083 return _mm256_cvtepi64_epi8(__A); 6084 } 6085 6086 __m128i test_mm256_mask_cvtepi64_epi8(__m128i __O, __mmask8 __M, __m256i __A) { 6087 // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi8 6088 // CHECK: @llvm.x86.avx512.mask.pmov.qb.256 6089 return _mm256_mask_cvtepi64_epi8(__O, __M, __A); 6090 } 6091 6092 __m128i test_mm256_maskz_cvtepi64_epi8(__mmask8 __M, __m256i __A) { 6093 // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi8 6094 // CHECK: @llvm.x86.avx512.mask.pmov.qb.256 6095 return _mm256_maskz_cvtepi64_epi8(__M, __A); 6096 } 6097 6098 void test_mm256_mask_cvtepi64_storeu_epi8(void * __P, __mmask8 __M, __m256i __A) { 6099 // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi8 6100 // CHECK: @llvm.x86.avx512.mask.pmov.qb.mem.256 6101 return _mm256_mask_cvtepi64_storeu_epi8(__P, __M, __A); 6102 } 6103 6104 __m128i test_mm_cvtepi64_epi32(__m128i __A) { 6105 // CHECK-LABEL: @test_mm_cvtepi64_epi32 6106 // CHECK: @llvm.x86.avx512.mask.pmov.qd.128 6107 return _mm_cvtepi64_epi32(__A); 6108 } 6109 6110 __m128i test_mm_mask_cvtepi64_epi32(__m128i __O, __mmask8 __M, __m128i __A) { 6111 // CHECK-LABEL: @test_mm_mask_cvtepi64_epi32 6112 // CHECK: @llvm.x86.avx512.mask.pmov.qd.128 6113 return _mm_mask_cvtepi64_epi32(__O, __M, __A); 6114 } 6115 6116 __m128i test_mm_maskz_cvtepi64_epi32(__mmask8 __M, __m128i __A) { 6117 // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi32 6118 // CHECK: @llvm.x86.avx512.mask.pmov.qd.128 6119 return _mm_maskz_cvtepi64_epi32(__M, __A); 6120 } 6121 6122 void test_mm_mask_cvtepi64_storeu_epi32(void * __P, __mmask8 __M, __m128i __A) { 6123 // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi32 6124 // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.128 6125 return _mm_mask_cvtepi64_storeu_epi32(__P, __M, __A); 6126 } 6127 6128 __m128i test_mm256_cvtepi64_epi32(__m256i __A) { 6129 // CHECK-LABEL: @test_mm256_cvtepi64_epi32 6130 // CHECK: @llvm.x86.avx512.mask.pmov.qd.256 6131 return _mm256_cvtepi64_epi32(__A); 6132 } 6133 6134 __m128i test_mm256_mask_cvtepi64_epi32(__m128i __O, __mmask8 __M, __m256i __A) { 6135 // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi32 6136 // CHECK: @llvm.x86.avx512.mask.pmov.qd.256 6137 return _mm256_mask_cvtepi64_epi32(__O, __M, __A); 6138 } 6139 6140 __m128i test_mm256_maskz_cvtepi64_epi32(__mmask8 __M, __m256i __A) { 6141 // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi32 6142 // CHECK: @llvm.x86.avx512.mask.pmov.qd.256 6143 return _mm256_maskz_cvtepi64_epi32(__M, __A); 6144 } 6145 6146 void test_mm256_mask_cvtepi64_storeu_epi32(void * __P, __mmask8 __M, __m256i __A) { 6147 // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi32 6148 // CHECK: @llvm.x86.avx512.mask.pmov.qd.mem.256 6149 return _mm256_mask_cvtepi64_storeu_epi32(__P, __M, __A); 6150 } 6151 6152 __m128i test_mm_cvtepi64_epi16(__m128i __A) { 6153 // CHECK-LABEL: @test_mm_cvtepi64_epi16 6154 // CHECK: @llvm.x86.avx512.mask.pmov.qw.128 6155 return _mm_cvtepi64_epi16(__A); 6156 } 6157 6158 __m128i test_mm_mask_cvtepi64_epi16(__m128i __O, __mmask8 __M, __m128i __A) { 6159 // CHECK-LABEL: @test_mm_mask_cvtepi64_epi16 6160 // CHECK: @llvm.x86.avx512.mask.pmov.qw.128 6161 return _mm_mask_cvtepi64_epi16(__O, __M, __A); 6162 } 6163 6164 __m128i test_mm_maskz_cvtepi64_epi16(__mmask8 __M, __m128i __A) { 6165 // CHECK-LABEL: @test_mm_maskz_cvtepi64_epi16 6166 // CHECK: @llvm.x86.avx512.mask.pmov.qw.128 6167 return _mm_maskz_cvtepi64_epi16(__M, __A); 6168 } 6169 6170 void test_mm_mask_cvtepi64_storeu_epi16(void * __P, __mmask8 __M, __m128i __A) { 6171 // CHECK-LABEL: @test_mm_mask_cvtepi64_storeu_epi16 6172 // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.128 6173 return _mm_mask_cvtepi64_storeu_epi16(__P, __M, __A); 6174 } 6175 6176 __m128i test_mm256_cvtepi64_epi16(__m256i __A) { 6177 // CHECK-LABEL: @test_mm256_cvtepi64_epi16 6178 // CHECK: @llvm.x86.avx512.mask.pmov.qw.256 6179 return _mm256_cvtepi64_epi16(__A); 6180 } 6181 6182 __m128i test_mm256_mask_cvtepi64_epi16(__m128i __O, __mmask8 __M, __m256i __A) { 6183 // CHECK-LABEL: @test_mm256_mask_cvtepi64_epi16 6184 // CHECK: @llvm.x86.avx512.mask.pmov.qw.256 6185 return _mm256_mask_cvtepi64_epi16(__O, __M, __A); 6186 } 6187 6188 __m128i test_mm256_maskz_cvtepi64_epi16(__mmask8 __M, __m256i __A) { 6189 // CHECK-LABEL: @test_mm256_maskz_cvtepi64_epi16 6190 // CHECK: @llvm.x86.avx512.mask.pmov.qw.256 6191 return _mm256_maskz_cvtepi64_epi16(__M, __A); 6192 } 6193 6194 void test_mm256_mask_cvtepi64_storeu_epi16(void * __P, __mmask8 __M, __m256i __A) { 6195 // CHECK-LABEL: @test_mm256_mask_cvtepi64_storeu_epi16 6196 // CHECK: @llvm.x86.avx512.mask.pmov.qw.mem.256 6197 return _mm256_mask_cvtepi64_storeu_epi16(__P, __M, __A); 6198 } 6199 6200 __m128 test_mm256_extractf32x4_ps(__m256 __A) { 6201 // CHECK-LABEL: @test_mm256_extractf32x4_ps 6202 // CHECK: @llvm.x86.avx512.mask.vextractf32x4 6203 return _mm256_extractf32x4_ps(__A, 1); 6204 } 6205 6206 __m128 test_mm256_mask_extractf32x4_ps(__m128 __W, __mmask8 __U, __m256 __A) { 6207 // CHECK-LABEL: @test_mm256_mask_extractf32x4_ps 6208 // CHECK: @llvm.x86.avx512.mask.vextractf32x4 6209 return _mm256_mask_extractf32x4_ps(__W, __U, __A, 1); 6210 } 6211 6212 __m128 test_mm256_maskz_extractf32x4_ps(__mmask8 __U, __m256 __A) { 6213 // CHECK-LABEL: @test_mm256_maskz_extractf32x4_ps 6214 // CHECK: @llvm.x86.avx512.mask.vextractf32x4 6215 return _mm256_maskz_extractf32x4_ps(__U, __A, 1); 6216 } 6217 6218 __m128i test_mm256_extracti32x4_epi32(__m256i __A) { 6219 // CHECK-LABEL: @test_mm256_extracti32x4_epi32 6220 // CHECK: @llvm.x86.avx512.mask.vextracti32x4 6221 return _mm256_extracti32x4_epi32(__A, 1); 6222 } 6223 6224 __m128i test_mm256_mask_extracti32x4_epi32(__m128i __W, __mmask8 __U, __m256i __A) { 6225 // CHECK-LABEL: @test_mm256_mask_extracti32x4_epi32 6226 // CHECK: @llvm.x86.avx512.mask.vextracti32x4 6227 return _mm256_mask_extracti32x4_epi32(__W, __U, __A, 1); 6228 } 6229 6230 __m128i test_mm256_maskz_extracti32x4_epi32(__mmask8 __U, __m256i __A) { 6231 // CHECK-LABEL: @test_mm256_maskz_extracti32x4_epi32 6232 // CHECK: @llvm.x86.avx512.mask.vextracti32x4 6233 return _mm256_maskz_extracti32x4_epi32(__U, __A, 1); 6234 } 6235 6236 __m256 test_mm256_insertf32x4(__m256 __A, __m128 __B) { 6237 // CHECK-LABEL: @test_mm256_insertf32x4 6238 // CHECK: @llvm.x86.avx512.mask.insertf32x4 6239 return _mm256_insertf32x4(__A, __B, 1); 6240 } 6241 6242 __m256 test_mm256_mask_insertf32x4(__m256 __W, __mmask8 __U, __m256 __A, __m128 __B) { 6243 // CHECK-LABEL: @test_mm256_mask_insertf32x4 6244 // CHECK: @llvm.x86.avx512.mask.insertf32x4 6245 return _mm256_mask_insertf32x4(__W, __U, __A, __B, 1); 6246 } 6247 6248 __m256 test_mm256_maskz_insertf32x4(__mmask8 __U, __m256 __A, __m128 __B) { 6249 // CHECK-LABEL: @test_mm256_maskz_insertf32x4 6250 // CHECK: @llvm.x86.avx512.mask.insertf32x4 6251 return _mm256_maskz_insertf32x4(__U, __A, __B, 1); 6252 } 6253 6254 __m256i test_mm256_inserti32x4(__m256i __A, __m128i __B) { 6255 // CHECK-LABEL: @test_mm256_inserti32x4 6256 // CHECK: @llvm.x86.avx512.mask.inserti32x4 6257 return _mm256_inserti32x4(__A, __B, 1); 6258 } 6259 6260 __m256i test_mm256_mask_inserti32x4(__m256i __W, __mmask8 __U, __m256i __A, __m128i __B) { 6261 // CHECK-LABEL: @test_mm256_mask_inserti32x4 6262 // CHECK: @llvm.x86.avx512.mask.inserti32x4 6263 return _mm256_mask_inserti32x4(__W, __U, __A, __B, 1); 6264 } 6265 6266 __m256i test_mm256_maskz_inserti32x4(__mmask8 __U, __m256i __A, __m128i __B) { 6267 // CHECK-LABEL: @test_mm256_maskz_inserti32x4 6268 // CHECK: @llvm.x86.avx512.mask.inserti32x4 6269 return _mm256_maskz_inserti32x4(__U, __A, __B, 1); 6270 } 6271 6272 __m128d test_mm_getmant_pd(__m128d __A) { 6273 // CHECK-LABEL: @test_mm_getmant_pd 6274 // CHECK: @llvm.x86.avx512.mask.getmant.pd.128 6275 return _mm_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan); 6276 } 6277 6278 __m128d test_mm_mask_getmant_pd(__m128d __W, __mmask8 __U, __m128d __A) { 6279 // CHECK-LABEL: @test_mm_mask_getmant_pd 6280 // CHECK: @llvm.x86.avx512.mask.getmant.pd.128 6281 return _mm_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan); 6282 } 6283 6284 __m128d test_mm_maskz_getmant_pd(__mmask8 __U, __m128d __A) { 6285 // CHECK-LABEL: @test_mm_maskz_getmant_pd 6286 // CHECK: @llvm.x86.avx512.mask.getmant.pd.128 6287 return _mm_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan); 6288 } 6289 6290 __m256d test_mm256_getmant_pd(__m256d __A) { 6291 // CHECK-LABEL: @test_mm256_getmant_pd 6292 // CHECK: @llvm.x86.avx512.mask.getmant.pd.256 6293 return _mm256_getmant_pd(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan); 6294 } 6295 6296 __m256d test_mm256_mask_getmant_pd(__m256d __W, __mmask8 __U, __m256d __A) { 6297 // CHECK-LABEL: @test_mm256_mask_getmant_pd 6298 // CHECK: @llvm.x86.avx512.mask.getmant.pd.256 6299 return _mm256_mask_getmant_pd(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan); 6300 } 6301 6302 __m256d test_mm256_maskz_getmant_pd(__mmask8 __U, __m256d __A) { 6303 // CHECK-LABEL: @test_mm256_maskz_getmant_pd 6304 // CHECK: @llvm.x86.avx512.mask.getmant.pd.256 6305 return _mm256_maskz_getmant_pd(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan); 6306 } 6307 6308 __m128 test_mm_getmant_ps(__m128 __A) { 6309 // CHECK-LABEL: @test_mm_getmant_ps 6310 // CHECK: @llvm.x86.avx512.mask.getmant.ps.128 6311 return _mm_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan); 6312 } 6313 6314 __m128 test_mm_mask_getmant_ps(__m128 __W, __mmask8 __U, __m128 __A) { 6315 // CHECK-LABEL: @test_mm_mask_getmant_ps 6316 // CHECK: @llvm.x86.avx512.mask.getmant.ps.128 6317 return _mm_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan); 6318 } 6319 6320 __m128 test_mm_maskz_getmant_ps(__mmask8 __U, __m128 __A) { 6321 // CHECK-LABEL: @test_mm_maskz_getmant_ps 6322 // CHECK: @llvm.x86.avx512.mask.getmant.ps.128 6323 return _mm_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan); 6324 } 6325 6326 __m256 test_mm256_getmant_ps(__m256 __A) { 6327 // CHECK-LABEL: @test_mm256_getmant_ps 6328 // CHECK: @llvm.x86.avx512.mask.getmant.ps.256 6329 return _mm256_getmant_ps(__A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan); 6330 } 6331 6332 __m256 test_mm256_mask_getmant_ps(__m256 __W, __mmask8 __U, __m256 __A) { 6333 // CHECK-LABEL: @test_mm256_mask_getmant_ps 6334 // CHECK: @llvm.x86.avx512.mask.getmant.ps.256 6335 return _mm256_mask_getmant_ps(__W, __U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan); 6336 } 6337 6338 __m256 test_mm256_maskz_getmant_ps(__mmask8 __U, __m256 __A) { 6339 // CHECK-LABEL: @test_mm256_maskz_getmant_ps 6340 // CHECK: @llvm.x86.avx512.mask.getmant.ps.256 6341 return _mm256_maskz_getmant_ps(__U, __A,_MM_MANT_NORM_p5_2, _MM_MANT_SIGN_nan); 6342 } 6343 6344 __m128d test_mm_mmask_i64gather_pd(__m128d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) { 6345 // CHECK-LABEL: @test_mm_mmask_i64gather_pd 6346 // CHECK: @llvm.x86.avx512.gather3div2.df 6347 return _mm_mmask_i64gather_pd(__v1_old, __mask, __index, __addr, 2); 6348 } 6349 6350 __m128i test_mm_mmask_i64gather_epi64(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) { 6351 // CHECK-LABEL: @test_mm_mmask_i64gather_epi64 6352 // CHECK: @llvm.x86.avx512.gather3div2.di 6353 return _mm_mmask_i64gather_epi64(__v1_old, __mask, __index, __addr, 2); 6354 } 6355 6356 __m256d test_mm256_mmask_i64gather_pd(__m256d __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) { 6357 // CHECK-LABEL: @test_mm256_mmask_i64gather_pd 6358 // CHECK: @llvm.x86.avx512.gather3div4.df 6359 return _mm256_mmask_i64gather_pd(__v1_old, __mask, __index, __addr, 2); 6360 } 6361 6362 __m256i test_mm256_mmask_i64gather_epi64(__m256i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) { 6363 // CHECK-LABEL: @test_mm256_mmask_i64gather_epi64 6364 // CHECK: @llvm.x86.avx512.gather3div4.di 6365 return _mm256_mmask_i64gather_epi64(__v1_old, __mask, __index, __addr, 2); 6366 } 6367 6368 __m128 test_mm_mmask_i64gather_ps(__m128 __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) { 6369 // CHECK-LABEL: @test_mm_mmask_i64gather_ps 6370 // CHECK: @llvm.x86.avx512.gather3div4.sf 6371 return _mm_mmask_i64gather_ps(__v1_old, __mask, __index, __addr, 2); 6372 } 6373 6374 __m128i test_mm_mmask_i64gather_epi32(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) { 6375 // CHECK-LABEL: @test_mm_mmask_i64gather_epi32 6376 // CHECK: @llvm.x86.avx512.gather3div4.si 6377 return _mm_mmask_i64gather_epi32(__v1_old, __mask, __index, __addr, 2); 6378 } 6379 6380 __m128 test_mm256_mmask_i64gather_ps(__m128 __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) { 6381 // CHECK-LABEL: @test_mm256_mmask_i64gather_ps 6382 // CHECK: @llvm.x86.avx512.gather3div8.sf 6383 return _mm256_mmask_i64gather_ps(__v1_old, __mask, __index, __addr, 2); 6384 } 6385 6386 __m128i test_mm256_mmask_i64gather_epi32(__m128i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) { 6387 // CHECK-LABEL: @test_mm256_mmask_i64gather_epi32 6388 // CHECK: @llvm.x86.avx512.gather3div8.si 6389 return _mm256_mmask_i64gather_epi32(__v1_old, __mask, __index, __addr, 2); 6390 } 6391 6392 __m128d test_mm_mask_i32gather_pd(__m128d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) { 6393 // CHECK-LABEL: @test_mm_mask_i32gather_pd 6394 // CHECK: @llvm.x86.avx512.gather3siv2.df 6395 return _mm_mmask_i32gather_pd(__v1_old, __mask, __index, __addr, 2); 6396 } 6397 6398 __m128i test_mm_mask_i32gather_epi64(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) { 6399 // CHECK-LABEL: @test_mm_mask_i32gather_epi64 6400 // CHECK: @llvm.x86.avx512.gather3siv2.di 6401 return _mm_mmask_i32gather_epi64(__v1_old, __mask, __index, __addr, 2); 6402 } 6403 6404 __m256d test_mm256_mask_i32gather_pd(__m256d __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) { 6405 // CHECK-LABEL: @test_mm256_mask_i32gather_pd 6406 // CHECK: @llvm.x86.avx512.gather3siv4.df 6407 return _mm256_mmask_i32gather_pd(__v1_old, __mask, __index, __addr, 2); 6408 } 6409 6410 __m256i test_mm256_mask_i32gather_epi64(__m256i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) { 6411 // CHECK-LABEL: @test_mm256_mask_i32gather_epi64 6412 // CHECK: @llvm.x86.avx512.gather3siv4.di 6413 return _mm256_mmask_i32gather_epi64(__v1_old, __mask, __index, __addr, 2); 6414 } 6415 6416 __m128 test_mm_mask_i32gather_ps(__m128 __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) { 6417 // CHECK-LABEL: @test_mm_mask_i32gather_ps 6418 // CHECK: @llvm.x86.avx512.gather3siv4.sf 6419 return _mm_mmask_i32gather_ps(__v1_old, __mask, __index, __addr, 2); 6420 } 6421 6422 __m128i test_mm_mask_i32gather_epi32(__m128i __v1_old, __mmask8 __mask, __m128i __index, void const *__addr) { 6423 // CHECK-LABEL: @test_mm_mask_i32gather_epi32 6424 // CHECK: @llvm.x86.avx512.gather3siv4.si 6425 return _mm_mmask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2); 6426 } 6427 6428 __m256 test_mm256_mask_i32gather_ps(__m256 __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) { 6429 // CHECK-LABEL: @test_mm256_mask_i32gather_ps 6430 // CHECK: @llvm.x86.avx512.gather3siv8.sf 6431 return _mm256_mmask_i32gather_ps(__v1_old, __mask, __index, __addr, 2); 6432 } 6433 6434 __m256i test_mm256_mask_i32gather_epi32(__m256i __v1_old, __mmask8 __mask, __m256i __index, void const *__addr) { 6435 // CHECK-LABEL: @test_mm256_mask_i32gather_epi32 6436 // CHECK: @llvm.x86.avx512.gather3siv8.si 6437 return _mm256_mmask_i32gather_epi32(__v1_old, __mask, __index, __addr, 2); 6438 } 6439 6440 __m256d test_mm256_permutex_pd(__m256d __X) { 6441 // CHECK-LABEL: @test_mm256_permutex_pd 6442 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0> 6443 return _mm256_permutex_pd(__X, 3); 6444 } 6445 6446 __m256d test_mm256_mask_permutex_pd(__m256d __W, __mmask8 __U, __m256d __X) { 6447 // CHECK-LABEL: @test_mm256_mask_permutex_pd 6448 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 0, i32 0> 6449 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}} 6450 return _mm256_mask_permutex_pd(__W, __U, __X, 1); 6451 } 6452 6453 __m256d test_mm256_maskz_permutex_pd(__mmask8 __U, __m256d __X) { 6454 // CHECK-LABEL: @test_mm256_maskz_permutex_pd 6455 // CHECK: shufflevector <4 x double> %{{.*}}, <4 x double> undef, <4 x i32> <i32 1, i32 0, i32 0, i32 0> 6456 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}} 6457 return _mm256_maskz_permutex_pd(__U, __X, 1); 6458 } 6459 6460 __m256i test_mm256_permutex_epi64(__m256i __X) { 6461 // CHECK-LABEL: @test_mm256_permutex_epi64 6462 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0> 6463 return _mm256_permutex_epi64(__X, 3); 6464 } 6465 6466 __m256i test_mm256_mask_permutex_epi64(__m256i __W, __mmask8 __M, __m256i __X) { 6467 // CHECK-LABEL: @test_mm256_mask_permutex_epi64 6468 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0> 6469 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} 6470 return _mm256_mask_permutex_epi64(__W, __M, __X, 3); 6471 } 6472 6473 __m256i test_mm256_maskz_permutex_epi64(__mmask8 __M, __m256i __X) { 6474 // CHECK-LABEL: @test_mm256_maskz_permutex_epi64 6475 // CHECK: shufflevector <4 x i64> %{{.*}}, <4 x i64> undef, <4 x i32> <i32 3, i32 0, i32 0, i32 0> 6476 // CHECK: select <4 x i1> %{{.*}}, <4 x i64> %{{.*}}, <4 x i64> %{{.*}} 6477 return _mm256_maskz_permutex_epi64(__M, __X, 3); 6478 } 6479 6480 __m256d test_mm256_permutexvar_pd(__m256i __X, __m256d __Y) { 6481 // CHECK-LABEL: @test_mm256_permutexvar_pd 6482 // CHECK: @llvm.x86.avx512.mask.permvar.df.256 6483 return _mm256_permutexvar_pd(__X, __Y); 6484 } 6485 6486 __m256d test_mm256_mask_permutexvar_pd(__m256d __W, __mmask8 __U, __m256i __X, __m256d __Y) { 6487 // CHECK-LABEL: @test_mm256_mask_permutexvar_pd 6488 // CHECK: @llvm.x86.avx512.mask.permvar.df.256 6489 return _mm256_mask_permutexvar_pd(__W, __U, __X, __Y); 6490 } 6491 6492 __m256d test_mm256_maskz_permutexvar_pd(__mmask8 __U, __m256i __X, __m256d __Y) { 6493 // CHECK-LABEL: @test_mm256_maskz_permutexvar_pd 6494 // CHECK: @llvm.x86.avx512.mask.permvar.df.256 6495 return _mm256_maskz_permutexvar_pd(__U, __X, __Y); 6496 } 6497 6498 __m256i test_mm256_maskz_permutexvar_epi64(__mmask8 __M, __m256i __X, __m256i __Y) { 6499 // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi64 6500 // CHECK: @llvm.x86.avx512.mask.permvar.di.256 6501 return _mm256_maskz_permutexvar_epi64(__M, __X, __Y); 6502 } 6503 6504 __m256i test_mm256_mask_permutexvar_epi64(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { 6505 // CHECK-LABEL: @test_mm256_mask_permutexvar_epi64 6506 // CHECK: @llvm.x86.avx512.mask.permvar.di.256 6507 return _mm256_mask_permutexvar_epi64(__W, __M, __X, __Y); 6508 } 6509 6510 __m256 test_mm256_mask_permutexvar_ps(__m256 __W, __mmask8 __U, __m256i __X, __m256 __Y) { 6511 // CHECK-LABEL: @test_mm256_mask_permutexvar_ps 6512 // CHECK: @llvm.x86.avx512.mask.permvar.sf.256 6513 return _mm256_mask_permutexvar_ps(__W, __U, __X, __Y); 6514 } 6515 6516 __m256 test_mm256_maskz_permutexvar_ps(__mmask8 __U, __m256i __X, __m256 __Y) { 6517 // CHECK-LABEL: @test_mm256_maskz_permutexvar_ps 6518 // CHECK: @llvm.x86.avx512.mask.permvar.sf.256 6519 return _mm256_maskz_permutexvar_ps(__U, __X, __Y); 6520 } 6521 6522 __m256 test_mm256_permutexvar_ps(__m256i __X, __m256 __Y) { 6523 // CHECK-LABEL: @test_mm256_permutexvar_ps 6524 // CHECK: @llvm.x86.avx512.mask.permvar.sf.256 6525 return _mm256_permutexvar_ps( __X, __Y); 6526 } 6527 6528 __m256i test_mm256_maskz_permutexvar_epi32(__mmask8 __M, __m256i __X, __m256i __Y) { 6529 // CHECK-LABEL: @test_mm256_maskz_permutexvar_epi32 6530 // CHECK: @llvm.x86.avx512.mask.permvar.si.256 6531 return _mm256_maskz_permutexvar_epi32(__M, __X, __Y); 6532 } 6533 6534 __m256i test_mm256_permutexvar_epi32(__m256i __X, __m256i __Y) { 6535 // CHECK-LABEL: @test_mm256_permutexvar_epi32 6536 // CHECK: @llvm.x86.avx512.mask.permvar.si.256 6537 return _mm256_permutexvar_epi32(__X, __Y); 6538 } 6539 6540 __m256i test_mm256_mask_permutexvar_epi32(__m256i __W, __mmask8 __M, __m256i __X, __m256i __Y) { 6541 // CHECK-LABEL: @test_mm256_mask_permutexvar_epi32 6542 // CHECK: @llvm.x86.avx512.mask.permvar.si.256 6543 return _mm256_mask_permutexvar_epi32(__W, __M, __X, __Y); 6544 } 6545 6546 __m128i test_mm_alignr_epi32(__m128i __A, __m128i __B) { 6547 // CHECK-LABEL: @test_mm_alignr_epi32 6548 // CHECK: @llvm.x86.avx512.mask.valign.d.128 6549 return _mm_alignr_epi32(__A, __B, 1); 6550 } 6551 6552 __m128i test_mm_mask_alignr_epi32(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 6553 // CHECK-LABEL: @test_mm_mask_alignr_epi32 6554 // CHECK: @llvm.x86.avx512.mask.valign.d.128 6555 return _mm_mask_alignr_epi32(__W, __U, __A, __B, 1); 6556 } 6557 6558 __m128i test_mm_maskz_alignr_epi32(__mmask8 __U, __m128i __A, __m128i __B) { 6559 // CHECK-LABEL: @test_mm_maskz_alignr_epi32 6560 // CHECK: @llvm.x86.avx512.mask.valign.d.128 6561 return _mm_maskz_alignr_epi32(__U, __A, __B, 1); 6562 } 6563 6564 __m256i test_mm256_alignr_epi32(__m256i __A, __m256i __B) { 6565 // CHECK-LABEL: @test_mm256_alignr_epi32 6566 // CHECK: @llvm.x86.avx512.mask.valign.d.256 6567 return _mm256_alignr_epi32(__A, __B, 1); 6568 } 6569 6570 __m256i test_mm256_mask_alignr_epi32(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { 6571 // CHECK-LABEL: @test_mm256_mask_alignr_epi32 6572 // CHECK: @llvm.x86.avx512.mask.valign.d.256 6573 return _mm256_mask_alignr_epi32(__W, __U, __A, __B, 1); 6574 } 6575 6576 __m256i test_mm256_maskz_alignr_epi32(__mmask8 __U, __m256i __A, __m256i __B) { 6577 // CHECK-LABEL: @test_mm256_maskz_alignr_epi32 6578 // CHECK: @llvm.x86.avx512.mask.valign.d.256 6579 return _mm256_maskz_alignr_epi32(__U, __A, __B, 1); 6580 } 6581 6582 __m128i test_mm_alignr_epi64(__m128i __A, __m128i __B) { 6583 // CHECK-LABEL: @test_mm_alignr_epi64 6584 // CHECK: @llvm.x86.avx512.mask.valign.q.128 6585 return _mm_alignr_epi64(__A, __B, 1); 6586 } 6587 6588 __m128i test_mm_mask_alignr_epi64(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 6589 // CHECK-LABEL: @test_mm_mask_alignr_epi64 6590 // CHECK: @llvm.x86.avx512.mask.valign.q.128 6591 return _mm_mask_alignr_epi64(__W, __U, __A, __B, 1); 6592 } 6593 6594 __m128i test_mm_maskz_alignr_epi64(__mmask8 __U, __m128i __A, __m128i __B) { 6595 // CHECK-LABEL: @test_mm_maskz_alignr_epi64 6596 // CHECK: @llvm.x86.avx512.mask.valign.q.128 6597 return _mm_maskz_alignr_epi64(__U, __A, __B, 1); 6598 } 6599 6600 __m256i test_mm256_alignr_epi64(__m256i __A, __m256i __B) { 6601 // CHECK-LABEL: @test_mm256_alignr_epi64 6602 // CHECK: @llvm.x86.avx512.mask.valign.q.256 6603 return _mm256_alignr_epi64(__A, __B, 1); 6604 } 6605 6606 __m256i test_mm256_mask_alignr_epi64(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { 6607 // CHECK-LABEL: @test_mm256_mask_alignr_epi64 6608 // CHECK: @llvm.x86.avx512.mask.valign.q.256 6609 return _mm256_mask_alignr_epi64(__W, __U, __A, __B, 1); 6610 } 6611 6612 __m256i test_mm256_maskz_alignr_epi64(__mmask8 __U, __m256i __A, __m256i __B) { 6613 // CHECK-LABEL: @test_mm256_maskz_alignr_epi64 6614 // CHECK: @llvm.x86.avx512.mask.valign.q.256 6615 return _mm256_maskz_alignr_epi64(__U, __A, __B, 1); 6616 } 6617 6618 __m128 test_mm_mask_movehdup_ps(__m128 __W, __mmask8 __U, __m128 __A) { 6619 // CHECK-LABEL: @test_mm_mask_movehdup_ps 6620 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 1, i32 1, i32 3, i32 3> 6621 // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}} 6622 return _mm_mask_movehdup_ps(__W, __U, __A); 6623 } 6624 6625 __m128 test_mm_maskz_movehdup_ps(__mmask8 __U, __m128 __A) { 6626 // CHECK-LABEL: @test_mm_maskz_movehdup_ps 6627 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 1, i32 1, i32 3, i32 3> 6628 // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}} 6629 return _mm_maskz_movehdup_ps(__U, __A); 6630 } 6631 6632 __m256 test_mm256_mask_movehdup_ps(__m256 __W, __mmask8 __U, __m256 __A) { 6633 // CHECK-LABEL: @test_mm256_mask_movehdup_ps 6634 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7> 6635 // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}} 6636 return _mm256_mask_movehdup_ps(__W, __U, __A); 6637 } 6638 6639 __m256 test_mm256_maskz_movehdup_ps(__mmask8 __U, __m256 __A) { 6640 // CHECK-LABEL: @test_mm256_maskz_movehdup_ps 6641 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 1, i32 1, i32 3, i32 3, i32 5, i32 5, i32 7, i32 7> 6642 // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}} 6643 return _mm256_maskz_movehdup_ps(__U, __A); 6644 } 6645 6646 __m128 test_mm_mask_moveldup_ps(__m128 __W, __mmask8 __U, __m128 __A) { 6647 // CHECK-LABEL: @test_mm_mask_moveldup_ps 6648 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2> 6649 // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}} 6650 return _mm_mask_moveldup_ps(__W, __U, __A); 6651 } 6652 6653 __m128 test_mm_maskz_moveldup_ps(__mmask8 __U, __m128 __A) { 6654 // CHECK-LABEL: @test_mm_maskz_moveldup_ps 6655 // CHECK: shufflevector <4 x float> %{{.*}}, <4 x float> %{{.*}}, <4 x i32> <i32 0, i32 0, i32 2, i32 2> 6656 // CHECK: select <4 x i1> %{{.*}} <4 x float> %{{.*}}, <4 x float> %{{.*}} 6657 return _mm_maskz_moveldup_ps(__U, __A); 6658 } 6659 6660 __m256 test_mm256_mask_moveldup_ps(__m256 __W, __mmask8 __U, __m256 __A) { 6661 // CHECK-LABEL: @test_mm256_mask_moveldup_ps 6662 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6> 6663 // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}} 6664 return _mm256_mask_moveldup_ps(__W, __U, __A); 6665 } 6666 6667 __m256 test_mm256_maskz_moveldup_ps(__mmask8 __U, __m256 __A) { 6668 // CHECK-LABEL: @test_mm256_maskz_moveldup_ps 6669 // CHECK: shufflevector <8 x float> %{{.*}}, <8 x float> %{{.*}}, <8 x i32> <i32 0, i32 0, i32 2, i32 2, i32 4, i32 4, i32 6, i32 6> 6670 // CHECK: select <8 x i1> %{{.*}} <8 x float> %{{.*}}, <8 x float> %{{.*}} 6671 return _mm256_maskz_moveldup_ps(__U, __A); 6672 } 6673 6674 __m128i test_mm_mask_shuffle_epi32(__m128i __W, __mmask8 __U, __m128i __A) { 6675 // CHECK-LABEL: @test_mm_mask_shuffle_epi32 6676 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 1, i32 0, i32 0, i32 0> 6677 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} 6678 return _mm_mask_shuffle_epi32(__W, __U, __A, 1); 6679 } 6680 6681 __m128i test_mm_maskz_shuffle_epi32(__mmask8 __U, __m128i __A) { 6682 // CHECK-LABEL: @test_mm_maskz_shuffle_epi32 6683 // CHECK: shufflevector <4 x i32> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> <i32 2, i32 0, i32 0, i32 0> 6684 // CHECK: select <4 x i1> %{{.*}}, <4 x i32> %{{.*}}, <4 x i32> %{{.*}} 6685 return _mm_maskz_shuffle_epi32(__U, __A, 2); 6686 } 6687 6688 __m256i test_mm256_mask_shuffle_epi32(__m256i __W, __mmask8 __U, __m256i __A) { 6689 // CHECK-LABEL: @test_mm256_mask_shuffle_epi32 6690 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4> 6691 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} 6692 return _mm256_mask_shuffle_epi32(__W, __U, __A, 2); 6693 } 6694 6695 __m256i test_mm256_maskz_shuffle_epi32(__mmask8 __U, __m256i __A) { 6696 // CHECK-LABEL: @test_mm256_maskz_shuffle_epi32 6697 // CHECK: shufflevector <8 x i32> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> <i32 2, i32 0, i32 0, i32 0, i32 6, i32 4, i32 4, i32 4> 6698 // CHECK: select <8 x i1> %{{.*}}, <8 x i32> %{{.*}}, <8 x i32> %{{.*}} 6699 return _mm256_maskz_shuffle_epi32(__U, __A, 2); 6700 } 6701 6702 __m128d test_mm_mask_mov_pd(__m128d __W, __mmask8 __U, __m128d __A) { 6703 // CHECK-LABEL: @test_mm_mask_mov_pd 6704 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}} 6705 return _mm_mask_mov_pd(__W, __U, __A); 6706 } 6707 6708 __m128d test_mm_maskz_mov_pd(__mmask8 __U, __m128d __A) { 6709 // CHECK-LABEL: @test_mm_maskz_mov_pd 6710 // CHECK: select <2 x i1> %{{.*}}, <2 x double> %{{.*}}, <2 x double> %{{.*}} 6711 return _mm_maskz_mov_pd(__U, __A); 6712 } 6713 6714 __m256d test_mm256_mask_mov_pd(__m256d __W, __mmask8 __U, __m256d __A) { 6715 // CHECK-LABEL: @test_mm256_mask_mov_pd 6716 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}} 6717 return _mm256_mask_mov_pd(__W, __U, __A); 6718 } 6719 6720 __m256d test_mm256_maskz_mov_pd(__mmask8 __U, __m256d __A) { 6721 // CHECK-LABEL: @test_mm256_maskz_mov_pd 6722 // CHECK: select <4 x i1> %{{.*}}, <4 x double> %{{.*}}, <4 x double> %{{.*}} 6723 return _mm256_maskz_mov_pd(__U, __A); 6724 } 6725 6726 __m128 test_mm_mask_mov_ps(__m128 __W, __mmask8 __U, __m128 __A) { 6727 // CHECK-LABEL: @test_mm_mask_mov_ps 6728 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}} 6729 return _mm_mask_mov_ps(__W, __U, __A); 6730 } 6731 6732 __m128 test_mm_maskz_mov_ps(__mmask8 __U, __m128 __A) { 6733 // CHECK-LABEL: @test_mm_maskz_mov_ps 6734 // CHECK: select <4 x i1> %{{.*}}, <4 x float> %{{.*}}, <4 x float> %{{.*}} 6735 return _mm_maskz_mov_ps(__U, __A); 6736 } 6737 6738 __m256 test_mm256_mask_mov_ps(__m256 __W, __mmask8 __U, __m256 __A) { 6739 // CHECK-LABEL: @test_mm256_mask_mov_ps 6740 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}} 6741 return _mm256_mask_mov_ps(__W, __U, __A); 6742 } 6743 6744 __m256 test_mm256_maskz_mov_ps(__mmask8 __U, __m256 __A) { 6745 // CHECK-LABEL: @test_mm256_maskz_mov_ps 6746 // CHECK: select <8 x i1> %{{.*}}, <8 x float> %{{.*}}, <8 x float> %{{.*}} 6747 return _mm256_maskz_mov_ps(__U, __A); 6748 } 6749 6750 __m128 test_mm_mask_cvtph_ps(__m128 __W, __mmask8 __U, __m128i __A) { 6751 // CHECK-LABEL: @test_mm_mask_cvtph_ps 6752 // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.128 6753 return _mm_mask_cvtph_ps(__W, __U, __A); 6754 } 6755 6756 __m128 test_mm_maskz_cvtph_ps(__mmask8 __U, __m128i __A) { 6757 // CHECK-LABEL: @test_mm_maskz_cvtph_ps 6758 // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.128 6759 return _mm_maskz_cvtph_ps(__U, __A); 6760 } 6761 6762 __m256 test_mm256_mask_cvtph_ps(__m256 __W, __mmask8 __U, __m128i __A) { 6763 // CHECK-LABEL: @test_mm256_mask_cvtph_ps 6764 // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.256 6765 return _mm256_mask_cvtph_ps(__W, __U, __A); 6766 } 6767 6768 __m256 test_mm256_maskz_cvtph_ps(__mmask8 __U, __m128i __A) { 6769 // CHECK-LABEL: @test_mm256_maskz_cvtph_ps 6770 // CHECK: @llvm.x86.avx512.mask.vcvtph2ps.256 6771 return _mm256_maskz_cvtph_ps(__U, __A); 6772 } 6773 6774 __m128i test_mm_mask_cvtps_ph(__m128i __W, __mmask8 __U, __m128 __A) { 6775 // CHECK-LABEL: @test_mm_mask_cvtps_ph 6776 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128 6777 return _mm_mask_cvtps_ph(__W, __U, __A); 6778 } 6779 6780 __m128i test_mm_maskz_cvtps_ph(__mmask8 __U, __m128 __A) { 6781 // CHECK-LABEL: @test_mm_maskz_cvtps_ph 6782 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128 6783 return _mm_maskz_cvtps_ph(__U, __A); 6784 } 6785 6786 __m128i test_mm256_mask_cvtps_ph(__m128i __W, __mmask8 __U, __m256 __A) { 6787 // CHECK-LABEL: @test_mm256_mask_cvtps_ph 6788 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256 6789 return _mm256_mask_cvtps_ph(__W, __U, __A); 6790 } 6791 6792 __m128i test_mm256_maskz_cvtps_ph(__mmask8 __U, __m256 __A) { 6793 // CHECK-LABEL: @test_mm256_maskz_cvtps_ph 6794 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256 6795 return _mm256_maskz_cvtps_ph(__U, __A); 6796 } 6797 6798 __m128i test_mm_mask_cvt_roundps_ph(__m128i __W, __mmask8 __U, __m128 __A) { 6799 // CHECK-LABEL: @test_mm_mask_cvt_roundps_ph 6800 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128 6801 return _mm_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_CUR_DIRECTION); 6802 } 6803 6804 __m128i test_mm_maskz_cvt_roundps_ph(__mmask8 __U, __m128 __A) { 6805 // CHECK-LABEL: @test_mm_maskz_cvt_roundps_ph 6806 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.128 6807 return _mm_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_CUR_DIRECTION); 6808 } 6809 6810 __m128i test_mm256_mask_cvt_roundps_ph(__m128i __W, __mmask8 __U, __m256 __A) { 6811 // CHECK-LABEL: @test_mm256_mask_cvt_roundps_ph 6812 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256 6813 return _mm256_mask_cvt_roundps_ph(__W, __U, __A, _MM_FROUND_CUR_DIRECTION); 6814 } 6815 6816 __m128i test_mm256_maskz_cvt_roundps_ph(__mmask8 __U, __m256 __A) { 6817 // CHECK-LABEL: @test_mm256_maskz_cvt_roundps_ph 6818 // CHECK: @llvm.x86.avx512.mask.vcvtps2ph.256 6819 return _mm256_maskz_cvt_roundps_ph(__U, __A, _MM_FROUND_CUR_DIRECTION); 6820 } 6821 6822 __mmask8 test_mm_cmpeq_epi32_mask(__m128i __a, __m128i __b) { 6823 // CHECK-LABEL: @test_mm_cmpeq_epi32_mask 6824 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}} 6825 return (__mmask8)_mm_cmpeq_epi32_mask(__a, __b); 6826 } 6827 6828 __mmask8 test_mm_mask_cmpeq_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 6829 // CHECK-LABEL: @test_mm_mask_cmpeq_epi32_mask 6830 // CHECK: icmp eq <4 x i32> %{{.*}}, %{{.*}} 6831 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 6832 return (__mmask8)_mm_mask_cmpeq_epi32_mask(__u, __a, __b); 6833 } 6834 6835 __mmask8 test_mm_mask_cmpeq_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 6836 // CHECK-LABEL: @test_mm_mask_cmpeq_epi64_mask 6837 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}} 6838 // CHECK: and <2 x i1> %{{.*}}, %{{.*}} 6839 return (__mmask8)_mm_mask_cmpeq_epi64_mask(__u, __a, __b); 6840 } 6841 6842 __mmask8 test_mm_cmpeq_epi64_mask(__m128i __a, __m128i __b) { 6843 // CHECK-LABEL: @test_mm_cmpeq_epi64_mask 6844 // CHECK: icmp eq <2 x i64> %{{.*}}, %{{.*}} 6845 return (__mmask8)_mm_cmpeq_epi64_mask(__a, __b); 6846 } 6847 6848 __mmask8 test_mm_cmpgt_epi32_mask(__m128i __a, __m128i __b) { 6849 // CHECK-LABEL: @test_mm_cmpgt_epi32_mask 6850 // CHECK: icmp sgt <4 x i32> %{{.*}}, %{{.*}} 6851 return (__mmask8)_mm_cmpgt_epi32_mask(__a, __b); 6852 } 6853 6854 __mmask8 test_mm_mask_cmpgt_epi32_mask(__mmask8 __u, __m128i __a, __m128i __b) { 6855 // CHECK-LABEL: @test_mm_mask_cmpgt_epi32_mask 6856 // CHECK: icmp sgt <4 x i32> %{{.*}}, %{{.*}} 6857 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 6858 return (__mmask8)_mm_mask_cmpgt_epi32_mask(__u, __a, __b); 6859 } 6860 6861 __mmask8 test_mm_mask_cmpgt_epi64_mask(__mmask8 __u, __m128i __a, __m128i __b) { 6862 // CHECK-LABEL: @test_mm_mask_cmpgt_epi64_mask 6863 // CHECK: icmp sgt <2 x i64> %{{.*}}, %{{.*}} 6864 // CHECK: and <2 x i1> %{{.*}}, %{{.*}} 6865 return (__mmask8)_mm_mask_cmpgt_epi64_mask(__u, __a, __b); 6866 } 6867 6868 __mmask8 test_mm_cmpgt_epi64_mask(__m128i __a, __m128i __b) { 6869 // CHECK-LABEL: @test_mm_cmpgt_epi64_mask 6870 // CHECK: icmp sgt <2 x i64> %{{.*}}, %{{.*}} 6871 return (__mmask8)_mm_cmpgt_epi64_mask(__a, __b); 6872 } 6873 6874 __mmask8 test_mm256_cmpeq_epi32_mask(__m256i __a, __m256i __b) { 6875 // CHECK-LABEL: @test_mm256_cmpeq_epi32_mask 6876 // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}} 6877 return (__mmask8)_mm256_cmpeq_epi32_mask(__a, __b); 6878 } 6879 6880 __mmask8 test_mm256_mask_cmpeq_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 6881 // CHECK-LABEL: @test_mm256_mask_cmpeq_epi32_mask 6882 // CHECK: icmp eq <8 x i32> %{{.*}}, %{{.*}} 6883 // CHECK: and <8 x i1> %{{.*}}, %{{.*}} 6884 return (__mmask8)_mm256_mask_cmpeq_epi32_mask(__u, __a, __b); 6885 } 6886 6887 __mmask8 test_mm256_mask_cmpeq_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 6888 // CHECK-LABEL: @test_mm256_mask_cmpeq_epi64_mask 6889 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}} 6890 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 6891 return (__mmask8)_mm256_mask_cmpeq_epi64_mask(__u, __a, __b); 6892 } 6893 6894 __mmask8 test_mm256_cmpeq_epi64_mask(__m256i __a, __m256i __b) { 6895 // CHECK-LABEL: @test_mm256_cmpeq_epi64_mask 6896 // CHECK: icmp eq <4 x i64> %{{.*}}, %{{.*}} 6897 return (__mmask8)_mm256_cmpeq_epi64_mask(__a, __b); 6898 } 6899 6900 __mmask8 test_mm256_cmpgt_epi32_mask(__m256i __a, __m256i __b) { 6901 // CHECK-LABEL: @test_mm256_cmpgt_epi32_mask 6902 // CHECK: icmp sgt <8 x i32> %{{.*}}, %{{.*}} 6903 return (__mmask8)_mm256_cmpgt_epi32_mask(__a, __b); 6904 } 6905 6906 __mmask8 test_mm256_mask_cmpgt_epi32_mask(__mmask8 __u, __m256i __a, __m256i __b) { 6907 // CHECK-LABEL: @test_mm256_mask_cmpgt_epi32_mask 6908 // CHECK: icmp sgt <8 x i32> %{{.*}}, %{{.*}} 6909 // CHECK: and <8 x i1> %{{.*}}, %{{.*}} 6910 return (__mmask8)_mm256_mask_cmpgt_epi32_mask(__u, __a, __b); 6911 } 6912 6913 __mmask8 test_mm256_mask_cmpgt_epi64_mask(__mmask8 __u, __m256i __a, __m256i __b) { 6914 // CHECK-LABEL: @test_mm256_mask_cmpgt_epi64_mask 6915 // CHECK: icmp sgt <4 x i64> %{{.*}}, %{{.*}} 6916 // CHECK: and <4 x i1> %{{.*}}, %{{.*}} 6917 return (__mmask8)_mm256_mask_cmpgt_epi64_mask(__u, __a, __b); 6918 } 6919 6920 __mmask8 test_mm256_cmpgt_epi64_mask(__m256i __a, __m256i __b) { 6921 // CHECK-LABEL: @test_mm256_cmpgt_epi64_mask 6922 // CHECK: icmp sgt <4 x i64> %{{.*}}, %{{.*}} 6923 return (__mmask8)_mm256_cmpgt_epi64_mask(__a, __b); 6924 } 6925