[llvm-commits] [llvm] r76853 - in /llvm/trunk/test/CodeGen/X86: sse41-extractps-bitcast-1.ll sse41.ll

Chris Lattner sabre at nondot.org
Wed Jul 22 21:49:42 PDT 2009


Author: lattner
Date: Wed Jul 22 23:49:39 2009
New Revision: 76853

URL: http://llvm.org/viewvc/llvm-project?rev=76853&view=rev
Log:
merge one more sse41 test into sse41.ll

Removed:
    llvm/trunk/test/CodeGen/X86/sse41-extractps-bitcast-1.ll
Modified:
    llvm/trunk/test/CodeGen/X86/sse41.ll

Removed: llvm/trunk/test/CodeGen/X86/sse41-extractps-bitcast-1.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse41-extractps-bitcast-1.ll?rev=76852&view=auto

==============================================================================
--- llvm/trunk/test/CodeGen/X86/sse41-extractps-bitcast-1.ll (original)
+++ llvm/trunk/test/CodeGen/X86/sse41-extractps-bitcast-1.ll (removed)
@@ -1,19 +0,0 @@
-; RUN: llvm-as < %s | llc -march=x86 -mattr=sse41 | not grep extractps
-
-; The non-store form of extractps puts its result into a GPR.
-; This makes it suitable for an extract from a <4 x float> that
-; is bitcasted to i32, but unsuitable for much of anything else.
-
-define float @bar(<4 x float> %v) {
-  %s = extractelement <4 x float> %v, i32 3
-  %t = fadd float %s, 1.0
-  ret float %t
-}
-define float @baz(<4 x float> %v) {
-  %s = extractelement <4 x float> %v, i32 3
-  ret float %s
-}
-define i32 @qux(<4 x i32> %v) {
-  %i = extractelement <4 x i32> %v, i32 3
-  ret i32 %i
-}

Modified: llvm/trunk/test/CodeGen/X86/sse41.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/CodeGen/X86/sse41.ll?rev=76853&r1=76852&r2=76853&view=diff

==============================================================================
--- llvm/trunk/test/CodeGen/X86/sse41.ll (original)
+++ llvm/trunk/test/CodeGen/X86/sse41.ll Wed Jul 22 23:49:39 2009
@@ -104,6 +104,50 @@
   %s = extractelement <4 x i32> %t, i32 3
   ret i32 %s
 
+; X32: _extractps_2:
+; X32:	  extractps	$3, %xmm0, %eax
+
 ; X64: _extractps_2:
 ; X64:	  extractps	$3, %xmm0, %eax
 }
+
+
+; The non-store form of extractps puts its result into a GPR.
+; This makes it suitable for an extract from a <4 x float> that
+; is bitcasted to i32, but unsuitable for much of anything else.
+
+define float @ext_1(<4 x float> %v) nounwind {
+  %s = extractelement <4 x float> %v, i32 3
+  %t = fadd float %s, 1.0
+  ret float %t
+
+; X32: _ext_1:
+; X32:	  pshufd	$3, %xmm0, %xmm0
+; X32:	  addss	LCPI8_0, %xmm0
+
+; X64: _ext_1:
+; X64:	  pshufd	$3, %xmm0, %xmm0
+; X64:	  addss	LCPI8_0(%rip), %xmm0
+}
+define float @ext_2(<4 x float> %v) nounwind {
+  %s = extractelement <4 x float> %v, i32 3
+  ret float %s
+
+; X32: _ext_2:
+; X32:	  pshufd	$3, %xmm0, %xmm0
+
+; X64: _ext_2:
+; X64:	  pshufd	$3, %xmm0, %xmm0
+}
+define i32 @ext_3(<4 x i32> %v) nounwind {
+  %i = extractelement <4 x i32> %v, i32 3
+  ret i32 %i
+
+; X32: _ext_3:
+; X32:	  pextrd	$3, %xmm0, %eax
+
+; X64: _ext_3:
+; X64:	  pextrd	$3, %xmm0, %eax
+}
+
+





More information about the llvm-commits mailing list