summaryrefslogtreecommitdiffstats
path: root/clang/test/CodeGen/sse-builtins.c
diff options
context:
space:
mode:
authorManman Ren <manman.ren@gmail.com>2013-10-22 19:24:42 +0000
committerManman Ren <manman.ren@gmail.com>2013-10-22 19:24:42 +0000
commitbe38b9e15fde35e15cf87f28540bd34edfce4db6 (patch)
tree370844e60c8b3df7dd8317944611c5f000d0c66c /clang/test/CodeGen/sse-builtins.c
parent7c5bc2fc2bd1d57f870009bb71548ee7a0756056 (diff)
downloadbcm5719-llvm-be38b9e15fde35e15cf87f28540bd34edfce4db6.tar.gz
bcm5719-llvm-be38b9e15fde35e15cf87f28540bd34edfce4db6.zip
_mm_extract_epi16: use "& 7" when index is out of bound.
This is in line with implementation of _mm_extract_pi16. rdar://15250497 llvm-svn: 193187
Diffstat (limited to 'clang/test/CodeGen/sse-builtins.c')
-rw-r--r--clang/test/CodeGen/sse-builtins.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/clang/test/CodeGen/sse-builtins.c b/clang/test/CodeGen/sse-builtins.c
index 559d855547b..cee9b3c2a5d 100644
--- a/clang/test/CodeGen/sse-builtins.c
+++ b/clang/test/CodeGen/sse-builtins.c
@@ -206,3 +206,10 @@ void test_stream_si128(__m128i x, void *y) {
// CHECK: store {{.*}} <2 x i64>* {{.*}}, align 16, !nontemporal
_mm_stream_si128(y, x);
}
+
+void test_extract_epi16(__m128i __a) {
+ // CHECK-LABEL: define void @test_extract_epi16
+ // CHECK: [[x:%.*]] = and i32 %{{.*}}, 7
+ // CHECK: extractelement <8 x i16> %{{.*}}, i32 [[x]]
+ _mm_extract_epi16(__a, 8);
+}
OpenPOWER on IntegriCloud