diff options
author | Craig Topper <craig.topper@gmail.com> | 2012-06-10 07:47:32 +0000 |
---|---|---|
committer | Craig Topper <craig.topper@gmail.com> | 2012-06-10 07:47:32 +0000 |
commit | a3c5fbf54be8861df694fe5ff0fdd24244012532 (patch) | |
tree | d6cce09281d763416699ff73750a49642c8b0723 /clang/test/CodeGen/xop-builtins.c | |
parent | 7afe343be52cfe0f6a6b9859c4b3f942968e7a42 (diff) | |
download | bcm5719-llvm-a3c5fbf54be8861df694fe5ff0fdd24244012532.tar.gz bcm5719-llvm-a3c5fbf54be8861df694fe5ff0fdd24244012532.zip |
Add XOP vprot* instruction intrinsics
llvm-svn: 158292
Diffstat (limited to 'clang/test/CodeGen/xop-builtins.c')
-rw-r--r-- | clang/test/CodeGen/xop-builtins.c | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/clang/test/CodeGen/xop-builtins.c b/clang/test/CodeGen/xop-builtins.c index 28708ab9cf8..af7734809f5 100644 --- a/clang/test/CodeGen/xop-builtins.c +++ b/clang/test/CodeGen/xop-builtins.c @@ -154,3 +154,43 @@ __m128i test_mm_perm_epi8(__m128i a, __m128i b, __m128i c) { // CHECK: @llvm.x86.xop.vpperm return _mm_perm_epi8(a, b, c); } + +__m128i test_mm_rot_epi8(__m128i a, __m128i b) { + // CHECK: @llvm.x86.xop.vprotb + return _mm_rot_epi8(a, b); +} + +__m128i test_mm_rot_epi16(__m128i a, __m128i b) { + // CHECK: @llvm.x86.xop.vprotw + return _mm_rot_epi16(a, b); +} + +__m128i test_mm_rot_epi32(__m128i a, __m128i b) { + // CHECK: @llvm.x86.xop.vprotd + return _mm_rot_epi32(a, b); +} + +__m128i test_mm_rot_epi64(__m128i a, __m128i b) { + // CHECK: @llvm.x86.xop.vprotq + return _mm_rot_epi64(a, b); +} + +__m128i test_mm_roti_epi8(__m128i a) { + // CHECK: @llvm.x86.xop.vprotbi + return _mm_roti_epi8(a, 1); +} + +__m128i test_mm_roti_epi16(__m128i a) { + // CHECK: @llvm.x86.xop.vprotwi + return _mm_roti_epi16(a, 50); +} + +__m128i test_mm_roti_epi32(__m128i a) { + // CHECK: @llvm.x86.xop.vprotdi + return _mm_roti_epi32(a, -30); +} + +__m128i test_mm_roti_epi64(__m128i a) { + // CHECK: @llvm.x86.xop.vprotqi + return _mm_roti_epi64(a, 100); +} |