]> granicus.if.org Git - clang/commitdiff
[X86][MMX] Add tests for _mm_set*_* intrinsics
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 22 Mar 2017 14:55:43 +0000 (14:55 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Wed, 22 Mar 2017 14:55:43 +0000 (14:55 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@298511 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/mmx-builtins.c

index ddc6f66548aea5d6635b47f44fb1ecfd06dc8bd4..cd725e22b83c8ef0d2a08adf5bdcbb53e283dfce 100644 (file)
@@ -383,6 +383,93 @@ __m64 test_mm_sad_pu8(__m64 a, __m64 b) {
   return _mm_sad_pu8(a, b);
 }
 
+__m64 test_mm_set_pi8(char a, char b, char c, char d, char e, char f, char g, char h) {
+  // CHECK-LABEL: test_mm_set_pi8
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  return _mm_set_pi8(a, b, c, d, e, f, g, h);
+}
+
+__m64 test_mm_set_pi16(short a, short b, short c, short d) {
+  // CHECK-LABEL: test_mm_set_pi16
+  // CHECK: insertelement <4 x i16>
+  // CHECK: insertelement <4 x i16>
+  // CHECK: insertelement <4 x i16>
+  // CHECK: insertelement <4 x i16>
+  return _mm_set_pi16(a, b, c, d);
+}
+
+__m64 test_mm_set_pi32(int a, int b) {
+  // CHECK-LABEL: test_mm_set_pi32
+  // CHECK: insertelement <2 x i32>
+  // CHECK: insertelement <2 x i32>
+  return _mm_set_pi32(a, b);
+}
+
+__m64 test_mm_setr_pi8(char a, char b, char c, char d, char e, char f, char g, char h) {
+  // CHECK-LABEL: test_mm_setr_pi8
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  return _mm_setr_pi8(a, b, c, d, e, f, g, h);
+}
+
+__m64 test_mm_setr_pi16(short a, short b, short c, short d) {
+  // CHECK-LABEL: test_mm_setr_pi16
+  // CHECK: insertelement <4 x i16>
+  // CHECK: insertelement <4 x i16>
+  // CHECK: insertelement <4 x i16>
+  // CHECK: insertelement <4 x i16>
+  return _mm_setr_pi16(a, b, c, d);
+}
+
+__m64 test_mm_setr_pi32(int a, int b) {
+  // CHECK-LABEL: test_mm_setr_pi32
+  // CHECK: insertelement <2 x i32>
+  // CHECK: insertelement <2 x i32>
+  return _mm_setr_pi32(a, b);
+}
+
+__m64 test_mm_set1_pi8(char a) {
+  // CHECK-LABEL: test_mm_set1_pi8
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  // CHECK: insertelement <8 x i8>
+  return _mm_set1_pi8(a);
+}
+
+__m64 test_mm_set1_pi16(short a) {
+  // CHECK-LABEL: test_mm_set1_pi16
+  // CHECK: insertelement <4 x i16>
+  // CHECK: insertelement <4 x i16>
+  // CHECK: insertelement <4 x i16>
+  // CHECK: insertelement <4 x i16>
+  return _mm_set1_pi16(a);
+}
+
+__m64 test_mm_set1_pi32(int a) {
+  // CHECK-LABEL: test_mm_set1_pi32
+  // CHECK: insertelement <2 x i32>
+  // CHECK: insertelement <2 x i32>
+  return _mm_set1_pi32(a);
+}
+
 __m64 test_mm_shuffle_pi8(__m64 a, __m64 b) {
   // CHECK-LABEL: test_mm_shuffle_pi8
   // CHECK: call x86_mmx @llvm.x86.ssse3.pshuf.b