summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/xop-builtins.c
diff options
context:
space:
mode:
authorCraig Topper <craig.topper@gmail.com>2012-06-10 07:47:32 +0000
committerCraig Topper <craig.topper@gmail.com>2012-06-10 07:47:32 +0000
commita3c5fbf54be8861df694fe5ff0fdd24244012532 (patch)
treed6cce09281d763416699ff73750a49642c8b0723 /clang/test/CodeGen/xop-builtins.c
parent7afe343be52cfe0f6a6b9859c4b3f942968e7a42 (diff)
downloadbcm5719-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.c40
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);
+}
OpenPOWER on IntegriCloud