diff options
author | Craig Topper <craig.topper@gmail.com> | 2012-06-10 02:46:15 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2012-06-10 02:46:15 +0000 |
commit | 02b3d81a97365072632ee53bfe19a1b3cea542c5 (patch) | |
tree | fec413f58ed1085659c37974cc6024197ef1b409 /clang/test/CodeGen/xop-builtins.c | |
parent | 33b6d5e20b9c5836a8b5276659744d0150252c0a (diff) | |
download | bcm5719-llvm-02b3d81a97365072632ee53bfe19a1b3cea542c5.tar.gz bcm5719-llvm-02b3d81a97365072632ee53bfe19a1b3cea542c5.zip |
More XOP intrinsics
llvm-svn: 158287
Diffstat (limited to 'clang/test/CodeGen/xop-builtins.c')
-rw-r--r-- | clang/test/CodeGen/xop-builtins.c | 90 |
1 files changed, 90 insertions, 0 deletions
diff --git a/clang/test/CodeGen/xop-builtins.c b/clang/test/CodeGen/xop-builtins.c index 9fe79e44ae0..28708ab9cf8 100644 --- a/clang/test/CodeGen/xop-builtins.c +++ b/clang/test/CodeGen/xop-builtins.c @@ -64,3 +64,93 @@ __m128i test_mm_maddd_epi16(__m128i a, __m128i b, __m128i c) { // CHECK: @llvm.x86.xop.vpmadcswd return _mm_maddd_epi16(a, b, c); } + +__m128i test_mm_haddw_epi8(__m128i a) { + // CHECK: @llvm.x86.xop.vphaddbw + return _mm_haddw_epi8(a); +} + +__m128i test_mm_haddd_epi8(__m128i a) { + // CHECK: @llvm.x86.xop.vphaddbd + return _mm_haddd_epi8(a); +} + +__m128i test_mm_haddq_epi8(__m128i a) { + // CHECK: @llvm.x86.xop.vphaddbq + return _mm_haddq_epi8(a); +} + +__m128i test_mm_haddd_epi16(__m128i a) { + // CHECK: @llvm.x86.xop.vphaddwd + return _mm_haddd_epi16(a); +} + +__m128i test_mm_haddq_epi16(__m128i a) { + // CHECK: @llvm.x86.xop.vphaddwq + return _mm_haddq_epi16(a); +} + +__m128i test_mm_haddq_epi32(__m128i a) { + // CHECK: @llvm.x86.xop.vphadddq + return _mm_haddq_epi32(a); +} + +__m128i test_mm_haddw_epu8(__m128i a) { + // CHECK: @llvm.x86.xop.vphaddubw + return _mm_haddw_epu8(a); +} + +__m128i test_mm_haddd_epu8(__m128i a) { + // CHECK: @llvm.x86.xop.vphaddubd + return _mm_haddd_epu8(a); +} + +__m128i test_mm_haddq_epu8(__m128i a) { + // CHECK: @llvm.x86.xop.vphaddubq + return _mm_haddq_epu8(a); +} + +__m128i test_mm_haddd_epu16(__m128i a) { + // CHECK: @llvm.x86.xop.vphadduwd + return _mm_haddd_epu16(a); +} + +__m128i test_mm_haddq_epu16(__m128i a) { + // CHECK: @llvm.x86.xop.vphadduwq + return _mm_haddq_epu16(a); +} + +__m128i test_mm_haddq_epu32(__m128i a) { + // CHECK: @llvm.x86.xop.vphaddudq + return _mm_haddq_epu32(a); +} + +__m128i test_mm_hsubw_epi8(__m128i a) { + // CHECK: @llvm.x86.xop.vphsubbw + return _mm_hsubw_epi8(a); +} + +__m128i test_mm_hsubd_epi16(__m128i a) { + // CHECK: @llvm.x86.xop.vphsubwd + return _mm_hsubd_epi16(a); +} + +__m128i test_mm_hsubq_epi32(__m128i a) { + // CHECK: @llvm.x86.xop.vphsubdq + return _mm_hsubq_epi32(a); +} + +__m128i test_mm_cmov_si128(__m128i a, __m128i b, __m128i c) { + // CHECK: @llvm.x86.xop.vpcmov + return _mm_cmov_si128(a, b, c); +} + +__m256i test_mm256_cmov_si256(__m256i a, __m256i b, __m256i c) { + // CHECK: @llvm.x86.xop.vpcmov.256 + return _mm256_cmov_si256(a, b, c); +} + +__m128i test_mm_perm_epi8(__m128i a, __m128i b, __m128i c) { + // CHECK: @llvm.x86.xop.vpperm + return _mm_perm_epi8(a, b, c); +} |