aboutsummaryrefslogtreecommitdiffstats
path: root/test/CodeGen/X86/sse41-extractps-bitcast-1.ll
blob: 470d146715967a17ff6946b436d61737b80a49c5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
; 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
}