1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512bw -target-feature +avx512vl -emit-llvm -o - -Werror | FileCheck %s 2 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512bw -target-feature +avx512vl -fno-signed-char -emit-llvm -o - -Werror | FileCheck %s 3 4 // Don't include mm_malloc.h, it's system specific. 5 #define __MM_MALLOC_H 6 7 #include <immintrin.h> 8 9 __mmask32 test_mm256_cmpeq_epi8_mask(__m256i __a, __m256i __b) { 10 // CHECK-LABEL: @test_mm256_cmpeq_epi8_mask 11 // CHECK: @llvm.x86.avx512.mask.pcmpeq.b.256 12 return (__mmask32)_mm256_cmpeq_epi8_mask(__a, __b); 13 } 14 15 __mmask32 test_mm256_mask_cmpeq_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 16 // CHECK-LABEL: @test_mm256_mask_cmpeq_epi8_mask 17 // CHECK: @llvm.x86.avx512.mask.pcmpeq.b.256 18 return (__mmask32)_mm256_mask_cmpeq_epi8_mask(__u, __a, __b); 19 } 20 21 __mmask16 test_mm_cmpeq_epi8_mask(__m128i __a, __m128i __b) { 22 // CHECK-LABEL: @test_mm_cmpeq_epi8_mask 23 // CHECK: @llvm.x86.avx512.mask.pcmpeq.b.128 24 return (__mmask16)_mm_cmpeq_epi8_mask(__a, __b); 25 } 26 27 __mmask16 test_mm_mask_cmpeq_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 28 // CHECK-LABEL: @test_mm_mask_cmpeq_epi8_mask 29 // CHECK: @llvm.x86.avx512.mask.pcmpeq.b.128 30 return (__mmask16)_mm_mask_cmpeq_epi8_mask(__u, __a, __b); 31 } 32 33 __mmask16 test_mm256_cmpeq_epi16_mask(__m256i __a, __m256i __b) { 34 // CHECK-LABEL: @test_mm256_cmpeq_epi16_mask 35 // CHECK: @llvm.x86.avx512.mask.pcmpeq.w.256 36 return (__mmask16)_mm256_cmpeq_epi16_mask(__a, __b); 37 } 38 39 __mmask16 test_mm256_mask_cmpeq_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 40 // CHECK-LABEL: @test_mm256_mask_cmpeq_epi16_mask 41 // CHECK: @llvm.x86.avx512.mask.pcmpeq.w.256 42 return (__mmask16)_mm256_mask_cmpeq_epi16_mask(__u, __a, __b); 43 } 44 45 __mmask8 test_mm_cmpeq_epi16_mask(__m128i __a, __m128i __b) { 46 // CHECK-LABEL: @test_mm_cmpeq_epi16_mask 47 // CHECK: @llvm.x86.avx512.mask.pcmpeq.w.128 48 return (__mmask8)_mm_cmpeq_epi16_mask(__a, __b); 49 } 50 51 __mmask8 test_mm_mask_cmpeq_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 52 // CHECK-LABEL: @test_mm_mask_cmpeq_epi16_mask 53 // CHECK: @llvm.x86.avx512.mask.pcmpeq.w.128 54 return (__mmask8)_mm_mask_cmpeq_epi16_mask(__u, __a, __b); 55 } 56 57 __mmask32 test_mm256_cmpgt_epi8_mask(__m256i __a, __m256i __b) { 58 // CHECK-LABEL: @test_mm256_cmpgt_epi8_mask 59 // CHECK: @llvm.x86.avx512.mask.pcmpgt.b.256 60 return (__mmask32)_mm256_cmpgt_epi8_mask(__a, __b); 61 } 62 63 __mmask32 test_mm256_mask_cmpgt_epi8_mask(__mmask32 __u, __m256i __a, __m256i __b) { 64 // CHECK-LABEL: @test_mm256_mask_cmpgt_epi8_mask 65 // CHECK: @llvm.x86.avx512.mask.pcmpgt.b.256 66 return (__mmask32)_mm256_mask_cmpgt_epi8_mask(__u, __a, __b); 67 } 68 69 __mmask16 test_mm_cmpgt_epi8_mask(__m128i __a, __m128i __b) { 70 // CHECK-LABEL: @test_mm_cmpgt_epi8_mask 71 // CHECK: @llvm.x86.avx512.mask.pcmpgt.b.128 72 return (__mmask16)_mm_cmpgt_epi8_mask(__a, __b); 73 } 74 75 __mmask16 test_mm_mask_cmpgt_epi8_mask(__mmask16 __u, __m128i __a, __m128i __b) { 76 // CHECK-LABEL: @test_mm_mask_cmpgt_epi8_mask 77 // CHECK: @llvm.x86.avx512.mask.pcmpgt.b.128 78 return (__mmask16)_mm_mask_cmpgt_epi8_mask(__u, __a, __b); 79 } 80 81 __mmask16 test_mm256_cmpgt_epi16_mask(__m256i __a, __m256i __b) { 82 // CHECK-LABEL: @test_mm256_cmpgt_epi16_mask 83 // CHECK: @llvm.x86.avx512.mask.pcmpgt.w.256 84 return (__mmask16)_mm256_cmpgt_epi16_mask(__a, __b); 85 } 86 87 __mmask16 test_mm256_mask_cmpgt_epi16_mask(__mmask16 __u, __m256i __a, __m256i __b) { 88 // CHECK-LABEL: @test_mm256_mask_cmpgt_epi16_mask 89 // CHECK: @llvm.x86.avx512.mask.pcmpgt.w.256 90 return (__mmask16)_mm256_mask_cmpgt_epi16_mask(__u, __a, __b); 91 } 92 93 __mmask8 test_mm_cmpgt_epi16_mask(__m128i __a, __m128i __b) { 94 // CHECK-LABEL: @test_mm_cmpgt_epi16_mask 95 // CHECK: @llvm.x86.avx512.mask.pcmpgt.w.128 96 return (__mmask8)_mm_cmpgt_epi16_mask(__a, __b); 97 } 98 99 __mmask8 test_mm_mask_cmpgt_epi16_mask(__mmask8 __u, __m128i __a, __m128i __b) { 100 // CHECK-LABEL: @test_mm_mask_cmpgt_epi16_mask 101 // CHECK: @llvm.x86.avx512.mask.pcmpgt.w.128 102 return (__mmask8)_mm_mask_cmpgt_epi16_mask(__u, __a, __b); 103 } 104 105 __mmask16 test_mm_cmpeq_epu8_mask(__m128i __a, __m128i __b) { 106 // CHECK-LABEL: @test_mm_cmpeq_epu8_mask 107 // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 0, i16 -1) 108 return (__mmask64)_mm_cmpeq_epu8_mask(__a, __b); 109 } 110 111 __mmask16 test_mm_mask_cmpeq_epu8_mask(__mmask64 __u, __m128i __a, __m128i __b) { 112 // CHECK-LABEL: @test_mm_mask_cmpeq_epu8_mask 113 // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 0, i16 {{.*}}) 114 return (__mmask64)_mm_mask_cmpeq_epu8_mask(__u, __a, __b); 115 } 116 117 __mmask8 test_mm_cmpeq_epu16_mask(__m128i __a, __m128i __b) { 118 // CHECK-LABEL: @test_mm_cmpeq_epu16_mask 119 // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 0, i8 -1) 120 return (__mmask32)_mm_cmpeq_epu16_mask(__a, __b); 121 } 122 123 __mmask8 test_mm_mask_cmpeq_epu16_mask(__mmask32 __u, __m128i __a, __m128i __b) { 124 // CHECK-LABEL: @test_mm_mask_cmpeq_epu16_mask 125 // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 0, i8 {{.*}}) 126 return (__mmask32)_mm_mask_cmpeq_epu16_mask(__u, __a, __b); 127 } 128 129 __mmask32 test_mm256_cmpeq_epu8_mask(__m256i __a, __m256i __b) { 130 // CHECK-LABEL: @test_mm256_cmpeq_epu8_mask 131 // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 0, i32 -1) 132 return (__mmask64)_mm256_cmpeq_epu8_mask(__a, __b); 133 } 134 135 __mmask32 test_mm256_mask_cmpeq_epu8_mask(__mmask64 __u, __m256i __a, __m256i __b) { 136 // CHECK-LABEL: @test_mm256_mask_cmpeq_epu8_mask 137 // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 0, i32 {{.*}}) 138 return (__mmask64)_mm256_mask_cmpeq_epu8_mask(__u, __a, __b); 139 } 140 141 __mmask16 test_mm256_cmpeq_epu16_mask(__m256i __a, __m256i __b) { 142 // CHECK-LABEL: @test_mm256_cmpeq_epu16_mask 143 // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 0, i16 -1) 144 return (__mmask32)_mm256_cmpeq_epu16_mask(__a, __b); 145 } 146 147 __mmask16 test_mm256_mask_cmpeq_epu16_mask(__mmask32 __u, __m256i __a, __m256i __b) { 148 // CHECK-LABEL: @test_mm256_mask_cmpeq_epu16_mask 149 // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 0, i16 {{.*}}) 150 return (__mmask32)_mm256_mask_cmpeq_epu16_mask(__u, __a, __b); 151 } 152 153 __mmask16 test_mm_cmpgt_epu8_mask(__m128i __a, __m128i __b) { 154 // CHECK-LABEL: @test_mm_cmpgt_epu8_mask 155 // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 6, i16 -1) 156 return (__mmask64)_mm_cmpgt_epu8_mask(__a, __b); 157 } 158 159 __mmask16 test_mm_mask_cmpgt_epu8_mask(__mmask64 __u, __m128i __a, __m128i __b) { 160 // CHECK-LABEL: @test_mm_mask_cmpgt_epu8_mask 161 // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 6, i16 {{.*}}) 162 return (__mmask64)_mm_mask_cmpgt_epu8_mask(__u, __a, __b); 163 } 164 165 __mmask8 test_mm_cmpgt_epu16_mask(__m128i __a, __m128i __b) { 166 // CHECK-LABEL: @test_mm_cmpgt_epu16_mask 167 // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 6, i8 -1) 168 return (__mmask32)_mm_cmpgt_epu16_mask(__a, __b); 169 } 170 171 __mmask8 test_mm_mask_cmpgt_epu16_mask(__mmask32 __u, __m128i __a, __m128i __b) { 172 // CHECK-LABEL: @test_mm_mask_cmpgt_epu16_mask 173 // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 6, i8 {{.*}}) 174 return (__mmask32)_mm_mask_cmpgt_epu16_mask(__u, __a, __b); 175 } 176 177 __mmask32 test_mm256_cmpgt_epu8_mask(__m256i __a, __m256i __b) { 178 // CHECK-LABEL: @test_mm256_cmpgt_epu8_mask 179 // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 6, i32 -1) 180 return (__mmask64)_mm256_cmpgt_epu8_mask(__a, __b); 181 } 182 183 __mmask32 test_mm256_mask_cmpgt_epu8_mask(__mmask64 __u, __m256i __a, __m256i __b) { 184 // CHECK-LABEL: @test_mm256_mask_cmpgt_epu8_mask 185 // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 6, i32 {{.*}}) 186 return (__mmask64)_mm256_mask_cmpgt_epu8_mask(__u, __a, __b); 187 } 188 189 __mmask16 test_mm256_cmpgt_epu16_mask(__m256i __a, __m256i __b) { 190 // CHECK-LABEL: @test_mm256_cmpgt_epu16_mask 191 // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 6, i16 -1) 192 return (__mmask32)_mm256_cmpgt_epu16_mask(__a, __b); 193 } 194 195 __mmask16 test_mm256_mask_cmpgt_epu16_mask(__mmask32 __u, __m256i __a, __m256i __b) { 196 // CHECK-LABEL: @test_mm256_mask_cmpgt_epu16_mask 197 // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 6, i16 {{.*}}) 198 return (__mmask32)_mm256_mask_cmpgt_epu16_mask(__u, __a, __b); 199 } 200 201 __mmask16 test_mm_cmpge_epi8_mask(__m128i __a, __m128i __b) { 202 // CHECK-LABEL: @test_mm_cmpge_epi8_mask 203 // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 5, i16 -1) 204 return (__mmask64)_mm_cmpge_epi8_mask(__a, __b); 205 } 206 207 __mmask16 test_mm_mask_cmpge_epi8_mask(__mmask64 __u, __m128i __a, __m128i __b) { 208 // CHECK-LABEL: @test_mm_mask_cmpge_epi8_mask 209 // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 5, i16 {{.*}}) 210 return (__mmask64)_mm_mask_cmpge_epi8_mask(__u, __a, __b); 211 } 212 213 __mmask16 test_mm_cmpge_epu8_mask(__m128i __a, __m128i __b) { 214 // CHECK-LABEL: @test_mm_cmpge_epu8_mask 215 // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 5, i16 -1) 216 return (__mmask64)_mm_cmpge_epu8_mask(__a, __b); 217 } 218 219 __mmask16 test_mm_mask_cmpge_epu8_mask(__mmask64 __u, __m128i __a, __m128i __b) { 220 // CHECK-LABEL: @test_mm_mask_cmpge_epu8_mask 221 // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 5, i16 {{.*}}) 222 return (__mmask64)_mm_mask_cmpge_epu8_mask(__u, __a, __b); 223 } 224 225 __mmask8 test_mm_cmpge_epi16_mask(__m128i __a, __m128i __b) { 226 // CHECK-LABEL: @test_mm_cmpge_epi16_mask 227 // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 5, i8 -1) 228 return (__mmask32)_mm_cmpge_epi16_mask(__a, __b); 229 } 230 231 __mmask8 test_mm_mask_cmpge_epi16_mask(__mmask32 __u, __m128i __a, __m128i __b) { 232 // CHECK-LABEL: @test_mm_mask_cmpge_epi16_mask 233 // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 5, i8 {{.*}}) 234 return (__mmask32)_mm_mask_cmpge_epi16_mask(__u, __a, __b); 235 } 236 237 __mmask8 test_mm_cmpge_epu16_mask(__m128i __a, __m128i __b) { 238 // CHECK-LABEL: @test_mm_cmpge_epu16_mask 239 // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 5, i8 -1) 240 return (__mmask32)_mm_cmpge_epu16_mask(__a, __b); 241 } 242 243 __mmask8 test_mm_mask_cmpge_epu16_mask(__mmask32 __u, __m128i __a, __m128i __b) { 244 // CHECK-LABEL: @test_mm_mask_cmpge_epu16_mask 245 // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 5, i8 {{.*}}) 246 return (__mmask32)_mm_mask_cmpge_epu16_mask(__u, __a, __b); 247 } 248 249 __mmask32 test_mm256_cmpge_epi8_mask(__m256i __a, __m256i __b) { 250 // CHECK-LABEL: @test_mm256_cmpge_epi8_mask 251 // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 5, i32 -1) 252 return (__mmask64)_mm256_cmpge_epi8_mask(__a, __b); 253 } 254 255 __mmask32 test_mm256_mask_cmpge_epi8_mask(__mmask64 __u, __m256i __a, __m256i __b) { 256 // CHECK-LABEL: @test_mm256_mask_cmpge_epi8_mask 257 // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 5, i32 {{.*}}) 258 return (__mmask64)_mm256_mask_cmpge_epi8_mask(__u, __a, __b); 259 } 260 261 __mmask32 test_mm256_cmpge_epu8_mask(__m256i __a, __m256i __b) { 262 // CHECK-LABEL: @test_mm256_cmpge_epu8_mask 263 // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 5, i32 -1) 264 return (__mmask64)_mm256_cmpge_epu8_mask(__a, __b); 265 } 266 267 __mmask32 test_mm256_mask_cmpge_epu8_mask(__mmask64 __u, __m256i __a, __m256i __b) { 268 // CHECK-LABEL: @test_mm256_mask_cmpge_epu8_mask 269 // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 5, i32 {{.*}}) 270 return (__mmask64)_mm256_mask_cmpge_epu8_mask(__u, __a, __b); 271 } 272 273 __mmask16 test_mm256_cmpge_epi16_mask(__m256i __a, __m256i __b) { 274 // CHECK-LABEL: @test_mm256_cmpge_epi16_mask 275 // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 5, i16 -1) 276 return (__mmask32)_mm256_cmpge_epi16_mask(__a, __b); 277 } 278 279 __mmask16 test_mm256_mask_cmpge_epi16_mask(__mmask32 __u, __m256i __a, __m256i __b) { 280 // CHECK-LABEL: @test_mm256_mask_cmpge_epi16_mask 281 // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 5, i16 {{.*}}) 282 return (__mmask32)_mm256_mask_cmpge_epi16_mask(__u, __a, __b); 283 } 284 285 __mmask16 test_mm256_cmpge_epu16_mask(__m256i __a, __m256i __b) { 286 // CHECK-LABEL: @test_mm256_cmpge_epu16_mask 287 // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 5, i16 -1) 288 return (__mmask32)_mm256_cmpge_epu16_mask(__a, __b); 289 } 290 291 __mmask16 test_mm256_mask_cmpge_epu16_mask(__mmask32 __u, __m256i __a, __m256i __b) { 292 // CHECK-LABEL: @test_mm256_mask_cmpge_epu16_mask 293 // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 5, i16 {{.*}}) 294 return (__mmask32)_mm256_mask_cmpge_epu16_mask(__u, __a, __b); 295 } 296 297 __mmask16 test_mm_cmple_epi8_mask(__m128i __a, __m128i __b) { 298 // CHECK-LABEL: @test_mm_cmple_epi8_mask 299 // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 2, i16 -1) 300 return (__mmask64)_mm_cmple_epi8_mask(__a, __b); 301 } 302 303 __mmask16 test_mm_mask_cmple_epi8_mask(__mmask64 __u, __m128i __a, __m128i __b) { 304 // CHECK-LABEL: @test_mm_mask_cmple_epi8_mask 305 // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 2, i16 {{.*}}) 306 return (__mmask64)_mm_mask_cmple_epi8_mask(__u, __a, __b); 307 } 308 309 __mmask16 test_mm_cmple_epu8_mask(__m128i __a, __m128i __b) { 310 // CHECK-LABEL: @test_mm_cmple_epu8_mask 311 // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 2, i16 -1) 312 return (__mmask64)_mm_cmple_epu8_mask(__a, __b); 313 } 314 315 __mmask16 test_mm_mask_cmple_epu8_mask(__mmask64 __u, __m128i __a, __m128i __b) { 316 // CHECK-LABEL: @test_mm_mask_cmple_epu8_mask 317 // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 2, i16 {{.*}}) 318 return (__mmask64)_mm_mask_cmple_epu8_mask(__u, __a, __b); 319 } 320 321 __mmask8 test_mm_cmple_epi16_mask(__m128i __a, __m128i __b) { 322 // CHECK-LABEL: @test_mm_cmple_epi16_mask 323 // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 2, i8 -1) 324 return (__mmask32)_mm_cmple_epi16_mask(__a, __b); 325 } 326 327 __mmask8 test_mm_mask_cmple_epi16_mask(__mmask32 __u, __m128i __a, __m128i __b) { 328 // CHECK-LABEL: @test_mm_mask_cmple_epi16_mask 329 // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 2, i8 {{.*}}) 330 return (__mmask32)_mm_mask_cmple_epi16_mask(__u, __a, __b); 331 } 332 333 __mmask8 test_mm_cmple_epu16_mask(__m128i __a, __m128i __b) { 334 // CHECK-LABEL: @test_mm_cmple_epu16_mask 335 // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 2, i8 -1) 336 return (__mmask32)_mm_cmple_epu16_mask(__a, __b); 337 } 338 339 __mmask8 test_mm_mask_cmple_epu16_mask(__mmask32 __u, __m128i __a, __m128i __b) { 340 // CHECK-LABEL: @test_mm_mask_cmple_epu16_mask 341 // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 2, i8 {{.*}}) 342 return (__mmask32)_mm_mask_cmple_epu16_mask(__u, __a, __b); 343 } 344 345 __mmask32 test_mm256_cmple_epi8_mask(__m256i __a, __m256i __b) { 346 // CHECK-LABEL: @test_mm256_cmple_epi8_mask 347 // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 2, i32 -1) 348 return (__mmask64)_mm256_cmple_epi8_mask(__a, __b); 349 } 350 351 __mmask32 test_mm256_mask_cmple_epi8_mask(__mmask64 __u, __m256i __a, __m256i __b) { 352 // CHECK-LABEL: @test_mm256_mask_cmple_epi8_mask 353 // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 2, i32 {{.*}}) 354 return (__mmask64)_mm256_mask_cmple_epi8_mask(__u, __a, __b); 355 } 356 357 __mmask32 test_mm256_cmple_epu8_mask(__m256i __a, __m256i __b) { 358 // CHECK-LABEL: @test_mm256_cmple_epu8_mask 359 // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 2, i32 -1) 360 return (__mmask64)_mm256_cmple_epu8_mask(__a, __b); 361 } 362 363 __mmask32 test_mm256_mask_cmple_epu8_mask(__mmask64 __u, __m256i __a, __m256i __b) { 364 // CHECK-LABEL: @test_mm256_mask_cmple_epu8_mask 365 // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 2, i32 {{.*}}) 366 return (__mmask64)_mm256_mask_cmple_epu8_mask(__u, __a, __b); 367 } 368 369 __mmask16 test_mm256_cmple_epi16_mask(__m256i __a, __m256i __b) { 370 // CHECK-LABEL: @test_mm256_cmple_epi16_mask 371 // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 2, i16 -1) 372 return (__mmask32)_mm256_cmple_epi16_mask(__a, __b); 373 } 374 375 __mmask16 test_mm256_mask_cmple_epi16_mask(__mmask32 __u, __m256i __a, __m256i __b) { 376 // CHECK-LABEL: @test_mm256_mask_cmple_epi16_mask 377 // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 2, i16 {{.*}}) 378 return (__mmask32)_mm256_mask_cmple_epi16_mask(__u, __a, __b); 379 } 380 381 __mmask16 test_mm256_cmple_epu16_mask(__m256i __a, __m256i __b) { 382 // CHECK-LABEL: @test_mm256_cmple_epu16_mask 383 // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 2, i16 -1) 384 return (__mmask32)_mm256_cmple_epu16_mask(__a, __b); 385 } 386 387 __mmask16 test_mm256_mask_cmple_epu16_mask(__mmask32 __u, __m256i __a, __m256i __b) { 388 // CHECK-LABEL: @test_mm256_mask_cmple_epu16_mask 389 // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 2, i16 {{.*}}) 390 return (__mmask32)_mm256_mask_cmple_epu16_mask(__u, __a, __b); 391 } 392 393 __mmask16 test_mm_cmplt_epi8_mask(__m128i __a, __m128i __b) { 394 // CHECK-LABEL: @test_mm_cmplt_epi8_mask 395 // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 1, i16 -1) 396 return (__mmask64)_mm_cmplt_epi8_mask(__a, __b); 397 } 398 399 __mmask16 test_mm_mask_cmplt_epi8_mask(__mmask64 __u, __m128i __a, __m128i __b) { 400 // CHECK-LABEL: @test_mm_mask_cmplt_epi8_mask 401 // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 1, i16 {{.*}}) 402 return (__mmask64)_mm_mask_cmplt_epi8_mask(__u, __a, __b); 403 } 404 405 __mmask16 test_mm_cmplt_epu8_mask(__m128i __a, __m128i __b) { 406 // CHECK-LABEL: @test_mm_cmplt_epu8_mask 407 // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 1, i16 -1) 408 return (__mmask64)_mm_cmplt_epu8_mask(__a, __b); 409 } 410 411 __mmask16 test_mm_mask_cmplt_epu8_mask(__mmask64 __u, __m128i __a, __m128i __b) { 412 // CHECK-LABEL: @test_mm_mask_cmplt_epu8_mask 413 // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 1, i16 {{.*}}) 414 return (__mmask64)_mm_mask_cmplt_epu8_mask(__u, __a, __b); 415 } 416 417 __mmask8 test_mm_cmplt_epi16_mask(__m128i __a, __m128i __b) { 418 // CHECK-LABEL: @test_mm_cmplt_epi16_mask 419 // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 1, i8 -1) 420 return (__mmask32)_mm_cmplt_epi16_mask(__a, __b); 421 } 422 423 __mmask8 test_mm_mask_cmplt_epi16_mask(__mmask32 __u, __m128i __a, __m128i __b) { 424 // CHECK-LABEL: @test_mm_mask_cmplt_epi16_mask 425 // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 1, i8 {{.*}}) 426 return (__mmask32)_mm_mask_cmplt_epi16_mask(__u, __a, __b); 427 } 428 429 __mmask8 test_mm_cmplt_epu16_mask(__m128i __a, __m128i __b) { 430 // CHECK-LABEL: @test_mm_cmplt_epu16_mask 431 // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 1, i8 -1) 432 return (__mmask32)_mm_cmplt_epu16_mask(__a, __b); 433 } 434 435 __mmask8 test_mm_mask_cmplt_epu16_mask(__mmask32 __u, __m128i __a, __m128i __b) { 436 // CHECK-LABEL: @test_mm_mask_cmplt_epu16_mask 437 // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 1, i8 {{.*}}) 438 return (__mmask32)_mm_mask_cmplt_epu16_mask(__u, __a, __b); 439 } 440 441 __mmask32 test_mm256_cmplt_epi8_mask(__m256i __a, __m256i __b) { 442 // CHECK-LABEL: @test_mm256_cmplt_epi8_mask 443 // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 1, i32 -1) 444 return (__mmask64)_mm256_cmplt_epi8_mask(__a, __b); 445 } 446 447 __mmask32 test_mm256_mask_cmplt_epi8_mask(__mmask64 __u, __m256i __a, __m256i __b) { 448 // CHECK-LABEL: @test_mm256_mask_cmplt_epi8_mask 449 // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 1, i32 {{.*}}) 450 return (__mmask64)_mm256_mask_cmplt_epi8_mask(__u, __a, __b); 451 } 452 453 __mmask32 test_mm256_cmplt_epu8_mask(__m256i __a, __m256i __b) { 454 // CHECK-LABEL: @test_mm256_cmplt_epu8_mask 455 // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 1, i32 -1) 456 return (__mmask64)_mm256_cmplt_epu8_mask(__a, __b); 457 } 458 459 __mmask32 test_mm256_mask_cmplt_epu8_mask(__mmask64 __u, __m256i __a, __m256i __b) { 460 // CHECK-LABEL: @test_mm256_mask_cmplt_epu8_mask 461 // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 1, i32 {{.*}}) 462 return (__mmask64)_mm256_mask_cmplt_epu8_mask(__u, __a, __b); 463 } 464 465 __mmask16 test_mm256_cmplt_epi16_mask(__m256i __a, __m256i __b) { 466 // CHECK-LABEL: @test_mm256_cmplt_epi16_mask 467 // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 1, i16 -1) 468 return (__mmask32)_mm256_cmplt_epi16_mask(__a, __b); 469 } 470 471 __mmask16 test_mm256_mask_cmplt_epi16_mask(__mmask32 __u, __m256i __a, __m256i __b) { 472 // CHECK-LABEL: @test_mm256_mask_cmplt_epi16_mask 473 // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 1, i16 {{.*}}) 474 return (__mmask32)_mm256_mask_cmplt_epi16_mask(__u, __a, __b); 475 } 476 477 __mmask16 test_mm256_cmplt_epu16_mask(__m256i __a, __m256i __b) { 478 // CHECK-LABEL: @test_mm256_cmplt_epu16_mask 479 // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 1, i16 -1) 480 return (__mmask32)_mm256_cmplt_epu16_mask(__a, __b); 481 } 482 483 __mmask16 test_mm256_mask_cmplt_epu16_mask(__mmask32 __u, __m256i __a, __m256i __b) { 484 // CHECK-LABEL: @test_mm256_mask_cmplt_epu16_mask 485 // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 1, i16 {{.*}}) 486 return (__mmask32)_mm256_mask_cmplt_epu16_mask(__u, __a, __b); 487 } 488 489 __mmask16 test_mm_cmpneq_epi8_mask(__m128i __a, __m128i __b) { 490 // CHECK-LABEL: @test_mm_cmpneq_epi8_mask 491 // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 4, i16 -1) 492 return (__mmask64)_mm_cmpneq_epi8_mask(__a, __b); 493 } 494 495 __mmask16 test_mm_mask_cmpneq_epi8_mask(__mmask64 __u, __m128i __a, __m128i __b) { 496 // CHECK-LABEL: @test_mm_mask_cmpneq_epi8_mask 497 // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 4, i16 {{.*}}) 498 return (__mmask64)_mm_mask_cmpneq_epi8_mask(__u, __a, __b); 499 } 500 501 __mmask16 test_mm_cmpneq_epu8_mask(__m128i __a, __m128i __b) { 502 // CHECK-LABEL: @test_mm_cmpneq_epu8_mask 503 // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 4, i16 -1) 504 return (__mmask64)_mm_cmpneq_epu8_mask(__a, __b); 505 } 506 507 __mmask16 test_mm_mask_cmpneq_epu8_mask(__mmask64 __u, __m128i __a, __m128i __b) { 508 // CHECK-LABEL: @test_mm_mask_cmpneq_epu8_mask 509 // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 4, i16 {{.*}}) 510 return (__mmask64)_mm_mask_cmpneq_epu8_mask(__u, __a, __b); 511 } 512 513 __mmask8 test_mm_cmpneq_epi16_mask(__m128i __a, __m128i __b) { 514 // CHECK-LABEL: @test_mm_cmpneq_epi16_mask 515 // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 4, i8 -1) 516 return (__mmask32)_mm_cmpneq_epi16_mask(__a, __b); 517 } 518 519 __mmask8 test_mm_mask_cmpneq_epi16_mask(__mmask32 __u, __m128i __a, __m128i __b) { 520 // CHECK-LABEL: @test_mm_mask_cmpneq_epi16_mask 521 // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 4, i8 {{.*}}) 522 return (__mmask32)_mm_mask_cmpneq_epi16_mask(__u, __a, __b); 523 } 524 525 __mmask8 test_mm_cmpneq_epu16_mask(__m128i __a, __m128i __b) { 526 // CHECK-LABEL: @test_mm_cmpneq_epu16_mask 527 // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 4, i8 -1) 528 return (__mmask32)_mm_cmpneq_epu16_mask(__a, __b); 529 } 530 531 __mmask8 test_mm_mask_cmpneq_epu16_mask(__mmask32 __u, __m128i __a, __m128i __b) { 532 // CHECK-LABEL: @test_mm_mask_cmpneq_epu16_mask 533 // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 4, i8 {{.*}}) 534 return (__mmask32)_mm_mask_cmpneq_epu16_mask(__u, __a, __b); 535 } 536 537 __mmask32 test_mm256_cmpneq_epi8_mask(__m256i __a, __m256i __b) { 538 // CHECK-LABEL: @test_mm256_cmpneq_epi8_mask 539 // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 4, i32 -1) 540 return (__mmask64)_mm256_cmpneq_epi8_mask(__a, __b); 541 } 542 543 __mmask32 test_mm256_mask_cmpneq_epi8_mask(__mmask64 __u, __m256i __a, __m256i __b) { 544 // CHECK-LABEL: @test_mm256_mask_cmpneq_epi8_mask 545 // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 4, i32 {{.*}}) 546 return (__mmask64)_mm256_mask_cmpneq_epi8_mask(__u, __a, __b); 547 } 548 549 __mmask32 test_mm256_cmpneq_epu8_mask(__m256i __a, __m256i __b) { 550 // CHECK-LABEL: @test_mm256_cmpneq_epu8_mask 551 // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 4, i32 -1) 552 return (__mmask64)_mm256_cmpneq_epu8_mask(__a, __b); 553 } 554 555 __mmask32 test_mm256_mask_cmpneq_epu8_mask(__mmask64 __u, __m256i __a, __m256i __b) { 556 // CHECK-LABEL: @test_mm256_mask_cmpneq_epu8_mask 557 // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 4, i32 {{.*}}) 558 return (__mmask64)_mm256_mask_cmpneq_epu8_mask(__u, __a, __b); 559 } 560 561 __mmask16 test_mm256_cmpneq_epi16_mask(__m256i __a, __m256i __b) { 562 // CHECK-LABEL: @test_mm256_cmpneq_epi16_mask 563 // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 4, i16 -1) 564 return (__mmask32)_mm256_cmpneq_epi16_mask(__a, __b); 565 } 566 567 __mmask16 test_mm256_mask_cmpneq_epi16_mask(__mmask32 __u, __m256i __a, __m256i __b) { 568 // CHECK-LABEL: @test_mm256_mask_cmpneq_epi16_mask 569 // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 4, i16 {{.*}}) 570 return (__mmask32)_mm256_mask_cmpneq_epi16_mask(__u, __a, __b); 571 } 572 573 __mmask16 test_mm256_cmpneq_epu16_mask(__m256i __a, __m256i __b) { 574 // CHECK-LABEL: @test_mm256_cmpneq_epu16_mask 575 // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 4, i16 -1) 576 return (__mmask32)_mm256_cmpneq_epu16_mask(__a, __b); 577 } 578 579 __mmask16 test_mm256_mask_cmpneq_epu16_mask(__mmask32 __u, __m256i __a, __m256i __b) { 580 // CHECK-LABEL: @test_mm256_mask_cmpneq_epu16_mask 581 // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 4, i16 {{.*}}) 582 return (__mmask32)_mm256_mask_cmpneq_epu16_mask(__u, __a, __b); 583 } 584 585 __mmask16 test_mm_cmp_epi8_mask(__m128i __a, __m128i __b) { 586 // CHECK-LABEL: @test_mm_cmp_epi8_mask 587 // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 7, i16 -1) 588 return (__mmask64)_mm_cmp_epi8_mask(__a, __b, 7); 589 } 590 591 __mmask16 test_mm_mask_cmp_epi8_mask(__mmask64 __u, __m128i __a, __m128i __b) { 592 // CHECK-LABEL: @test_mm_mask_cmp_epi8_mask 593 // CHECK: @llvm.x86.avx512.mask.cmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 7, i16 {{.*}}) 594 return (__mmask64)_mm_mask_cmp_epi8_mask(__u, __a, __b, 7); 595 } 596 597 __mmask16 test_mm_cmp_epu8_mask(__m128i __a, __m128i __b) { 598 // CHECK-LABEL: @test_mm_cmp_epu8_mask 599 // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 7, i16 -1) 600 return (__mmask64)_mm_cmp_epu8_mask(__a, __b, 7); 601 } 602 603 __mmask16 test_mm_mask_cmp_epu8_mask(__mmask64 __u, __m128i __a, __m128i __b) { 604 // CHECK-LABEL: @test_mm_mask_cmp_epu8_mask 605 // CHECK: @llvm.x86.avx512.mask.ucmp.b.128(<16 x i8> {{.*}}, <16 x i8> {{.*}}, i32 7, i16 {{.*}}) 606 return (__mmask64)_mm_mask_cmp_epu8_mask(__u, __a, __b, 7); 607 } 608 609 __mmask8 test_mm_cmp_epi16_mask(__m128i __a, __m128i __b) { 610 // CHECK-LABEL: @test_mm_cmp_epi16_mask 611 // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 7, i8 -1) 612 return (__mmask32)_mm_cmp_epi16_mask(__a, __b, 7); 613 } 614 615 __mmask8 test_mm_mask_cmp_epi16_mask(__mmask32 __u, __m128i __a, __m128i __b) { 616 // CHECK-LABEL: @test_mm_mask_cmp_epi16_mask 617 // CHECK: @llvm.x86.avx512.mask.cmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 7, i8 {{.*}}) 618 return (__mmask32)_mm_mask_cmp_epi16_mask(__u, __a, __b, 7); 619 } 620 621 __mmask8 test_mm_cmp_epu16_mask(__m128i __a, __m128i __b) { 622 // CHECK-LABEL: @test_mm_cmp_epu16_mask 623 // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 7, i8 -1) 624 return (__mmask32)_mm_cmp_epu16_mask(__a, __b, 7); 625 } 626 627 __mmask8 test_mm_mask_cmp_epu16_mask(__mmask32 __u, __m128i __a, __m128i __b) { 628 // CHECK-LABEL: @test_mm_mask_cmp_epu16_mask 629 // CHECK: @llvm.x86.avx512.mask.ucmp.w.128(<8 x i16> {{.*}}, <8 x i16> {{.*}}, i32 7, i8 {{.*}}) 630 return (__mmask32)_mm_mask_cmp_epu16_mask(__u, __a, __b, 7); 631 } 632 633 __mmask32 test_mm256_cmp_epi8_mask(__m256i __a, __m256i __b) { 634 // CHECK-LABEL: @test_mm256_cmp_epi8_mask 635 // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 7, i32 -1) 636 return (__mmask64)_mm256_cmp_epi8_mask(__a, __b, 7); 637 } 638 639 __mmask32 test_mm256_mask_cmp_epi8_mask(__mmask64 __u, __m256i __a, __m256i __b) { 640 // CHECK-LABEL: @test_mm256_mask_cmp_epi8_mask 641 // CHECK: @llvm.x86.avx512.mask.cmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 7, i32 {{.*}}) 642 return (__mmask64)_mm256_mask_cmp_epi8_mask(__u, __a, __b, 7); 643 } 644 645 __mmask32 test_mm256_cmp_epu8_mask(__m256i __a, __m256i __b) { 646 // CHECK-LABEL: @test_mm256_cmp_epu8_mask 647 // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 7, i32 -1) 648 return (__mmask64)_mm256_cmp_epu8_mask(__a, __b, 7); 649 } 650 651 __mmask32 test_mm256_mask_cmp_epu8_mask(__mmask64 __u, __m256i __a, __m256i __b) { 652 // CHECK-LABEL: @test_mm256_mask_cmp_epu8_mask 653 // CHECK: @llvm.x86.avx512.mask.ucmp.b.256(<32 x i8> {{.*}}, <32 x i8> {{.*}}, i32 7, i32 {{.*}}) 654 return (__mmask64)_mm256_mask_cmp_epu8_mask(__u, __a, __b, 7); 655 } 656 657 __mmask16 test_mm256_cmp_epi16_mask(__m256i __a, __m256i __b) { 658 // CHECK-LABEL: @test_mm256_cmp_epi16_mask 659 // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 7, i16 -1) 660 return (__mmask32)_mm256_cmp_epi16_mask(__a, __b, 7); 661 } 662 663 __mmask16 test_mm256_mask_cmp_epi16_mask(__mmask32 __u, __m256i __a, __m256i __b) { 664 // CHECK-LABEL: @test_mm256_mask_cmp_epi16_mask 665 // CHECK: @llvm.x86.avx512.mask.cmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 7, i16 {{.*}}) 666 return (__mmask32)_mm256_mask_cmp_epi16_mask(__u, __a, __b, 7); 667 } 668 669 __mmask16 test_mm256_cmp_epu16_mask(__m256i __a, __m256i __b) { 670 // CHECK-LABEL: @test_mm256_cmp_epu16_mask 671 // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 7, i16 -1) 672 return (__mmask32)_mm256_cmp_epu16_mask(__a, __b, 7); 673 } 674 675 __mmask16 test_mm256_mask_cmp_epu16_mask(__mmask32 __u, __m256i __a, __m256i __b) { 676 // CHECK-LABEL: @test_mm256_mask_cmp_epu16_mask 677 // CHECK: @llvm.x86.avx512.mask.ucmp.w.256(<16 x i16> {{.*}}, <16 x i16> {{.*}}, i32 7, i16 {{.*}}) 678 return (__mmask32)_mm256_mask_cmp_epu16_mask(__u, __a, __b, 7); 679 } 680 681 682 __m256i test_mm256_mask_add_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B){ 683 //CHECK-LABEL: @test_mm256_mask_add_epi8 684 //CHECK: @llvm.x86.avx512.mask.padd.b.256 685 return _mm256_mask_add_epi8(__W, __U , __A, __B); 686 } 687 688 __m256i test_mm256_maskz_add_epi8 (__mmask32 __U, __m256i __A, __m256i __B) { 689 //CHECK-LABEL: @test_mm256_maskz_add_epi8 690 //CHECK: @llvm.x86.avx512.mask.padd.b.256 691 return _mm256_maskz_add_epi8(__U , __A, __B); 692 } 693 __m256i test_mm256_mask_add_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 694 //CHECK-LABEL: @test_mm256_mask_add_epi16 695 //CHECK: @llvm.x86.avx512.mask.padd.w.256 696 return _mm256_mask_add_epi16(__W, __U , __A, __B); 697 } 698 699 __m256i test_mm256_maskz_add_epi16 (__mmask16 __U, __m256i __A, __m256i __B) { 700 //CHECK-LABEL: @test_mm256_maskz_add_epi16 701 //CHECK: @llvm.x86.avx512.mask.padd.w.256 702 return _mm256_maskz_add_epi16(__U , __A, __B); 703 } 704 705 __m256i test_mm256_mask_sub_epi8 (__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { 706 //CHECK-LABEL: @test_mm256_mask_sub_epi8 707 //CHECK: @llvm.x86.avx512.mask.psub.b.256 708 return _mm256_mask_sub_epi8(__W, __U , __A, __B); 709 } 710 711 __m256i test_mm256_maskz_sub_epi8 (__mmask32 __U, __m256i __A, __m256i __B) { 712 //CHECK-LABEL: @test_mm256_maskz_sub_epi8 713 //CHECK: @llvm.x86.avx512.mask.psub.b.256 714 return _mm256_maskz_sub_epi8(__U , __A, __B); 715 } 716 717 __m256i test_mm256_mask_sub_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 718 //CHECK-LABEL: @test_mm256_mask_sub_epi16 719 //CHECK: @llvm.x86.avx512.mask.psub.w.256 720 return _mm256_mask_sub_epi16(__W, __U , __A, __B); 721 } 722 723 __m256i test_mm256_maskz_sub_epi16 (__mmask16 __U, __m256i __A, __m256i __B) { 724 //CHECK-LABEL: @test_mm256_maskz_sub_epi16 725 //CHECK: @llvm.x86.avx512.mask.psub.w.256 726 return _mm256_maskz_sub_epi16(__U , __A, __B); 727 } 728 __m128i test_mm_mask_add_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { 729 //CHECK-LABEL: @test_mm_mask_add_epi8 730 //CHECK: @llvm.x86.avx512.mask.padd.b.128 731 return _mm_mask_add_epi8(__W, __U , __A, __B); 732 } 733 734 __m128i test_mm_maskz_add_epi8 (__mmask16 __U, __m128i __A, __m128i __B) { 735 //CHECK-LABEL: @test_mm_maskz_add_epi8 736 //CHECK: @llvm.x86.avx512.mask.padd.b.128 737 return _mm_maskz_add_epi8(__U , __A, __B); 738 } 739 740 __m128i test_mm_mask_add_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 741 //CHECK-LABEL: @test_mm_mask_add_epi16 742 //CHECK: @llvm.x86.avx512.mask.padd.w.128 743 return _mm_mask_add_epi16(__W, __U , __A, __B); 744 } 745 746 __m128i test_mm_maskz_add_epi16 (__mmask8 __U, __m128i __A, __m128i __B) { 747 //CHECK-LABEL: @test_mm_maskz_add_epi16 748 //CHECK: @llvm.x86.avx512.mask.padd.w.128 749 return _mm_maskz_add_epi16(__U , __A, __B); 750 } 751 752 __m128i test_mm_mask_sub_epi8 (__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { 753 //CHECK-LABEL: @test_mm_mask_sub_epi8 754 //CHECK: @llvm.x86.avx512.mask.psub.b.128 755 return _mm_mask_sub_epi8(__W, __U , __A, __B); 756 } 757 758 __m128i test_mm_maskz_sub_epi8 (__mmask16 __U, __m128i __A, __m128i __B) { 759 //CHECK-LABEL: @test_mm_maskz_sub_epi8 760 //CHECK: @llvm.x86.avx512.mask.psub.b.128 761 return _mm_maskz_sub_epi8(__U , __A, __B); 762 } 763 764 __m128i test_mm_mask_sub_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 765 //CHECK-LABEL: @test_mm_mask_sub_epi16 766 //CHECK: @llvm.x86.avx512.mask.psub.w.128 767 return _mm_mask_sub_epi16(__W, __U , __A, __B); 768 } 769 770 __m128i test_mm_maskz_sub_epi16 (__mmask8 __U, __m128i __A, __m128i __B) { 771 //CHECK-LABEL: @test_mm_maskz_sub_epi16 772 //CHECK: @llvm.x86.avx512.mask.psub.w.128 773 return _mm_maskz_sub_epi16(__U , __A, __B); 774 } 775 776 __m256i test_mm256_mask_mullo_epi16 (__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 777 //CHECK-LABEL: @test_mm256_mask_mullo_epi16 778 //CHECK: @llvm.x86.avx512.mask.pmull.w.256 779 return _mm256_mask_mullo_epi16(__W, __U , __A, __B); 780 } 781 782 __m256i test_mm256_maskz_mullo_epi16 (__mmask16 __U, __m256i __A, __m256i __B) { 783 //CHECK-LABEL: @test_mm256_maskz_mullo_epi16 784 //CHECK: @llvm.x86.avx512.mask.pmull.w.256 785 return _mm256_maskz_mullo_epi16(__U , __A, __B); 786 } 787 788 __m128i test_mm_mask_mullo_epi16 (__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 789 //CHECK-LABEL: @test_mm_mask_mullo_epi16 790 //CHECK: @llvm.x86.avx512.mask.pmull.w.128 791 return _mm_mask_mullo_epi16(__W, __U , __A, __B); 792 } 793 794 __m128i test_mm_maskz_mullo_epi16 (__mmask8 __U, __m128i __A, __m128i __B) { 795 //CHECK-LABEL: @test_mm_maskz_mullo_epi16 796 //CHECK: @llvm.x86.avx512.mask.pmull.w.128 797 return _mm_maskz_mullo_epi16(__U , __A, __B); 798 } 799 800 801 __m128i test_mm_mask_blend_epi8(__mmask16 __U, __m128i __A, __m128i __W) { 802 // CHECK-LABEL: @test_mm_mask_blend_epi8 803 // CHECK: @llvm.x86.avx512.mask.blend.b.128 804 return _mm_mask_blend_epi8(__U,__A,__W); 805 } 806 __m256i test_mm256_mask_blend_epi8(__mmask32 __U, __m256i __A, __m256i __W) { 807 // CHECK-LABEL: @test_mm256_mask_blend_epi8 808 // CHECK: @llvm.x86.avx512.mask.blend.b.256 809 return _mm256_mask_blend_epi8(__U,__A,__W); 810 } 811 812 __m128i test_mm_mask_blend_epi16(__mmask8 __U, __m128i __A, __m128i __W) { 813 // CHECK-LABEL: @test_mm_mask_blend_epi16 814 // CHECK: @llvm.x86.avx512.mask.blend.w.128 815 return _mm_mask_blend_epi16(__U,__A,__W); 816 } 817 818 __m256i test_mm256_mask_blend_epi16(__mmask16 __U, __m256i __A, __m256i __W) { 819 // CHECK-LABEL: @test_mm256_mask_blend_epi16 820 // CHECK: @llvm.x86.avx512.mask.blend.w.256 821 return _mm256_mask_blend_epi16(__U,__A,__W); 822 } 823 824 __m128i test_mm_mask_abs_epi8(__m128i __W, __mmask16 __U, __m128i __A) { 825 // CHECK-LABEL: @test_mm_mask_abs_epi8 826 // CHECK: @llvm.x86.avx512.mask.pabs.b.128 827 return _mm_mask_abs_epi8(__W,__U,__A); 828 } 829 830 __m128i test_mm_maskz_abs_epi8(__mmask16 __U, __m128i __A) { 831 // CHECK-LABEL: @test_mm_maskz_abs_epi8 832 // CHECK: @llvm.x86.avx512.mask.pabs.b.128 833 return _mm_maskz_abs_epi8(__U,__A); 834 } 835 836 __m256i test_mm256_mask_abs_epi8(__m256i __W, __mmask32 __U, __m256i __A) { 837 // CHECK-LABEL: @test_mm256_mask_abs_epi8 838 // CHECK: @llvm.x86.avx512.mask.pabs.b.256 839 return _mm256_mask_abs_epi8(__W,__U,__A); 840 } 841 842 __m256i test_mm256_maskz_abs_epi8(__mmask32 __U, __m256i __A) { 843 // CHECK-LABEL: @test_mm256_maskz_abs_epi8 844 // CHECK: @llvm.x86.avx512.mask.pabs.b.256 845 return _mm256_maskz_abs_epi8(__U,__A); 846 } 847 848 __m128i test_mm_mask_abs_epi16(__m128i __W, __mmask8 __U, __m128i __A) { 849 // CHECK-LABEL: @test_mm_mask_abs_epi16 850 // CHECK: @llvm.x86.avx512.mask.pabs.w.128 851 return _mm_mask_abs_epi16(__W,__U,__A); 852 } 853 854 __m128i test_mm_maskz_abs_epi16(__mmask8 __U, __m128i __A) { 855 // CHECK-LABEL: @test_mm_maskz_abs_epi16 856 // CHECK: @llvm.x86.avx512.mask.pabs.w.128 857 return _mm_maskz_abs_epi16(__U,__A); 858 } 859 860 __m256i test_mm256_mask_abs_epi16(__m256i __W, __mmask16 __U, __m256i __A) { 861 // CHECK-LABEL: @test_mm256_mask_abs_epi16 862 // CHECK: @llvm.x86.avx512.mask.pabs.w.256 863 return _mm256_mask_abs_epi16(__W,__U,__A); 864 } 865 866 __m256i test_mm256_maskz_abs_epi16(__mmask16 __U, __m256i __A) { 867 // CHECK-LABEL: @test_mm256_maskz_abs_epi16 868 // CHECK: @llvm.x86.avx512.mask.pabs.w.256 869 return _mm256_maskz_abs_epi16(__U,__A); 870 } 871 872 __m128i test_mm_maskz_packs_epi32(__mmask8 __M, __m128i __A, __m128i __B) { 873 // CHECK-LABEL: @test_mm_maskz_packs_epi32 874 // CHECK: @llvm.x86.avx512.mask.packssdw.128 875 return _mm_maskz_packs_epi32(__M,__A,__B); 876 } 877 __m128i test_mm_mask_packs_epi32(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) { 878 // CHECK-LABEL: @test_mm_mask_packs_epi32 879 // CHECK: @llvm.x86.avx512.mask.packssdw.128 880 return _mm_mask_packs_epi32(__W,__M,__A,__B); 881 } 882 __m256i test_mm256_maskz_packs_epi32(__mmask16 __M, __m256i __A, __m256i __B) { 883 // CHECK-LABEL: @test_mm256_maskz_packs_epi32 884 // CHECK: @llvm.x86.avx512.mask.packssdw.256 885 return _mm256_maskz_packs_epi32(__M,__A,__B); 886 } 887 __m256i test_mm256_mask_packs_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) { 888 // CHECK-LABEL: @test_mm256_mask_packs_epi32 889 // CHECK: @llvm.x86.avx512.mask.packssdw.256 890 return _mm256_mask_packs_epi32(__W,__M,__A,__B); 891 } 892 __m128i test_mm_maskz_packs_epi16(__mmask16 __M, __m128i __A, __m128i __B) { 893 // CHECK-LABEL: @test_mm_maskz_packs_epi16 894 // CHECK: @llvm.x86.avx512.mask.packsswb.128 895 return _mm_maskz_packs_epi16(__M,__A,__B); 896 } 897 __m128i test_mm_mask_packs_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) { 898 // CHECK-LABEL: @test_mm_mask_packs_epi16 899 // CHECK: @llvm.x86.avx512.mask.packsswb.128 900 return _mm_mask_packs_epi16(__W,__M,__A,__B); 901 } 902 __m256i test_mm256_maskz_packs_epi16(__mmask32 __M, __m256i __A, __m256i __B) { 903 // CHECK-LABEL: @test_mm256_maskz_packs_epi16 904 // CHECK: @llvm.x86.avx512.mask.packsswb.256 905 return _mm256_maskz_packs_epi16(__M,__A,__B); 906 } 907 __m256i test_mm256_mask_packs_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) { 908 // CHECK-LABEL: @test_mm256_mask_packs_epi16 909 // CHECK: @llvm.x86.avx512.mask.packsswb.256 910 return _mm256_mask_packs_epi16(__W,__M,__A,__B); 911 } 912 913 __m128i test_mm_mask_packus_epi32(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) { 914 // CHECK-LABEL: @test_mm_mask_packus_epi32 915 // CHECK: @llvm.x86.avx512.mask.packusdw.128 916 return _mm_mask_packus_epi32(__W,__M,__A,__B); 917 } 918 919 __m128i test_mm_maskz_packus_epi32(__mmask8 __M, __m128i __A, __m128i __B) { 920 // CHECK-LABEL: @test_mm_maskz_packus_epi32 921 // CHECK: @llvm.x86.avx512.mask.packusdw.128 922 return _mm_maskz_packus_epi32(__M,__A,__B); 923 } 924 925 __m256i test_mm256_maskz_packus_epi32(__mmask16 __M, __m256i __A, __m256i __B) { 926 // CHECK-LABEL: @test_mm256_maskz_packus_epi32 927 // CHECK: @llvm.x86.avx512.mask.packusdw.256 928 return _mm256_maskz_packus_epi32(__M,__A,__B); 929 } 930 931 __m256i test_mm256_mask_packus_epi32(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) { 932 // CHECK-LABEL: @test_mm256_mask_packus_epi32 933 // CHECK: @llvm.x86.avx512.mask.packusdw.256 934 return _mm256_mask_packus_epi32(__W,__M,__A,__B); 935 } 936 937 __m128i test_mm_maskz_packus_epi16(__mmask16 __M, __m128i __A, __m128i __B) { 938 // CHECK-LABEL: @test_mm_maskz_packus_epi16 939 // CHECK: @llvm.x86.avx512.mask.packuswb.128 940 return _mm_maskz_packus_epi16(__M,__A,__B); 941 } 942 943 __m128i test_mm_mask_packus_epi16(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) { 944 // CHECK-LABEL: @test_mm_mask_packus_epi16 945 // CHECK: @llvm.x86.avx512.mask.packuswb.128 946 return _mm_mask_packus_epi16(__W,__M,__A,__B); 947 } 948 949 __m256i test_mm256_maskz_packus_epi16(__mmask32 __M, __m256i __A, __m256i __B) { 950 // CHECK-LABEL: @test_mm256_maskz_packus_epi16 951 // CHECK: @llvm.x86.avx512.mask.packuswb.256 952 return _mm256_maskz_packus_epi16(__M,__A,__B); 953 } 954 955 __m256i test_mm256_mask_packus_epi16(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) { 956 // CHECK-LABEL: @test_mm256_mask_packus_epi16 957 // CHECK: @llvm.x86.avx512.mask.packuswb.256 958 return _mm256_mask_packus_epi16(__W,__M,__A,__B); 959 } 960 961 __m128i test_mm_mask_adds_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { 962 // CHECK-LABEL: @test_mm_mask_adds_epi8 963 // CHECK: @llvm.x86.avx512.mask.padds.b.128 964 return _mm_mask_adds_epi8(__W,__U,__A,__B); 965 } 966 __m128i test_mm_maskz_adds_epi8(__mmask16 __U, __m128i __A, __m128i __B) { 967 // CHECK-LABEL: @test_mm_maskz_adds_epi8 968 // CHECK: @llvm.x86.avx512.mask.padds.b.128 969 return _mm_maskz_adds_epi8(__U,__A,__B); 970 } 971 __m256i test_mm256_mask_adds_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { 972 // CHECK-LABEL: @test_mm256_mask_adds_epi8 973 // CHECK: @llvm.x86.avx512.mask.padds.b.256 974 return _mm256_mask_adds_epi8(__W,__U,__A,__B); 975 } 976 __m256i test_mm256_maskz_adds_epi8(__mmask32 __U, __m256i __A, __m256i __B) { 977 // CHECK-LABEL: @test_mm256_maskz_adds_epi8 978 // CHECK: @llvm.x86.avx512.mask.padds.b.256 979 return _mm256_maskz_adds_epi8(__U,__A,__B); 980 } 981 __m128i test_mm_mask_adds_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 982 // CHECK-LABEL: @test_mm_mask_adds_epi16 983 // CHECK: @llvm.x86.avx512.mask.padds.w.128 984 return _mm_mask_adds_epi16(__W,__U,__A,__B); 985 } 986 __m128i test_mm_maskz_adds_epi16(__mmask8 __U, __m128i __A, __m128i __B) { 987 // CHECK-LABEL: @test_mm_maskz_adds_epi16 988 // CHECK: @llvm.x86.avx512.mask.padds.w.128 989 return _mm_maskz_adds_epi16(__U,__A,__B); 990 } 991 __m256i test_mm256_mask_adds_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 992 // CHECK-LABEL: @test_mm256_mask_adds_epi16 993 // CHECK: @llvm.x86.avx512.mask.padds.w.256 994 return _mm256_mask_adds_epi16(__W,__U,__A,__B); 995 } 996 __m256i test_mm256_maskz_adds_epi16(__mmask16 __U, __m256i __A, __m256i __B) { 997 // CHECK-LABEL: @test_mm256_maskz_adds_epi16 998 // CHECK: @llvm.x86.avx512.mask.padds.w.256 999 return _mm256_maskz_adds_epi16(__U,__A,__B); 1000 } 1001 __m128i test_mm_mask_adds_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { 1002 // CHECK-LABEL: @test_mm_mask_adds_epu8 1003 // CHECK: @llvm.x86.avx512.mask.paddus.b.128 1004 return _mm_mask_adds_epu8(__W,__U,__A,__B); 1005 } 1006 __m128i test_mm_maskz_adds_epu8(__mmask16 __U, __m128i __A, __m128i __B) { 1007 // CHECK-LABEL: @test_mm_maskz_adds_epu8 1008 // CHECK: @llvm.x86.avx512.mask.paddus.b.128 1009 return _mm_maskz_adds_epu8(__U,__A,__B); 1010 } 1011 __m256i test_mm256_mask_adds_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { 1012 // CHECK-LABEL: @test_mm256_mask_adds_epu8 1013 // CHECK: @llvm.x86.avx512.mask.paddus.b.256 1014 return _mm256_mask_adds_epu8(__W,__U,__A,__B); 1015 } 1016 __m256i test_mm256_maskz_adds_epu8(__mmask32 __U, __m256i __A, __m256i __B) { 1017 // CHECK-LABEL: @test_mm256_maskz_adds_epu8 1018 // CHECK: @llvm.x86.avx512.mask.paddus.b.256 1019 return _mm256_maskz_adds_epu8(__U,__A,__B); 1020 } 1021 __m128i test_mm_mask_adds_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 1022 // CHECK-LABEL: @test_mm_mask_adds_epu16 1023 // CHECK: @llvm.x86.avx512.mask.paddus.w.128 1024 return _mm_mask_adds_epu16(__W,__U,__A,__B); 1025 } 1026 __m128i test_mm_maskz_adds_epu16(__mmask8 __U, __m128i __A, __m128i __B) { 1027 // CHECK-LABEL: @test_mm_maskz_adds_epu16 1028 // CHECK: @llvm.x86.avx512.mask.paddus.w.128 1029 return _mm_maskz_adds_epu16(__U,__A,__B); 1030 } 1031 __m256i test_mm256_mask_adds_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 1032 // CHECK-LABEL: @test_mm256_mask_adds_epu16 1033 // CHECK: @llvm.x86.avx512.mask.paddus.w.256 1034 return _mm256_mask_adds_epu16(__W,__U,__A,__B); 1035 } 1036 __m256i test_mm256_maskz_adds_epu16(__mmask16 __U, __m256i __A, __m256i __B) { 1037 // CHECK-LABEL: @test_mm256_maskz_adds_epu16 1038 // CHECK: @llvm.x86.avx512.mask.paddus.w.256 1039 return _mm256_maskz_adds_epu16(__U,__A,__B); 1040 } 1041 __m128i test_mm_mask_avg_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { 1042 // CHECK-LABEL: @test_mm_mask_avg_epu8 1043 // CHECK: @llvm.x86.avx512.mask.pavg.b.128 1044 return _mm_mask_avg_epu8(__W,__U,__A,__B); 1045 } 1046 __m128i test_mm_maskz_avg_epu8(__mmask16 __U, __m128i __A, __m128i __B) { 1047 // CHECK-LABEL: @test_mm_maskz_avg_epu8 1048 // CHECK: @llvm.x86.avx512.mask.pavg.b.128 1049 return _mm_maskz_avg_epu8(__U,__A,__B); 1050 } 1051 __m256i test_mm256_mask_avg_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { 1052 // CHECK-LABEL: @test_mm256_mask_avg_epu8 1053 // CHECK: @llvm.x86.avx512.mask.pavg.b.256 1054 return _mm256_mask_avg_epu8(__W,__U,__A,__B); 1055 } 1056 __m256i test_mm256_maskz_avg_epu8(__mmask32 __U, __m256i __A, __m256i __B) { 1057 // CHECK-LABEL: @test_mm256_maskz_avg_epu8 1058 // CHECK: @llvm.x86.avx512.mask.pavg.b.256 1059 return _mm256_maskz_avg_epu8(__U,__A,__B); 1060 } 1061 __m128i test_mm_mask_avg_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 1062 // CHECK-LABEL: @test_mm_mask_avg_epu16 1063 // CHECK: @llvm.x86.avx512.mask.pavg.w.128 1064 return _mm_mask_avg_epu16(__W,__U,__A,__B); 1065 } 1066 __m128i test_mm_maskz_avg_epu16(__mmask8 __U, __m128i __A, __m128i __B) { 1067 // CHECK-LABEL: @test_mm_maskz_avg_epu16 1068 // CHECK: @llvm.x86.avx512.mask.pavg.w.128 1069 return _mm_maskz_avg_epu16(__U,__A,__B); 1070 } 1071 __m256i test_mm256_mask_avg_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 1072 // CHECK-LABEL: @test_mm256_mask_avg_epu16 1073 // CHECK: @llvm.x86.avx512.mask.pavg.w.256 1074 return _mm256_mask_avg_epu16(__W,__U,__A,__B); 1075 } 1076 __m256i test_mm256_maskz_avg_epu16(__mmask16 __U, __m256i __A, __m256i __B) { 1077 // CHECK-LABEL: @test_mm256_maskz_avg_epu16 1078 // CHECK: @llvm.x86.avx512.mask.pavg.w.256 1079 return _mm256_maskz_avg_epu16(__U,__A,__B); 1080 } 1081 __m128i test_mm_maskz_max_epi8(__mmask16 __M, __m128i __A, __m128i __B) { 1082 // CHECK-LABEL: @test_mm_maskz_max_epi8 1083 // CHECK: @llvm.x86.avx512.mask.pmaxs.b.128 1084 return _mm_maskz_max_epi8(__M,__A,__B); 1085 } 1086 __m128i test_mm_mask_max_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) { 1087 // CHECK-LABEL: @test_mm_mask_max_epi8 1088 // CHECK: @llvm.x86.avx512.mask.pmaxs.b.128 1089 return _mm_mask_max_epi8(__W,__M,__A,__B); 1090 } 1091 __m256i test_mm256_maskz_max_epi8(__mmask32 __M, __m256i __A, __m256i __B) { 1092 // CHECK-LABEL: @test_mm256_maskz_max_epi8 1093 // CHECK: @llvm.x86.avx512.mask.pmaxs.b.256 1094 return _mm256_maskz_max_epi8(__M,__A,__B); 1095 } 1096 __m256i test_mm256_mask_max_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) { 1097 // CHECK-LABEL: @test_mm256_mask_max_epi8 1098 // CHECK: @llvm.x86.avx512.mask.pmaxs.b.256 1099 return _mm256_mask_max_epi8(__W,__M,__A,__B); 1100 } 1101 __m128i test_mm_maskz_max_epi16(__mmask8 __M, __m128i __A, __m128i __B) { 1102 // CHECK-LABEL: @test_mm_maskz_max_epi16 1103 // CHECK: @llvm.x86.avx512.mask.pmaxs.w.128 1104 return _mm_maskz_max_epi16(__M,__A,__B); 1105 } 1106 __m128i test_mm_mask_max_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { 1107 // CHECK-LABEL: @test_mm_mask_max_epi16 1108 // CHECK: @llvm.x86.avx512.mask.pmaxs.w.128 1109 return _mm_mask_max_epi16(__W,__M,__A,__B); 1110 } 1111 __m256i test_mm256_maskz_max_epi16(__mmask16 __M, __m256i __A, __m256i __B) { 1112 // CHECK-LABEL: @test_mm256_maskz_max_epi16 1113 // CHECK: @llvm.x86.avx512.mask.pmaxs.w.256 1114 return _mm256_maskz_max_epi16(__M,__A,__B); 1115 } 1116 __m256i test_mm256_mask_max_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) { 1117 // CHECK-LABEL: @test_mm256_mask_max_epi16 1118 // CHECK: @llvm.x86.avx512.mask.pmaxs.w.256 1119 return _mm256_mask_max_epi16(__W,__M,__A,__B); 1120 } 1121 __m128i test_mm_maskz_max_epu8(__mmask16 __M, __m128i __A, __m128i __B) { 1122 // CHECK-LABEL: @test_mm_maskz_max_epu8 1123 // CHECK: @llvm.x86.avx512.mask.pmaxu.b.128 1124 return _mm_maskz_max_epu8(__M,__A,__B); 1125 } 1126 __m128i test_mm_mask_max_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) { 1127 // CHECK-LABEL: @test_mm_mask_max_epu8 1128 // CHECK: @llvm.x86.avx512.mask.pmaxu.b.128 1129 return _mm_mask_max_epu8(__W,__M,__A,__B); 1130 } 1131 __m256i test_mm256_maskz_max_epu8(__mmask32 __M, __m256i __A, __m256i __B) { 1132 // CHECK-LABEL: @test_mm256_maskz_max_epu8 1133 // CHECK: @llvm.x86.avx512.mask.pmaxu.b.256 1134 return _mm256_maskz_max_epu8(__M,__A,__B); 1135 } 1136 __m256i test_mm256_mask_max_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) { 1137 // CHECK-LABEL: @test_mm256_mask_max_epu8 1138 // CHECK: @llvm.x86.avx512.mask.pmaxu.b.256 1139 return _mm256_mask_max_epu8(__W,__M,__A,__B); 1140 } 1141 __m128i test_mm_maskz_max_epu16(__mmask8 __M, __m128i __A, __m128i __B) { 1142 // CHECK-LABEL: @test_mm_maskz_max_epu16 1143 // CHECK: @llvm.x86.avx512.mask.pmaxu.w.128 1144 return _mm_maskz_max_epu16(__M,__A,__B); 1145 } 1146 __m128i test_mm_mask_max_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { 1147 // CHECK-LABEL: @test_mm_mask_max_epu16 1148 // CHECK: @llvm.x86.avx512.mask.pmaxu.w.128 1149 return _mm_mask_max_epu16(__W,__M,__A,__B); 1150 } 1151 __m256i test_mm256_maskz_max_epu16(__mmask16 __M, __m256i __A, __m256i __B) { 1152 // CHECK-LABEL: @test_mm256_maskz_max_epu16 1153 // CHECK: @llvm.x86.avx512.mask.pmaxu.w.256 1154 return _mm256_maskz_max_epu16(__M,__A,__B); 1155 } 1156 __m256i test_mm256_mask_max_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) { 1157 // CHECK-LABEL: @test_mm256_mask_max_epu16 1158 // CHECK: @llvm.x86.avx512.mask.pmaxu.w.256 1159 return _mm256_mask_max_epu16(__W,__M,__A,__B); 1160 } 1161 __m128i test_mm_maskz_min_epi8(__mmask16 __M, __m128i __A, __m128i __B) { 1162 // CHECK-LABEL: @test_mm_maskz_min_epi8 1163 // CHECK: @llvm.x86.avx512.mask.pmins.b.128 1164 return _mm_maskz_min_epi8(__M,__A,__B); 1165 } 1166 __m128i test_mm_mask_min_epi8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) { 1167 // CHECK-LABEL: @test_mm_mask_min_epi8 1168 // CHECK: @llvm.x86.avx512.mask.pmins.b.128 1169 return _mm_mask_min_epi8(__W,__M,__A,__B); 1170 } 1171 __m256i test_mm256_maskz_min_epi8(__mmask32 __M, __m256i __A, __m256i __B) { 1172 // CHECK-LABEL: @test_mm256_maskz_min_epi8 1173 // CHECK: @llvm.x86.avx512.mask.pmins.b.256 1174 return _mm256_maskz_min_epi8(__M,__A,__B); 1175 } 1176 __m256i test_mm256_mask_min_epi8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) { 1177 // CHECK-LABEL: @test_mm256_mask_min_epi8 1178 // CHECK: @llvm.x86.avx512.mask.pmins.b.256 1179 return _mm256_mask_min_epi8(__W,__M,__A,__B); 1180 } 1181 __m128i test_mm_maskz_min_epi16(__mmask8 __M, __m128i __A, __m128i __B) { 1182 // CHECK-LABEL: @test_mm_maskz_min_epi16 1183 // CHECK: @llvm.x86.avx512.mask.pmins.w.128 1184 return _mm_maskz_min_epi16(__M,__A,__B); 1185 } 1186 __m128i test_mm_mask_min_epi16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { 1187 // CHECK-LABEL: @test_mm_mask_min_epi16 1188 // CHECK: @llvm.x86.avx512.mask.pmins.w.128 1189 return _mm_mask_min_epi16(__W,__M,__A,__B); 1190 } 1191 __m256i test_mm256_maskz_min_epi16(__mmask16 __M, __m256i __A, __m256i __B) { 1192 // CHECK-LABEL: @test_mm256_maskz_min_epi16 1193 // CHECK: @llvm.x86.avx512.mask.pmins.w.256 1194 return _mm256_maskz_min_epi16(__M,__A,__B); 1195 } 1196 __m256i test_mm256_mask_min_epi16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) { 1197 // CHECK-LABEL: @test_mm256_mask_min_epi16 1198 // CHECK: @llvm.x86.avx512.mask.pmins.w.256 1199 return _mm256_mask_min_epi16(__W,__M,__A,__B); 1200 } 1201 __m128i test_mm_maskz_min_epu8(__mmask16 __M, __m128i __A, __m128i __B) { 1202 // CHECK-LABEL: @test_mm_maskz_min_epu8 1203 // CHECK: @llvm.x86.avx512.mask.pminu.b.128 1204 return _mm_maskz_min_epu8(__M,__A,__B); 1205 } 1206 __m128i test_mm_mask_min_epu8(__m128i __W, __mmask16 __M, __m128i __A, __m128i __B) { 1207 // CHECK-LABEL: @test_mm_mask_min_epu8 1208 // CHECK: @llvm.x86.avx512.mask.pminu.b.128 1209 return _mm_mask_min_epu8(__W,__M,__A,__B); 1210 } 1211 __m256i test_mm256_maskz_min_epu8(__mmask32 __M, __m256i __A, __m256i __B) { 1212 // CHECK-LABEL: @test_mm256_maskz_min_epu8 1213 // CHECK: @llvm.x86.avx512.mask.pminu.b.256 1214 return _mm256_maskz_min_epu8(__M,__A,__B); 1215 } 1216 __m256i test_mm256_mask_min_epu8(__m256i __W, __mmask32 __M, __m256i __A, __m256i __B) { 1217 // CHECK-LABEL: @test_mm256_mask_min_epu8 1218 // CHECK: @llvm.x86.avx512.mask.pminu.b.256 1219 return _mm256_mask_min_epu8(__W,__M,__A,__B); 1220 } 1221 __m128i test_mm_maskz_min_epu16(__mmask8 __M, __m128i __A, __m128i __B) { 1222 // CHECK-LABEL: @test_mm_maskz_min_epu16 1223 // CHECK: @llvm.x86.avx512.mask.pminu.w.128 1224 return _mm_maskz_min_epu16(__M,__A,__B); 1225 } 1226 __m128i test_mm_mask_min_epu16(__m128i __W, __mmask8 __M, __m128i __A, __m128i __B) { 1227 // CHECK-LABEL: @test_mm_mask_min_epu16 1228 // CHECK: @llvm.x86.avx512.mask.pminu.w.128 1229 return _mm_mask_min_epu16(__W,__M,__A,__B); 1230 } 1231 __m256i test_mm256_maskz_min_epu16(__mmask16 __M, __m256i __A, __m256i __B) { 1232 // CHECK-LABEL: @test_mm256_maskz_min_epu16 1233 // CHECK: @llvm.x86.avx512.mask.pminu.w.256 1234 return _mm256_maskz_min_epu16(__M,__A,__B); 1235 } 1236 __m256i test_mm256_mask_min_epu16(__m256i __W, __mmask16 __M, __m256i __A, __m256i __B) { 1237 // CHECK-LABEL: @test_mm256_mask_min_epu16 1238 // CHECK: @llvm.x86.avx512.mask.pminu.w.256 1239 return _mm256_mask_min_epu16(__W,__M,__A,__B); 1240 } 1241 __m128i test_mm_mask_shuffle_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { 1242 // CHECK-LABEL: @test_mm_mask_shuffle_epi8 1243 // CHECK: @llvm.x86.avx512.mask.pshuf.b.128 1244 return _mm_mask_shuffle_epi8(__W,__U,__A,__B); 1245 } 1246 __m128i test_mm_maskz_shuffle_epi8(__mmask16 __U, __m128i __A, __m128i __B) { 1247 // CHECK-LABEL: @test_mm_maskz_shuffle_epi8 1248 // CHECK: @llvm.x86.avx512.mask.pshuf.b.128 1249 return _mm_maskz_shuffle_epi8(__U,__A,__B); 1250 } 1251 __m256i test_mm256_mask_shuffle_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { 1252 // CHECK-LABEL: @test_mm256_mask_shuffle_epi8 1253 // CHECK: @llvm.x86.avx512.mask.pshuf.b.256 1254 return _mm256_mask_shuffle_epi8(__W,__U,__A,__B); 1255 } 1256 __m256i test_mm256_maskz_shuffle_epi8(__mmask32 __U, __m256i __A, __m256i __B) { 1257 // CHECK-LABEL: @test_mm256_maskz_shuffle_epi8 1258 // CHECK: @llvm.x86.avx512.mask.pshuf.b.256 1259 return _mm256_maskz_shuffle_epi8(__U,__A,__B); 1260 } 1261 __m128i test_mm_mask_subs_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { 1262 // CHECK-LABEL: @test_mm_mask_subs_epi8 1263 // CHECK: @llvm.x86.avx512.mask.psubs.b.128 1264 return _mm_mask_subs_epi8(__W,__U,__A,__B); 1265 } 1266 __m128i test_mm_maskz_subs_epi8(__mmask16 __U, __m128i __A, __m128i __B) { 1267 // CHECK-LABEL: @test_mm_maskz_subs_epi8 1268 // CHECK: @llvm.x86.avx512.mask.psubs.b.128 1269 return _mm_maskz_subs_epi8(__U,__A,__B); 1270 } 1271 __m256i test_mm256_mask_subs_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { 1272 // CHECK-LABEL: @test_mm256_mask_subs_epi8 1273 // CHECK: @llvm.x86.avx512.mask.psubs.b.256 1274 return _mm256_mask_subs_epi8(__W,__U,__A,__B); 1275 } 1276 __m256i test_mm256_maskz_subs_epi8(__mmask32 __U, __m256i __A, __m256i __B) { 1277 // CHECK-LABEL: @test_mm256_maskz_subs_epi8 1278 // CHECK: @llvm.x86.avx512.mask.psubs.b.256 1279 return _mm256_maskz_subs_epi8(__U,__A,__B); 1280 } 1281 __m128i test_mm_mask_subs_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 1282 // CHECK-LABEL: @test_mm_mask_subs_epi16 1283 // CHECK: @llvm.x86.avx512.mask.psubs.w.128 1284 return _mm_mask_subs_epi16(__W,__U,__A,__B); 1285 } 1286 __m128i test_mm_maskz_subs_epi16(__mmask8 __U, __m128i __A, __m128i __B) { 1287 // CHECK-LABEL: @test_mm_maskz_subs_epi16 1288 // CHECK: @llvm.x86.avx512.mask.psubs.w.128 1289 return _mm_maskz_subs_epi16(__U,__A,__B); 1290 } 1291 __m256i test_mm256_mask_subs_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 1292 // CHECK-LABEL: @test_mm256_mask_subs_epi16 1293 // CHECK: @llvm.x86.avx512.mask.psubs.w.256 1294 return _mm256_mask_subs_epi16(__W,__U,__A,__B); 1295 } 1296 __m256i test_mm256_maskz_subs_epi16(__mmask16 __U, __m256i __A, __m256i __B) { 1297 // CHECK-LABEL: @test_mm256_maskz_subs_epi16 1298 // CHECK: @llvm.x86.avx512.mask.psubs.w.256 1299 return _mm256_maskz_subs_epi16(__U,__A,__B); 1300 } 1301 __m128i test_mm_mask_subs_epu8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { 1302 // CHECK-LABEL: @test_mm_mask_subs_epu8 1303 // CHECK: @llvm.x86.avx512.mask.psubus.b.128 1304 return _mm_mask_subs_epu8(__W,__U,__A,__B); 1305 } 1306 __m128i test_mm_maskz_subs_epu8(__mmask16 __U, __m128i __A, __m128i __B) { 1307 // CHECK-LABEL: @test_mm_maskz_subs_epu8 1308 // CHECK: @llvm.x86.avx512.mask.psubus.b.128 1309 return _mm_maskz_subs_epu8(__U,__A,__B); 1310 } 1311 __m256i test_mm256_mask_subs_epu8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { 1312 // CHECK-LABEL: @test_mm256_mask_subs_epu8 1313 // CHECK: @llvm.x86.avx512.mask.psubus.b.256 1314 return _mm256_mask_subs_epu8(__W,__U,__A,__B); 1315 } 1316 __m256i test_mm256_maskz_subs_epu8(__mmask32 __U, __m256i __A, __m256i __B) { 1317 // CHECK-LABEL: @test_mm256_maskz_subs_epu8 1318 // CHECK: @llvm.x86.avx512.mask.psubus.b.256 1319 return _mm256_maskz_subs_epu8(__U,__A,__B); 1320 } 1321 __m128i test_mm_mask_subs_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 1322 // CHECK-LABEL: @test_mm_mask_subs_epu16 1323 // CHECK: @llvm.x86.avx512.mask.psubus.w.128 1324 return _mm_mask_subs_epu16(__W,__U,__A,__B); 1325 } 1326 __m128i test_mm_maskz_subs_epu16(__mmask8 __U, __m128i __A, __m128i __B) { 1327 // CHECK-LABEL: @test_mm_maskz_subs_epu16 1328 // CHECK: @llvm.x86.avx512.mask.psubus.w.128 1329 return _mm_maskz_subs_epu16(__U,__A,__B); 1330 } 1331 __m256i test_mm256_mask_subs_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 1332 // CHECK-LABEL: @test_mm256_mask_subs_epu16 1333 // CHECK: @llvm.x86.avx512.mask.psubus.w.256 1334 return _mm256_mask_subs_epu16(__W,__U,__A,__B); 1335 } 1336 __m256i test_mm256_maskz_subs_epu16(__mmask16 __U, __m256i __A, __m256i __B) { 1337 // CHECK-LABEL: @test_mm256_maskz_subs_epu16 1338 // CHECK: @llvm.x86.avx512.mask.psubus.w.256 1339 return _mm256_maskz_subs_epu16(__U,__A,__B); 1340 } 1341 1342 1343 __m128i test_mm_mask2_permutex2var_epi16(__m128i __A, __m128i __I, __mmask8 __U, __m128i __B) { 1344 // CHECK-LABEL: @test_mm_mask2_permutex2var_epi16 1345 // CHECK: @llvm.x86.avx512.mask.vpermi2var.hi.128 1346 return _mm_mask2_permutex2var_epi16(__A,__I,__U,__B); 1347 } 1348 __m256i test_mm256_mask2_permutex2var_epi16(__m256i __A, __m256i __I, __mmask16 __U, __m256i __B) { 1349 // CHECK-LABEL: @test_mm256_mask2_permutex2var_epi16 1350 // CHECK: @llvm.x86.avx512.mask.vpermi2var.hi.256 1351 return _mm256_mask2_permutex2var_epi16(__A,__I,__U,__B); 1352 } 1353 __m128i test_mm_permutex2var_epi16(__m128i __A, __m128i __I, __m128i __B) { 1354 // CHECK-LABEL: @test_mm_permutex2var_epi16 1355 // CHECK: @llvm.x86.avx512.mask.vpermt2var.hi.128 1356 return _mm_permutex2var_epi16(__A,__I,__B); 1357 } 1358 __m128i test_mm_mask_permutex2var_epi16(__m128i __A, __mmask8 __U, __m128i __I, __m128i __B) { 1359 // CHECK-LABEL: @test_mm_mask_permutex2var_epi16 1360 // CHECK: @llvm.x86.avx512.mask.vpermt2var.hi.128 1361 return _mm_mask_permutex2var_epi16(__A,__U,__I,__B); 1362 } 1363 __m128i test_mm_maskz_permutex2var_epi16(__mmask8 __U, __m128i __A, __m128i __I, __m128i __B) { 1364 // CHECK-LABEL: @test_mm_maskz_permutex2var_epi16 1365 // CHECK: @llvm.x86.avx512.maskz.vpermt2var.hi.128 1366 return _mm_maskz_permutex2var_epi16(__U,__A,__I,__B); 1367 } 1368 1369 __m256i test_mm256_permutex2var_epi16(__m256i __A, __m256i __I, __m256i __B) { 1370 // CHECK-LABEL: @test_mm256_permutex2var_epi16 1371 // CHECK: @llvm.x86.avx512.mask.vpermt2var.hi.256 1372 return _mm256_permutex2var_epi16(__A,__I,__B); 1373 } 1374 __m256i test_mm256_mask_permutex2var_epi16(__m256i __A, __mmask16 __U, __m256i __I, __m256i __B) { 1375 // CHECK-LABEL: @test_mm256_mask_permutex2var_epi16 1376 // CHECK: @llvm.x86.avx512.mask.vpermt2var.hi.256 1377 return _mm256_mask_permutex2var_epi16(__A,__U,__I,__B); 1378 } 1379 __m256i test_mm256_maskz_permutex2var_epi16(__mmask16 __U, __m256i __A, __m256i __I, __m256i __B) { 1380 // CHECK-LABEL: @test_mm256_maskz_permutex2var_epi16 1381 // CHECK: @llvm.x86.avx512.maskz.vpermt2var.hi.256 1382 return _mm256_maskz_permutex2var_epi16(__U,__A,__I,__B); 1383 } 1384 __m128i test_mm_mask_maddubs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { 1385 // CHECK-LABEL: @test_mm_mask_maddubs_epi16 1386 // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.128 1387 return _mm_mask_maddubs_epi16(__W, __U, __X, __Y); 1388 } 1389 1390 __m128i test_mm_maskz_maddubs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) { 1391 // CHECK-LABEL: @test_mm_maskz_maddubs_epi16 1392 // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.128 1393 return _mm_maskz_maddubs_epi16(__U, __X, __Y); 1394 } 1395 1396 __m256i test_mm256_mask_maddubs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) { 1397 // CHECK-LABEL: @test_mm256_mask_maddubs_epi16 1398 // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.256 1399 return _mm256_mask_maddubs_epi16(__W, __U, __X, __Y); 1400 } 1401 1402 __m256i test_mm256_maskz_maddubs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) { 1403 // CHECK-LABEL: @test_mm256_maskz_maddubs_epi16 1404 // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.256 1405 return _mm256_maskz_maddubs_epi16(__U, __X, __Y); 1406 } 1407 1408 __m128i test_mm_mask_madd_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 1409 // CHECK-LABEL: @test_mm_mask_madd_epi16 1410 // CHECK: @llvm.x86.avx512.mask.pmaddw.d.128 1411 return _mm_mask_madd_epi16(__W, __U, __A, __B); 1412 } 1413 1414 __m128i test_mm_maskz_madd_epi16(__mmask8 __U, __m128i __A, __m128i __B) { 1415 // CHECK-LABEL: @test_mm_maskz_madd_epi16 1416 // CHECK: @llvm.x86.avx512.mask.pmaddw.d.128 1417 return _mm_maskz_madd_epi16(__U, __A, __B); 1418 } 1419 1420 __m256i test_mm256_mask_madd_epi16(__m256i __W, __mmask8 __U, __m256i __A, __m256i __B) { 1421 // CHECK-LABEL: @test_mm256_mask_madd_epi16 1422 // CHECK: @llvm.x86.avx512.mask.pmaddw.d.256 1423 return _mm256_mask_madd_epi16(__W, __U, __A, __B); 1424 } 1425 1426 __m256i test_mm256_maskz_madd_epi16(__mmask8 __U, __m256i __A, __m256i __B) { 1427 // CHECK-LABEL: @test_mm256_maskz_madd_epi16 1428 // CHECK: @llvm.x86.avx512.mask.pmaddw.d.256 1429 return _mm256_maskz_madd_epi16(__U, __A, __B); 1430 } 1431 1432 __m128i test_mm_cvtsepi16_epi8(__m128i __A) { 1433 // CHECK-LABEL: @test_mm_cvtsepi16_epi8 1434 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128 1435 return _mm_cvtsepi16_epi8(__A); 1436 } 1437 1438 __m128i test_mm_mask_cvtsepi16_epi8(__m128i __O, __mmask8 __M, __m128i __A) { 1439 // CHECK-LABEL: @test_mm_mask_cvtsepi16_epi8 1440 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128 1441 return _mm_mask_cvtsepi16_epi8(__O, __M, __A); 1442 } 1443 1444 __m128i test_mm_maskz_cvtsepi16_epi8(__mmask8 __M, __m128i __A) { 1445 // CHECK-LABEL: @test_mm_maskz_cvtsepi16_epi8 1446 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.128 1447 return _mm_maskz_cvtsepi16_epi8(__M, __A); 1448 } 1449 1450 __m128i test_mm256_cvtsepi16_epi8(__m256i __A) { 1451 // CHECK-LABEL: @test_mm256_cvtsepi16_epi8 1452 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256 1453 return _mm256_cvtsepi16_epi8(__A); 1454 } 1455 1456 __m128i test_mm256_mask_cvtsepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) { 1457 // CHECK-LABEL: @test_mm256_mask_cvtsepi16_epi8 1458 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256 1459 return _mm256_mask_cvtsepi16_epi8(__O, __M, __A); 1460 } 1461 1462 __m128i test_mm256_maskz_cvtsepi16_epi8(__mmask16 __M, __m256i __A) { 1463 // CHECK-LABEL: @test_mm256_maskz_cvtsepi16_epi8 1464 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.256 1465 return _mm256_maskz_cvtsepi16_epi8(__M, __A); 1466 } 1467 1468 __m128i test_mm_cvtusepi16_epi8(__m128i __A) { 1469 // CHECK-LABEL: @test_mm_cvtusepi16_epi8 1470 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128 1471 return _mm_cvtusepi16_epi8(__A); 1472 } 1473 1474 __m128i test_mm_mask_cvtusepi16_epi8(__m128i __O, __mmask8 __M, __m128i __A) { 1475 // CHECK-LABEL: @test_mm_mask_cvtusepi16_epi8 1476 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128 1477 return _mm_mask_cvtusepi16_epi8(__O, __M, __A); 1478 } 1479 1480 __m128i test_mm_maskz_cvtusepi16_epi8(__mmask8 __M, __m128i __A) { 1481 // CHECK-LABEL: @test_mm_maskz_cvtusepi16_epi8 1482 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.128 1483 return _mm_maskz_cvtusepi16_epi8(__M, __A); 1484 } 1485 1486 __m128i test_mm256_cvtusepi16_epi8(__m256i __A) { 1487 // CHECK-LABEL: @test_mm256_cvtusepi16_epi8 1488 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256 1489 return _mm256_cvtusepi16_epi8(__A); 1490 } 1491 1492 __m128i test_mm256_mask_cvtusepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) { 1493 // CHECK-LABEL: @test_mm256_mask_cvtusepi16_epi8 1494 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256 1495 return _mm256_mask_cvtusepi16_epi8(__O, __M, __A); 1496 } 1497 1498 __m128i test_mm256_maskz_cvtusepi16_epi8(__mmask16 __M, __m256i __A) { 1499 // CHECK-LABEL: @test_mm256_maskz_cvtusepi16_epi8 1500 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.256 1501 return _mm256_maskz_cvtusepi16_epi8(__M, __A); 1502 } 1503 1504 __m128i test_mm_cvtepi16_epi8(__m128i __A) { 1505 // CHECK-LABEL: @test_mm_cvtepi16_epi8 1506 // CHECK: @llvm.x86.avx512.mask.pmov.wb.128 1507 return _mm_cvtepi16_epi8(__A); 1508 } 1509 1510 __m128i test_mm_mask_cvtepi16_epi8(__m128i __O, __mmask8 __M, __m128i __A) { 1511 // CHECK-LABEL: @test_mm_mask_cvtepi16_epi8 1512 // CHECK: @llvm.x86.avx512.mask.pmov.wb.128 1513 return _mm_mask_cvtepi16_epi8(__O, __M, __A); 1514 } 1515 1516 __m128i test_mm_maskz_cvtepi16_epi8(__mmask8 __M, __m128i __A) { 1517 // CHECK-LABEL: @test_mm_maskz_cvtepi16_epi8 1518 // CHECK: @llvm.x86.avx512.mask.pmov.wb.128 1519 return _mm_maskz_cvtepi16_epi8(__M, __A); 1520 } 1521 1522 __m128i test_mm256_cvtepi16_epi8(__m256i __A) { 1523 // CHECK-LABEL: @test_mm256_cvtepi16_epi8 1524 // CHECK: @llvm.x86.avx512.mask.pmov.wb.256 1525 return _mm256_cvtepi16_epi8(__A); 1526 } 1527 1528 __m128i test_mm256_mask_cvtepi16_epi8(__m128i __O, __mmask16 __M, __m256i __A) { 1529 // CHECK-LABEL: @test_mm256_mask_cvtepi16_epi8 1530 // CHECK: @llvm.x86.avx512.mask.pmov.wb.256 1531 return _mm256_mask_cvtepi16_epi8(__O, __M, __A); 1532 } 1533 1534 __m128i test_mm256_maskz_cvtepi16_epi8(__mmask16 __M, __m256i __A) { 1535 // CHECK-LABEL: @test_mm256_maskz_cvtepi16_epi8 1536 // CHECK: @llvm.x86.avx512.mask.pmov.wb.256 1537 return _mm256_maskz_cvtepi16_epi8(__M, __A); 1538 } 1539 1540 __m128i test_mm_mask_mulhrs_epi16(__m128i __W, __mmask8 __U, __m128i __X, __m128i __Y) { 1541 // CHECK-LABEL: @test_mm_mask_mulhrs_epi16 1542 // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.128 1543 return _mm_mask_mulhrs_epi16(__W, __U, __X, __Y); 1544 } 1545 1546 __m128i test_mm_maskz_mulhrs_epi16(__mmask8 __U, __m128i __X, __m128i __Y) { 1547 // CHECK-LABEL: @test_mm_maskz_mulhrs_epi16 1548 // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.128 1549 return _mm_maskz_mulhrs_epi16(__U, __X, __Y); 1550 } 1551 1552 __m256i test_mm256_mask_mulhrs_epi16(__m256i __W, __mmask16 __U, __m256i __X, __m256i __Y) { 1553 // CHECK-LABEL: @test_mm256_mask_mulhrs_epi16 1554 // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.256 1555 return _mm256_mask_mulhrs_epi16(__W, __U, __X, __Y); 1556 } 1557 1558 __m256i test_mm256_maskz_mulhrs_epi16(__mmask16 __U, __m256i __X, __m256i __Y) { 1559 // CHECK-LABEL: @test_mm256_maskz_mulhrs_epi16 1560 // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.256 1561 return _mm256_maskz_mulhrs_epi16(__U, __X, __Y); 1562 } 1563 1564 __m128i test_mm_mask_mulhi_epu16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 1565 // CHECK-LABEL: @test_mm_mask_mulhi_epu16 1566 // CHECK: @llvm.x86.avx512.mask.pmulhu.w.128 1567 return _mm_mask_mulhi_epu16(__W, __U, __A, __B); 1568 } 1569 1570 __m128i test_mm_maskz_mulhi_epu16(__mmask8 __U, __m128i __A, __m128i __B) { 1571 // CHECK-LABEL: @test_mm_maskz_mulhi_epu16 1572 // CHECK: @llvm.x86.avx512.mask.pmulhu.w.128 1573 return _mm_maskz_mulhi_epu16(__U, __A, __B); 1574 } 1575 1576 __m256i test_mm256_mask_mulhi_epu16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 1577 // CHECK-LABEL: @test_mm256_mask_mulhi_epu16 1578 // CHECK: @llvm.x86.avx512.mask.pmulhu.w.256 1579 return _mm256_mask_mulhi_epu16(__W, __U, __A, __B); 1580 } 1581 1582 __m256i test_mm256_maskz_mulhi_epu16(__mmask16 __U, __m256i __A, __m256i __B) { 1583 // CHECK-LABEL: @test_mm256_maskz_mulhi_epu16 1584 // CHECK: @llvm.x86.avx512.mask.pmulhu.w.256 1585 return _mm256_maskz_mulhi_epu16(__U, __A, __B); 1586 } 1587 1588 __m128i test_mm_mask_mulhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 1589 // CHECK-LABEL: @test_mm_mask_mulhi_epi16 1590 // CHECK: @llvm.x86.avx512.mask.pmulh.w.128 1591 return _mm_mask_mulhi_epi16(__W, __U, __A, __B); 1592 } 1593 1594 __m128i test_mm_maskz_mulhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) { 1595 // CHECK-LABEL: @test_mm_maskz_mulhi_epi16 1596 // CHECK: @llvm.x86.avx512.mask.pmulh.w.128 1597 return _mm_maskz_mulhi_epi16(__U, __A, __B); 1598 } 1599 1600 __m256i test_mm256_mask_mulhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 1601 // CHECK-LABEL: @test_mm256_mask_mulhi_epi16 1602 // CHECK: @llvm.x86.avx512.mask.pmulh.w.256 1603 return _mm256_mask_mulhi_epi16(__W, __U, __A, __B); 1604 } 1605 1606 __m256i test_mm256_maskz_mulhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) { 1607 // CHECK-LABEL: @test_mm256_maskz_mulhi_epi16 1608 // CHECK: @llvm.x86.avx512.mask.pmulh.w.256 1609 return _mm256_maskz_mulhi_epi16(__U, __A, __B); 1610 } 1611 1612 __m128i test_mm_mask_unpackhi_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { 1613 // CHECK-LABEL: @test_mm_mask_unpackhi_epi8 1614 // CHECK: @llvm.x86.avx512.mask.punpckhb.w.128 1615 return _mm_mask_unpackhi_epi8(__W, __U, __A, __B); 1616 } 1617 1618 __m128i test_mm_maskz_unpackhi_epi8(__mmask16 __U, __m128i __A, __m128i __B) { 1619 // CHECK-LABEL: @test_mm_maskz_unpackhi_epi8 1620 // CHECK: @llvm.x86.avx512.mask.punpckhb.w.128 1621 return _mm_maskz_unpackhi_epi8(__U, __A, __B); 1622 } 1623 1624 __m256i test_mm256_mask_unpackhi_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { 1625 // CHECK-LABEL: @test_mm256_mask_unpackhi_epi8 1626 // CHECK: @llvm.x86.avx512.mask.punpckhb.w.256 1627 return _mm256_mask_unpackhi_epi8(__W, __U, __A, __B); 1628 } 1629 1630 __m256i test_mm256_maskz_unpackhi_epi8(__mmask32 __U, __m256i __A, __m256i __B) { 1631 // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi8 1632 // CHECK: @llvm.x86.avx512.mask.punpckhb.w.256 1633 return _mm256_maskz_unpackhi_epi8(__U, __A, __B); 1634 } 1635 1636 __m128i test_mm_mask_unpackhi_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 1637 // CHECK-LABEL: @test_mm_mask_unpackhi_epi16 1638 // CHECK: @llvm.x86.avx512.mask.punpckhw.d.128 1639 return _mm_mask_unpackhi_epi16(__W, __U, __A, __B); 1640 } 1641 1642 __m128i test_mm_maskz_unpackhi_epi16(__mmask8 __U, __m128i __A, __m128i __B) { 1643 // CHECK-LABEL: @test_mm_maskz_unpackhi_epi16 1644 // CHECK: @llvm.x86.avx512.mask.punpckhw.d.128 1645 return _mm_maskz_unpackhi_epi16(__U, __A, __B); 1646 } 1647 1648 __m256i test_mm256_mask_unpackhi_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 1649 // CHECK-LABEL: @test_mm256_mask_unpackhi_epi16 1650 // CHECK: @llvm.x86.avx512.mask.punpckhw.d.256 1651 return _mm256_mask_unpackhi_epi16(__W, __U, __A, __B); 1652 } 1653 1654 __m256i test_mm256_maskz_unpackhi_epi16(__mmask16 __U, __m256i __A, __m256i __B) { 1655 // CHECK-LABEL: @test_mm256_maskz_unpackhi_epi16 1656 // CHECK: @llvm.x86.avx512.mask.punpckhw.d.256 1657 return _mm256_maskz_unpackhi_epi16(__U, __A, __B); 1658 } 1659 1660 __m128i test_mm_mask_unpacklo_epi8(__m128i __W, __mmask16 __U, __m128i __A, __m128i __B) { 1661 // CHECK-LABEL: @test_mm_mask_unpacklo_epi8 1662 // CHECK: @llvm.x86.avx512.mask.punpcklb.w.128 1663 return _mm_mask_unpacklo_epi8(__W, __U, __A, __B); 1664 } 1665 1666 __m128i test_mm_maskz_unpacklo_epi8(__mmask16 __U, __m128i __A, __m128i __B) { 1667 // CHECK-LABEL: @test_mm_maskz_unpacklo_epi8 1668 // CHECK: @llvm.x86.avx512.mask.punpcklb.w.128 1669 return _mm_maskz_unpacklo_epi8(__U, __A, __B); 1670 } 1671 1672 __m256i test_mm256_mask_unpacklo_epi8(__m256i __W, __mmask32 __U, __m256i __A, __m256i __B) { 1673 // CHECK-LABEL: @test_mm256_mask_unpacklo_epi8 1674 // CHECK: @llvm.x86.avx512.mask.punpcklb.w.256 1675 return _mm256_mask_unpacklo_epi8(__W, __U, __A, __B); 1676 } 1677 1678 __m256i test_mm256_maskz_unpacklo_epi8(__mmask32 __U, __m256i __A, __m256i __B) { 1679 // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi8 1680 // CHECK: @llvm.x86.avx512.mask.punpcklb.w.256 1681 return _mm256_maskz_unpacklo_epi8(__U, __A, __B); 1682 } 1683 1684 __m128i test_mm_mask_unpacklo_epi16(__m128i __W, __mmask8 __U, __m128i __A, __m128i __B) { 1685 // CHECK-LABEL: @test_mm_mask_unpacklo_epi16 1686 // CHECK: @llvm.x86.avx512.mask.punpcklw.d.128 1687 return _mm_mask_unpacklo_epi16(__W, __U, __A, __B); 1688 } 1689 1690 __m128i test_mm_maskz_unpacklo_epi16(__mmask8 __U, __m128i __A, __m128i __B) { 1691 // CHECK-LABEL: @test_mm_maskz_unpacklo_epi16 1692 // CHECK: @llvm.x86.avx512.mask.punpcklw.d.128 1693 return _mm_maskz_unpacklo_epi16(__U, __A, __B); 1694 } 1695 1696 __m256i test_mm256_mask_unpacklo_epi16(__m256i __W, __mmask16 __U, __m256i __A, __m256i __B) { 1697 // CHECK-LABEL: @test_mm256_mask_unpacklo_epi16 1698 // CHECK: @llvm.x86.avx512.mask.punpcklw.d.256 1699 return _mm256_mask_unpacklo_epi16(__W, __U, __A, __B); 1700 } 1701 1702 __m256i test_mm256_maskz_unpacklo_epi16(__mmask16 __U, __m256i __A, __m256i __B) { 1703 // CHECK-LABEL: @test_mm256_maskz_unpacklo_epi16 1704 // CHECK: @llvm.x86.avx512.mask.punpcklw.d.256 1705 return _mm256_maskz_unpacklo_epi16(__U, __A, __B); 1706 } 1707 1708