[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