]> granicus.if.org Git - clang/commitdiff
[X86] Add test cases for _mm_movepi64_pi64 and _mm_movpi64_epi64.
authorCraig Topper <craig.topper@intel.com>
Thu, 15 Aug 2019 06:20:33 +0000 (06:20 +0000)
committerCraig Topper <craig.topper@intel.com>
Thu, 15 Aug 2019 06:20:33 +0000 (06:20 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@368969 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/sse2-builtins.c

index 280640c267cce232b1b77cc69e98d20849fd268c..6e4327f593ffeca402e77fa304df3c75e7f43aef 100644 (file)
@@ -808,6 +808,23 @@ __m128d test_mm_min_sd(__m128d A, __m128d B) {
   return _mm_min_sd(A, B);
 }
 
+__m64 test_mm_movepi64_pi64(__m128i A)
+{
+  // CHECK-LABEL: test_mm_movepi64_pi64
+  // CHECK: [[EXT:%.*]] = extractelement <2 x i64> %1, i32 0
+  // CHECK: bitcast i64 [[EXT]] to <1 x i64>
+  return _mm_movepi64_pi64(A);
+}
+
+__m128i test_mm_movpi64_epi64(__m64 A)
+{
+  // CHECK-LABEL: test_mm_movpi64_epi64
+  // CHECK: [[CAST:%.*]] = bitcast <1 x i64> %{{.*}} to i64
+  // CHECK: [[INS:%.*]] = insertelement <2 x i64> undef, i64 [[CAST]], i32 0
+  // CHECK: insertelement <2 x i64> [[INS]], i64 0, i32 1
+  return _mm_movpi64_epi64(A);
+}
+
 __m128i test_mm_move_epi64(__m128i A) {
   // CHECK-LABEL: test_mm_move_epi64
   // CHECK: shufflevector <2 x i64> %{{.*}}, <2 x i64> %{{.*}}, <2 x i32> <i32 0, i32 2>