2008-04-16 02:32:24 +00:00
|
|
|
; 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
|
2009-06-04 22:49:04 +00:00
|
|
|
%t = fadd float %s, 1.0
|
2008-04-16 02:32:24 +00:00
|
|
|
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
|
|
|
|
}
|