blob: 0d9a1a76444f2fb65acc94b745402ec2f96e5e7f [file] [log] [blame]
Craig Topper925be542011-12-19 05:04:33 +00001// RUN: %clang_cc1 %s -O3 -triple=x86_64-apple-darwin -target-feature +avx2 -emit-llvm -o - | FileCheck %s
2
3// Don't include mm_malloc.h, it's system specific.
4#define __MM_MALLOC_H
5
6#include <immintrin.h>
7
8__m256 test_mm256_mpsadbw_epu8(__m256 x, __m256 y) {
9 // CHECK: @llvm.x86.avx2.mpsadbw({{.*}}, {{.*}}, i32 3)
10 return _mm256_mpsadbw_epu8(x, y, 3);
11}
12
13__m256 test_mm256_abs_epi8(__m256 a) {
14 // CHECK: @llvm.x86.avx2.pabs.b
15 return _mm256_abs_epi8(a);
16}
17
18__m256 test_mm256_abs_epi16(__m256 a) {
19 // CHECK: @llvm.x86.avx2.pabs.w
20 return _mm256_abs_epi16(a);
21}
22
23__m256 test_mm256_abs_epi32(__m256 a) {
24 // CHECK: @llvm.x86.avx2.pabs.d
25 return _mm256_abs_epi32(a);
26}
27
28__m256 test_mm256_packs_epi16(__m256 a, __m256 b) {
29 // CHECK: @llvm.x86.avx2.packsswb
30 return _mm256_packs_epi16(a, b);
31}
32
33__m256 test_mm256_packs_epi32(__m256 a, __m256 b) {
34 // CHECK: @llvm.x86.avx2.packssdw
35 return _mm256_packs_epi32(a, b);
36}
37
38__m256 test_mm256_packs_epu16(__m256 a, __m256 b) {
39 // CHECK: @llvm.x86.avx2.packuswb
40 return _mm256_packus_epi16(a, b);
41}
42
43__m256 test_mm256_packs_epu32(__m256 a, __m256 b) {
44 // CHECK: @llvm.x86.avx2.packusdw
45 return _mm256_packus_epi32(a, b);
46}
47
48__m256 test_mm256_add_epi8(__m256 a, __m256 b) {
49 // CHECK: add <32 x i8>
50 return _mm256_add_epi8(a, b);
51}
52
53__m256 test_mm256_add_epi16(__m256 a, __m256 b) {
54 // CHECK: add <16 x i16>
55 return _mm256_add_epi16(a, b);
56}
57
58__m256 test_mm256_add_epi32(__m256 a, __m256 b) {
59 // CHECK: add <8 x i32>
60 return _mm256_add_epi32(a, b);
61}
62
63__m256 test_mm256_add_epi64(__m256 a, __m256 b) {
64 // CHECK: add <4 x i64>
65 return _mm256_add_epi64(a, b);
66}
67
68__m256 test_mm256_sub_epi8(__m256 a, __m256 b) {
69 // CHECK: sub <32 x i8>
70 return _mm256_sub_epi8(a, b);
71}
72
73__m256 test_mm256_sub_epi16(__m256 a, __m256 b) {
74 // CHECK: sub <16 x i16>
75 return _mm256_sub_epi16(a, b);
76}
77
78__m256 test_mm256_sub_epi32(__m256 a, __m256 b) {
79 // CHECK: sub <8 x i32>
80 return _mm256_sub_epi32(a, b);
81}
82
83__m256 test_mm256_sub_epi64(__m256 a, __m256 b) {
84 // CHECK: sub <4 x i64>
85 return _mm256_sub_epi64(a, b);
86}