1 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512bw -emit-llvm -o - -Werror | FileCheck %s 2 // RUN: %clang_cc1 %s -triple=x86_64-apple-darwin -target-feature +avx512bw -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 __mmask64 test_mm512_cmpeq_epi8_mask(__m512i __a, __m512i __b) { 10 // CHECK-LABEL: @test_mm512_cmpeq_epi8_mask 11 // CHECK: @llvm.x86.avx512.mask.pcmpeq.b.512 12 return (__mmask64)_mm512_cmpeq_epi8_mask(__a, __b); 13 } 14 15 __mmask64 test_mm512_mask_cmpeq_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 16 // CHECK-LABEL: @test_mm512_mask_cmpeq_epi8_mask 17 // CHECK: @llvm.x86.avx512.mask.pcmpeq.b.512 18 return (__mmask64)_mm512_mask_cmpeq_epi8_mask(__u, __a, __b); 19 } 20 21 __mmask32 test_mm512_cmpeq_epi16_mask(__m512i __a, __m512i __b) { 22 // CHECK-LABEL: @test_mm512_cmpeq_epi16_mask 23 // CHECK: @llvm.x86.avx512.mask.pcmpeq.w.512 24 return (__mmask32)_mm512_cmpeq_epi16_mask(__a, __b); 25 } 26 27 __mmask32 test_mm512_mask_cmpeq_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 28 // CHECK-LABEL: @test_mm512_mask_cmpeq_epi16_mask 29 // CHECK: @llvm.x86.avx512.mask.pcmpeq.w.512 30 return (__mmask32)_mm512_mask_cmpeq_epi16_mask(__u, __a, __b); 31 } 32 33 __mmask64 test_mm512_cmpgt_epi8_mask(__m512i __a, __m512i __b) { 34 // CHECK-LABEL: @test_mm512_cmpgt_epi8_mask 35 // CHECK: @llvm.x86.avx512.mask.pcmpgt.b.512 36 return (__mmask64)_mm512_cmpgt_epi8_mask(__a, __b); 37 } 38 39 __mmask64 test_mm512_mask_cmpgt_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 40 // CHECK-LABEL: @test_mm512_mask_cmpgt_epi8_mask 41 // CHECK: @llvm.x86.avx512.mask.pcmpgt.b.512 42 return (__mmask64)_mm512_mask_cmpgt_epi8_mask(__u, __a, __b); 43 } 44 45 __mmask32 test_mm512_cmpgt_epi16_mask(__m512i __a, __m512i __b) { 46 // CHECK-LABEL: @test_mm512_cmpgt_epi16_mask 47 // CHECK: @llvm.x86.avx512.mask.pcmpgt.w.512 48 return (__mmask32)_mm512_cmpgt_epi16_mask(__a, __b); 49 } 50 51 __mmask32 test_mm512_mask_cmpgt_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 52 // CHECK-LABEL: @test_mm512_mask_cmpgt_epi16_mask 53 // CHECK: @llvm.x86.avx512.mask.pcmpgt.w.512 54 return (__mmask32)_mm512_mask_cmpgt_epi16_mask(__u, __a, __b); 55 } 56 57 __mmask64 test_mm512_cmpeq_epu8_mask(__m512i __a, __m512i __b) { 58 // CHECK-LABEL: @test_mm512_cmpeq_epu8_mask 59 // CHECK: @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 0, i64 -1) 60 return (__mmask64)_mm512_cmpeq_epu8_mask(__a, __b); 61 } 62 63 __mmask64 test_mm512_mask_cmpeq_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 64 // CHECK-LABEL: @test_mm512_mask_cmpeq_epu8_mask 65 // CHECK: @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 0, i64 {{.*}}) 66 return (__mmask64)_mm512_mask_cmpeq_epu8_mask(__u, __a, __b); 67 } 68 69 __mmask32 test_mm512_cmpeq_epu16_mask(__m512i __a, __m512i __b) { 70 // CHECK-LABEL: @test_mm512_cmpeq_epu16_mask 71 // CHECK: @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 0, i32 -1) 72 return (__mmask32)_mm512_cmpeq_epu16_mask(__a, __b); 73 } 74 75 __mmask32 test_mm512_mask_cmpeq_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 76 // CHECK-LABEL: @test_mm512_mask_cmpeq_epu16_mask 77 // CHECK: @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 0, i32 {{.*}}) 78 return (__mmask32)_mm512_mask_cmpeq_epu16_mask(__u, __a, __b); 79 } 80 81 __mmask64 test_mm512_cmpgt_epu8_mask(__m512i __a, __m512i __b) { 82 // CHECK-LABEL: @test_mm512_cmpgt_epu8_mask 83 // CHECK: @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 6, i64 -1) 84 return (__mmask64)_mm512_cmpgt_epu8_mask(__a, __b); 85 } 86 87 __mmask64 test_mm512_mask_cmpgt_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 88 // CHECK-LABEL: @test_mm512_mask_cmpgt_epu8_mask 89 // CHECK: @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 6, i64 {{.*}}) 90 return (__mmask64)_mm512_mask_cmpgt_epu8_mask(__u, __a, __b); 91 } 92 93 __mmask32 test_mm512_cmpgt_epu16_mask(__m512i __a, __m512i __b) { 94 // CHECK-LABEL: @test_mm512_cmpgt_epu16_mask 95 // CHECK: @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 6, i32 -1) 96 return (__mmask32)_mm512_cmpgt_epu16_mask(__a, __b); 97 } 98 99 __mmask32 test_mm512_mask_cmpgt_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 100 // CHECK-LABEL: @test_mm512_mask_cmpgt_epu16_mask 101 // CHECK: @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 6, i32 {{.*}}) 102 return (__mmask32)_mm512_mask_cmpgt_epu16_mask(__u, __a, __b); 103 } 104 105 __mmask64 test_mm512_cmpge_epi8_mask(__m512i __a, __m512i __b) { 106 // CHECK-LABEL: @test_mm512_cmpge_epi8_mask 107 // CHECK: @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 5, i64 -1) 108 return (__mmask64)_mm512_cmpge_epi8_mask(__a, __b); 109 } 110 111 __mmask64 test_mm512_mask_cmpge_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 112 // CHECK-LABEL: @test_mm512_mask_cmpge_epi8_mask 113 // CHECK: @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 5, i64 {{.*}}) 114 return (__mmask64)_mm512_mask_cmpge_epi8_mask(__u, __a, __b); 115 } 116 117 __mmask64 test_mm512_cmpge_epu8_mask(__m512i __a, __m512i __b) { 118 // CHECK-LABEL: @test_mm512_cmpge_epu8_mask 119 // CHECK: @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 5, i64 -1) 120 return (__mmask64)_mm512_cmpge_epu8_mask(__a, __b); 121 } 122 123 __mmask64 test_mm512_mask_cmpge_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 124 // CHECK-LABEL: @test_mm512_mask_cmpge_epu8_mask 125 // CHECK: @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 5, i64 {{.*}}) 126 return (__mmask64)_mm512_mask_cmpge_epu8_mask(__u, __a, __b); 127 } 128 129 __mmask32 test_mm512_cmpge_epi16_mask(__m512i __a, __m512i __b) { 130 // CHECK-LABEL: @test_mm512_cmpge_epi16_mask 131 // CHECK: @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 5, i32 -1) 132 return (__mmask32)_mm512_cmpge_epi16_mask(__a, __b); 133 } 134 135 __mmask32 test_mm512_mask_cmpge_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 136 // CHECK-LABEL: @test_mm512_mask_cmpge_epi16_mask 137 // CHECK: @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 5, i32 {{.*}}) 138 return (__mmask32)_mm512_mask_cmpge_epi16_mask(__u, __a, __b); 139 } 140 141 __mmask32 test_mm512_cmpge_epu16_mask(__m512i __a, __m512i __b) { 142 // CHECK-LABEL: @test_mm512_cmpge_epu16_mask 143 // CHECK: @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 5, i32 -1) 144 return (__mmask32)_mm512_cmpge_epu16_mask(__a, __b); 145 } 146 147 __mmask32 test_mm512_mask_cmpge_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 148 // CHECK-LABEL: @test_mm512_mask_cmpge_epu16_mask 149 // CHECK: @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 5, i32 {{.*}}) 150 return (__mmask32)_mm512_mask_cmpge_epu16_mask(__u, __a, __b); 151 } 152 153 __mmask64 test_mm512_cmple_epi8_mask(__m512i __a, __m512i __b) { 154 // CHECK-LABEL: @test_mm512_cmple_epi8_mask 155 // CHECK: @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 2, i64 -1) 156 return (__mmask64)_mm512_cmple_epi8_mask(__a, __b); 157 } 158 159 __mmask64 test_mm512_mask_cmple_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 160 // CHECK-LABEL: @test_mm512_mask_cmple_epi8_mask 161 // CHECK: @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 2, i64 {{.*}}) 162 return (__mmask64)_mm512_mask_cmple_epi8_mask(__u, __a, __b); 163 } 164 165 __mmask64 test_mm512_cmple_epu8_mask(__m512i __a, __m512i __b) { 166 // CHECK-LABEL: @test_mm512_cmple_epu8_mask 167 // CHECK: @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 2, i64 -1) 168 return (__mmask64)_mm512_cmple_epu8_mask(__a, __b); 169 } 170 171 __mmask64 test_mm512_mask_cmple_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 172 // CHECK-LABEL: @test_mm512_mask_cmple_epu8_mask 173 // CHECK: @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 2, i64 {{.*}}) 174 return (__mmask64)_mm512_mask_cmple_epu8_mask(__u, __a, __b); 175 } 176 177 __mmask32 test_mm512_cmple_epi16_mask(__m512i __a, __m512i __b) { 178 // CHECK-LABEL: @test_mm512_cmple_epi16_mask 179 // CHECK: @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 2, i32 -1) 180 return (__mmask32)_mm512_cmple_epi16_mask(__a, __b); 181 } 182 183 __mmask32 test_mm512_mask_cmple_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 184 // CHECK-LABEL: @test_mm512_mask_cmple_epi16_mask 185 // CHECK: @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 2, i32 {{.*}}) 186 return (__mmask32)_mm512_mask_cmple_epi16_mask(__u, __a, __b); 187 } 188 189 __mmask32 test_mm512_cmple_epu16_mask(__m512i __a, __m512i __b) { 190 // CHECK-LABEL: @test_mm512_cmple_epu16_mask 191 // CHECK: @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 2, i32 -1) 192 return (__mmask32)_mm512_cmple_epu16_mask(__a, __b); 193 } 194 195 __mmask32 test_mm512_mask_cmple_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 196 // CHECK-LABEL: @test_mm512_mask_cmple_epu16_mask 197 // CHECK: @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 2, i32 {{.*}}) 198 return (__mmask32)_mm512_mask_cmple_epu16_mask(__u, __a, __b); 199 } 200 201 __mmask64 test_mm512_cmplt_epi8_mask(__m512i __a, __m512i __b) { 202 // CHECK-LABEL: @test_mm512_cmplt_epi8_mask 203 // CHECK: @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 1, i64 -1) 204 return (__mmask64)_mm512_cmplt_epi8_mask(__a, __b); 205 } 206 207 __mmask64 test_mm512_mask_cmplt_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 208 // CHECK-LABEL: @test_mm512_mask_cmplt_epi8_mask 209 // CHECK: @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 1, i64 {{.*}}) 210 return (__mmask64)_mm512_mask_cmplt_epi8_mask(__u, __a, __b); 211 } 212 213 __mmask64 test_mm512_cmplt_epu8_mask(__m512i __a, __m512i __b) { 214 // CHECK-LABEL: @test_mm512_cmplt_epu8_mask 215 // CHECK: @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 1, i64 -1) 216 return (__mmask64)_mm512_cmplt_epu8_mask(__a, __b); 217 } 218 219 __mmask64 test_mm512_mask_cmplt_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 220 // CHECK-LABEL: @test_mm512_mask_cmplt_epu8_mask 221 // CHECK: @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 1, i64 {{.*}}) 222 return (__mmask64)_mm512_mask_cmplt_epu8_mask(__u, __a, __b); 223 } 224 225 __mmask32 test_mm512_cmplt_epi16_mask(__m512i __a, __m512i __b) { 226 // CHECK-LABEL: @test_mm512_cmplt_epi16_mask 227 // CHECK: @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 1, i32 -1) 228 return (__mmask32)_mm512_cmplt_epi16_mask(__a, __b); 229 } 230 231 __mmask32 test_mm512_mask_cmplt_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 232 // CHECK-LABEL: @test_mm512_mask_cmplt_epi16_mask 233 // CHECK: @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 1, i32 {{.*}}) 234 return (__mmask32)_mm512_mask_cmplt_epi16_mask(__u, __a, __b); 235 } 236 237 __mmask32 test_mm512_cmplt_epu16_mask(__m512i __a, __m512i __b) { 238 // CHECK-LABEL: @test_mm512_cmplt_epu16_mask 239 // CHECK: @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 1, i32 -1) 240 return (__mmask32)_mm512_cmplt_epu16_mask(__a, __b); 241 } 242 243 __mmask32 test_mm512_mask_cmplt_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 244 // CHECK-LABEL: @test_mm512_mask_cmplt_epu16_mask 245 // CHECK: @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 1, i32 {{.*}}) 246 return (__mmask32)_mm512_mask_cmplt_epu16_mask(__u, __a, __b); 247 } 248 249 __mmask64 test_mm512_cmpneq_epi8_mask(__m512i __a, __m512i __b) { 250 // CHECK-LABEL: @test_mm512_cmpneq_epi8_mask 251 // CHECK: @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 4, i64 -1) 252 return (__mmask64)_mm512_cmpneq_epi8_mask(__a, __b); 253 } 254 255 __mmask64 test_mm512_mask_cmpneq_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 256 // CHECK-LABEL: @test_mm512_mask_cmpneq_epi8_mask 257 // CHECK: @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 4, i64 {{.*}}) 258 return (__mmask64)_mm512_mask_cmpneq_epi8_mask(__u, __a, __b); 259 } 260 261 __mmask64 test_mm512_cmpneq_epu8_mask(__m512i __a, __m512i __b) { 262 // CHECK-LABEL: @test_mm512_cmpneq_epu8_mask 263 // CHECK: @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 4, i64 -1) 264 return (__mmask64)_mm512_cmpneq_epu8_mask(__a, __b); 265 } 266 267 __mmask64 test_mm512_mask_cmpneq_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 268 // CHECK-LABEL: @test_mm512_mask_cmpneq_epu8_mask 269 // CHECK: @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 4, i64 {{.*}}) 270 return (__mmask64)_mm512_mask_cmpneq_epu8_mask(__u, __a, __b); 271 } 272 273 __mmask32 test_mm512_cmpneq_epi16_mask(__m512i __a, __m512i __b) { 274 // CHECK-LABEL: @test_mm512_cmpneq_epi16_mask 275 // CHECK: @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 4, i32 -1) 276 return (__mmask32)_mm512_cmpneq_epi16_mask(__a, __b); 277 } 278 279 __mmask32 test_mm512_mask_cmpneq_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 280 // CHECK-LABEL: @test_mm512_mask_cmpneq_epi16_mask 281 // CHECK: @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 4, i32 {{.*}}) 282 return (__mmask32)_mm512_mask_cmpneq_epi16_mask(__u, __a, __b); 283 } 284 285 __mmask32 test_mm512_cmpneq_epu16_mask(__m512i __a, __m512i __b) { 286 // CHECK-LABEL: @test_mm512_cmpneq_epu16_mask 287 // CHECK: @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 4, i32 -1) 288 return (__mmask32)_mm512_cmpneq_epu16_mask(__a, __b); 289 } 290 291 __mmask32 test_mm512_mask_cmpneq_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 292 // CHECK-LABEL: @test_mm512_mask_cmpneq_epu16_mask 293 // CHECK: @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 4, i32 {{.*}}) 294 return (__mmask32)_mm512_mask_cmpneq_epu16_mask(__u, __a, __b); 295 } 296 297 __mmask64 test_mm512_cmp_epi8_mask(__m512i __a, __m512i __b) { 298 // CHECK-LABEL: @test_mm512_cmp_epi8_mask 299 // CHECK: @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 7, i64 -1) 300 return (__mmask64)_mm512_cmp_epi8_mask(__a, __b, 7); 301 } 302 303 __mmask64 test_mm512_mask_cmp_epi8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 304 // CHECK-LABEL: @test_mm512_mask_cmp_epi8_mask 305 // CHECK: @llvm.x86.avx512.mask.cmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 7, i64 {{.*}}) 306 return (__mmask64)_mm512_mask_cmp_epi8_mask(__u, __a, __b, 7); 307 } 308 309 __mmask64 test_mm512_cmp_epu8_mask(__m512i __a, __m512i __b) { 310 // CHECK-LABEL: @test_mm512_cmp_epu8_mask 311 // CHECK: @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 7, i64 -1) 312 return (__mmask64)_mm512_cmp_epu8_mask(__a, __b, 7); 313 } 314 315 __mmask64 test_mm512_mask_cmp_epu8_mask(__mmask64 __u, __m512i __a, __m512i __b) { 316 // CHECK-LABEL: @test_mm512_mask_cmp_epu8_mask 317 // CHECK: @llvm.x86.avx512.mask.ucmp.b.512(<64 x i8> {{.*}}, <64 x i8> {{.*}}, i32 7, i64 {{.*}}) 318 return (__mmask64)_mm512_mask_cmp_epu8_mask(__u, __a, __b, 7); 319 } 320 321 __mmask32 test_mm512_cmp_epi16_mask(__m512i __a, __m512i __b) { 322 // CHECK-LABEL: @test_mm512_cmp_epi16_mask 323 // CHECK: @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 7, i32 -1) 324 return (__mmask32)_mm512_cmp_epi16_mask(__a, __b, 7); 325 } 326 327 __mmask32 test_mm512_mask_cmp_epi16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 328 // CHECK-LABEL: @test_mm512_mask_cmp_epi16_mask 329 // CHECK: @llvm.x86.avx512.mask.cmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 7, i32 {{.*}}) 330 return (__mmask32)_mm512_mask_cmp_epi16_mask(__u, __a, __b, 7); 331 } 332 333 __mmask32 test_mm512_cmp_epu16_mask(__m512i __a, __m512i __b) { 334 // CHECK-LABEL: @test_mm512_cmp_epu16_mask 335 // CHECK: @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 7, i32 -1) 336 return (__mmask32)_mm512_cmp_epu16_mask(__a, __b, 7); 337 } 338 339 __mmask32 test_mm512_mask_cmp_epu16_mask(__mmask32 __u, __m512i __a, __m512i __b) { 340 // CHECK-LABEL: @test_mm512_mask_cmp_epu16_mask 341 // CHECK: @llvm.x86.avx512.mask.ucmp.w.512(<32 x i16> {{.*}}, <32 x i16> {{.*}}, i32 7, i32 {{.*}}) 342 return (__mmask32)_mm512_mask_cmp_epu16_mask(__u, __a, __b, 7); 343 } 344 345 __m512i test_mm512_add_epi8 (__m512i __A, __m512i __B) { 346 //CHECK-LABEL: @test_mm512_add_epi8 347 //CHECK: add <64 x i8> 348 return _mm512_add_epi8(__A,__B); 349 } 350 351 __m512i test_mm512_mask_add_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { 352 //CHECK-LABEL: @test_mm512_mask_add_epi8 353 //CHECK: @llvm.x86.avx512.mask.padd.b.512 354 return _mm512_mask_add_epi8(__W, __U, __A, __B); 355 } 356 357 __m512i test_mm512_maskz_add_epi8 (__mmask64 __U, __m512i __A, __m512i __B) { 358 //CHECK-LABEL: @test_mm512_maskz_add_epi8 359 //CHECK: @llvm.x86.avx512.mask.padd.b.512 360 return _mm512_maskz_add_epi8(__U, __A, __B); 361 } 362 363 __m512i test_mm512_sub_epi8 (__m512i __A, __m512i __B) { 364 //CHECK-LABEL: @test_mm512_sub_epi8 365 //CHECK: sub <64 x i8> 366 return _mm512_sub_epi8(__A, __B); 367 } 368 369 __m512i test_mm512_mask_sub_epi8 (__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { 370 //CHECK-LABEL: @test_mm512_mask_sub_epi8 371 //CHECK: @llvm.x86.avx512.mask.psub.b.512 372 return _mm512_mask_sub_epi8(__W, __U, __A, __B); 373 } 374 375 __m512i test_mm512_maskz_sub_epi8 (__mmask64 __U, __m512i __A, __m512i __B) { 376 //CHECK-LABEL: @test_mm512_maskz_sub_epi8 377 //CHECK: @llvm.x86.avx512.mask.psub.b.512 378 return _mm512_maskz_sub_epi8(__U, __A, __B); 379 } 380 381 __m512i test_mm512_add_epi16 (__m512i __A, __m512i __B) { 382 //CHECK-LABEL: @test_mm512_add_epi16 383 //CHECK: add <32 x i16> 384 return _mm512_add_epi16(__A, __B); 385 } 386 387 __m512i test_mm512_mask_add_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { 388 //CHECK-LABEL: @test_mm512_mask_add_epi16 389 //CHECK: @llvm.x86.avx512.mask.padd.w.512 390 return _mm512_mask_add_epi16(__W, __U, __A, __B); 391 } 392 393 __m512i test_mm512_maskz_add_epi16 (__mmask32 __U, __m512i __A, __m512i __B) { 394 //CHECK-LABEL: @test_mm512_maskz_add_epi16 395 //CHECK: @llvm.x86.avx512.mask.padd.w.512 396 return _mm512_maskz_add_epi16(__U, __A, __B); 397 } 398 399 __m512i test_mm512_sub_epi16 (__m512i __A, __m512i __B) { 400 //CHECK-LABEL: @test_mm512_sub_epi16 401 //CHECK: sub <32 x i16> 402 return _mm512_sub_epi16(__A, __B); 403 } 404 405 __m512i test_mm512_mask_sub_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { 406 //CHECK-LABEL: @test_mm512_mask_sub_epi16 407 //CHECK: @llvm.x86.avx512.mask.psub.w.512 408 return _mm512_mask_sub_epi16(__W, __U, __A, __B); 409 } 410 411 __m512i test_mm512_maskz_sub_epi16 (__mmask32 __U, __m512i __A, __m512i __B) { 412 //CHECK-LABEL: @test_mm512_maskz_sub_epi16 413 //CHECK: @llvm.x86.avx512.mask.psub.w.512 414 return _mm512_maskz_sub_epi16(__U, __A, __B); 415 } 416 417 __m512i test_mm512_mullo_epi16 (__m512i __A, __m512i __B) { 418 //CHECK-LABEL: @test_mm512_mullo_epi16 419 //CHECK: mul <32 x i16> 420 return _mm512_mullo_epi16(__A, __B); 421 } 422 423 __m512i test_mm512_mask_mullo_epi16 (__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { 424 //CHECK-LABEL: @test_mm512_mask_mullo_epi16 425 //CHECK: @llvm.x86.avx512.mask.pmull.w.512 426 return _mm512_mask_mullo_epi16(__W, __U, __A, __B); 427 } 428 429 __m512i test_mm512_maskz_mullo_epi16 (__mmask32 __U, __m512i __A, __m512i __B) { 430 //CHECK-LABEL: @test_mm512_maskz_mullo_epi16 431 //CHECK: @llvm.x86.avx512.mask.pmull.w.512 432 return _mm512_maskz_mullo_epi16(__U, __A, __B); 433 } 434 435 __m512i test_mm512_mask_blend_epi8(__mmask64 __U, __m512i __A, __m512i __W) { 436 // CHECK-LABEL: @test_mm512_mask_blend_epi8 437 // CHECK: @llvm.x86.avx512.mask.blend.b.512 438 return _mm512_mask_blend_epi8(__U,__A,__W); 439 } 440 __m512i test_mm512_mask_blend_epi16(__mmask32 __U, __m512i __A, __m512i __W) { 441 // CHECK-LABEL: @test_mm512_mask_blend_epi16 442 // CHECK: @llvm.x86.avx512.mask.blend.w.512 443 return _mm512_mask_blend_epi16(__U,__A,__W); 444 } 445 __m512i test_mm512_abs_epi8(__m512i __A) { 446 // CHECK-LABEL: @test_mm512_abs_epi8 447 // CHECK: @llvm.x86.avx512.mask.pabs.b.512 448 return _mm512_abs_epi8(__A); 449 } 450 __m512i test_mm512_mask_abs_epi8(__m512i __W, __mmask64 __U, __m512i __A) { 451 // CHECK-LABEL: @test_mm512_mask_abs_epi8 452 // CHECK: @llvm.x86.avx512.mask.pabs.b.512 453 return _mm512_mask_abs_epi8(__W,__U,__A); 454 } 455 __m512i test_mm512_maskz_abs_epi8(__mmask64 __U, __m512i __A) { 456 // CHECK-LABEL: @test_mm512_maskz_abs_epi8 457 // CHECK: @llvm.x86.avx512.mask.pabs.b.512 458 return _mm512_maskz_abs_epi8(__U,__A); 459 } 460 __m512i test_mm512_abs_epi16(__m512i __A) { 461 // CHECK-LABEL: @test_mm512_abs_epi16 462 // CHECK: @llvm.x86.avx512.mask.pabs.w.512 463 return _mm512_abs_epi16(__A); 464 } 465 __m512i test_mm512_mask_abs_epi16(__m512i __W, __mmask32 __U, __m512i __A) { 466 // CHECK-LABEL: @test_mm512_mask_abs_epi16 467 // CHECK: @llvm.x86.avx512.mask.pabs.w.512 468 return _mm512_mask_abs_epi16(__W,__U,__A); 469 } 470 __m512i test_mm512_maskz_abs_epi16(__mmask32 __U, __m512i __A) { 471 // CHECK-LABEL: @test_mm512_maskz_abs_epi16 472 // CHECK: @llvm.x86.avx512.mask.pabs.w.512 473 return _mm512_maskz_abs_epi16(__U,__A); 474 } 475 __m512i test_mm512_packs_epi32(__m512i __A, __m512i __B) { 476 // CHECK-LABEL: @test_mm512_packs_epi32 477 // CHECK: @llvm.x86.avx512.mask.packssdw.512 478 return _mm512_packs_epi32(__A,__B); 479 } 480 __m512i test_mm512_maskz_packs_epi32(__mmask32 __M, __m512i __A, __m512i __B) { 481 // CHECK-LABEL: @test_mm512_maskz_packs_epi32 482 // CHECK: @llvm.x86.avx512.mask.packssdw.512 483 return _mm512_maskz_packs_epi32(__M,__A,__B); 484 } 485 __m512i test_mm512_mask_packs_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) { 486 // CHECK-LABEL: @test_mm512_mask_packs_epi32 487 // CHECK: @llvm.x86.avx512.mask.packssdw.512 488 return _mm512_mask_packs_epi32(__W,__M,__A,__B); 489 } 490 __m512i test_mm512_packs_epi16(__m512i __A, __m512i __B) { 491 // CHECK-LABEL: @test_mm512_packs_epi16 492 // CHECK: @llvm.x86.avx512.mask.packsswb.512 493 return _mm512_packs_epi16(__A,__B); 494 } 495 __m512i test_mm512_mask_packs_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) { 496 // CHECK-LABEL: @test_mm512_mask_packs_epi16 497 // CHECK: @llvm.x86.avx512.mask.packsswb.512 498 return _mm512_mask_packs_epi16(__W,__M,__A,__B); 499 } 500 __m512i test_mm512_maskz_packs_epi16(__mmask64 __M, __m512i __A, __m512i __B) { 501 // CHECK-LABEL: @test_mm512_maskz_packs_epi16 502 // CHECK: @llvm.x86.avx512.mask.packsswb.512 503 return _mm512_maskz_packs_epi16(__M,__A,__B); 504 } 505 __m512i test_mm512_packus_epi32(__m512i __A, __m512i __B) { 506 // CHECK-LABEL: @test_mm512_packus_epi32 507 // CHECK: @llvm.x86.avx512.mask.packusdw.512 508 return _mm512_packus_epi32(__A,__B); 509 } 510 __m512i test_mm512_maskz_packus_epi32(__mmask32 __M, __m512i __A, __m512i __B) { 511 // CHECK-LABEL: @test_mm512_maskz_packus_epi32 512 // CHECK: @llvm.x86.avx512.mask.packusdw.512 513 return _mm512_maskz_packus_epi32(__M,__A,__B); 514 } 515 __m512i test_mm512_mask_packus_epi32(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) { 516 // CHECK-LABEL: @test_mm512_mask_packus_epi32 517 // CHECK: @llvm.x86.avx512.mask.packusdw.512 518 return _mm512_mask_packus_epi32(__W,__M,__A,__B); 519 } 520 __m512i test_mm512_packus_epi16(__m512i __A, __m512i __B) { 521 // CHECK-LABEL: @test_mm512_packus_epi16 522 // CHECK: @llvm.x86.avx512.mask.packuswb.512 523 return _mm512_packus_epi16(__A,__B); 524 } 525 __m512i test_mm512_mask_packus_epi16(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) { 526 // CHECK-LABEL: @test_mm512_mask_packus_epi16 527 // CHECK: @llvm.x86.avx512.mask.packuswb.512 528 return _mm512_mask_packus_epi16(__W,__M,__A,__B); 529 } 530 __m512i test_mm512_maskz_packus_epi16(__mmask64 __M, __m512i __A, __m512i __B) { 531 // CHECK-LABEL: @test_mm512_maskz_packus_epi16 532 // CHECK: @llvm.x86.avx512.mask.packuswb.512 533 return _mm512_maskz_packus_epi16(__M,__A,__B); 534 } 535 __m512i test_mm512_adds_epi8(__m512i __A, __m512i __B) { 536 // CHECK-LABEL: @test_mm512_adds_epi8 537 // CHECK: @llvm.x86.avx512.mask.padds.b.512 538 return _mm512_adds_epi8(__A,__B); 539 } 540 __m512i test_mm512_mask_adds_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { 541 // CHECK-LABEL: @test_mm512_mask_adds_epi8 542 // CHECK: @llvm.x86.avx512.mask.padds.b.512 543 return _mm512_mask_adds_epi8(__W,__U,__A,__B); 544 } 545 __m512i test_mm512_maskz_adds_epi8(__mmask64 __U, __m512i __A, __m512i __B) { 546 // CHECK-LABEL: @test_mm512_maskz_adds_epi8 547 // CHECK: @llvm.x86.avx512.mask.padds.b.512 548 return _mm512_maskz_adds_epi8(__U,__A,__B); 549 } 550 __m512i test_mm512_adds_epi16(__m512i __A, __m512i __B) { 551 // CHECK-LABEL: @test_mm512_adds_epi16 552 // CHECK: @llvm.x86.avx512.mask.padds.w.512 553 return _mm512_adds_epi16(__A,__B); 554 } 555 __m512i test_mm512_mask_adds_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { 556 // CHECK-LABEL: @test_mm512_mask_adds_epi16 557 // CHECK: @llvm.x86.avx512.mask.padds.w.512 558 return _mm512_mask_adds_epi16(__W,__U,__A,__B); 559 } 560 __m512i test_mm512_maskz_adds_epi16(__mmask32 __U, __m512i __A, __m512i __B) { 561 // CHECK-LABEL: @test_mm512_maskz_adds_epi16 562 // CHECK: @llvm.x86.avx512.mask.padds.w.512 563 return _mm512_maskz_adds_epi16(__U,__A,__B); 564 } 565 __m512i test_mm512_adds_epu8(__m512i __A, __m512i __B) { 566 // CHECK-LABEL: @test_mm512_adds_epu8 567 // CHECK: @llvm.x86.avx512.mask.paddus.b.512 568 return _mm512_adds_epu8(__A,__B); 569 } 570 __m512i test_mm512_mask_adds_epu8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { 571 // CHECK-LABEL: @test_mm512_mask_adds_epu8 572 // CHECK: @llvm.x86.avx512.mask.paddus.b.512 573 return _mm512_mask_adds_epu8(__W,__U,__A,__B); 574 } 575 __m512i test_mm512_maskz_adds_epu8(__mmask64 __U, __m512i __A, __m512i __B) { 576 // CHECK-LABEL: @test_mm512_maskz_adds_epu8 577 // CHECK: @llvm.x86.avx512.mask.paddus.b.512 578 return _mm512_maskz_adds_epu8(__U,__A,__B); 579 } 580 __m512i test_mm512_adds_epu16(__m512i __A, __m512i __B) { 581 // CHECK-LABEL: @test_mm512_adds_epu16 582 // CHECK: @llvm.x86.avx512.mask.paddus.w.512 583 return _mm512_adds_epu16(__A,__B); 584 } 585 __m512i test_mm512_mask_adds_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { 586 // CHECK-LABEL: @test_mm512_mask_adds_epu16 587 // CHECK: @llvm.x86.avx512.mask.paddus.w.512 588 return _mm512_mask_adds_epu16(__W,__U,__A,__B); 589 } 590 __m512i test_mm512_maskz_adds_epu16(__mmask32 __U, __m512i __A, __m512i __B) { 591 // CHECK-LABEL: @test_mm512_maskz_adds_epu16 592 // CHECK: @llvm.x86.avx512.mask.paddus.w.512 593 return _mm512_maskz_adds_epu16(__U,__A,__B); 594 } 595 __m512i test_mm512_avg_epu8(__m512i __A, __m512i __B) { 596 // CHECK-LABEL: @test_mm512_avg_epu8 597 // CHECK: @llvm.x86.avx512.mask.pavg.b.512 598 return _mm512_avg_epu8(__A,__B); 599 } 600 __m512i test_mm512_mask_avg_epu8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { 601 // CHECK-LABEL: @test_mm512_mask_avg_epu8 602 // CHECK: @llvm.x86.avx512.mask.pavg.b.512 603 return _mm512_mask_avg_epu8(__W,__U,__A,__B); 604 } 605 __m512i test_mm512_maskz_avg_epu8(__mmask64 __U, __m512i __A, __m512i __B) { 606 // CHECK-LABEL: @test_mm512_maskz_avg_epu8 607 // CHECK: @llvm.x86.avx512.mask.pavg.b.512 608 return _mm512_maskz_avg_epu8(__U,__A,__B); 609 } 610 __m512i test_mm512_avg_epu16(__m512i __A, __m512i __B) { 611 // CHECK-LABEL: @test_mm512_avg_epu16 612 // CHECK: @llvm.x86.avx512.mask.pavg.w.512 613 return _mm512_avg_epu16(__A,__B); 614 } 615 __m512i test_mm512_mask_avg_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { 616 // CHECK-LABEL: @test_mm512_mask_avg_epu16 617 // CHECK: @llvm.x86.avx512.mask.pavg.w.512 618 return _mm512_mask_avg_epu16(__W,__U,__A,__B); 619 } 620 __m512i test_mm512_maskz_avg_epu16(__mmask32 __U, __m512i __A, __m512i __B) { 621 // CHECK-LABEL: @test_mm512_maskz_avg_epu16 622 // CHECK: @llvm.x86.avx512.mask.pavg.w.512 623 return _mm512_maskz_avg_epu16(__U,__A,__B); 624 } 625 __m512i test_mm512_max_epi8(__m512i __A, __m512i __B) { 626 // CHECK-LABEL: @test_mm512_max_epi8 627 // CHECK: @llvm.x86.avx512.mask.pmaxs.b.512 628 return _mm512_max_epi8(__A,__B); 629 } 630 __m512i test_mm512_maskz_max_epi8(__mmask64 __M, __m512i __A, __m512i __B) { 631 // CHECK-LABEL: @test_mm512_maskz_max_epi8 632 // CHECK: @llvm.x86.avx512.mask.pmaxs.b.512 633 return _mm512_maskz_max_epi8(__M,__A,__B); 634 } 635 __m512i test_mm512_mask_max_epi8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) { 636 // CHECK-LABEL: @test_mm512_mask_max_epi8 637 // CHECK: @llvm.x86.avx512.mask.pmaxs.b.512 638 return _mm512_mask_max_epi8(__W,__M,__A,__B); 639 } 640 __m512i test_mm512_max_epi16(__m512i __A, __m512i __B) { 641 // CHECK-LABEL: @test_mm512_max_epi16 642 // CHECK: @llvm.x86.avx512.mask.pmaxs.w.512 643 return _mm512_max_epi16(__A,__B); 644 } 645 __m512i test_mm512_maskz_max_epi16(__mmask32 __M, __m512i __A, __m512i __B) { 646 // CHECK-LABEL: @test_mm512_maskz_max_epi16 647 // CHECK: @llvm.x86.avx512.mask.pmaxs.w.512 648 return _mm512_maskz_max_epi16(__M,__A,__B); 649 } 650 __m512i test_mm512_mask_max_epi16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) { 651 // CHECK-LABEL: @test_mm512_mask_max_epi16 652 // CHECK: @llvm.x86.avx512.mask.pmaxs.w.512 653 return _mm512_mask_max_epi16(__W,__M,__A,__B); 654 } 655 __m512i test_mm512_max_epu8(__m512i __A, __m512i __B) { 656 // CHECK-LABEL: @test_mm512_max_epu8 657 // CHECK: @llvm.x86.avx512.mask.pmaxu.b.512 658 return _mm512_max_epu8(__A,__B); 659 } 660 __m512i test_mm512_maskz_max_epu8(__mmask64 __M, __m512i __A, __m512i __B) { 661 // CHECK-LABEL: @test_mm512_maskz_max_epu8 662 // CHECK: @llvm.x86.avx512.mask.pmaxu.b.512 663 return _mm512_maskz_max_epu8(__M,__A,__B); 664 } 665 __m512i test_mm512_mask_max_epu8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) { 666 // CHECK-LABEL: @test_mm512_mask_max_epu8 667 // CHECK: @llvm.x86.avx512.mask.pmaxu.b.512 668 return _mm512_mask_max_epu8(__W,__M,__A,__B); 669 } 670 __m512i test_mm512_max_epu16(__m512i __A, __m512i __B) { 671 // CHECK-LABEL: @test_mm512_max_epu16 672 // CHECK: @llvm.x86.avx512.mask.pmaxu.w.512 673 return _mm512_max_epu16(__A,__B); 674 } 675 __m512i test_mm512_maskz_max_epu16(__mmask32 __M, __m512i __A, __m512i __B) { 676 // CHECK-LABEL: @test_mm512_maskz_max_epu16 677 // CHECK: @llvm.x86.avx512.mask.pmaxu.w.512 678 return _mm512_maskz_max_epu16(__M,__A,__B); 679 } 680 __m512i test_mm512_mask_max_epu16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) { 681 // CHECK-LABEL: @test_mm512_mask_max_epu16 682 // CHECK: @llvm.x86.avx512.mask.pmaxu.w.512 683 return _mm512_mask_max_epu16(__W,__M,__A,__B); 684 } 685 __m512i test_mm512_min_epi8(__m512i __A, __m512i __B) { 686 // CHECK-LABEL: @test_mm512_min_epi8 687 // CHECK: @llvm.x86.avx512.mask.pmins.b.512 688 return _mm512_min_epi8(__A,__B); 689 } 690 __m512i test_mm512_maskz_min_epi8(__mmask64 __M, __m512i __A, __m512i __B) { 691 // CHECK-LABEL: @test_mm512_maskz_min_epi8 692 // CHECK: @llvm.x86.avx512.mask.pmins.b.512 693 return _mm512_maskz_min_epi8(__M,__A,__B); 694 } 695 __m512i test_mm512_mask_min_epi8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) { 696 // CHECK-LABEL: @test_mm512_mask_min_epi8 697 // CHECK: @llvm.x86.avx512.mask.pmins.b.512 698 return _mm512_mask_min_epi8(__W,__M,__A,__B); 699 } 700 __m512i test_mm512_min_epi16(__m512i __A, __m512i __B) { 701 // CHECK-LABEL: @test_mm512_min_epi16 702 // CHECK: @llvm.x86.avx512.mask.pmins.w.512 703 return _mm512_min_epi16(__A,__B); 704 } 705 __m512i test_mm512_maskz_min_epi16(__mmask32 __M, __m512i __A, __m512i __B) { 706 // CHECK-LABEL: @test_mm512_maskz_min_epi16 707 // CHECK: @llvm.x86.avx512.mask.pmins.w.512 708 return _mm512_maskz_min_epi16(__M,__A,__B); 709 } 710 __m512i test_mm512_mask_min_epi16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) { 711 // CHECK-LABEL: @test_mm512_mask_min_epi16 712 // CHECK: @llvm.x86.avx512.mask.pmins.w.512 713 return _mm512_mask_min_epi16(__W,__M,__A,__B); 714 } 715 __m512i test_mm512_min_epu8(__m512i __A, __m512i __B) { 716 // CHECK-LABEL: @test_mm512_min_epu8 717 // CHECK: @llvm.x86.avx512.mask.pminu.b.512 718 return _mm512_min_epu8(__A,__B); 719 } 720 __m512i test_mm512_maskz_min_epu8(__mmask64 __M, __m512i __A, __m512i __B) { 721 // CHECK-LABEL: @test_mm512_maskz_min_epu8 722 // CHECK: @llvm.x86.avx512.mask.pminu.b.512 723 return _mm512_maskz_min_epu8(__M,__A,__B); 724 } 725 __m512i test_mm512_mask_min_epu8(__m512i __W, __mmask64 __M, __m512i __A, __m512i __B) { 726 // CHECK-LABEL: @test_mm512_mask_min_epu8 727 // CHECK: @llvm.x86.avx512.mask.pminu.b.512 728 return _mm512_mask_min_epu8(__W,__M,__A,__B); 729 } 730 __m512i test_mm512_min_epu16(__m512i __A, __m512i __B) { 731 // CHECK-LABEL: @test_mm512_min_epu16 732 // CHECK: @llvm.x86.avx512.mask.pminu.w.512 733 return _mm512_min_epu16(__A,__B); 734 } 735 __m512i test_mm512_maskz_min_epu16(__mmask32 __M, __m512i __A, __m512i __B) { 736 // CHECK-LABEL: @test_mm512_maskz_min_epu16 737 // CHECK: @llvm.x86.avx512.mask.pminu.w.512 738 return _mm512_maskz_min_epu16(__M,__A,__B); 739 } 740 __m512i test_mm512_mask_min_epu16(__m512i __W, __mmask32 __M, __m512i __A, __m512i __B) { 741 // CHECK-LABEL: @test_mm512_mask_min_epu16 742 // CHECK: @llvm.x86.avx512.mask.pminu.w.512 743 return _mm512_mask_min_epu16(__W,__M,__A,__B); 744 } 745 __m512i test_mm512_shuffle_epi8(__m512i __A, __m512i __B) { 746 // CHECK-LABEL: @test_mm512_shuffle_epi8 747 // CHECK: @llvm.x86.avx512.mask.pshuf.b.512 748 return _mm512_shuffle_epi8(__A,__B); 749 } 750 __m512i test_mm512_mask_shuffle_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { 751 // CHECK-LABEL: @test_mm512_mask_shuffle_epi8 752 // CHECK: @llvm.x86.avx512.mask.pshuf.b.512 753 return _mm512_mask_shuffle_epi8(__W,__U,__A,__B); 754 } 755 __m512i test_mm512_maskz_shuffle_epi8(__mmask64 __U, __m512i __A, __m512i __B) { 756 // CHECK-LABEL: @test_mm512_maskz_shuffle_epi8 757 // CHECK: @llvm.x86.avx512.mask.pshuf.b.512 758 return _mm512_maskz_shuffle_epi8(__U,__A,__B); 759 } 760 __m512i test_mm512_subs_epi8(__m512i __A, __m512i __B) { 761 // CHECK-LABEL: @test_mm512_subs_epi8 762 // CHECK: @llvm.x86.avx512.mask.psubs.b.512 763 return _mm512_subs_epi8(__A,__B); 764 } 765 __m512i test_mm512_mask_subs_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { 766 // CHECK-LABEL: @test_mm512_mask_subs_epi8 767 // CHECK: @llvm.x86.avx512.mask.psubs.b.512 768 return _mm512_mask_subs_epi8(__W,__U,__A,__B); 769 } 770 __m512i test_mm512_maskz_subs_epi8(__mmask64 __U, __m512i __A, __m512i __B) { 771 // CHECK-LABEL: @test_mm512_maskz_subs_epi8 772 // CHECK: @llvm.x86.avx512.mask.psubs.b.512 773 return _mm512_maskz_subs_epi8(__U,__A,__B); 774 } 775 __m512i test_mm512_subs_epi16(__m512i __A, __m512i __B) { 776 // CHECK-LABEL: @test_mm512_subs_epi16 777 // CHECK: @llvm.x86.avx512.mask.psubs.w.512 778 return _mm512_subs_epi16(__A,__B); 779 } 780 __m512i test_mm512_mask_subs_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { 781 // CHECK-LABEL: @test_mm512_mask_subs_epi16 782 // CHECK: @llvm.x86.avx512.mask.psubs.w.512 783 return _mm512_mask_subs_epi16(__W,__U,__A,__B); 784 } 785 __m512i test_mm512_maskz_subs_epi16(__mmask32 __U, __m512i __A, __m512i __B) { 786 // CHECK-LABEL: @test_mm512_maskz_subs_epi16 787 // CHECK: @llvm.x86.avx512.mask.psubs.w.512 788 return _mm512_maskz_subs_epi16(__U,__A,__B); 789 } 790 __m512i test_mm512_subs_epu8(__m512i __A, __m512i __B) { 791 // CHECK-LABEL: @test_mm512_subs_epu8 792 // CHECK: @llvm.x86.avx512.mask.psubus.b.512 793 return _mm512_subs_epu8(__A,__B); 794 } 795 __m512i test_mm512_mask_subs_epu8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { 796 // CHECK-LABEL: @test_mm512_mask_subs_epu8 797 // CHECK: @llvm.x86.avx512.mask.psubus.b.512 798 return _mm512_mask_subs_epu8(__W,__U,__A,__B); 799 } 800 __m512i test_mm512_maskz_subs_epu8(__mmask64 __U, __m512i __A, __m512i __B) { 801 // CHECK-LABEL: @test_mm512_maskz_subs_epu8 802 // CHECK: @llvm.x86.avx512.mask.psubus.b.512 803 return _mm512_maskz_subs_epu8(__U,__A,__B); 804 } 805 __m512i test_mm512_subs_epu16(__m512i __A, __m512i __B) { 806 // CHECK-LABEL: @test_mm512_subs_epu16 807 // CHECK: @llvm.x86.avx512.mask.psubus.w.512 808 return _mm512_subs_epu16(__A,__B); 809 } 810 __m512i test_mm512_mask_subs_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { 811 // CHECK-LABEL: @test_mm512_mask_subs_epu16 812 // CHECK: @llvm.x86.avx512.mask.psubus.w.512 813 return _mm512_mask_subs_epu16(__W,__U,__A,__B); 814 } 815 __m512i test_mm512_maskz_subs_epu16(__mmask32 __U, __m512i __A, __m512i __B) { 816 // CHECK-LABEL: @test_mm512_maskz_subs_epu16 817 // CHECK: @llvm.x86.avx512.mask.psubus.w.512 818 return _mm512_maskz_subs_epu16(__U,__A,__B); 819 } 820 __m512i test_mm512_mask2_permutex2var_epi16(__m512i __A, __m512i __I, __mmask32 __U, __m512i __B) { 821 // CHECK-LABEL: @test_mm512_mask2_permutex2var_epi16 822 // CHECK: @llvm.x86.avx512.mask.vpermi2var.hi.512 823 return _mm512_mask2_permutex2var_epi16(__A,__I,__U,__B); 824 } 825 __m512i test_mm512_permutex2var_epi16(__m512i __A, __m512i __I, __m512i __B) { 826 // CHECK-LABEL: @test_mm512_permutex2var_epi16 827 // CHECK: @llvm.x86.avx512.mask.vpermt2var.hi.512 828 return _mm512_permutex2var_epi16(__A,__I,__B); 829 } 830 __m512i test_mm512_mask_permutex2var_epi16(__m512i __A, __mmask32 __U, __m512i __I, __m512i __B) { 831 // CHECK-LABEL: @test_mm512_mask_permutex2var_epi16 832 // CHECK: @llvm.x86.avx512.mask.vpermt2var.hi.512 833 return _mm512_mask_permutex2var_epi16(__A,__U,__I,__B); 834 } 835 __m512i test_mm512_maskz_permutex2var_epi16(__mmask32 __U, __m512i __A, __m512i __I, __m512i __B) { 836 // CHECK-LABEL: @test_mm512_maskz_permutex2var_epi16 837 // CHECK: @llvm.x86.avx512.maskz.vpermt2var.hi.512 838 return _mm512_maskz_permutex2var_epi16(__U,__A,__I,__B); 839 } 840 841 __m512i test_mm512_mulhrs_epi16(__m512i __A, __m512i __B) { 842 // CHECK-LABEL: @test_mm512_mulhrs_epi16 843 // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.512 844 return _mm512_mulhrs_epi16(__A,__B); 845 } 846 __m512i test_mm512_mask_mulhrs_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { 847 // CHECK-LABEL: @test_mm512_mask_mulhrs_epi16 848 // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.512 849 return _mm512_mask_mulhrs_epi16(__W,__U,__A,__B); 850 } 851 __m512i test_mm512_maskz_mulhrs_epi16(__mmask32 __U, __m512i __A, __m512i __B) { 852 // CHECK-LABEL: @test_mm512_maskz_mulhrs_epi16 853 // CHECK: @llvm.x86.avx512.mask.pmul.hr.sw.512 854 return _mm512_maskz_mulhrs_epi16(__U,__A,__B); 855 } 856 __m512i test_mm512_mulhi_epi16(__m512i __A, __m512i __B) { 857 // CHECK-LABEL: @test_mm512_mulhi_epi16 858 // CHECK: @llvm.x86.avx512.mask.pmulh.w.512 859 return _mm512_mulhi_epi16(__A,__B); 860 } 861 __m512i test_mm512_mask_mulhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { 862 // CHECK-LABEL: @test_mm512_mask_mulhi_epi16 863 // CHECK: @llvm.x86.avx512.mask.pmulh.w.512 864 return _mm512_mask_mulhi_epi16(__W,__U,__A,__B); 865 } 866 __m512i test_mm512_maskz_mulhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) { 867 // CHECK-LABEL: @test_mm512_maskz_mulhi_epi16 868 // CHECK: @llvm.x86.avx512.mask.pmulh.w.512 869 return _mm512_maskz_mulhi_epi16(__U,__A,__B); 870 } 871 __m512i test_mm512_mulhi_epu16(__m512i __A, __m512i __B) { 872 // CHECK-LABEL: @test_mm512_mulhi_epu16 873 // CHECK: @llvm.x86.avx512.mask.pmulhu.w.512 874 return _mm512_mulhi_epu16(__A,__B); 875 } 876 __m512i test_mm512_mask_mulhi_epu16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { 877 // CHECK-LABEL: @test_mm512_mask_mulhi_epu16 878 // CHECK: @llvm.x86.avx512.mask.pmulhu.w.512 879 return _mm512_mask_mulhi_epu16(__W,__U,__A,__B); 880 } 881 __m512i test_mm512_maskz_mulhi_epu16(__mmask32 __U, __m512i __A, __m512i __B) { 882 // CHECK-LABEL: @test_mm512_maskz_mulhi_epu16 883 // CHECK: @llvm.x86.avx512.mask.pmulhu.w.512 884 return _mm512_maskz_mulhi_epu16(__U,__A,__B); 885 } 886 887 __m512i test_mm512_maddubs_epi16(__m512i __X, __m512i __Y) { 888 // CHECK-LABEL: @test_mm512_maddubs_epi16 889 // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.512 890 return _mm512_maddubs_epi16(__X,__Y); 891 } 892 __m512i test_mm512_mask_maddubs_epi16(__m512i __W, __mmask32 __U, __m512i __X, __m512i __Y) { 893 // CHECK-LABEL: @test_mm512_mask_maddubs_epi16 894 // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.512 895 return _mm512_mask_maddubs_epi16(__W,__U,__X,__Y); 896 } 897 __m512i test_mm512_maskz_maddubs_epi16(__mmask32 __U, __m512i __X, __m512i __Y) { 898 // CHECK-LABEL: @test_mm512_maskz_maddubs_epi16 899 // CHECK: @llvm.x86.avx512.mask.pmaddubs.w.512 900 return _mm512_maskz_maddubs_epi16(__U,__X,__Y); 901 } 902 __m512i test_mm512_madd_epi16(__m512i __A, __m512i __B) { 903 // CHECK-LABEL: @test_mm512_madd_epi16 904 // CHECK: @llvm.x86.avx512.mask.pmaddw.d.512 905 return _mm512_madd_epi16(__A,__B); 906 } 907 __m512i test_mm512_mask_madd_epi16(__m512i __W, __mmask16 __U, __m512i __A, __m512i __B) { 908 // CHECK-LABEL: @test_mm512_mask_madd_epi16 909 // CHECK: @llvm.x86.avx512.mask.pmaddw.d.512 910 return _mm512_mask_madd_epi16(__W,__U,__A,__B); 911 } 912 __m512i test_mm512_maskz_madd_epi16(__mmask16 __U, __m512i __A, __m512i __B) { 913 // CHECK-LABEL: @test_mm512_maskz_madd_epi16 914 // CHECK: @llvm.x86.avx512.mask.pmaddw.d.512 915 return _mm512_maskz_madd_epi16(__U,__A,__B); 916 } 917 918 __m256i test_mm512_cvtsepi16_epi8(__m512i __A) { 919 // CHECK-LABEL: @test_mm512_cvtsepi16_epi8 920 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.512 921 return _mm512_cvtsepi16_epi8(__A); 922 } 923 924 __m256i test_mm512_mask_cvtsepi16_epi8(__m256i __O, __mmask32 __M, __m512i __A) { 925 // CHECK-LABEL: @test_mm512_mask_cvtsepi16_epi8 926 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.512 927 return _mm512_mask_cvtsepi16_epi8(__O, __M, __A); 928 } 929 930 __m256i test_mm512_maskz_cvtsepi16_epi8(__mmask32 __M, __m512i __A) { 931 // CHECK-LABEL: @test_mm512_maskz_cvtsepi16_epi8 932 // CHECK: @llvm.x86.avx512.mask.pmovs.wb.512 933 return _mm512_maskz_cvtsepi16_epi8(__M, __A); 934 } 935 936 __m256i test_mm512_cvtusepi16_epi8(__m512i __A) { 937 // CHECK-LABEL: @test_mm512_cvtusepi16_epi8 938 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.512 939 return _mm512_cvtusepi16_epi8(__A); 940 } 941 942 __m256i test_mm512_mask_cvtusepi16_epi8(__m256i __O, __mmask32 __M, __m512i __A) { 943 // CHECK-LABEL: @test_mm512_mask_cvtusepi16_epi8 944 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.512 945 return _mm512_mask_cvtusepi16_epi8(__O, __M, __A); 946 } 947 948 __m256i test_mm512_maskz_cvtusepi16_epi8(__mmask32 __M, __m512i __A) { 949 // CHECK-LABEL: @test_mm512_maskz_cvtusepi16_epi8 950 // CHECK: @llvm.x86.avx512.mask.pmovus.wb.512 951 return _mm512_maskz_cvtusepi16_epi8(__M, __A); 952 } 953 954 __m256i test_mm512_cvtepi16_epi8(__m512i __A) { 955 // CHECK-LABEL: @test_mm512_cvtepi16_epi8 956 // CHECK: @llvm.x86.avx512.mask.pmov.wb.512 957 return _mm512_cvtepi16_epi8(__A); 958 } 959 960 __m256i test_mm512_mask_cvtepi16_epi8(__m256i __O, __mmask32 __M, __m512i __A) { 961 // CHECK-LABEL: @test_mm512_mask_cvtepi16_epi8 962 // CHECK: @llvm.x86.avx512.mask.pmov.wb.512 963 return _mm512_mask_cvtepi16_epi8(__O, __M, __A); 964 } 965 966 __m256i test_mm512_maskz_cvtepi16_epi8(__mmask32 __M, __m512i __A) { 967 // CHECK-LABEL: @test_mm512_maskz_cvtepi16_epi8 968 // CHECK: @llvm.x86.avx512.mask.pmov.wb.512 969 return _mm512_maskz_cvtepi16_epi8(__M, __A); 970 } 971 972 __m512i test_mm512_unpackhi_epi8(__m512i __A, __m512i __B) { 973 // CHECK-LABEL: @test_mm512_unpackhi_epi8 974 // CHECK: @llvm.x86.avx512.mask.punpckhb.w.512 975 return _mm512_unpackhi_epi8(__A, __B); 976 } 977 978 __m512i test_mm512_mask_unpackhi_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { 979 // CHECK-LABEL: @test_mm512_mask_unpackhi_epi8 980 // CHECK: @llvm.x86.avx512.mask.punpckhb.w.512 981 return _mm512_mask_unpackhi_epi8(__W, __U, __A, __B); 982 } 983 984 __m512i test_mm512_maskz_unpackhi_epi8(__mmask64 __U, __m512i __A, __m512i __B) { 985 // CHECK-LABEL: @test_mm512_maskz_unpackhi_epi8 986 // CHECK: @llvm.x86.avx512.mask.punpckhb.w.512 987 return _mm512_maskz_unpackhi_epi8(__U, __A, __B); 988 } 989 990 __m512i test_mm512_unpackhi_epi16(__m512i __A, __m512i __B) { 991 // CHECK-LABEL: @test_mm512_unpackhi_epi16 992 // CHECK: @llvm.x86.avx512.mask.punpckhw.d.512 993 return _mm512_unpackhi_epi16(__A, __B); 994 } 995 996 __m512i test_mm512_mask_unpackhi_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { 997 // CHECK-LABEL: @test_mm512_mask_unpackhi_epi16 998 // CHECK: @llvm.x86.avx512.mask.punpckhw.d.512 999 return _mm512_mask_unpackhi_epi16(__W, __U, __A, __B); 1000 } 1001 1002 __m512i test_mm512_maskz_unpackhi_epi16(__mmask32 __U, __m512i __A, __m512i __B) { 1003 // CHECK-LABEL: @test_mm512_maskz_unpackhi_epi16 1004 // CHECK: @llvm.x86.avx512.mask.punpckhw.d.512 1005 return _mm512_maskz_unpackhi_epi16(__U, __A, __B); 1006 } 1007 1008 __m512i test_mm512_unpacklo_epi8(__m512i __A, __m512i __B) { 1009 // CHECK-LABEL: @test_mm512_unpacklo_epi8 1010 // CHECK: @llvm.x86.avx512.mask.punpcklb.w.512 1011 return _mm512_unpacklo_epi8(__A, __B); 1012 } 1013 1014 __m512i test_mm512_mask_unpacklo_epi8(__m512i __W, __mmask64 __U, __m512i __A, __m512i __B) { 1015 // CHECK-LABEL: @test_mm512_mask_unpacklo_epi8 1016 // CHECK: @llvm.x86.avx512.mask.punpcklb.w.512 1017 return _mm512_mask_unpacklo_epi8(__W, __U, __A, __B); 1018 } 1019 1020 __m512i test_mm512_maskz_unpacklo_epi8(__mmask64 __U, __m512i __A, __m512i __B) { 1021 // CHECK-LABEL: @test_mm512_maskz_unpacklo_epi8 1022 // CHECK: @llvm.x86.avx512.mask.punpcklb.w.512 1023 return _mm512_maskz_unpacklo_epi8(__U, __A, __B); 1024 } 1025 1026 __m512i test_mm512_unpacklo_epi16(__m512i __A, __m512i __B) { 1027 // CHECK-LABEL: @test_mm512_unpacklo_epi16 1028 // CHECK: @llvm.x86.avx512.mask.punpcklw.d.512 1029 return _mm512_unpacklo_epi16(__A, __B); 1030 } 1031 1032 __m512i test_mm512_mask_unpacklo_epi16(__m512i __W, __mmask32 __U, __m512i __A, __m512i __B) { 1033 // CHECK-LABEL: @test_mm512_mask_unpacklo_epi16 1034 // CHECK: @llvm.x86.avx512.mask.punpcklw.d.512 1035 return _mm512_mask_unpacklo_epi16(__W, __U, __A, __B); 1036 } 1037 1038 __m512i test_mm512_maskz_unpacklo_epi16(__mmask32 __U, __m512i __A, __m512i __B) { 1039 // CHECK-LABEL: @test_mm512_maskz_unpacklo_epi16 1040 // CHECK: @llvm.x86.avx512.mask.punpcklw.d.512 1041 return _mm512_maskz_unpacklo_epi16(__U, __A, __B); 1042 } 1043 1044