]> granicus.if.org Git - llvm/commitdiff
[X86][SSE] Add missing _mm_extract_ps fast-isel test
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 20 Oct 2017 19:29:01 +0000 (19:29 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 20 Oct 2017 19:29:01 +0000 (19:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@316226 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/X86/sse41-intrinsics-fast-isel.ll

index f106f7ec5cc1158cb0f83547fd6a931066967ab4..acf91cbeea1124c7d4bd7f93ce7c5eb2782d1e6e 100644 (file)
@@ -468,7 +468,22 @@ define i64 @test_mm_extract_epi64(<2 x i64> %a0) {
   ret i64 %ext
 }
 
-; TODO test_mm_extract_ps
+define i32 @test_mm_extract_ps(<4 x float> %a0) {
+; X32-LABEL: test_mm_extract_ps:
+; X32:       # BB#0:
+; X32-NEXT:    movshdup {{.*#+}} xmm0 = xmm0[1,1,3,3]
+; X32-NEXT:    movd %xmm0, %eax
+; X32-NEXT:    retl
+;
+; X64-LABEL: test_mm_extract_ps:
+; X64:       # BB#0:
+; X64-NEXT:    movshdup {{.*#+}} xmm0 = xmm0[1,1,3,3]
+; X64-NEXT:    movd %xmm0, %eax
+; X64-NEXT:    retq
+  %ext = extractelement <4 x float> %a0, i32 1
+  %bc = bitcast float %ext to i32
+  ret i32 %bc
+}
 
 define <2 x double> @test_mm_floor_pd(<2 x double> %a0) {
 ; X32-LABEL: test_mm_floor_pd: